diff options
author | dim <dim@FreeBSD.org> | 2010-11-25 20:35:49 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2010-11-25 20:35:49 +0000 |
commit | d54dd9f21aadcf368b5c36665954829088f0ff77 (patch) | |
tree | be71bf044299bbb0f6750b9574fa73cd6993cc95 /contrib/gcc | |
parent | 5a38866f59f8e4f0292c21ea5a1d6d2e01c704e9 (diff) | |
download | FreeBSD-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.h | 9 |
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; |