PowerPC64: fix assertion in ppc_build_one_stub with -Os code

Alan Modra amodra@gmail.com
Thu Jun 23 08:36:31 GMT 2022


The last stub debug dump showed what was really going on.
save_res stubs aren't written in ppc_build_one_stub, their offsets
(which are zero) should not be checked.

	* elf64-ppc.c (ppc_build_one_stub): Don't check save_res offsets.

diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 6af33d883b3..04f2c146535 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -11735,7 +11735,8 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
     = ppc64_elf_section_data (stub_entry->group->stub_sec);
   ++htab->stub_id;
   if (stub_entry->id != htab->stub_id
-      || stub_entry->stub_offset < stub_entry->group->stub_sec->size)
+      || (stub_entry->type.main != ppc_stub_save_res
+	  && stub_entry->stub_offset < stub_entry->group->stub_sec->size))
     {
       BFD_ASSERT (0);
       if (stub_entry->id != htab->stub_id)

-- 
Alan Modra
Australia Development Lab, IBM


More information about the Binutils mailing list