https://sourceware.org/bugzilla/show_bug.cgi?id=20595

            Bug ID: 20595
           Summary: excessive relocation for .ARM.exidx
           Product: binutils
           Version: 2.27
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: binutils
          Assignee: unassigned at sourceware dot org
          Reporter: akihiko.odaki.4i at stu dot hosei.ac.jp
  Target Milestone: ---

In some cases, BFD leaves excessive relocation for .ARM.exidx.
Though I cannot provide the actual binary, I'll detail what I figured out while
investigating the issue.

The bug reproduces if:
* merged exidx have duplicate entries, which should be deleted
AND
* the target is relocatable executable (i.e. bfd_link_relocatable is FALSE, but
emitrelocations is TRUE)

Merged exidx can have duplicate entries, and the later ones will be marked to
be deleted if bfd_link_relocatable is FALSE (see elf32_arm_fix_exidx_coverage
in bfd/elf32-arm.c).
However, it just means it is incremental link, and it's FALSE even for
relocatable executable. In such cases, relocations should be updated, but they
won't. As the result, the excessive relocations remains the final output and
the later relocations in the section will slip from the expected offset.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to