]> sourceware.org Git - glibc.git/commitdiff
mips: Update elf_machine_load_address for static PIE
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 29 Sep 2017 23:21:49 +0000 (16:21 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 29 Sep 2017 23:22:00 +0000 (16:22 -0700)
mips uses a local label to compute load address, which works with static
PIE.  We just need to return 0 if _DYNAMIC is undefined for static
executable.

* sysdeps/mips/dl-machine.h (elf_machine_dynamic): Return 0 if
_DYNAMIC is undefined for static executable.

ChangeLog
sysdeps/mips/dl-machine.h

index 728df95d05d9183a1c6a726b2cb2e107c004092d..efd567ce34bc7bc667edc1fca66988dc58ba7e92 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2017-09-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * sysdeps/mips/dl-machine.h (elf_machine_dynamic): Return 0 if
+       _DYNAMIC is undefined for static executable.
+
 2017-09-29  H.J. Lu  <hongjiu.lu@intel.com>
 
        * sysdeps/arm/start.S (_start): Check PIC instead of SHARED.
index 74ead7f5247f19708e941a04d9f76825431ebc5b..8e9f6858cd1dd5e666700255507a94323bddc6b1 100644 (file)
@@ -147,6 +147,11 @@ elf_machine_dynamic (void)
 static inline ElfW(Addr)
 elf_machine_load_address (void)
 {
+#ifndef SHARED
+  extern ElfW(Dyn) _DYNAMIC[] __attribute__((weak, visibility ("hidden")));
+  if (!_DYNAMIC)
+    return 0;
+#endif
   ElfW(Addr) addr;
 #ifndef __mips16
   asm ("       .set noreorder\n"
This page took 0.07964 seconds and 5 git commands to generate.