binutils-gdb/ld/testsuite/ld-i386
H.J. Lu 0a27fed72d x86: Properly handle __ehdr_start
After _bfd_i386_elf_convert_load and _bfd_x86_64_elf_convert_load are
removed, elf_i386_convert_load_reloc and elf_x86_64_convert_load_reloc
see __ehdr_start as an undefined symbol when they are called from
check_relocs to convert GOT relocations against local symbols.  But
__ehdr_start will be defined as a hidden symbol by linker at the later
stage if it is referenced.  This patch marks __ehdr_start as a defined
local symbol at the start of check_relocs if it is referenced and not
defined.

bfd/

	PR ld/22115
	* elf32-i386.c (elf_i386_convert_load_reloc): Check linker_def.
	Don't use UNDEFINED_WEAK_RESOLVED_TO_ZERO.
	* elf64-x86-64.c (elf_x86_64_convert_load_reloc): Check
	linker_def.  Don't use UNDEFINED_WEAK_RESOLVED_TO_ZERO.
	* elfxx-x86.c (_bfd_x86_elf_link_check_relocs): Set local_ref
	and linker_def on __ehdr_start if it is referenced and not
	defined.
	(_bfd_x86_elf_link_symbol_references_local): Also set local_ref
	and return TRUE when building executable, if a symbol has
	non-GOT/non-PLT relocations in text section or there is no
	dynamic linker.
	* elfxx-x86.h (elf_x86_link_hash_entry): Add linker_def.

ld/

	PR ld/22115
	* ld-i386/i386.exp: Run PR ld/22115 tests,
	* ld/testsuite/ld-x86-64/x86-64.exp: Likewise.
	* testsuite/ld-i386/pr22115-1.s: New file.
	* testsuite/ld-i386/pr22115-1a.d: Likewise.
	* testsuite/ld-i386/pr22115-1b.d: Likewise.
	* testsuite/ld-i386/pr22115-1c.d: Likewise.
	* testsuite/ld-i386/pr22115-1d.d: Likewise.
	* testsuite/ld-x86-64/pr22115-1.s: Likewise.
	* testsuite/ld-x86-64/pr22115-1a-x32.d: Likewise.
	* testsuite/ld-x86-64/pr22115-1a.d: Likewise.
	* testsuite/ld-x86-64/pr22115-1b-x32.d: Likewise.
	* testsuite/ld-x86-64/pr22115-1b.d: Likewise.
	* testsuite/ld-x86-64/pr22115-1c-x32.d: Likewise.
	* testsuite/ld-x86-64/pr22115-1c.d: Likewise.
	* testsuite/ld-x86-64/pr22115-1d-x32.d: Likewise.
	* testsuite/ld-x86-64/pr22115-1d.d: Likewise.
