binutils-gdb/ld/testsuite/ld-i386
H.J. Lu 233cc9c13a Don't generate PLT for IFUNC GOT/pointer reference
If a backend supports it, PLT entry isn't needed when all references
to a STT_GNU_IFUNC symbols are done via GOT or static function pointers.
For GOT entries, We generate dynamic R_*_GLOB_DAT relocations for
preemptable symbols and R_*_IRELATIVE relocations for non-preemptable
symbols to update them with real function address.  For static pointer
pointers, we generate dynamic pointer relocations and store them in:

1. .rel[a].ifunc section in PIC object.
2. .rel[a].got section in dynamic executable.
3. .rel[a].iplt section in static executable.

We don't allocate GOT entry if it isn't used.

bfd/

	PR ld/20253
	* elf-bfd.h (_bfd_elf_allocate_ifunc_dyn_relocs): Add an
	bfd_boolean argument.
	* elf-ifunc.c (_bfd_elf_create_ifunc_sections): Replace
	"shared object" with "PIC object" in comments.
	(_bfd_elf_allocate_ifunc_dyn_relocs): Updated.  Replace
	"shared object" with "PIC object" in comments.  Avoid PLT if
	requested.  Generate dynamic relocations for non-GOT references.
	Make room for the special first entry in PLT and allocate PLT
	entry only for PLT and PC-relative references.  Store dynamic
	GOT relocations in .rel[a].iplt section for static executables.
	If PLT isn't used, always use GOT for symbol value.  Don't
	allocate GOT entry if it isn't used.
	* elf32-i386.c (elf_i386_check_relocs): Increment PLT reference
	count only in the code section.  Allocate dynamic pointer
	relocation against STT_GNU_IFUNC symbol in the non-code section.
	(elf_i386_adjust_dynamic_symbol): Increment PLT reference count
	only for PC-relative references.
	(elf_i386_allocate_dynrelocs): Pass TRUE to
	_bfd_elf_allocate_ifunc_dyn_relocs.
	(elf_i386_relocate_section): Allow R_386_GOT32/R_386_GOT32X
	relocations against STT_GNU_IFUNC symbols without PLT.  Generate
	dynamic pointer relocation against STT_GNU_IFUNC symbol in
	the non-code section and store it in the proper REL section.
	Don't allow non-pointer relocation against STT_GNU_IFUNC symbol
	without PLT.
	(elf_i386_finish_dynamic_symbol): Generate dynamic
	R_386_IRELATIVE and R_386_GLOB_DAT GOT relocations against
	STT_GNU_IFUNC symbols without PLT.
	(elf_i386_finish_dynamic_sections): Don't handle local
	STT_GNU_IFUNC symbols here.
	(elf_i386_output_arch_local_syms): Handle local STT_GNU_IFUNC
	symbols here.
	(elf_backend_output_arch_local_syms): New.
	* elf32-x86-64.c (elf_i386_check_relocs): Increment PLT reference
	count only in the code section.  Allocate dynamic pointer
	relocation against STT_GNU_IFUNC symbol in the non-code section.
	(elf_x86_64_adjust_dynamic_symbol): Increment PLT reference
	count only for PC-relative references.
	(elf_x86_64_allocate_dynrelocs): Pass TRUE to
	_bfd_elf_allocate_ifunc_dyn_relocs.
	(elf_x86_64_relocate_section): Allow R_X86_64_GOTPCREL,
	R_X86_64_GOTPCRELX, R_X86_64_REX_GOTPCRELX and
	R_X86_64_GOTPCREL64 relocations against STT_GNU_IFUNC symbols
	without PLT.  Generate dynamic pointer relocation against
	STT_GNU_IFUNC symbol in the non-code section and store it in
	the proper RELA section.  Don't allow non-pointer relocation
	against STT_GNU_IFUNC symbol without PLT.
	(elf_x86_64_finish_dynamic_symbol): Generate dynamic
	R_X86_64_IRELATIVE and R_X86_64_GLOB_DAT GOT relocations against
	STT_GNU_IFUNC symbols without PLT.
	(elf_x86_64_finish_dynamic_sections): Don't handle local
	STT_GNU_IFUNC symbols here.
	(elf_x86_64_output_arch_local_syms): Handle local STT_GNU_IFUNC
	symbols here.
	(elf_backend_output_arch_local_syms): New.
	* elfnn-aarch64.c (elfNN_aarch64_allocate_ifunc_dynrelocs):
	Pass FALSE to _bfd_elf_allocate_ifunc_dyn_relocs.

