Fix static build when configured with --disable-hidden-plt
authorSiddhesh Poyarekar <siddhesh@redhat.com>
Thu, 4 Apr 2013 14:13:56 +0000 (19:43 +0530)
committerSiddhesh Poyarekar <siddhesh@redhat.com>
Thu, 4 Apr 2013 14:13:56 +0000 (19:43 +0530)
Fixes BZ #15337.

Static builds fail with the following warning:

/home/tools/glibc/glibc/nptl/../nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S:80:
undefined reference to `__GI___pthread_unwind'

When the source is configured with --disable-hidden-plt.  This is
because the preprocessor conditional in cancellation.S only checks if
the build is for SHARED, whereas hidden_def is defined appropriately
only for a SHARED build that will have symbol versioning *and* hidden
defs are enabled.  The last case is false here.

nptl/ChangeLog
nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S

index 3a1dde6..505f9af 100644 (file)
@@ -1,3 +1,11 @@
+2013-04-04  Siddhesh Poyarekar  <siddhesh@redhat.com>
+
+       [BZ #15337]
+       * sysdeps/unix/sysv/linux/x86_64/cancellation.S
+       [IS_IN_libpthread]
+       [SHARED && defined DO_VERSIONING && !defined NO_HIDDEN]: Mark
+       __pthread_unwind hidden.
+
 2013-03-28  Roland McGrath  <roland@hack.frob.com>
 
        * pthread_create.c (start_thread) [!SHARED]:
index b284572..2cc84c1 100644 (file)
@@ -22,7 +22,7 @@
 #include "lowlevellock.h"
 
 #ifdef IS_IN_libpthread
-# ifdef SHARED
+# if defined SHARED && defined DO_VERSIONING && !defined NO_HIDDEN
 #  define __pthread_unwind __GI___pthread_unwind
 # endif
 #else