diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2017-04-19 09:59:14 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2017-04-19 09:59:30 -0700 |
commit | e492d2f8ac653b050019865ba1418fc5b057c00b (patch) | |
tree | 03eb796ac523898976f1199254204e20cb9b11c6 /bfd/elf64-x86-64.c | |
parent | a6c21d4a553de184562fd8409a5bcd3f2cc2561a (diff) | |
download | gdb-e492d2f8ac653b050019865ba1418fc5b057c00b.zip gdb-e492d2f8ac653b050019865ba1418fc5b057c00b.tar.gz gdb-e492d2f8ac653b050019865ba1418fc5b057c00b.tar.bz2 |
x86-64: Handle undefined IFUNC symbol with -z now
Since undefined IFUNC symbol is treated as normal FUNC symbol, don't
abort on undefined IFUNC symbol in the second PLT.
bfd/
PR ld/21401
* elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Don't abort
on on undefined IFUNC symbol in the second PLT.
ld/
PR ld/21401
* testsuite/ld-ifunc/ifunc.exp: Add a libtest-2-now.so test with
-z now.
Diffstat (limited to 'bfd/elf64-x86-64.c')
-rw-r--r-- | bfd/elf64-x86-64.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c index bf10893..746b847 100644 --- a/bfd/elf64-x86-64.c +++ b/bfd/elf64-x86-64.c @@ -6013,7 +6013,7 @@ elf_x86_64_finish_dynamic_symbol (bfd *output_bfd, got_offset = h->got.offset; if (got_offset == (bfd_vma) -1 - || h->type == STT_GNU_IFUNC + || (h->type == STT_GNU_IFUNC && h->def_regular) || plt == NULL || got == NULL) abort (); |