binutils-gdb/ld/testsuite
Alan Modra d712f2768a BFD_RELOC_MIPS_16
MIPS should not be using BFD_RELOC_16 for its R_MIPS_16 relocation,
since R_MIPS_16 specifies a 16-bit field in a 32-bit word.
BFD_RELOC_16, emitted by generic code to handle fixups on 16-bit data
directives, expects fixups to operate on the whole of a 16-bit word.

This patch corrects the problem by using BFD_RELOC_MIPS_16, a new bfd
reloc that is used to generate R_MIPS_16.  BFD_RELOC_16 is handled in
md_apply_fix for cases where the fixup can be applied at assembly
time.  Like BFD_RELOC_8, BFD_RELOC_16 now has no corresponding object
file relocation, and thus .half, .hword, .short and .dc.w must be
resolved at assembly time.  BFD_RELOC_MIPS_REL16 is removed by this
patch since it isn't used.

	PR 3243
	PR 26542
	* reloc.c (BFD_RELOC_MIPS_16): Rename from BFD_RELOC_MIPS_REL16.
	* elf32-mips.c (mips_reloc_map): Map BFD_RELOC_MIPS_16 to R_MIPS_16.
	* elf64-mips.c (mips_reloc_map): Likewise, delete BFD_RELOC_MIPS_REL16.
	* elfn32-mips.c (mips_reloc_map): Likewise.
	* libbfd.h: Regenerate.
	* bfd-in2.h: Regenerate.
gas/
	* config/tc-mips.c (append_insn): Handle BFD_RELOC_MIPS_16.
	(macro_build): Likewise.
	(mips_percent_op <%half>): Generate BFD_RELOC_MIPS_16.
	(md_apply_fix): Handle BFD_RELOC_16 and BFD_RELOC_MIPS_16 when fx_done.
ld/
	* testsuite/ld-mips-elf/reloc-local-overflow.d,
	* testsuite/ld-mips-elf/reloc-local-overflow.s: Rewrite.
2022-06-14 10:03:55 +09:30
..
config
ld-aarch64
ld-alpha
ld-arc
ld-arm Trailing spaces in objdump -r header 2022-05-31 11:25:09 +09:30
ld-auto-import
ld-avr
ld-bootstrap ld: add --package-metadata 2022-05-26 12:56:12 +09:30
ld-bpf
ld-cdtest
ld-checks
ld-cris Trailing spaces in objdump -r header 2022-05-31 11:25:09 +09:30
ld-crx
ld-csky Trailing spaces in objdump -r header 2022-05-31 11:25:09 +09:30
ld-ctf libctf: impose an ordering on conflicting types 2022-04-28 11:47:12 +01:00
ld-cygwin
ld-d10v
ld-discard
ld-dynamic
ld-elf cris: bfd: Correct default to no execstack 2022-05-27 01:02:46 +02:00
ld-elfcomm
ld-elfvers
ld-elfweak
ld-fastcall
ld-frv
ld-gc
ld-h8300
ld-i386 i386: Ajdust more tests for opcodes/i386: remove trailing whitespace 2022-05-31 14:55:41 -07:00
ld-ia64
ld-ifunc x86: Properly handle IFUNC function pointer reference 2022-05-31 16:28:06 -07:00
ld-libs
ld-linkonce
ld-loongarch-elf
ld-m68hc11
ld-m68k
ld-mep
ld-metag Trailing spaces in objdump -r header 2022-05-31 11:25:09 +09:30
ld-mips-elf BFD_RELOC_MIPS_16 2022-06-14 10:03:55 +09:30
ld-misc
ld-mmix
ld-mn10300 Trailing spaces in objdump -r header 2022-05-31 11:25:09 +09:30
ld-msp430-elf
ld-nds32
ld-nios2 Trailing spaces in objdump -r header 2022-05-31 11:25:09 +09:30
ld-or1k
ld-pdp11
ld-pe
ld-pie
ld-plugin LTO: Handle __real_SYM reference in IR 2022-05-04 16:26:51 -07:00
ld-powerpc Trailing spaces in objdump -r header 2022-05-31 11:25:09 +09:30
ld-pru Trailing spaces in objdump -r header 2022-05-31 11:25:09 +09:30
ld-riscv-elf
ld-s12z
ld-s390
ld-scripts
ld-selective
ld-sh
ld-shared
ld-size Trailing spaces in objdump -r header 2022-05-31 11:25:09 +09:30
ld-sparc
ld-spu
ld-srec
ld-tic6x Trailing spaces in objdump -r header 2022-05-31 11:25:09 +09:30
ld-tilegx
ld-tilepro
ld-undefined
ld-unique
ld-v850
ld-vax-elf
ld-visium
ld-vsb
ld-vxworks
ld-x86-64 opcodes/i386: remove trailing whitespace from insns with zero operands 2022-05-27 14:12:33 +01:00
ld-xc16x
ld-xstormy16
ld-xtensa
ld-z8k
ld-z80
lib
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009
ChangeLog-2010
ChangeLog-2011
ChangeLog-2012
ChangeLog-2013
ChangeLog-2014
ChangeLog-2015
ChangeLog-9303