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.
This commit is contained in:
H.J. Lu 2017-09-29 16:21:49 -07:00
parent f6c5e5bce0
commit 54464e749d
2 changed files with 10 additions and 0 deletions

View File

@ -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.

View 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"