MIPS/GAS: Treat local jump relocs the same no matter if REL or RELA
authorMaciej W. Rozycki <macro@imgtec.com>
Tue, 24 May 2016 12:54:31 +0000 (13:54 +0100)
committerMaciej W. Rozycki <macro@imgtec.com>
Tue, 24 May 2016 13:11:50 +0000 (14:11 +0100)
commit44d3da2338157ad7acfd6facbcfb38ed6ec94fa1
tree58d2bfee6de323bf7aa36f75d3906119d18ade52
parent4512dafa508c4b148996f2d67222a82dd018cdd3
MIPS/GAS: Treat local jump relocs the same no matter if REL or RELA

Do not convert jump relocs against local MIPS16 or microMIPS symbols to
refer to a section symbol instead even on RELA targets, as it makes it
impossible for the linker to make a JAL to JALX conversion based on ISA
symbol annotation, breaking regular and compressed MIPS interlinking.

gas/
* config/tc-mips.c (mips_fix_adjustable): Also return 0 for
jump relocations against MIPS16 or microMIPS symbols on RELA
targets.
* testsuite/gas/mips/jalx-local.d: New test.
* testsuite/gas/mips/jalx-local-n32.d: New test.
* testsuite/gas/mips/jalx-local-n64.d: New test.
* testsuite/gas/mips/jalx-local.s: New test source.
* testsuite/gas/mips/mips.exp: Run the new tests.

ld/
* testsuite/ld-mips-elf/jalx-local.d: New test.
* testsuite/ld-mips-elf/jalx-local-n32.d: New test.
* testsuite/ld-mips-elf/jalx-local-n64.d: New test.
* testsuite/ld-mips-elf/mips-elf.exp: Run the new tests.
12 files changed:
gas/ChangeLog
gas/config/tc-mips.c
gas/testsuite/gas/mips/jalx-local-n32.d [new file with mode: 0644]
gas/testsuite/gas/mips/jalx-local-n64.d [new file with mode: 0644]
gas/testsuite/gas/mips/jalx-local.d [new file with mode: 0644]
gas/testsuite/gas/mips/jalx-local.s [new file with mode: 0644]
gas/testsuite/gas/mips/mips.exp
ld/ChangeLog
ld/testsuite/ld-mips-elf/jalx-local-n32.d [new file with mode: 0644]
ld/testsuite/ld-mips-elf/jalx-local-n64.d [new file with mode: 0644]
ld/testsuite/ld-mips-elf/jalx-local.d [new file with mode: 0644]
ld/testsuite/ld-mips-elf/mips-elf.exp