ld/

	PR ld/20253
	* testsuite/ld-i386/i386.exp: Run PR ld/20253 tests.
	* testsuite/ld-i386/no-plt.exp: Likewise.
	* testsuite/ld-x86-64/no-plt.exp: Likewise.
	* testsuite/ld-i386/pr13302.d: Remove .rel.plt section.
	* testsuite/ld-ifunc/ifunc-13-i386.d: Likewise.
	* testsuite/ld-ifunc/ifunc-13-x86-64.d: Likewise.
	* testsuite/ld-ifunc/ifunc-15-i386.d: Likewise.
	* testsuite/ld-ifunc/ifunc-15-x86-64.d: Likewise.
	* testsuite/ld-x86-64/pr13082-5a.d: Likewise.
	* testsuite/ld-x86-64/pr13082-5b.d: Likewise.
	* testsuite/ld-x86-64/pr13082-6a.d: Likewise.
	* testsuite/ld-x86-64/pr13082-6b.d: Likewise.
	* testsuite/ld-i386/pr20244-2a.d: Remove .plt section.
	* testsuite/ld-ifunc/ifunc-21-i386.d: Likewise.
	* testsuite/ld-ifunc/ifunc-21-x86-64.d: Likewise.
	* testsuite/ld-ifunc/ifunc-22-i386.d: Likewise.
	* testsuite/ld-ifunc/ifunc-22-x86-64.d: Likewise.
	* testsuite/ld-i386/pr20244-2b.d: Updated.
	* testsuite/ld-i386/pr20244-2c.d: Likewise.
	* testsuite/ld-ifunc/ifunc-18a-i386.d: Likewise.
	* testsuite/ld-ifunc/ifunc-18a-x86-64.d: Likewise.
	* testsuite/ld-ifunc/ifunc-18b-i386.d: Likewise.
	* testsuite/ld-ifunc/ifunc-18b-x86-64.d: Likewise.
	* testsuite/ld-i386/pr20253-1a.c: New file.
	* testsuite/ld-i386/pr20253-1b.S: Likewise.
	* testsuite/ld-i386/pr20253-1c.S: Likewise.
	* testsuite/ld-i386/pr20253-1d.S: Likewise.
	* testsuite/ld-i386/pr20253-2a.c: Likewise.
	* testsuite/ld-i386/pr20253-2b.S: Likewise.
	* testsuite/ld-i386/pr20253-2c.S: Likewise.
	* testsuite/ld-i386/pr20253-2d.S: Likewise.
	* testsuite/ld-i386/pr20253-3.d: Likewise.
	* testsuite/ld-i386/pr20253-3.s: Likewise.
	* testsuite/ld-i386/pr20253-4.s: Likewise.
	* testsuite/ld-i386/pr20253-4a.d: Likewise.
	* testsuite/ld-i386/pr20253-4b.d: Likewise.
	* testsuite/ld-i386/pr20253-4c.d: Likewise.
	* testsuite/ld-i386/pr20253-5.d: Likewise.
	* testsuite/ld-i386/pr20253-5.s: Likewise.
	* testsuite/ld-ifunc/ifunc-23-x86.s: Likewise.
	* testsuite/ld-ifunc/ifunc-23a-x86.d: Likewise.
	* testsuite/ld-ifunc/ifunc-23b-x86.d: Likewise.
	* testsuite/ld-ifunc/ifunc-23c-x86.d: Likewise.
	* testsuite/ld-ifunc/ifunc-24-x86.s: Likewise.
	* testsuite/ld-ifunc/ifunc-24a-x86.d: Likewise.
	* testsuite/ld-ifunc/ifunc-24b-x86.d: Likewise.
	* testsuite/ld-ifunc/ifunc-24c-x86.d: Likewise.
	* testsuite/ld-ifunc/ifunc-25-x86.s: Likewise.
	* testsuite/ld-ifunc/ifunc-25a-x86.d: Likewise.
	* testsuite/ld-ifunc/ifunc-25b-x86.d: Likewise.
	* testsuite/ld-ifunc/ifunc-25c-x86.d: Likewise.
	* testsuite/ld-x86-64/pr20253-1.s: Likewise.
	* testsuite/ld-x86-64/pr20253-1a.d: Likewise.
	* testsuite/ld-x86-64/pr20253-1b.d: Likewise.
	* testsuite/ld-x86-64/pr20253-1c.d: Likewise.
	* testsuite/ld-x86-64/pr20253-1d.d: Likewise.
	* testsuite/ld-x86-64/pr20253-1e.d: Likewise.
	* testsuite/ld-x86-64/pr20253-1f.d: Likewise.
	* testsuite/ld-x86-64/pr20253-1g.d: Likewise.
	* testsuite/ld-x86-64/pr20253-1h.d: Likewise.
	* testsuite/ld-x86-64/pr20253-1i.d: Likewise.
	* testsuite/ld-x86-64/pr20253-1j.d: Likewise.
	* testsuite/ld-x86-64/pr20253-1k.d: Likewise.
	* testsuite/ld-x86-64/pr20253-1l.d: Likewise.
	* testsuite/ld-x86-64/pr20253-2a.c: Likewise.
	* testsuite/ld-x86-64/pr20253-2b.S: Likewise.
	* testsuite/ld-x86-64/pr20253-2c.S: Likewise.
	* testsuite/ld-x86-64/pr20253-2d.S: Likewise.
	* testsuite/ld-x86-64/pr20253-3.d: Likewise.
	* testsuite/ld-x86-64/pr20253-3.s: Likewise.
	* testsuite/ld-x86-64/pr20253-4.s: Likewise.
	* testsuite/ld-x86-64/pr20253-4a.d: Likewise.
	* testsuite/ld-x86-64/pr20253-4b.d: Likewise.
	* testsuite/ld-x86-64/pr20253-4c.d: Likewise.
	* testsuite/ld-x86-64/pr20253-4d.d: Likewise.
	* testsuite/ld-x86-64/pr20253-4e.d: Likewise.
	* testsuite/ld-x86-64/pr20253-4f.d: Likewise.
	* testsuite/ld-x86-64/pr20253-5.s: Likewise.
	* testsuite/ld-x86-64/pr20253-5a.d: Likewise.
	* testsuite/ld-x86-64/pr20253-5b.d: Likewise.
	* testsuite/ld-ifunc/ifunc-18a-i386.d: Remove extra IRELATIVE
	relocation.
	* testsuite/ld-ifunc/ifunc-18a-x86-64.d: Likewise.
	* testsuite/ld-ifunc/ifunc-18b-i386.d: Likewise.
	* testsuite/ld-ifunc/ifunc-18b-x86-64.d: Likewise.
	* testsuite/ld-ifunc/ifunc-18a.s: Fix a typo.
	* testsuite/ld-x86-64/x86-64.exp: Run pr20253-1 tests.
