binutils-gdb/ld/testsuite/ld-i386
H.J. Lu caa65211bb Add "-z call-nop=PADDING" option to ld
The ld linker can transform indirect call to a locally defined function,
foo, via its GOT slot, to either "NOP call foo" or "call foo NOP" where
NOP is a 1-byte NOP padding.  This patch adds a "-z call-nop=PADDING"
option to x86 ld to control 1-byte NOP padding for x86 call instruction.
PADDING is one of prefix-addr, prefix-nop, suffix-nop, prefix-NUMBER or
suffix-NUMBER.

bfd/

	* elf32-i386.c (elf_i386_convert_load): Use call_nop_byte and
	check call_nop_as_suffix for 1-byte NOP padding to pad call.
	* elf64-x86-64.c (elf_x86_64_convert_load): Likewise.

include/

	* bfdlink.h (bfd_link_info): Add call_nop_as_suffix and
	call_nop_byte.

ld/

	* ld/ld.texinfo: Document "-z call-nop=PADDING" option.
	* emulparams/call_nop.sh: New file.
	* emulparams/elf_i386_be.sh: Source
	${srcdir}/emulparams/call_nop.sh.
	* emulparams/elf_i386_chaos.sh: Likewise.
	* emulparams/elf_i386_ldso.sh: Likewise.
	* emulparams/elf_i386_vxworks.sh: Likewise.
	* emulparams/elf_iamcu.sh: Likewise.
	* emulparams/elf_k1om.sh: Likewise.
	* emulparams/elf_l1om.sh: Likewise.
	* emulparams/elf_x86_64.sh: Likewise.
	* emultempl/elf32.em (gld${EMULATION_NAME}_before_parse): Set
	link_info.call_nop_byte if $CALL_NOP_BYTE isn't empty.

ld/testsuite/

	* ld-i386/call3.s: New file.
	* ld-i386/call3a.d: Likewise.
	* ld-i386/call3b.d: Likewise.
	* ld-i386/call3c.d: Likewise.
	* ld-i386/call3d.d: Likewise.
	* ld-i386/call3e.d: Likewise.
	* ld-i386/call3f.d: Likewise.
	* ld-i386/call3g.d: Likewise.
	* ld-i386/call3h.d: Likewise.
	* ld-i386/load1-nacl.d: Likewise.
	* ld-x86-64/call1.s: Likewise.
	* ld-x86-64/call1a.d: Likewise.
	* ld-x86-64/call1b.d: Likewise.
	* ld-x86-64/call1c.d: Likewise.
	* ld-x86-64/call1d.d: Likewise.
	* ld-x86-64/call1e.d: Likewise.
	* ld-x86-64/call1f.d: Likewise.
	* ld-x86-64/call1g.d: Likewise.
	* ld-x86-64/call1h.d: Likewise.
	* ld-x86-64/call1i.d: Likewise.
	* ld-x86-64/load1a-nacl.d: Likewise.
	* ld-x86-64/load1b-nacl.d: Likewise.
	* ld-x86-64/load1c-nacl.d: Likewise.
	* ld-x86-64/load1d-nacl.d: Likewise.
