aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/mips
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2017-09-29 16:21:49 -0700
committerH.J. Lu <hjl.tools@gmail.com>2017-09-29 16:22:00 -0700
commit54464e749d91401ccf20a5dc1c7af86b752c9e0c (patch)
tree736d5f116a642f60d6cce0a27eda48bba6bbab31 /sysdeps/mips
parentf6c5e5bce0a71680f90a4d6983b7233d461b5f86 (diff)
downloadglibc-54464e749d91401ccf20a5dc1c7af86b752c9e0c.zip
glibc-54464e749d91401ccf20a5dc1c7af86b752c9e0c.tar.gz
glibc-54464e749d91401ccf20a5dc1c7af86b752c9e0c.tar.bz2
mips: Update elf_machine_load_address for static PIE
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.
Diffstat (limited to 'sysdeps/mips')
-rw-r--r--sysdeps/mips/dl-machine.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/sysdeps/mips/dl-machine.h b/sysdeps/mips/dl-machine.h
index 74ead7f..8e9f685 100644
--- a/sysdeps/mips/dl-machine.h
+++ b/sysdeps/mips/dl-machine.h
@@ -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"