Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 25 Nov 2010 20:35:50 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r215841 - head/contrib/gcc/config/ia64
Message-ID:  <201011252035.oAPKZoNB016943@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201011252035.oAPKZoNB016943>