aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSiddhesh Poyarekar <siddhesh@redhat.com>2013-04-04 19:43:56 +0530
committerSiddhesh Poyarekar <siddhesh@redhat.com>2013-04-04 19:43:56 +0530
commit9ac3b5047e6bbea03437d020fab9a728e123445b (patch)
tree60cfab46f5909eed9f35c160abf1c47d40df3294
parent05e166c887612250d461b5fe7c0f0064cd1a0c41 (diff)
downloadglibc-9ac3b5047e6bbea03437d020fab9a728e123445b.tar
glibc-9ac3b5047e6bbea03437d020fab9a728e123445b.tar.gz
glibc-9ac3b5047e6bbea03437d020fab9a728e123445b.tar.bz2
glibc-9ac3b5047e6bbea03437d020fab9a728e123445b.zip
Fix static build when configured with --disable-hidden-plt
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.
-rw-r--r--nptl/ChangeLog8
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S2
2 files changed, 9 insertions, 1 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 3a1dde6f43..505f9af38c 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -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]:
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S b/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S
index b2845723fc..2cc84c189b 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S
@@ -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