about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@codesourcery.com>2013-04-25 16:09:19 +0100
committerMaciej W. Rozycki <macro@codesourcery.com>2013-04-25 16:14:49 +0100
commitae9552cf7b7f43591a1dfd54baf48d31fbbe9fac (patch)
tree7fb29a609ae5b681c7fd3c0a76121a9395818163
parent93fd48c5f633dac3a81a01147688c5d7a429cb58 (diff)
downloadglibc-ae9552cf7b7f43591a1dfd54baf48d31fbbe9fac.tar.gz
glibc-ae9552cf7b7f43591a1dfd54baf48d31fbbe9fac.tar.xz
glibc-ae9552cf7b7f43591a1dfd54baf48d31fbbe9fac.zip
Declare __ehdr_start with hidden visibility.
This avoids a linker bug triggering for MIPS SVR4 binaries:

http://sourceware.org/bugzilla/show_bug.cgi?id=15365

and regardless serves as a documentation of intent.
-rw-r--r--ChangeLog3
-rw-r--r--csu/libc-start.c3
2 files changed, 5 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index da92463565..930af2afaf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2013-04-25  Maciej W. Rozycki  <macro@codesourcery.com>
 
+	* csu/libc-start.c (__libc_start_main) [!SHARED]: Declare
+	__ehdr_start with hidden visibility.
+
 	* soft-fp/op-common.h (_FP_SQRT): s/sNAN/NAN/ in a comment.
 
 2013-04-24  Carlos O'Donell  <carlos@redhat.com>
diff --git a/csu/libc-start.c b/csu/libc-start.c
index fa9085cf55..e5da3efd06 100644
--- a/csu/libc-start.c
+++ b/csu/libc-start.c
@@ -161,7 +161,8 @@ LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL),
          So we can set up _dl_phdr and _dl_phnum even without any
          information from auxv.  */
 
-      extern const ElfW(Ehdr) __ehdr_start __attribute__ ((weak));
+      extern const ElfW(Ehdr) __ehdr_start
+	__attribute__ ((weak, visibility ("hidden")));
       if (&__ehdr_start != NULL)
         {
           assert (__ehdr_start.e_phentsize == sizeof *GL(dl_phdr));