old-cross-binutils/ld/testsuite/ld-i386
H.J. Lu 0cb4071ef9 Add -mrelax-relocations= to x86 assembler
The x86 relax relocations introduced in binutils 2.26 aren't supported
by linker on Solaris older than Solaris 12.  To use x86 assembler with
older Solaris linker, this patch adds

1. A command line option -mrelax-relocations= to x86 assembler to
control whether to generate relax relocations.
2. A configure option --enable-x86-relax-relocations to decide whether
x86 assembler should generate relax relocations by default.  It is
defaulted to yes, except for x86 Solaris targets older than Solaris 12.

gas/

	PR gas/19520
	* NEWS: Mention new command line option -mrelax-relocations and
	new configure option --enable-x86-relax-relocations for x86
	target.
	* config.in: Regenerated.
	* configure.ac: Add --enable-x86-relax-relocations.
	(ac_default_x86_relax_relocations): New.  Default to 1 except
	for x86 Solaris targets older than Solaris 12.
	(DEFAULT_GENERATE_X86_RELAX_RELOCATIONS): Define.
	* configure: Likewise.
	* config/tc-i386.c (generate_relax_relocations): New.
	(OPTION_MRELAX_RELOCATIONS): Likewise.
	(output_disp): Don't generate relax relocations if
	generate_relax_relocations is 0.
	(md_longopts): Add -mrelax-relocations.
	(md_show_usage): Likewise.
	(md_parse_option): Handle OPTION_MRELAX_RELOCATIONS.
	* doc/c-i386.texi: Document -mrelax-relocations=.
	* testsuite/gas/i386/got-no-relax.d: New file.
	* testsuite/gas/i386/x86-64-gotpcrel-no-relax.d: Likewise.
	* testsuite/gas/i386/got.d: Pass -mrelax-relocations=yes to as.
	* testsuite/gas/i386/localpic.d: Likewise.
	* testsuite/gas/i386/mixed-mode-reloc32.d: Likewise.
	* testsuite/gas/i386/reloc32.d: Likewise.
	* testsuite/gas/i386/x86-64-gotpcrel.d: Likewise.
	* testsuite/gas/i386/x86-64-localpic.d: Likewise.
	* testsuite/gas/i386/ilp32/x86-64-gotpcrel.d: Likewise.
	* testsuite/gas/i386/ilp32/x86-64-localpic.d: Likewise.
	* testsuite/gas/i386/i386.exp: Run got-no-relax and
	x86-64-gotpcrel-no-relax.

ld/

	PR gas/19520
	* testsuite/ld-i386/branch1.d: Pass -mrelax-relocations=yes to as.
	* testsuite/ld-i386/call1.d: Likewise.
	* testsuite/ld-i386/call2.d: Likewise.
	* testsuite/ld-i386/call3a.d: Likewise.
	* testsuite/ld-i386/call3b.d: Likewise.
	* testsuite/ld-i386/call3c.d: Likewise.
	* testsuite/ld-i386/call3d.d: Likewise.
	* testsuite/ld-i386/call3e.d: Likewise.
	* testsuite/ld-i386/call3f.d: Likewise.
	* testsuite/ld-i386/call3g.d: Likewise.
	* testsuite/ld-i386/call3h.d: Likewise.
	* testsuite/ld-i386/jmp1.d: Likewise.
	* testsuite/ld-i386/jmp2.d: Likewise.
	* testsuite/ld-i386/lea1c.d: Likewise.
	* testsuite/ld-i386/load1.d: Likewise.
	* testsuite/ld-i386/load2.d: Likewise.
	* testsuite/ld-i386/load3.d: Likewise.
	* testsuite/ld-i386/load4a.d: Likewise.
	* testsuite/ld-i386/load5a.d: Likewise.
	* testsuite/ld-i386/mov2b.d: Likewise.
	* testsuite/ld-i386/mov3.d: Likewise.
	* testsuite/ld-ifunc/ifunc-21-x86-64.d: Likewise.
	* testsuite/ld-ifunc/ifunc-22-x86-64.d: Likewise.
	* testsuite/ld-ifunc/ifunc-5r-local-x86-64.d: Likewise.
	* testsuite/ld-x86-64/call1a.d: Likewise.
	* testsuite/ld-x86-64/call1b.d: Likewise.
	* testsuite/ld-x86-64/call1c.d: Likewise.
	* testsuite/ld-x86-64/call1d.d: Likewise.
	* testsuite/ld-x86-64/call1e.d: Likewise.
	* testsuite/ld-x86-64/call1f.d: Likewise.
	* testsuite/ld-x86-64/call1h.d: Likewise.
	* testsuite/ld-x86-64/call1i.d: Likewise.
	* testsuite/ld-x86-64/load1a.d: Likewise.
	* testsuite/ld-x86-64/load1b.d: Likewise.
	* testsuite/ld-i386/got1a.S: Load GOT into %ecx and use it.
	* testsuite/ld-i386/got1.dd: Updated.
	* testsuite/ld-i386/got1d.S (1): Removed.
	* testsuite/ld-i386/i386.exp: Add -Wa,-mrelax-relocations=yes.
	* testsuite/ld-x86-64/x86-64.exp: Likewise.
