* elf64-ppc.c (ppc64_elf_edit_opd): When deleting relocs, adjust
authorAlan Modra <amodra@gmail.com>
Tue, 19 Nov 2002 06:32:35 +0000 (06:32 +0000)
committerAlan Modra <amodra@gmail.com>
Tue, 19 Nov 2002 06:32:35 +0000 (06:32 +0000)
rel_hdr.sh_size too.

bfd/ChangeLog
bfd/elf64-ppc.c

index 7269ae0af797a2ae0be7efe2248b1c706a051948..b25ed5bfe0ae46fd3a6d26604f5e9a4817f9190c 100644 (file)
@@ -1,3 +1,8 @@
+2002-11-19  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf64-ppc.c (ppc64_elf_edit_opd): When deleting relocs, adjust
+       rel_hdr.sh_size too.
+
 2002-11-18  Klee Dienes  <kdienes@apple.com>
 
        * Makefile.am (BFD32_LIBS): Add bfdwin.lo, bfdio.lo.
index 384348e957ebc1c2a96688179c6d3e6e95f0ade9..e437427fcd357b109e772beb0520a4c16309ef46 100644 (file)
@@ -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);