summaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authorJohn David Anglin <dave.anglin@bell.net>2016-01-02 09:48:18 -0500
committerMike Frysinger <vapier@gentoo.org>2016-01-08 02:19:26 -0500
commit48025aa9ed3b9a5f5f3b1310eec79b66fb645c17 (patch)
treeca262547243148a546d8989f77b5180782374083 /ChangeLog
parent6e76c11f89e9bd0b8bb7185dc754bf6c7dac572b (diff)
hppa: fix dladdr [BZ #19415]
The attached patch fixes dladdr on hppa. Instead of using the generic version of _dl_lookup_address, we use an implementation more or less modeled after __canonicalize_funcptr_for_compare() in gcc. The function pointer is analyzed and if it points to the trampoline used to call _dl_runtime_resolve just before the global offset table, then we call _dl_fixup to resolve the function pointer. Then, we return the instruction pointer from the first word of the descriptor. The change fixes the testcase provided in [BZ #19415] and the Debian nss package now builds successfully.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog9
1 files changed, 9 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 4db27e679f..56298db37c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2016-01-08 John David Anglin <danglin@gcc.gnu.org>
+
+ [BZ #19415]
+ * sysdeps/hppa/dl-fptr.c (_dl_fixup): Declare.
+ (elf_machine_resolve): New. Return address of _dl_runtime_resolve.
+ (_dl_lookup_address): Rewrite using function resolver trampoline.
+ * sysdeps/hppa/dl-lookupcfg.h (DL_LOOKUP_ADDRESS): Don't clear bottom
+ two bits in address.
+
2016-01-07 Mike Frysinger <vapier@gentoo.org>
* longlong.h: Change !__SHMEDIA__ to