aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog6
-rw-r--r--bfd/elf64-x86-64.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 8abbfcb..11fbdab 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2017-04-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ 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.
+
2017-04-19 Wedson Almeida Filho <wedsonaf@gmail.com>
* peXXigen.c (pe_print_reloc): Correct chunk_end.
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 ();