2015-10-22 04:56:39 -07:00
..
abs-iamcu.d Add Intel MCU support to ld 2015-05-11 11:29:03 -07:00
abs.d
abs.s
alloc.d bfd/ 2010-04-22 01:51:01 +00:00
alloc.s
alloc.t bfd/ 2012-04-03 16:01:38 +00:00
branch1.d Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
branch1.s Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
call1.d Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
call1.s Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
call2.d Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07: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 "-z call-nop=PADDING" option to ld 2015-10-22 04:56:39 -07:00
call3b.d Add "-z call-nop=PADDING" option to ld 2015-10-22 04:56:39 -07:00
call3c.d Add "-z call-nop=PADDING" option to ld 2015-10-22 04:56:39 -07:00
call3d.d Add "-z call-nop=PADDING" option to ld 2015-10-22 04:56:39 -07:00
call3e.d Add "-z call-nop=PADDING" option to ld 2015-10-22 04:56:39 -07:00
call3f.d Add "-z call-nop=PADDING" option to ld 2015-10-22 04:56:39 -07:00
call3g.d Add "-z call-nop=PADDING" option to ld 2015-10-22 04:56:39 -07:00
call3h.d Add "-z call-nop=PADDING" option to ld 2015-10-22 04:56:39 -07:00
combreloc.d
combreloc.s
compressed1.d Use nm/readelf with "failif" 2015-02-19 04:45:27 -08:00
compressed1.s Add testcases for PR ld/11817. 2010-07-15 00:42:23 +00:00
copyreloc-lib.c i386: Allow copy relocs for building PIE 2015-04-22 05:30:01 -07:00
copyreloc-main1.rd i386: Allow copy relocs for building PIE 2015-04-22 05:30:01 -07:00
copyreloc-main2.rd i386: Allow copy relocs for building PIE 2015-04-22 05:30:01 -07:00
copyreloc-main.out i386: Allow copy relocs for building PIE 2015-04-22 05:30:01 -07:00
copyreloc-main.S i386: Allow copy relocs for building PIE 2015-04-22 05:30:01 -07:00
discarded1.d Check if .got.plt section is discarded before using it. 2010-08-13 20:50:27 +00:00
discarded1.s Check if .got.plt section is discarded before using it. 2010-08-13 20:50:27 +00:00
discarded1.t Check if .got.plt section is discarded before using it. 2010-08-13 20:50:27 +00:00
dummy.c i386: Allow copy relocs for building PIE 2015-04-22 05:30:01 -07:00
dummy.s Add Intel MCU support to ld 2015-05-11 11:29:03 -07:00
emit-relocs-nacl.rd bfd/ 2012-04-03 16:01:38 +00:00
emit-relocs.rd bfd/ 2012-04-03 16:01:38 +00:00
emit-relocs.s
export-class.exp ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
foo.s Add Intel MCU support to ld 2015-05-11 11:29:03 -07:00
got1.dd Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
got1.out Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
got1a.S Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07: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 R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
hidden1.d
hidden1.s
hidden2.d bfd/ 2012-04-03 16:01:38 +00:00
hidden2.s
hidden3.d
hidden3.s
i386-export-class.rd * ld-elf/export-class.sd: New test. 2012-08-28 20:29:19 +00:00
i386-export-class.xd * ld-elf/export-class.sd: New test. 2012-08-28 20:29:19 +00:00
i386.exp Add "-z call-nop=PADDING" option to ld 2015-10-22 04:56:39 -07: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 R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
jmp1.s Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
jmp2.d Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
jmp2.s Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
lea1.s Convert mov to lea for loading address of local common symbol 2015-10-16 03:14:40 -07:00
lea1a.d Convert mov to lea for loading address of local common symbol 2015-10-16 03:14:40 -07:00
lea1b.d Convert mov to lea for loading address of local common symbol 2015-10-16 03:14:40 -07:00
lea1c.d Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
lea1d.d Convert mov to lea in size_dynamic_sections 2012-08-31 20:41:41 +00:00
lea1e.d Convert mov to lea in size_dynamic_sections 2012-08-31 20:41:41 +00:00
lea1f.d Convert mov to lea in size_dynamic_sections 2012-08-31 20:41:41 +00:00
load1-nacl.d Add "-z call-nop=PADDING" option to ld 2015-10-22 04:56:39 -07:00
load1.d Add "-z call-nop=PADDING" option to ld 2015-10-22 04:56:39 -07:00
load1.s Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
load2.d Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
load2.s Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
load3.d Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07: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 R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07: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 R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07: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 Don't optimize relocation against _DYNAMIC 2012-09-01 02:50:14 +00:00
mov1a.d Don't optimize relocation against _DYNAMIC 2012-09-01 02:50:14 +00:00
mov1b.d Don't optimize relocation against _DYNAMIC 2012-09-01 02:50:14 +00:00
nogot1.d Don't allocate .got.plt section if there are no GOT nor PLT entries. 2010-07-14 00:30:57 +00:00
nogot1.s Remove GOTOFF in ld-i386/nogot1.s. 2010-09-24 06:09:31 +00:00
nogot2.d Add 2 tests for PR ld/11812. 2010-10-01 04:47:02 +00:00
nogot2.s Add 2 tests for PR ld/11812. 2010-10-01 04:47:02 +00:00
pcrel8.d
pcrel8.s
pcrel16.d bfd/ 2012-04-03 16:01:38 +00:00
pcrel16.s
pcrel16abs.d bfd/ 2012-04-03 16:01:38 +00:00
pcrel16abs.s
plt-lib.c Add function and function pointer tests for i386 2014-11-21 08:45:02 -08:00
plt-main1.c Add function and function pointer tests for i386 2014-11-21 08:45:02 -08:00
plt-main1.rd Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
plt-main2.c Add function and function pointer tests for i386 2014-11-21 08:45:02 -08:00
plt-main2.rd Add function and function pointer tests for i386 2014-11-21 08:45:02 -08:00
plt-main3.c Add function and function pointer tests for i386 2014-11-21 08:45:02 -08:00
plt-main3.rd Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
plt-main4.c Add function and function pointer tests for i386 2014-11-21 08:45:02 -08:00
plt-main4.rd Add R_386_GOT32X support to gas and ld 2015-10-22 04:47:07 -07:00
plt-main5.c Add function and function pointer tests for i386 2014-11-21 08:45:02 -08:00
plt-main.out Add function and function pointer tests for i386 2014-11-21 08:45:02 -08:00
plt-main.rd Optimize out i386/x86-64 JUMP_SLOT relocation 2014-11-25 05:05:39 -08:00
plt-nacl.pd bfd/ 2012-04-03 16:01:38 +00:00
plt-pic-nacl.pd bfd/ 2012-04-03 16:01:38 +00:00
plt-pic.pd bfd/ 2012-04-03 16:01:38 +00:00
plt-pic.s bfd/ 2012-04-03 16:01:38 +00:00
plt.pd bfd/ 2012-04-03 16:01:38 +00:00
plt.s bfd/ 2012-04-03 16:01:38 +00:00
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 bfd/ 2012-04-03 16:01:38 +00:00
pr12570a.d Always create PLT eh_frame section for i386/x86-64 2012-05-22 14:05:21 +00:00
pr12570a.s Always create PLT eh_frame section for i386/x86-64 2012-05-22 14:05:21 +00:00
pr12570b.d Always create PLT eh_frame section for i386/x86-64 2012-05-22 14:05:21 +00:00
pr12570b.s Always create PLT eh_frame section for i386/x86-64 2012-05-22 14:05:21 +00:00
pr12627.d Add a testcase for PR ld/12627. 2011-04-04 16:36:29 +00:00
pr12627.s Add a testcase for PR ld/12627. 2011-04-04 16:36:29 +00:00
pr12627.t bfd/ 2012-04-03 16:01:38 +00:00
pr12718.d Don't align text/data/bss sections for ELF 2013-05-31 17:27:28 +00:00
pr12718.s Add testcases for PR ld/12718. 2011-05-01 13:38:22 +00:00
pr12921.d bfd/ 2012-06-06 10:50:18 +00:00
pr12921.s Add testcases for PR ld/12921. 2011-06-24 14:03:15 +00:00
pr13302.d Restore R_386_IRELATIVE and R_X86_64_IRELATIVE 2012-03-09 16:28:38 +00:00
pr13302.s Replace IRELATIVE relocations with RELATIVE in .rel.dyn. 2011-10-21 19:37:15 +00:00
pr14215.d Don't hardcode .got.plt into DATA_SEGMENT_RELRO_END evaluation 2012-06-11 13:23:51 +00:00
pr14215.s Don't hardcode .got.plt into DATA_SEGMENT_RELRO_END evaluation 2012-06-11 13:23:51 +00:00
pr17057.d Update elf_i386_compute_jump_table_size 2014-07-15 13:09:55 -07:00
pr17057.s Update elf_i386_compute_jump_table_size 2014-07-15 13:09:55 -07:00
pr17306a.s Use bfd_is_abs_section to check discarded input section 2014-08-27 07:59:48 -07:00
pr17306b.s Use bfd_is_abs_section to check discarded input section 2014-08-27 07:59:48 -07:00
pr17689.out i386: Allow copy relocs for building PIE 2015-04-22 05:30:01 -07:00
pr17689.rd i386: Allow copy relocs for building PIE 2015-04-22 05:30:01 -07:00
pr17689a.c i386: Allow copy relocs for building PIE 2015-04-22 05:30:01 -07:00
pr17689a.t i386: Allow copy relocs for building PIE 2015-04-22 05:30:01 -07:00
pr17689b.S i386: Allow copy relocs for building PIE 2015-04-22 05:30:01 -07:00
pr17689now.rd Don't generate PLT relocations for now binding 2015-05-16 07:00:55 -07:00
pr17689ver.rd i386: Allow copy relocs for building PIE 2015-04-22 05:30:01 -07:00
pr17709-nacl.rd Add extern_protected_data and set it for x86 2015-04-10 11:06:34 -07:00
pr17709.rd Add extern_protected_data and set it for x86 2015-04-10 11:06:34 -07:00
pr17709a.s Add extern_protected_data and set it for x86 2015-04-10 11:06:34 -07:00
pr17709b.s Add extern_protected_data and set it for x86 2015-04-10 11:06:34 -07:00
pr17827.rd i386: Allow copy relocs for building PIE 2015-04-22 05:30:01 -07:00
pr17935-1.d Issue relocation in RO section warning for -z text 2015-02-07 05:28:06 -08:00
pr17935-1.s Issue relocation in RO section warning for -z text 2015-02-07 05:28:06 -08:00
pr17935-2.d Issue relocation in RO section warning for -z text 2015-02-07 05:28:06 -08:00
pr17935-2.s Issue relocation in RO section warning for -z text 2015-02-07 05:28:06 -08:00
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
protected1.d
protected1.s
protected2.d
protected2.s
protected3.d Add extern_protected_data and set it for x86 2015-04-10 11:06:34 -07:00
protected3.s Add extern_protected_data and set it for x86 2015-04-10 11:06:34 -07:00
protected4.d Handle relocation against protected function for -Bsymbolic 2012-03-20 18:16:38 +00:00
protected4.s Handle relocation against protected function for -Bsymbolic 2012-03-20 18:16:38 +00:00
protected5.d Handle relocation against protected function for -Bsymbolic 2012-03-20 18:16:38 +00:00
protected5.s Handle relocation against protected function for -Bsymbolic 2012-03-20 18:16:38 +00:00
protected6.s Check GOTOFF reloc against protected data on x86 2015-04-10 14:02:23 -07:00
protected6a.d Replace SYMBOLIC_BIND with SYMBOL_REFERENCES_LOCAL 2015-04-11 07:56:48 -07:00
protected6b.d Add -z noextern-protected-data to ld for ELF/x86 2015-04-14 04:13:11 -07:00
reloc.d bfd/ 2012-04-03 16:01:38 +00:00
reloc.s
start.s Add Intel MCU support to ld 2015-05-11 11:29:03 -07:00
tlsbin-nacl.rd Properly place the NULL STT_FILE symbol 2015-02-16 04:54:45 -08:00
tlsbin.dd bfd/ 2012-04-03 16:01:38 +00:00
tlsbin.rd Properly place the NULL STT_FILE symbol 2015-02-16 04:54:45 -08:00
tlsbin.s
tlsbin.sd bfd/ 2012-04-03 16:01:38 +00:00
tlsbin.td bfd/ 2012-04-03 16:01:38 +00:00
tlsbindesc-nacl.rd Properly place the NULL STT_FILE symbol 2015-02-16 04:54:45 -08:00
tlsbindesc.dd Don't align text/data/bss sections for ELF 2013-05-31 17:27:28 +00:00
tlsbindesc.rd Properly place the NULL STT_FILE symbol 2015-02-16 04:54:45 -08:00
tlsbindesc.s
tlsbindesc.sd bfd/ 2012-04-03 16:01:38 +00:00
tlsbindesc.td bfd/ 2012-04-03 16:01:38 +00:00
tlsbinpic.s
tlsdesc-nacl.rd Properly place the NULL STT_FILE symbol revistited 2015-02-18 00:31:52 +10:30
tlsdesc.dd bfd/ 2012-04-03 16:01:38 +00:00
tlsdesc.rd Properly place the NULL STT_FILE symbol revistited 2015-02-18 00:31:52 +10:30
tlsdesc.s
tlsdesc.sd bfd/ 2012-04-03 16:01:38 +00:00
tlsdesc.td bfd/ 2012-04-03 16:01:38 +00:00
tlsg.s
tlsg.sd bfd/ 2012-04-03 16:01:38 +00:00
tlsgd1.dd
tlsgd1.s
tlsgd2.d bfd/ 2009-06-19 16:00:33 +00:00
tlsgd2.s bfd/ 2009-06-19 16:00:33 +00:00
tlsgdesc-nacl.rd ld/testsuite/ 2012-07-02 18:20:31 +00:00
tlsgdesc.dd bfd/ 2012-04-03 16:01:38 +00:00
tlsgdesc.rd ld/ 2012-06-15 15:13:41 +00:00
tlsgdesc.s
tlsie1.dd
tlsie1.s
tlsie2.d
tlsie2.s
tlsie3.d
tlsie3.s
tlsie4.d
tlsie4.s
tlsie5.d
tlsie5.s
tlsindntpoff.dd bfd/ 2012-04-03 16:01:38 +00:00
tlsindntpoff.s
tlsld1.dd
tlsld1.s
tlslib.s
tlsnopic1.s
tlsnopic2.s
tlsnopic-nacl.rd Properly place the NULL STT_FILE symbol revistited 2015-02-18 00:31:52 +10:30
tlsnopic.dd Don't align text/data/bss sections for ELF 2013-05-31 17:27:28 +00:00
tlsnopic.rd Properly place the NULL STT_FILE symbol revistited 2015-02-18 00:31:52 +10:30
tlsnopic.sd bfd/ 2012-04-03 16:01:38 +00:00
tlspic1.s
tlspic2.s
tlspic-nacl.rd Properly place the NULL STT_FILE symbol revistited 2015-02-18 00:31:52 +10:30
tlspic.dd Don't align text/data/bss sections for ELF 2013-05-31 17:27:28 +00:00
tlspic.rd Properly place the NULL STT_FILE symbol revistited 2015-02-18 00:31:52 +10:30
tlspic.sd bfd/ 2012-04-03 16:01:38 +00:00
tlspic.td bfd/ 2012-04-03 16:01:38 +00:00
tlspie1.d 2009-08-02 H.J. Lu <hongjiu.lu@intel.com> 2009-08-02 23:55:49 +00:00
tlspie1.s 2009-08-02 H.J. Lu <hongjiu.lu@intel.com> 2009-08-02 23:55:49 +00:00
tlspie2.d bfd/ 2012-04-03 16:01:38 +00:00
tlspie2.s Properly handle R_386_TLS_LDO_32 for PIE. 2011-04-08 16:14:49 +00:00
vxworks1-lib.dd
vxworks1-lib.nd
vxworks1-lib.rd ld/testsuite/ 2011-07-27 20:58:14 +00:00
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