2017-09-09 05:05:29 -07:00
..
abs-iamcu.d
abs.d
abs.s
alloc.d
alloc.s
alloc.t
branch1.d
branch1.s
call1.d
call1.s
call2.d
call2.s
call3.s
call3a.d
call3b.d
call3c.d x86: Remove linker option: -z prefix-nop 2017-06-02 14:49:37 -07:00
call3d.d
call3e.d
call3f.d
call3g.d
call3h.d
combreloc.d
combreloc.s
compressed1.d
compressed1.s
copyreloc-lib.c
copyreloc-main1.rd
copyreloc-main2.rd
copyreloc-main.out
copyreloc-main.S
discarded1.d
discarded1.s
discarded1.t
dummy.c
dummy.s
emit-relocs-nacl.rd
emit-relocs.rd
emit-relocs.s
export-class.exp Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
foo.s
got1.dd
got1.out
got1a.S
got1b.c
got1c.c
got1d.S
hidden1.d
hidden1.s
hidden2.d
hidden2.s
hidden3.d
hidden3.s
i386-export-class.rd
i386-export-class.xd
i386.exp x86: Properly handle __ehdr_start 2017-09-09 05:05:29 -07:00
iamcu-1.d
iamcu-2.d
iamcu-3.d
iamcu-4.d
ibt-plt-1.d x86: Correct unwind information for the second PLT 2017-09-01 06:12:06 -07:00
ibt-plt-1.s x86: Support Intel IBT with IBT property and IBT-enable PLT 2017-06-22 05:44:53 -07:00
ibt-plt-2.s x86: Support Intel IBT with IBT property and IBT-enable PLT 2017-06-22 05:44:53 -07:00
ibt-plt-2a.d x86: Correct unwind information for the second PLT 2017-09-01 06:12:06 -07:00
ibt-plt-2b.d x86: Correct unwind information for the second PLT 2017-09-01 06:12:06 -07:00
ibt-plt-2c.d x86: Correct unwind information for the second PLT 2017-09-01 06:12:06 -07:00
ibt-plt-2d.d x86: Correct unwind information for the second PLT 2017-09-01 06:12:06 -07:00
ibt-plt-3.s x86: Support Intel IBT with IBT property and IBT-enable PLT 2017-06-22 05:44:53 -07:00
ibt-plt-3a.d x86: Correct unwind information for the second PLT 2017-09-01 06:12:06 -07:00
ibt-plt-3b.d x86: Correct unwind information for the second PLT 2017-09-01 06:12:06 -07:00
ibt-plt-3c.d x86: Correct unwind information for the second PLT 2017-09-01 06:12:06 -07:00
ibt-plt-3d.d x86: Correct unwind information for the second PLT 2017-09-01 06:12:06 -07:00
ifunc-1a.c
ifunc-1b.S
ifunc-1c.S
ifunc-1d.S
jmp1.d
jmp1.s
jmp2.d
jmp2.s
lea1.s
lea1a.d
lea1b.d
lea1c.d
lea1d.d
lea1e.d
lea1f.d
libno-plt-1b.dd
libno-plt-1b.rd
load1-nacl.d
load1.d
load1.s
load2.d
load2.s
load3.d
load3.s
load4.s
load4a.d
load4b.d
load5.s
load5a.d
load5b.d
load6.d
load6.s
load7.d
load7.map
load7.s
mov1.s
mov1a.d
mov1b.d
mov2.s
mov2a.d
mov2b.d
mov3.d
mov3.s
no-plt-1a.dd
no-plt-1a.rd
no-plt-1b.dd
no-plt-1b.rd
no-plt-1c.dd
no-plt-1c.rd
no-plt-1d.dd
no-plt-1d.rd
no-plt-1e.dd
no-plt-1e.rd
no-plt-1f.dd
no-plt-1f.rd
no-plt-1g.dd
no-plt-1g.rd
no-plt-1h.dd
no-plt-1h.rd
no-plt-1i.dd
no-plt-1i.rd
no-plt-1j.dd
no-plt-1j.rd
no-plt-check1a.S
no-plt-check1b.S
no-plt-extern1a.S
no-plt-extern1b.S
no-plt-func1.c
no-plt-main1.c
no-plt.exp Pass $NOPIE_CFLAGS and $NOPIE_LDFLAGS to more ELF tests 2017-06-22 09:53:33 -07:00
nogot1.d
nogot1.s
nogot2.d
nogot2.s
pass.c ld: Support ELF GNU program properties 2017-04-03 08:08:27 -07:00
pass.out
pcrel8.d
pcrel8.s
pcrel16.d
pcrel16.s
pcrel16abs.d
pcrel16abs.s
pie1-nacl.d i386: Add tests for PIE with undefined weak symbol 2017-07-17 12:42:32 -07:00
pie1.d Support different ld --hash-style in the ld testsuite 2017-08-07 22:10:51 +09:30
pie1.s i386: Add tests for PIE with undefined weak symbol 2017-07-17 12:42:32 -07:00
plt2.dd x86: Generate PLT relocations for -z now 2017-05-11 07:45:59 -07:00
plt2.rd x86: Generate PLT relocations for -z now 2017-05-11 07:45:59 -07:00
plt2.s i386: Improve PLT generation and synthetic PLT symbols 2017-05-08 10:11:32 -07:00
plt-lib.c
plt-main1.c
plt-main1.rd
plt-main2.c
plt-main2.rd
plt-main3.c
plt-main3.rd
plt-main4.c
plt-main4.rd
plt-main5.c
plt-main-ibt.dd x86: Support Intel IBT with IBT property and IBT-enable PLT 2017-06-22 05:44:53 -07:00
plt-main.out
plt-main.rd
plt-nacl.pd
plt-pic2.dd Support different ld --hash-style in the ld testsuite 2017-08-07 22:10:51 +09:30
plt-pic-nacl.pd
plt-pic.pd
plt-pic.s
plt-pie-ibt.dd x86: Support Intel IBT with IBT property and IBT-enable PLT 2017-06-22 05:44:53 -07:00
plt.pd
plt.s
pltgot-1.d
pltgot-1.s
pltgot-2.d
pltlib.s
pr12570a.d i386: Skip pr12570 tests for nacl targets 2017-04-24 09:46:04 -07:00
pr12570a.s
pr12570b.d i386: Skip pr12570 tests for nacl targets 2017-04-24 09:46:04 -07:00
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 x86: Generate PLT relocations for -z now 2017-05-11 07:45:59 -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
pr18801.s
pr18815.d
pr18815.s
pr18900.out
pr18900a.c
pr18900a.rd
pr18900b.c
pr18900b.rd
pr18900c.c
pr19031.out
pr19031a.c
pr19031b.S
pr19031c.c
pr19175.d
pr19175.s
pr19175.t
pr19319.dd
pr19319a.S
pr19319b.S
pr19539.d
pr19539.s
pr19539.t Fix the linker so that it will not silently generate ELF binaries with invalid program headers. Fix readelf to report such invalid binaries. 2016-11-23 11:10:39 +00:00
pr19609-1.s
pr19609-1a.d
pr19609-1b.d
pr19609-1c.d
pr19609-1d.d
pr19609-1e.d
pr19609-1f.d
pr19609-1g.d
pr19609-1h.d
pr19609-1i.d
pr19609-2.s
pr19609-2a.d
pr19609-2b.d
pr19609-2c.d
pr19615.d
pr19615.s
pr19636-1.s
pr19636-1a.d
pr19636-1b.d
pr19636-1c.d
pr19636-1d-nacl.d
pr19636-1d.d Support different ld --hash-style in the ld testsuite 2017-08-07 22:10:51 +09:30
pr19636-1e.d
pr19636-1f.d
pr19636-1g.d
pr19636-1h.d
pr19636-1i.d
pr19636-2.s
pr19636-2a.d
pr19636-2b.d Support different ld --hash-style in the ld testsuite 2017-08-07 22:10:51 +09:30
pr19636-2c-nacl.d
pr19636-2c.d Support different ld --hash-style in the ld testsuite 2017-08-07 22:10:51 +09:30
pr19636-2d-nacl.d
pr19636-2d.d
pr19636-2e-nacl.d
pr19636-2e.d
pr19636-3.s
pr19636-3a.d
pr19636-3b.d
pr19636-3c.d
pr19636-3d.d
pr19636-3e.d
pr19636-3f.d
pr19636-3g.d
pr19636-4.s
pr19636-4a.d
pr19636-4b.d
pr19636-4c.d
pr19636-4d.d Require --no-dynamic-linker with -static -E/--dynamic-list 2017-04-21 12:01:05 -07:00
pr19645.d
pr19645.s
pr19704.out
pr19704a.c
pr19704b.c
pr19827-nacl.rd
pr19827.rd
pr19827a.S
pr19827b.S
pr19939.s
pr19939a.d
pr19939b.d
pr20117.d
pr20117.s
pr20244-1.s
pr20244-1a.d
pr20244-1b.d
pr20244-1c.d
pr20244-2.s
pr20244-2a.d
pr20244-2b.d
pr20244-2c.d
pr20244-2d.d
pr20244-3a.c
pr20244-3b.S
pr20244-3c.S
pr20244-3d.S
pr20244-4.s Add a test for R_386_GOT32/R_386_GOT32X IFUNC reloc error 2017-02-15 11:11:40 -08:00
pr20244-4a.d Add a test for R_386_GOT32/R_386_GOT32X IFUNC reloc error 2017-02-15 11:11:40 -08:00
pr20244-4b.d Add a test for R_386_GOT32/R_386_GOT32X IFUNC reloc error 2017-02-15 11:11:40 -08:00
pr20244-4c.d Add a test for R_386_GOT32/R_386_GOT32X IFUNC reloc error 2017-02-15 11:11:40 -08:00
pr20253-1a.c
pr20253-1b.S
pr20253-1c.S
pr20253-1d.S
pr20253-2a.c
pr20253-2b.S
pr20253-2c.S
pr20253-2d.S
pr20253-3.d
pr20253-3.s
pr20253-4.s
pr20253-4a.d
pr20253-4b.d
pr20253-4c.d
pr20253-5.d
pr20253-5.s
pr20515.d
pr20515.s
pr20830.d Support different ld --hash-style in the ld testsuite 2017-08-07 22:10:51 +09:30
pr20830.s i386/x86-64: Add unwind info for .plt.got section 2017-01-10 13:31:59 -08:00
pr21168a.c i386: Allow "lea foo@GOT, %reg" in PIC 2017-02-15 11:39:48 -08:00
pr21168b.S i386: Allow "lea foo@GOT, %reg" in PIC 2017-02-15 11:39:48 -08:00
pr21884-nacl.d ld: Restore linker scripts in PR ld/21884 tests 2017-08-13 05:41:37 -07:00
pr21884-nacl.t ld: Restore linker scripts in PR ld/21884 tests 2017-08-13 05:41:37 -07:00
pr21884.d ld: Restore linker scripts in PR ld/21884 tests 2017-08-13 05:41:37 -07:00
pr21884.t ld: Restore linker scripts in PR ld/21884 tests 2017-08-13 05:41:37 -07:00
pr21997-1a.S Disallow copy relocation against protected data symbol 2017-08-26 19:26:21 -07:00
pr21997-1b.c Disallow copy relocation against protected data symbol 2017-08-26 19:26:21 -07:00
pr21997-1c.S Disallow copy relocation against protected data symbol 2017-08-26 19:26:21 -07:00
pr22001-1a.c x86-64: Check relocations with -z nocopyreloc 2017-08-24 06:34:38 -07:00
pr22001-1b.c x86-64: Check relocations with -z nocopyreloc 2017-08-24 06:34:38 -07:00
pr22001-1c.S x86-64: Check relocations with -z nocopyreloc 2017-08-24 06:34:38 -07:00
pr22115-1.s x86: Properly handle __ehdr_start 2017-09-09 05:05:29 -07:00
pr22115-1a.d x86: Properly handle __ehdr_start 2017-09-09 05:05:29 -07:00
pr22115-1b.d x86: Properly handle __ehdr_start 2017-09-09 05:05:29 -07:00
pr22115-1c.d x86: Properly handle __ehdr_start 2017-09-09 05:05:29 -07:00
pr22115-1d.d x86: Properly handle __ehdr_start 2017-09-09 05:05:29 -07:00
property-1.r ld: Support ELF GNU program properties 2017-04-03 08:08:27 -07:00
property-2.r ld: Support ELF GNU program properties 2017-04-03 08:08:27 -07:00
property-3.r ld: Support ELF GNU program properties 2017-04-03 08:08:27 -07:00
property-4.r ld: Support ELF GNU program properties 2017-04-03 08:08:27 -07:00
property-5.r ld: Support ELF GNU program properties 2017-04-03 08:08:27 -07:00
property-6.r ld: Support ELF GNU program properties 2017-04-03 08:08:27 -07:00
property-6a.c ld: Support ELF GNU program properties 2017-04-03 08:08:27 -07:00
property-6b.c ld: Support ELF GNU program properties 2017-04-03 08:08:27 -07:00
property-6c.S ld: Support ELF GNU program properties 2017-04-03 08:08:27 -07:00
property-7.r ld: Support ELF GNU program properties 2017-04-03 08:08:27 -07:00
property-no-copy.S ld: Support ELF GNU program properties 2017-04-03 08:08:27 -07:00
property-stack.S ld: Support ELF GNU program properties 2017-04-03 08:08:27 -07:00
property-unsorted-1.S ld: Support ELF GNU program properties 2017-04-03 08:08:27 -07:00
property-unsorted-2.S ld: Support ELF GNU program properties 2017-04-03 08:08:27 -07:00
property-x86-1.S ld: Support ELF GNU program properties 2017-04-03 08:08:27 -07:00
property-x86-2.S ld: Support ELF GNU program properties 2017-04-03 08:08:27 -07:00
property-x86-3.d x86: Merge X86_ISA_1_USED/X86_ISA_1_NEEDED properties 2017-05-12 08:07:43 -07:00
property-x86-3.s x86: Merge X86_ISA_1_USED/X86_ISA_1_NEEDED properties 2017-05-12 08:07:43 -07:00
property-x86-4a.d x86: Add GC testcases with property sections 2017-05-19 08:45:24 -07:00
property-x86-4a.s x86: Add GC testcases with property sections 2017-05-19 08:45:24 -07:00
property-x86-4b.d x86: Add GC testcases with property sections 2017-05-19 08:45:24 -07:00
property-x86-4b.s x86: Add GC testcases with property sections 2017-05-19 08:45:24 -07:00
property-x86-empty.s x86: Support Intel IBT with IBT property and IBT-enable PLT 2017-06-22 05:44:53 -07:00
property-x86-ibt1a.d x86: Support Intel IBT with IBT property and IBT-enable PLT 2017-06-22 05:44:53 -07:00
property-x86-ibt1b.d x86: Support Intel IBT with IBT property and IBT-enable PLT 2017-06-22 05:44:53 -07:00
property-x86-ibt2.d x86: Support Intel IBT with IBT property and IBT-enable PLT 2017-06-22 05:44:53 -07:00
property-x86-ibt3a.d x86: Support Intel IBT with IBT property and IBT-enable PLT 2017-06-22 05:44:53 -07:00
property-x86-ibt3b.d x86: Support Intel IBT with IBT property and IBT-enable PLT 2017-06-22 05:44:53 -07:00
property-x86-ibt4.d x86: Support Intel IBT with IBT property and IBT-enable PLT 2017-06-22 05:44:53 -07:00
property-x86-ibt5.d x86: Support Intel IBT with IBT property and IBT-enable PLT 2017-06-22 05:44:53 -07:00
property-x86-ibt.s x86: Support Intel IBT with IBT property and IBT-enable PLT 2017-06-22 05:44:53 -07:00
property-x86-shstk1a.d x86: Support Intel Shadow Stack with SHSTK property 2017-06-22 05:50:31 -07:00
property-x86-shstk1b.d x86: Support Intel Shadow Stack with SHSTK property 2017-06-22 05:50:31 -07:00
property-x86-shstk2.d x86: Support Intel Shadow Stack with SHSTK property 2017-06-22 05:50:31 -07:00
property-x86-shstk3a.d x86: Support Intel Shadow Stack with SHSTK property 2017-06-22 05:50:31 -07:00
property-x86-shstk3b.d x86: Support Intel Shadow Stack with SHSTK property 2017-06-22 05:50:31 -07:00
property-x86-shstk4.d x86: Support Intel Shadow Stack with SHSTK property 2017-06-22 05:50:31 -07:00
property-x86-shstk5.d x86: Support Intel Shadow Stack with SHSTK property 2017-06-22 05:50:31 -07:00
property-x86-shstk.s x86: Support Intel Shadow Stack with SHSTK property 2017-06-22 05:50:31 -07: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
protected7.d x86: Clear extern_protected_data for GNU_PROPERTY_NO_COPY_ON_PROTECTED 2017-08-23 10:15:58 -07:00
protected7.s x86: Clear extern_protected_data for GNU_PROPERTY_NO_COPY_ON_PROTECTED 2017-08-23 10:15:58 -07:00
reloc.d
reloc.s
start.s
tls-def1.c
tls-gd1.S
tls-ld1.S
tls-main1.c
tls.exp x86: Add -Wl,--no-as-needed to some TLS tests 2017-05-02 16:01:39 -07:00
tlsbin2-nacl.rd
tlsbin2.dd
tlsbin2.rd
tlsbin2.sd
tlsbin2.td
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
tlsbinpic2.s
tlsbinpic.s
tlsdesc1a.c x86: Add run-time tests for -mtls-dialect=gnu2 2017-04-28 12:42:18 -07:00
tlsdesc1b.c x86: Add run-time tests for -mtls-dialect=gnu2 2017-04-28 12:42:18 -07:00
tlsdesc2.d x86: Add DT_PLTRELSZ/DT_PLTREL/DT_JMPREL for PLT relocation 2017-04-26 15:34:00 -07:00
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
tlsgd3.dd
tlsgd3.s
tlsgd4.d
tlsgd4.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
tlsld2.dd
tlsld2.s
tlslib.s
tlsnopic1.s
tlsnopic2.s
tlsnopic-nacl.rd
tlsnopic.dd
tlsnopic.rd
tlsnopic.sd
tlspic1.s
tlspic2-nacl.rd
tlspic2.dd
tlspic2.rd
tlspic2.s
tlspic2.sd
tlspic2.td
tlspic3.s
tlspic-nacl.rd
tlspic.dd
tlspic.rd
tlspic.sd
tlspic.td
tlspie1.d
tlspie1.s
tlspie2.d
tlspie2.s
tlspie3.s
tlspie3a.d
tlspie3b.d
tlspie3c.d
undefweak.s
undefweaka.d
undefweakb.d
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 i386: Set ELF_MAXPAGESIZE to 0x1000 for VxWorks 2017-04-24 09:37:10 -07:00
warn1.d
warn1.s
weakundef1.c i386: Add hidden weak undefined tests 2017-06-22 15:13:15 -07:00
zero.s