svn commit: r215841 - head/contrib/gcc/config/ia64
Dimitry Andric
dim at FreeBSD.org
Thu Nov 25 20:35:50 UTC 2010
Author: dim
Date: Thu Nov 25 20:35:49 2010
New Revision: 215841
URL: http://svn.freebsd.org/changeset/base/215841
Log:
Now that the fix for gcc PR 20218 is applied, and hidden attributes
actually work, linking of libgcc_s.so.1 on ia64 will fail with:
unwind-ia64.So(.text+0x1762): In function `_Unwind_FindEnclosingFunction':
: undefined reference to `_Unwind_FindTableEntry'
unwind-ia64.So(.text+0x1d82): In function `uw_frame_state_for':
: undefined reference to `_Unwind_FindTableEntry'
/usr/bin/ld: libgcc_s.so.1: hidden symbol `_Unwind_FindTableEntry' isn't defined
Repair this by not hiding the _Unwind_FindTableEntry symbol; on FreeBSD,
it is in libc, not in libgcc.
Silence from: current@
Modified:
head/contrib/gcc/config/ia64/unwind-ia64.h
Modified: head/contrib/gcc/config/ia64/unwind-ia64.h
==============================================================================
--- head/contrib/gcc/config/ia64/unwind-ia64.h Thu Nov 25 20:29:14 2010 (r215840)
+++ head/contrib/gcc/config/ia64/unwind-ia64.h Thu Nov 25 20:35:49 2010 (r215841)
@@ -19,6 +19,13 @@
the Free Software Foundation, 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */
+#ifdef __FreeBSD__
+/* On FreeBSD, _Unwind_FindTableEntry is in libc, and must not be hidden here. */
+#define ATTRIBUTE_HIDDEN
+#else
+#define ATTRIBUTE_HIDDEN __attribute__ ((__visibility__ ("hidden")))
+#endif
+
struct unw_table_entry
{
unsigned long start_offset;
@@ -29,4 +36,4 @@ struct unw_table_entry
extern struct unw_table_entry *
_Unwind_FindTableEntry (void *pc, unsigned long *segment_base,
unsigned long *gp)
- __attribute__ ((__visibility__ ("hidden")));
+ ATTRIBUTE_HIDDEN;
More information about the svn-src-head
mailing list