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@
This commit is contained in:
Dimitry Andric 2010-11-25 20:35:49 +00:00
parent 0e1c5cba52
commit d8f878a1c5

View File

@ -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;