diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2017-09-29 16:21:49 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2017-09-29 16:22:00 -0700 |
commit | 54464e749d91401ccf20a5dc1c7af86b752c9e0c (patch) | |
tree | 736d5f116a642f60d6cce0a27eda48bba6bbab31 /sysdeps/mips | |
parent | f6c5e5bce0a71680f90a4d6983b7233d461b5f86 (diff) | |
download | glibc-54464e749d91401ccf20a5dc1c7af86b752c9e0c.tar.gz glibc-54464e749d91401ccf20a5dc1c7af86b752c9e0c.tar.xz glibc-54464e749d91401ccf20a5dc1c7af86b752c9e0c.zip |
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.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sysdeps/mips/dl-machine.h b/sysdeps/mips/dl-machine.h index 74ead7f524..8e9f6858cd 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" |