aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2018-08-23 13:34:29 +0930
committerAlan Modra <amodra@gmail.com>2018-08-23 13:54:24 +0930
commitd0abeec8d45514fbec790f27e3cadceb576df9b5 (patch)
treeec4f79dd158df0b8344da19365b846f28b949b60
parentd3f467568f08dc18e6ed871c58a71f15cc0323f1 (diff)
downloadbinutils-d0abeec8d45514fbec790f27e3cadceb576df9b5.zip
binutils-d0abeec8d45514fbec790f27e3cadceb576df9b5.tar.gz
binutils-d0abeec8d45514fbec790f27e3cadceb576df9b5.tar.bz2
Fix "unresolved reloc" error for NOTOC relocs
* elf64-ppc.c (ppc64_elf_relocate_section): Don't miss clearing unresolved_reloc on ppc_stub_plt_call_notoc.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf64-ppc.c5
2 files changed, 7 insertions, 3 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 7387392..f24ef2b 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2018-08-23 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (ppc64_elf_relocate_section): Don't miss clearing
+ unresolved_reloc on ppc_stub_plt_call_notoc.
+
2018-08-22 H.J. Lu <hongjiu.lu@intel.com>
PR ld/23536
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 2b5b500..1a40fa9 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -13887,9 +13887,8 @@ ppc64_elf_relocate_section (bfd *output_bfd,
stub_entry = NULL;
if (stub_entry != NULL
- && (stub_entry->stub_type == ppc_stub_plt_call
- || stub_entry->stub_type == ppc_stub_plt_call_r2save
- || stub_entry->stub_type == ppc_stub_plt_call_both
+ && ((stub_entry->stub_type >= ppc_stub_plt_call
+ && stub_entry->stub_type <= ppc_stub_plt_call_both)
|| stub_entry->stub_type == ppc_stub_plt_branch_r2off
|| stub_entry->stub_type == ppc_stub_plt_branch_both
|| stub_entry->stub_type == ppc_stub_long_branch_r2off