MIPS/BFD: Correctly handle `bfd_reloc_outofrange' with branches
authorMaciej W. Rozycki <macro@imgtec.com>
Sat, 28 May 2016 09:57:58 +0000 (10:57 +0100)
committerMaciej W. Rozycki <macro@imgtec.com>
Sat, 28 May 2016 09:59:45 +0000 (10:59 +0100)
commit99aefae6818be07a77739e0366121f2032916d9c
tree9f06d7da4abc5ef64fd089f95f78a30d706f6ef1
parent3b4412a0419d0faa42432df1e4faab880fe43b35
MIPS/BFD: Correctly handle `bfd_reloc_outofrange' with branches

Fix internal errors like:

ld: BFD (GNU Binutils) 2.26.51.20160526 internal error, aborting at .../bfd/elfxx-mips.c:10278 in _bfd_mips_elf_relocate_section

ld: Please report this bug.

triggered by the `bfd_reloc_outofrange' condition on branch relocations.

bfd/
* elfxx-mips.c (b_reloc_p): New function.
(_bfd_mips_elf_relocate_section) <bfd_reloc_outofrange>: Handle
branch relocations.

ld/
* testsuite/ld-mips-elf/unaligned-branch.d: New test.
* testsuite/ld-mips-elf/unaligned-branch.s: New test source.
* testsuite/ld-mips-elf/unaligned-text.s: New test source.
* testsuite/ld-mips-elf/mips-elf.exp: Run the new test.
bfd/ChangeLog
bfd/elfxx-mips.c
ld/ChangeLog
ld/testsuite/ld-mips-elf/mips-elf.exp
ld/testsuite/ld-mips-elf/unaligned-branch.d [new file with mode: 0644]
ld/testsuite/ld-mips-elf/unaligned-branch.s [new file with mode: 0644]
ld/testsuite/ld-mips-elf/unaligned-text.s [new file with mode: 0644]