2016-02-03 08:25:15 -08:00
..
abs-iamcu.d Add Intel MCU support to ld 2015-05-11 11:29:03 -07:00
abs.d
abs.s
alloc.d
alloc.s
alloc.t
branch1.d Add -mrelax-relocations= to x86 assembler 2016-02-03 08:25:15 -08:00
branch1.s Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
call1.d Add -mrelax-relocations= to x86 assembler 2016-02-03 08:25:15 -08:00
call1.s Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
call2.d Add -mrelax-relocations= to x86 assembler 2016-02-03 08:25:15 -08:00
call2.s Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
call3.s Add "-z call-nop=PADDING" option to ld 2015-10-22 04:56:39 -07:00
call3a.d Add -mrelax-relocations= to x86 assembler 2016-02-03 08:25:15 -08:00
call3b.d Add -mrelax-relocations= to x86 assembler 2016-02-03 08:25:15 -08:00
call3c.d Add -mrelax-relocations= to x86 assembler 2016-02-03 08:25:15 -08:00
call3d.d Add -mrelax-relocations= to x86 assembler 2016-02-03 08:25:15 -08:00
call3e.d Add -mrelax-relocations= to x86 assembler 2016-02-03 08:25:15 -08:00
call3f.d Add -mrelax-relocations= to x86 assembler 2016-02-03 08:25:15 -08:00
call3g.d Add -mrelax-relocations= to x86 assembler 2016-02-03 08:25:15 -08:00
call3h.d Add -mrelax-relocations= to x86 assembler 2016-02-03 08:25:15 -08:00
combreloc.d
combreloc.s
compressed1.d
compressed1.s
copyreloc-lib.c
copyreloc-main.out
copyreloc-main.S
copyreloc-main1.rd
copyreloc-main2.rd
discarded1.d
discarded1.s
discarded1.t
dummy.c
dummy.s Add Intel MCU support to ld 2015-05-11 11:29:03 -07:00
emit-relocs-nacl.rd
emit-relocs.rd
emit-relocs.s
export-class.exp Copyright update for binutils 2016-01-01 23:00:01 +10:30
foo.s Add Intel MCU support to ld 2015-05-11 11:29:03 -07:00
got1.dd Add -mrelax-relocations= to x86 assembler 2016-02-03 08:25:15 -08:00
got1.out Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
got1a.S Add -mrelax-relocations= to x86 assembler 2016-02-03 08:25:15 -08:00
got1b.c Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
got1c.c Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
got1d.S Add -mrelax-relocations= to x86 assembler 2016-02-03 08:25:15 -08:00
hidden1.d
hidden1.s
hidden2.d
hidden2.s
hidden3.d
hidden3.s
i386-export-class.rd
i386-export-class.xd
i386.exp Add -mrelax-relocations= to x86 assembler 2016-02-03 08:25:15 -08:00
iamcu-1.d Add Intel MCU support to ld 2015-05-11 11:29:03 -07:00
iamcu-2.d Add Intel MCU support to ld 2015-05-11 11:29:03 -07:00
iamcu-3.d Add Intel MCU support to ld 2015-05-11 11:29:03 -07:00
iamcu-4.d Default e_machine to EM_IAMCU for i?86-*-elfiamcu 2015-05-11 12:06:33 -07:00
jmp1.d Add -mrelax-relocations= to x86 assembler 2016-02-03 08:25:15 -08:00
jmp1.s Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
jmp2.d Add -mrelax-relocations= to x86 assembler 2016-02-03 08:25:15 -08:00
jmp2.s Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
lea1.s Properly convert address load of __start_XXX/__stop_XXX 2015-10-26 08:11:55 -07:00
lea1a.d Properly convert address load of __start_XXX/__stop_XXX 2015-10-26 08:11:55 -07:00
lea1b.d Properly convert address load of __start_XXX/__stop_XXX 2015-10-26 08:11:55 -07:00
lea1c.d Add -mrelax-relocations= to x86 assembler 2016-02-03 08:25:15 -08:00
lea1d.d
lea1e.d
lea1f.d
load1-nacl.d Add "-z call-nop=PADDING" option to ld 2015-10-22 04:56:39 -07:00
load1.d Add -mrelax-relocations= to x86 assembler 2016-02-03 08:25:15 -08:00
load1.s Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
load2.d Add -mrelax-relocations= to x86 assembler 2016-02-03 08:25:15 -08:00
load2.s Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
load3.d Add -mrelax-relocations= to x86 assembler 2016-02-03 08:25:15 -08:00
load3.s Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
load4.s Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
load4a.d Add -mrelax-relocations= to x86 assembler 2016-02-03 08:25:15 -08:00
load4b.d Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
load5.s Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
load5a.d Add -mrelax-relocations= to x86 assembler 2016-02-03 08:25:15 -08:00
load5b.d Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
load6.d Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
load6.s Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
mov1.s Properly convert address load of __start_XXX/__stop_XXX 2015-10-26 08:11:55 -07:00
mov1a.d Properly convert address load of __start_XXX/__stop_XXX 2015-10-26 08:11:55 -07:00
mov1b.d Properly convert address load of __start_XXX/__stop_XXX 2015-10-26 08:11:55 -07:00
mov2.s Optimize R_386_GOT32/R_386_GOT32X only if addend is 0 2015-12-04 09:03:04 -08:00
mov2a.d Optimize R_386_GOT32/R_386_GOT32X only if addend is 0 2015-12-04 09:03:04 -08:00
mov2b.d Add -mrelax-relocations= to x86 assembler 2016-02-03 08:25:15 -08:00
mov3.d Add -mrelax-relocations= to x86 assembler 2016-02-03 08:25:15 -08:00
mov3.s Optimize R_386_GOT32/R_386_GOT32X only if addend is 0 2015-12-04 09:03:04 -08:00
nogot1.d
nogot1.s
nogot2.d
nogot2.s
pcrel8.d
pcrel8.s
pcrel16.d
pcrel16.s
pcrel16abs.d
pcrel16abs.s
plt-lib.c
plt-main.out
plt-main.rd
plt-main1.c
plt-main1.rd Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
plt-main2.c
plt-main2.rd
plt-main3.c
plt-main3.rd Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
plt-main4.c
plt-main4.rd Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
plt-main5.c
plt-nacl.pd
plt-pic-nacl.pd
plt-pic.pd
plt-pic.s
plt.pd
plt.s
pltgot-1.d Keep .plt section and DT_PLTGOT for prelink 2015-06-24 13:47:37 -07:00
pltgot-1.s Allocate the first .plt entry space only if needed 2015-05-12 13:11:48 -07:00
pltgot-2.d Keep .plt section and DT_PLTGOT for prelink 2015-06-24 13:47:37 -07:00
pltlib.s
pr12570a.d
pr12570a.s
pr12570b.d
pr12570b.s
pr12627.d
pr12627.s
pr12627.t
pr12718.d
pr12718.s
pr12921.d
pr12921.s
pr13302.d
pr13302.s
pr14215.d
pr14215.s
pr17057.d
pr17057.s
pr17306a.s
pr17306b.s
pr17689.out
pr17689.rd
pr17689a.c
pr17689a.t
pr17689b.S
pr17689now.rd Don't generate PLT relocations for now binding 2015-05-16 07:00:55 -07:00
pr17689ver.rd
pr17709-nacl.rd
pr17709.rd
pr17709a.s
pr17709b.s
pr17827.rd
pr17935-1.d
pr17935-1.s
pr17935-2.d
pr17935-2.s
pr18801.d Issue an error for read-only segment with dynamic IFUNC relocations 2015-08-13 04:31:38 -07:00
pr18801.s Issue an error for read-only segment with dynamic IFUNC relocations 2015-08-13 04:31:38 -07:00
pr18815.d Set EI_OSABI to ELFOSABI_GNU for local IFUNC symbols 2015-08-12 13:47:41 -07:00
pr18815.s Set EI_OSABI to ELFOSABI_GNU for local IFUNC symbols 2015-08-12 13:47:41 -07:00
pr18900.out Skip PLT for function pointer initialization 2015-09-01 05:06:33 -07:00
pr18900a.c Skip PLT for function pointer initialization 2015-09-01 05:06:33 -07:00
pr18900a.rd Skip PLT for function pointer initialization 2015-09-01 05:06:33 -07:00
pr18900b.c Skip PLT for function pointer initialization 2015-09-01 05:06:33 -07:00
pr18900b.rd Skip PLT for function pointer initialization 2015-09-01 05:06:33 -07:00
pr18900c.c Skip PLT for function pointer initialization 2015-09-01 05:06:33 -07:00
pr19031.out Create a PLT entry for R_386_PC32 in non-code sections 2015-09-30 08:45:13 -07:00
pr19031a.c Create a PLT entry for R_386_PC32 in non-code sections 2015-09-30 08:45:13 -07:00
pr19031b.S Create a PLT entry for R_386_PC32 in non-code sections 2015-09-30 08:45:13 -07:00
pr19031c.c Create a PLT entry for R_386_PC32 in non-code sections 2015-09-30 08:45:13 -07:00
pr19175.d Check symbol defined by assignment in linker script 2015-10-26 16:32:55 -07:00
pr19175.s Check symbol defined by assignment in linker script 2015-10-26 16:32:55 -07:00
pr19175.t Check symbol defined by assignment in linker script 2015-10-26 16:32:55 -07:00
pr19319.dd Properly check symbol defined by assignment in linker script 2015-12-01 14:45:51 -08:00
pr19319a.S Properly check symbol defined by assignment in linker script 2015-12-01 14:45:51 -08:00
pr19319b.S Properly check symbol defined by assignment in linker script 2015-12-01 14:45:51 -08:00
protected1.d
protected1.s
protected2.d
protected2.s
protected3.d
protected3.s
protected4.d
protected4.s
protected5.d
protected5.s
protected6.s
protected6a.d
protected6b.d
reloc.d
reloc.s
start.s Add Intel MCU support to ld 2015-05-11 11:29:03 -07:00
tlsbin-nacl.rd
tlsbin.dd
tlsbin.rd
tlsbin.s
tlsbin.sd
tlsbin.td
tlsbindesc-nacl.rd
tlsbindesc.dd
tlsbindesc.rd
tlsbindesc.s
tlsbindesc.sd
tlsbindesc.td
tlsbinpic.s
tlsdesc-nacl.rd
tlsdesc.dd
tlsdesc.rd
tlsdesc.s
tlsdesc.sd
tlsdesc.td
tlsg.s
tlsg.sd
tlsgd1.dd
tlsgd1.s
tlsgd2.d
tlsgd2.s
tlsgdesc-nacl.rd
tlsgdesc.dd
tlsgdesc.rd
tlsgdesc.s
tlsie1.dd
tlsie1.s
tlsie2.d
tlsie2.s
tlsie3.d
tlsie3.s
tlsie4.d
tlsie4.s
tlsie5.d
tlsie5.s
tlsindntpoff.dd
tlsindntpoff.s
tlsld1.dd
tlsld1.s
tlslib.s
tlsnopic-nacl.rd
tlsnopic.dd
tlsnopic.rd
tlsnopic.sd
tlsnopic1.s
tlsnopic2.s
tlspic-nacl.rd
tlspic.dd
tlspic.rd
tlspic.sd
tlspic.td
tlspic1.s
tlspic2.s
tlspie1.d
tlspie1.s
tlspie2.d
tlspie2.s
vxworks1-lib.dd
vxworks1-lib.nd
vxworks1-lib.rd
vxworks1-lib.s
vxworks1-lib.td
vxworks1-static.d
vxworks1.dd
vxworks1.ld
vxworks1.rd
vxworks1.s
vxworks2-static.sd
vxworks2.s
vxworks2.sd
warn1.d
warn1.s
zero.s