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-all mailing list