summaryrefslogtreecommitdiffstats
path: root/contrib/gcc
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2010-11-25 20:35:49 +0000
committerdim <dim@FreeBSD.org>2010-11-25 20:35:49 +0000
commitd54dd9f21aadcf368b5c36665954829088f0ff77 (patch)
treebe71bf044299bbb0f6750b9574fa73cd6993cc95 /contrib/gcc
parent5a38866f59f8e4f0292c21ea5a1d6d2e01c704e9 (diff)
downloadFreeBSD-src-d54dd9f21aadcf368b5c36665954829088f0ff77.zip
FreeBSD-src-d54dd9f21aadcf368b5c36665954829088f0ff77.tar.gz
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@
Diffstat (limited to 'contrib/gcc')
-rw-r--r--contrib/gcc/config/ia64/unwind-ia64.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/contrib/gcc/config/ia64/unwind-ia64.h b/contrib/gcc/config/ia64/unwind-ia64.h
index 09b4a98..a427c6a 100644
--- a/contrib/gcc/config/ia64/unwind-ia64.h
+++ b/contrib/gcc/config/ia64/unwind-ia64.h
@@ -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;
OpenPOWER on IntegriCloud