PR ld/15382
authorAlan Modra <amodra@gmail.com>
Mon, 22 Apr 2013 15:03:01 +0000 (15:03 +0000)
committerAlan Modra <amodra@gmail.com>
Mon, 22 Apr 2013 15:03:01 +0000 (15:03 +0000)
* elf-bfd.h (RELOC_AGAINST_DISCARDED_SECTION): Don't multiply
sh_size or reloc_count adjustment by count.

bfd/ChangeLog
bfd/elf-bfd.h

index c8d5619..0c62889 100644 (file)
@@ -1,5 +1,11 @@
 2013-04-22  Alan Modra  <amodra@gmail.com>
 
+       PR ld/15382
+       * elf-bfd.h (RELOC_AGAINST_DISCARDED_SECTION): Don't multiply
+       sh_size or reloc_count adjustment by count.
+
+2013-04-22  Alan Modra  <amodra@gmail.com>
+
        * elf64-ppc.c (ppc64_elf_check_relocs): Don't call
        create_linkage_sections here..
        (ppc64_elf_init_stub_bfd): ..do so here.  Return status.
index 3b4bd6f..b643dbc 100644 (file)
@@ -2497,16 +2497,16 @@ extern asection _bfd_elf_large_com_section;
        rel_hdr = _bfd_elf_single_rel_hdr (input_section->output_section); \
                                                                        \
        /* Avoid empty output section.  */                              \
-       if (rel_hdr->sh_size > count * rel_hdr->sh_entsize)             \
+       if (rel_hdr->sh_size > rel_hdr->sh_entsize)                     \
          {                                                             \
-           rel_hdr->sh_size -= count * rel_hdr->sh_entsize;            \
+           rel_hdr->sh_size -= rel_hdr->sh_entsize;                    \
            rel_hdr = _bfd_elf_single_rel_hdr (input_section);          \
-           rel_hdr->sh_size -= count * rel_hdr->sh_entsize;            \
+           rel_hdr->sh_size -= rel_hdr->sh_entsize;                    \
                                                                        \
            memmove (rel, rel + count,                                  \
                     (relend - rel - count) * sizeof (*rel));           \
                                                                        \
-           input_section->reloc_count -= count;                        \
+           input_section->reloc_count--;                               \
            relend -= count;                                            \
            rel--;                                                      \
            continue;                                                   \