[AArch64] Adjust elf_machine_dynamic to find _DYNAMIC via _GLOBAL_OFFSET_TABLE_
authorMarcus Shawcroft <marcus.shawcroft@linaro.org>
Fri, 28 Jun 2013 10:27:26 +0000 (11:27 +0100)
committerMarcus Shawcroft <marcus.shawcroft@linaro.org>
Fri, 28 Jun 2013 10:27:26 +0000 (11:27 +0100)
ports/ChangeLog.aarch64
ports/sysdeps/aarch64/dl-machine.h

index 25424bb..2527621 100644 (file)
@@ -1,5 +1,10 @@
 2013-06-28  Marcus Shawcroft  <marcus.shawcroft@linaro.org>
 
+       * sysdeps/aarch64/dl-machine.h (elf_machine_dynamic): De-reference
+       _GLOBAL_OFFSET_TABLE_.
+
+2013-06-28  Marcus Shawcroft  <marcus.shawcroft@linaro.org>
+
        * sysdeps/unix/sysv/linux/aarch64/getcontext.S (__getcontext): Simplify
        oPSTATE initialization.
 
index c91b0c4..71dd6b3 100644 (file)
@@ -36,8 +36,8 @@ elf_machine_matches_host (const ElfW(Ehdr) *ehdr)
 static inline ElfW(Addr) __attribute__ ((unused))
 elf_machine_dynamic (void)
 {
-  ElfW(Addr) addr = (ElfW(Addr)) &_DYNAMIC;
-  return addr;
+  extern const ElfW(Addr) _GLOBAL_OFFSET_TABLE_[] attribute_hidden;
+  return _GLOBAL_OFFSET_TABLE_[0];
 }
 
 /* Return the run-time load address of the shared object.  */