elf64ppc.c edit_opd fix
Alan Modra
amodra@bigpond.net.au
Mon Nov 18 22:36:00 GMT 2002
This fixes a problem with the emitted relocs when editing .opd during
a relocatable link.
* elf64-ppc.c (ppc64_elf_edit_opd): When deleting relocs, adjust
rel_hdr.sh_size too.
Applying mainline (the 2.13 branch doesn't edit .opd during ld -r).
Index: bfd/elf64-ppc.c
===================================================================
RCS file: /cvs/src/src/bfd/elf64-ppc.c,v
retrieving revision 1.71
diff -u -p -r1.71 elf64-ppc.c
--- bfd/elf64-ppc.c 12 Nov 2002 07:55:43 -0000 1.71
+++ bfd/elf64-ppc.c 19 Nov 2002 06:22:38 -0000
@@ -3866,6 +3866,11 @@ ppc64_elf_edit_opd (obfd, info)
sec->_cooked_size = wptr - sec->contents;
sec->reloc_count = write_rel - relstart;
+ /* Fudge the size too, as this is used later in
+ elf_bfd_final_link if we are emitting relocs. */
+ elf_section_data (sec)->rel_hdr.sh_size
+ = sec->reloc_count * elf_section_data (sec)->rel_hdr.sh_entsize;
+ BFD_ASSERT (elf_section_data (sec)->rel_hdr2 == NULL);
}
else if (elf_section_data (sec)->relocs != relstart)
free (relstart);
--
Alan Modra
IBM OzLabs - Linux Technology Centre
More information about the Binutils
mailing list