This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH 1/2] hppa/ia64: _dl_symbol_address: add PLT bypass for rtld
- From: Mike Frysinger <vapier at gentoo dot org>
- To: libc-alpha at sourceware dot org
- Date: Wed, 15 Jul 2015 07:55:42 -0400
- Subject: [PATCH 1/2] hppa/ia64: _dl_symbol_address: add PLT bypass for rtld
- Authentication-results: sourceware.org; auth=none
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.
2015-07-15 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.
---
elf/dl-symaddr.c | 1 +
sysdeps/hppa/dl-lookupcfg.h | 1 +
sysdeps/ia64/dl-lookupcfg.h | 1 +
3 files changed, 3 insertions(+)
diff --git a/elf/dl-symaddr.c b/elf/dl-symaddr.c
index 1785382..e18a203 100644
--- a/elf/dl-symaddr.c
+++ b/elf/dl-symaddr.c
@@ -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)
diff --git a/sysdeps/hppa/dl-lookupcfg.h b/sysdeps/hppa/dl-lookupcfg.h
index 8fcdebd..cd0d6b1 100644
--- a/sysdeps/hppa/dl-lookupcfg.h
+++ b/sysdeps/hppa/dl-lookupcfg.h
@@ -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)
diff --git a/sysdeps/ia64/dl-lookupcfg.h b/sysdeps/ia64/dl-lookupcfg.h
index 8796a71..edf2635 100644
--- a/sysdeps/ia64/dl-lookupcfg.h
+++ b/sysdeps/ia64/dl-lookupcfg.h
@@ -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)
--
2.4.4