mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-21 04:42:53 +08:00
44d3da2338
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.
27 lines
932 B
Makefile
27 lines
932 B
Makefile
#name: MIPS JALX to local symbol
|
|
#source: ../../../gas/testsuite/gas/mips/jalx-local.s
|
|
#as: -EB -32
|
|
#ld: -EB -Ttext 0x1c000000 -e 0x1c000000
|
|
#objdump: -dr --prefix-addresses --show-raw-insn
|
|
|
|
.*: +file format .*mips.*
|
|
|
|
Disassembly of section \.text:
|
|
\.\.\.
|
|
[0-9a-f]+ <[^>]*> 0000 02d0 not zero,zero
|
|
[0-9a-f]+ <[^>]*> f300 0408 jalx 0*1c001020 <.*>
|
|
[0-9a-f]+ <[^>]*> 0000 02d0 not zero,zero
|
|
[0-9a-f]+ <[^>]*> f300 0408 jalx 0*1c001020 <.*>
|
|
[0-9a-f]+ <[^>]*> 0000 02d0 not zero,zero
|
|
[0-9a-f]+ <[^>]*> 001f 0f3c jr ra
|
|
[0-9a-f]+ <[^>]*> 0000 02d0 not zero,zero
|
|
[0-9a-f]+ <[^>]*> 0000 0000 nop
|
|
[0-9a-f]+ <[^>]*> 00000027 nor zero,zero,zero
|
|
[0-9a-f]+ <[^>]*> 77000400 jalx 0*1c001000 <.*>
|
|
[0-9a-f]+ <[^>]*> 00000027 nor zero,zero,zero
|
|
[0-9a-f]+ <[^>]*> 77000400 jalx 0*1c001000 <.*>
|
|
[0-9a-f]+ <[^>]*> 00000027 nor zero,zero,zero
|
|
[0-9a-f]+ <[^>]*> 03e00009 jalr zero,ra
|
|
[0-9a-f]+ <[^>]*> 00000027 nor zero,zero,zero
|
|
\.\.\.
|