2016-06-18 09:17:25 -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
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 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
discarded1.s
discarded1.t
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
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 Optimize x86 GOT32X/GOTPCRELX relocations 2016-02-26 09:39:24 -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 Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -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
ifunc-1a.c Add 2 i386 tests to call IFUNC functions via GOT 2016-06-13 09:27:12 -07:00
ifunc-1b.S Add 2 i386 tests to call IFUNC functions via GOT 2016-06-13 09:27:12 -07:00
ifunc-1c.S Add 2 i386 tests to call IFUNC functions via GOT 2016-06-13 09:27:12 -07:00
ifunc-1d.S Add 2 i386 tests to call IFUNC functions via GOT 2016-06-13 09:27:12 -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 Update x86 linker tests for --disable-x86-relax-relocations 2016-06-03 04:10:11 -07:00
lea1b.d Update x86 linker tests for --disable-x86-relax-relocations 2016-06-03 04:10:11 -07:00
lea1c.d Optimize x86 GOT32X/GOTPCRELX relocations 2016-02-26 09:39:24 -08:00
lea1d.d Update x86 linker tests for --disable-x86-relax-relocations 2016-06-03 04:10:11 -07:00
lea1e.d Update x86 linker tests for --disable-x86-relax-relocations 2016-06-03 04:10:11 -07:00
lea1f.d Update x86 linker tests for --disable-x86-relax-relocations 2016-06-03 04:10:11 -07:00
libno-plt-1b.dd i386: Test external function reference without PLT 2016-06-08 12:41:50 -07:00
libno-plt-1b.rd i386: Test external function reference without PLT 2016-06-08 12:41:50 -07:00
load1-nacl.d Optimize x86 GOT32X/GOTPCRELX relocations 2016-02-26 09:39:24 -08:00
load1.d Optimize x86 GOT32X/GOTPCRELX relocations 2016-02-26 09:39:24 -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 Optimize x86 GOT32X/GOTPCRELX relocations 2016-02-26 09:39:24 -08: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 Optimize x86 GOT32X/GOTPCRELX relocations 2016-02-26 09:39:24 -08: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
load7.d Update x86 linker tests for --disable-x86-relax-relocations 2016-06-03 04:10:11 -07:00
load7.map Test load conversion with symbol versioning for x86 2016-05-06 05:28:18 -07:00
load7.s Test load conversion with symbol versioning for x86 2016-05-06 05:28:18 -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 Update x86 linker tests for --disable-x86-relax-relocations 2016-06-03 04:10:11 -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
no-plt-1a.dd X86: Add tests for static function pointer 2016-06-15 09:44:21 -07:00
no-plt-1a.rd i386: Test external function reference without PLT 2016-06-08 12:41:50 -07:00
no-plt-1b.dd X86: Add tests for static function pointer 2016-06-15 09:44:21 -07:00
no-plt-1b.rd i386: Test external function reference without PLT 2016-06-08 12:41:50 -07:00
no-plt-1c.dd X86: Add tests for static function pointer 2016-06-15 09:44:21 -07:00
no-plt-1c.rd i386: Test external function reference without PLT 2016-06-08 12:41:50 -07:00
no-plt-1d.dd X86: Add tests for static function pointer 2016-06-15 09:44:21 -07:00
no-plt-1d.rd i386: Test external function reference without PLT 2016-06-08 12:41:50 -07:00
no-plt-1e.dd X86: Add tests for static function pointer 2016-06-15 09:44:21 -07:00
no-plt-1e.rd i386: Test external function reference without PLT 2016-06-08 12:41:50 -07:00
no-plt-1f.dd X86: Add tests for static function pointer 2016-06-15 09:44:21 -07:00
no-plt-1f.rd i386: Test external function reference without PLT 2016-06-08 12:41:50 -07:00
no-plt-1g.dd X86: Add tests for static function pointer 2016-06-15 09:44:21 -07:00
no-plt-1g.rd i386: Test external function reference without PLT 2016-06-08 12:41:50 -07:00
no-plt-1h.dd X86: Add tests for static function pointer 2016-06-15 09:44:21 -07:00
no-plt-1h.rd i386: Test external function reference without PLT 2016-06-08 12:41:50 -07:00
no-plt-1i.dd X86: Add tests for static function pointer 2016-06-15 09:44:21 -07:00
no-plt-1i.rd i386: Test external function reference without PLT 2016-06-08 12:41:50 -07:00
no-plt-1j.dd X86: Add tests for static function pointer 2016-06-15 09:44:21 -07:00
no-plt-1j.rd i386: Test external function reference without PLT 2016-06-08 12:41:50 -07:00
no-plt-check1a.S X86: Add tests for static function pointer 2016-06-15 09:44:21 -07:00
no-plt-check1b.S X86: Add tests for static function pointer 2016-06-15 09:44:21 -07:00
no-plt-extern1a.S X86: Add tests for static function pointer 2016-06-15 09:44:21 -07:00
no-plt-extern1b.S X86: Add tests for static function pointer 2016-06-15 09:44:21 -07:00
no-plt-func1.c i386: Test external function reference without PLT 2016-06-08 12:41:50 -07:00
no-plt-main1.c i386: Test external function reference without PLT 2016-06-08 12:41:50 -07:00
no-plt.exp Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
nogot1.d
nogot1.s
nogot2.d
nogot2.s
pass.out Support i386 TLS code sequences without PLT 2016-06-08 12:01:50 -07:00
pcrel8.d
pcrel8.s
pcrel16.d
pcrel16.s
pcrel16abs.d
pcrel16abs.s
plt-lib.c
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-main.out
plt-main.rd
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 Enhance GAS's .section directive so that it can take numeric values for the flags and type fields. (ELF only) 2016-02-15 11:11:46 +00:00
pr12718.s
pr12921.d Enhance GAS's .section directive so that it can take numeric values for the flags and type fields. (ELF only) 2016-02-15 11:11:46 +00:00
pr12921.s
pr13302.d Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
pr13302.s
pr14215.d
pr14215.s
pr17057.d
pr17057.s
pr17306a.s
pr17306b.s
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
pr17709.rd
pr17709a.s
pr17709b.s
pr17827.rd i386: Allow copy relocs for building PIE 2015-04-22 05:30:01 -07:00
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 Update x86 linker tests for --disable-x86-relax-relocations 2016-06-03 04:10:11 -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
pr19539.d Add more tests for PR ld/19539 2016-03-13 08:57:10 -07:00
pr19539.s Add more tests for PR ld/19539 2016-03-13 08:57:10 -07:00
pr19539.t Add more tests for PR ld/19539 2016-03-13 08:57:10 -07:00
pr19609-1.s Optimize x86 GOT32X/GOTPCRELX relocations 2016-02-26 09:39:24 -08:00
pr19609-1a.d Optimize x86 GOT32X/GOTPCRELX relocations 2016-02-26 09:39:24 -08:00
pr19609-1b.d Optimize x86 GOT32X/GOTPCRELX relocations 2016-02-26 09:39:24 -08:00
pr19609-1c.d Optimize x86 GOT32X/GOTPCRELX relocations 2016-02-26 09:39:24 -08:00
pr19609-1d.d Optimize x86 GOT32X/GOTPCRELX relocations 2016-02-26 09:39:24 -08:00
pr19609-1e.d Optimize x86 GOT32X/GOTPCRELX relocations 2016-02-26 09:39:24 -08:00
pr19609-1f.d Optimize x86 GOT32X/GOTPCRELX relocations 2016-02-26 09:39:24 -08:00
pr19609-1g.d Optimize x86 GOT32X/GOTPCRELX relocations 2016-02-26 09:39:24 -08:00
pr19609-1h.d Optimize x86 GOT32X/GOTPCRELX relocations 2016-02-26 09:39:24 -08:00
pr19609-1i.d Don't convert R_386_GOT32 relocation 2016-05-19 12:57:11 -07:00
pr19609-2.s Optimize x86 GOT32X/GOTPCRELX relocations 2016-02-26 09:39:24 -08:00
pr19609-2a.d Optimize x86 GOT32X/GOTPCRELX relocations 2016-02-26 09:39:24 -08:00
pr19609-2b.d Optimize x86 GOT32X/GOTPCRELX relocations 2016-02-26 09:39:24 -08:00
pr19609-2c.d Optimize x86 GOT32X/GOTPCRELX relocations 2016-02-26 09:39:24 -08:00
pr19615.d Enable -Bsymbolic and -Bsymbolic-functions to PIE 2016-02-11 15:20:13 -08:00
pr19615.s Enable -Bsymbolic and -Bsymbolic-functions to PIE 2016-02-11 15:20:13 -08:00
pr19636-1.s [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-1a.d [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-1b.d [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-1c.d [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-1d-nacl.d [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-1d.d [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-1e.d [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-1f.d [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-1g.d [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-1h.d [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-1i.d [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-2.s [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-2a.d [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-2b.d [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-2c-nacl.d [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-2c.d [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-2d-nacl.d [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-2d.d [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-2e-nacl.d Don't check undefined symbol for IFUNC reloc 2016-06-16 11:28:29 -07:00
pr19636-2e.d Don't check undefined symbol for IFUNC reloc 2016-06-16 11:28:29 -07:00
pr19636-3.s [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-3a.d [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-3b.d [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-3c.d [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-3d.d [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-3e.d [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-3f.d [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-3g.d [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-4.s [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-4a.d [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-4b.d [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-4c.d [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19636-4d.d [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19645.d Properly implement STT_COMMON 2016-02-26 05:01:34 -08:00
pr19645.s Properly implement STT_COMMON 2016-02-26 05:01:34 -08:00
pr19704.out [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19704a.c [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19704b.c [x86] Resolve non-PIC undefweak symbols in executable 2016-02-26 04:55:57 -08:00
pr19827-nacl.rd Add missing pr19827-nacl.rd for i386/x86-64 NaCl 2016-04-04 20:50:19 -07:00
pr19827.rd Bind defined symbol locally in PIE 2016-03-15 11:47:06 -07:00
pr19827a.S Bind defined symbol locally in PIE 2016-03-15 11:47:06 -07:00
pr19827b.S Bind defined symbol locally in PIE 2016-03-15 11:47:06 -07:00
pr19939.s Properly handle dynamic reloc against normal symbol 2016-04-11 19:41:52 -07:00
pr19939a.d Properly handle dynamic reloc against normal symbol 2016-04-11 19:41:52 -07:00
pr19939b.d Properly handle dynamic reloc against normal symbol 2016-04-11 19:41:52 -07:00
pr20117.d Don't convert R_386_GOT32 relocation 2016-05-19 12:57:11 -07:00
pr20117.s Don't convert R_386_GOT32 relocation 2016-05-19 12:57:11 -07:00
pr20244-1.s Subtract GOT base only with a base register 2016-06-11 21:24:01 -07:00
pr20244-1a.d Subtract GOT base only with a base register 2016-06-11 21:24:01 -07:00
pr20244-1b.d Subtract GOT base only with a base register 2016-06-11 21:24:01 -07:00
pr20244-1c.d Subtract GOT base only with a base register 2016-06-11 21:24:01 -07:00
pr20244-2.s Add the GOT base for GOT32 relocs against IFUNC 2016-06-13 11:11:23 -07:00
pr20244-2a.d Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
pr20244-2b.d Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
pr20244-2c.d Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
pr20244-2d.d Add the GOT base for GOT32 relocs against IFUNC 2016-06-13 11:11:23 -07:00
pr20244-3a.c Add the GOT base for GOT32 relocs against IFUNC 2016-06-13 11:11:23 -07:00
pr20244-3b.S Add the GOT base for GOT32 relocs against IFUNC 2016-06-13 11:11:23 -07:00
pr20244-3c.S Add the GOT base for GOT32 relocs against IFUNC 2016-06-13 11:11:23 -07:00
pr20244-3d.S Add the GOT base for GOT32 relocs against IFUNC 2016-06-13 11:11:23 -07:00
pr20253-1a.c Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
pr20253-1b.S Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
pr20253-1c.S Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
pr20253-1d.S Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
pr20253-2a.c Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
pr20253-2b.S Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
pr20253-2c.S Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
pr20253-2d.S Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
pr20253-3.d Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
pr20253-3.s Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
pr20253-4.s Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
pr20253-4a.d Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
pr20253-4b.d Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
pr20253-4c.d Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
pr20253-5.d Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
pr20253-5.s Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
protected1.d
protected1.s
protected2.d
protected2.s
protected3.d
protected3.s
protected4.d
protected4.s
protected5.d
protected5.s
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
reloc.s
start.s Add Intel MCU support to ld 2015-05-11 11:29:03 -07:00
tls-def1.c Support i386 TLS code sequences without PLT 2016-06-08 12:01:50 -07:00
tls-gd1.S Support i386 TLS code sequences without PLT 2016-06-08 12:01:50 -07:00
tls-ld1.S Support i386 TLS code sequences without PLT 2016-06-08 12:01:50 -07:00
tls-main1.c Support i386 TLS code sequences without PLT 2016-06-08 12:01:50 -07:00
tls.exp Support i386 TLS code sequences without PLT 2016-06-08 12:01:50 -07:00
tlsbin2-nacl.rd Support i386 TLS code sequences without PLT 2016-06-08 12:01:50 -07:00
tlsbin2.dd Support i386 TLS code sequences without PLT 2016-06-08 12:01:50 -07:00
tlsbin2.rd Support i386 TLS code sequences without PLT 2016-06-08 12:01:50 -07:00
tlsbin2.sd Support i386 TLS code sequences without PLT 2016-06-08 12:01:50 -07:00
tlsbin2.td Support i386 TLS code sequences without PLT 2016-06-08 12:01:50 -07:00
tlsbin-nacl.rd Enhance GAS's .section directive so that it can take numeric values for the flags and type fields. (ELF only) 2016-02-15 11:11:46 +00:00
tlsbin.dd
tlsbin.rd Enhance GAS's .section directive so that it can take numeric values for the flags and type fields. (ELF only) 2016-02-15 11:11:46 +00:00
tlsbin.s
tlsbin.sd
tlsbin.td
tlsbindesc-nacl.rd Enhance GAS's .section directive so that it can take numeric values for the flags and type fields. (ELF only) 2016-02-15 11:11:46 +00:00
tlsbindesc.dd
tlsbindesc.rd Enhance GAS's .section directive so that it can take numeric values for the flags and type fields. (ELF only) 2016-02-15 11:11:46 +00:00
tlsbindesc.s
tlsbindesc.sd
tlsbindesc.td
tlsbinpic2.s Support i386 TLS code sequences without PLT 2016-06-08 12:01:50 -07:00
tlsbinpic.s
tlsdesc-nacl.rd Enhance GAS's .section directive so that it can take numeric values for the flags and type fields. (ELF only) 2016-02-15 11:11:46 +00:00
tlsdesc.dd
tlsdesc.rd Enhance GAS's .section directive so that it can take numeric values for the flags and type fields. (ELF only) 2016-02-15 11:11:46 +00:00
tlsdesc.s
tlsdesc.sd
tlsdesc.td
tlsg.s
tlsg.sd
tlsgd1.dd
tlsgd1.s
tlsgd2.d
tlsgd2.s
tlsgd3.dd Support i386 TLS code sequences without PLT 2016-06-08 12:01:50 -07:00
tlsgd3.s Support i386 TLS code sequences without PLT 2016-06-08 12:01:50 -07:00
tlsgd4.d Support i386 TLS code sequences without PLT 2016-06-08 12:01:50 -07:00
tlsgd4.s Support i386 TLS code sequences without PLT 2016-06-08 12:01:50 -07:00
tlsgdesc-nacl.rd Enhance GAS's .section directive so that it can take numeric values for the flags and type fields. (ELF only) 2016-02-15 11:11:46 +00:00
tlsgdesc.dd
tlsgdesc.rd Enhance GAS's .section directive so that it can take numeric values for the flags and type fields. (ELF only) 2016-02-15 11:11:46 +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
tlsindntpoff.s
tlsld1.dd
tlsld1.s
tlsld2.dd Support i386 TLS code sequences without PLT 2016-06-08 12:01:50 -07:00
tlsld2.s Support i386 TLS code sequences without PLT 2016-06-08 12:01:50 -07:00
tlslib.s
tlsnopic1.s
tlsnopic2.s
tlsnopic-nacl.rd Enhance GAS's .section directive so that it can take numeric values for the flags and type fields. (ELF only) 2016-02-15 11:11:46 +00:00
tlsnopic.dd
tlsnopic.rd Enhance GAS's .section directive so that it can take numeric values for the flags and type fields. (ELF only) 2016-02-15 11:11:46 +00:00
tlsnopic.sd
tlspic1.s
tlspic2-nacl.rd Support i386 TLS code sequences without PLT 2016-06-08 12:01:50 -07:00
tlspic2.dd Support i386 TLS code sequences without PLT 2016-06-08 12:01:50 -07:00
tlspic2.rd Support i386 TLS code sequences without PLT 2016-06-08 12:01:50 -07:00
tlspic2.s
tlspic2.sd Support i386 TLS code sequences without PLT 2016-06-08 12:01:50 -07:00
tlspic2.td Support i386 TLS code sequences without PLT 2016-06-08 12:01:50 -07:00
tlspic3.s Support i386 TLS code sequences without PLT 2016-06-08 12:01:50 -07:00
tlspic-nacl.rd Enhance GAS's .section directive so that it can take numeric values for the flags and type fields. (ELF only) 2016-02-15 11:11:46 +00:00
tlspic.dd
tlspic.rd Enhance GAS's .section directive so that it can take numeric values for the flags and type fields. (ELF only) 2016-02-15 11:11:46 +00:00
tlspic.sd
tlspic.td
tlspie1.d
tlspie1.s
tlspie2.d
tlspie2.s
tlspie3.s Support i386 TLS code sequences without PLT 2016-06-08 12:01:50 -07:00
tlspie3a.d Support i386 TLS code sequences without PLT 2016-06-08 12:01:50 -07:00
tlspie3b.d Support i386 TLS code sequences without PLT 2016-06-08 12:01:50 -07:00
tlspie3c.d Support i386 TLS code sequences without PLT 2016-06-08 12:01:50 -07:00
undefweak.s Optimize x86 GOT32X/GOTPCRELX relocations 2016-02-26 09:39:24 -08:00
undefweaka.d Optimize x86 GOT32X/GOTPCRELX relocations 2016-02-26 09:39:24 -08:00
undefweakb.d Optimize x86 GOT32X/GOTPCRELX relocations 2016-02-26 09:39:24 -08:00
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