diff options
author | kib <kib@FreeBSD.org> | 2014-09-12 16:22:01 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2014-09-12 16:22:01 +0000 |
commit | 7102c463391b21fea4e6679d5c6539bb04b7f528 (patch) | |
tree | 72dd52a692d6e0f484ed7d8de8de5fe8d9403512 /libexec/rtld-elf/arm/reloc.c | |
parent | 306ae7f936713a7fcf65a414441afee1a31534c1 (diff) | |
download | FreeBSD-src-7102c463391b21fea4e6679d5c6539bb04b7f528.zip FreeBSD-src-7102c463391b21fea4e6679d5c6539bb04b7f528.tar.gz |
MFC r270798:
Process STT_GNU_IFUNC when doing non-plt relocations.
MFC r270802:
Only do the second pass over non-plt relocations when the first pass
found IFUNCs.
Approved by: re (gjb)
Diffstat (limited to 'libexec/rtld-elf/arm/reloc.c')
-rw-r--r-- | libexec/rtld-elf/arm/reloc.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libexec/rtld-elf/arm/reloc.c b/libexec/rtld-elf/arm/reloc.c index 715cb7e..9cbdc0e 100644 --- a/libexec/rtld-elf/arm/reloc.c +++ b/libexec/rtld-elf/arm/reloc.c @@ -324,6 +324,10 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int flags, /* The relocation for the dynamic loader has already been done. */ if (obj == obj_rtld) return (0); + if ((flags & SYMLOOK_IFUNC) != 0) + /* XXX not implemented */ + return (0); + /* * The dynamic loader may be called from a thread, we have * limited amounts of stack available so we cannot use alloca(). |