]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
hppa/ia64: _dl_symbol_address: add PLT bypass for rtld
authorMike Frysinger <vapier@gentoo.org>
Wed, 15 Jul 2015 11:37:47 +0000 (07:37 -0400)
committerMike Frysinger <vapier@gentoo.org>
Thu, 16 Jul 2015 13:03:08 +0000 (09:03 -0400)
This symbol is defined in the ldso, and is used both there and libc.so.
There is no hidden symbol for it though which leads to relocations in
the ldso and the elf/check-localplt test failing.  Add a hidden def for
rtld to fix all of that.

This function/file is only used by hppa & ia64, so no testing is needed
for other arches.

ChangeLog
elf/dl-symaddr.c
sysdeps/hppa/dl-lookupcfg.h
sysdeps/ia64/dl-lookupcfg.h

index 34b31281eeb8a3866d1b91bb7f83b4df8f55ec69..47e88edebe1cd70abbd2329bd44f0a1af913d651 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2015-07-16  Mike Frysinger  <vapier@gentoo.org>
+
+       * elf/dl-symaddr.c (_dl_symbol_address): Add rtld_hidden_def.
+       * sysdeps/hppa/dl-lookupcfg.h (_dl_symbol_address): Add
+       rtld_hidden_proto.
+       * sysdeps/ia64/dl-lookupcfg.h (_dl_symbol_address): Likewise.
+
 2015-07-16  Siddhesh Poyarekar  <siddhesh@redhat.com>
 
        * tst-nodelete-opened.c (do_test): Add comment to clarify how
index 1785382996e29edbdd7b1bf61476c8d8156371f7..e18a203184468cddd92e33ea357e24c95716a707 100644 (file)
@@ -30,3 +30,4 @@ _dl_symbol_address (struct link_map *map, const ElfW(Sym) *ref)
   else
     return (void *) value;
 }
+rtld_hidden_def (_dl_symbol_address)
index 8fcdebd27e3c8454305f47e592c941ef0cc1c94d..cd0d6b15b36a2e7c8023a505a2f6149283efa091 100644 (file)
@@ -25,6 +25,7 @@
 struct link_map;
 
 void *_dl_symbol_address (struct link_map *map, const ElfW(Sym) *ref);
+rtld_hidden_proto (_dl_symbol_address)
 
 #define DL_SYMBOL_ADDRESS(map, ref) _dl_symbol_address(map, ref)
 
index 8796a71674f52301e02825ae8041fdad68915a54..edf26359f6b3f933139328ab1664f60e506479ac 100644 (file)
@@ -28,6 +28,7 @@
 struct link_map;
 
 extern void *_dl_symbol_address (struct link_map *map, const Elf64_Sym *ref);
+rtld_hidden_proto (_dl_symbol_address)
 
 #define DL_SYMBOL_ADDRESS(map, ref) _dl_symbol_address(map, ref)