binutils-gdb/ld/testsuite/ld-x86-64
H.J. Lu 889c2a6796 Add -z noextern-protected-data to ld for ELF/x86
Address of protected data defined in the shared library may be external,
i.e., due to copy relocation.  By default, linker backend checks if
relocations against protected data symbols are valid for building shared
library and issues an error if relocation isn't allowed.  The new option
override linker backend default.  When -z noextern-protected-data is used,
updates on protected data symbols by another module won't be visibile
to the resulting shared library.  This option is specific to ELF/i386
and ELF/x86-64.

bfd/

	PR ld/pr17709
	* elflink.c (_bfd_elf_adjust_dynamic_copy): Check
	info->extern_protected_data when warning copy relocs against
	protected symbols.
	(_bfd_elf_symbol_refs_local_p): Check info->extern_protected_data
	when checking protected non-function symbols.

include/

	PR ld/pr17709
	* bfdlink.h (bfd_link_info): Add extern_protected_data.

ld/

	PR ld/pr17709
	* ld.texinfo: Document "-z noextern-protected-data".
	* ldmain.c (main): Initialize link_info.extern_protected_data
	to -1.
	* lexsup.c (elf_shlib_list_options): Add
	"-z [no]extern-protected-data".
	* emulparams/elf32_x86_64.sh: Source extern_protected_data.sh.
	* emulparams/elf_i386.sh: Likewise.
	* emulparams/elf_i386_be.sh: Likewise.
	* emulparams/elf_i386_chaos.sh: Likewise.
	* emulparams/elf_i386_ldso.sh: Likewise.
	* emulparams/elf_i386_vxworks.sh: Likewise.
	* emulparams/elf_k1om.sh: Likewise.
	* emulparams/elf_l1om.sh: Likewise.
	* emulparams/elf_x86_64.sh: Source extern_protected_data.sh.
	(PARSE_AND_LIST_OPTIONS): Renamed to ...
	(PARSE_AND_LIST_OPTIONS_BNDPLT): This.
	(PARSE_AND_LIST_ARGS_CASE_Z): Renamed to ...
	(PARSE_AND_LIST_ARGS_CASE_Z_BNDPLT): This.
	(PARSE_AND_LIST_OPTIONS): Append $PARSE_AND_LIST_OPTIONS_BNDPLT.
	(PARSE_AND_LIST_ARGS_CASE_Z): Append
	$PARSE_AND_LIST_ARGS_CASE_Z_BNDPLT.
	* emulparams/extern_protected_data.sh: New file.

ld/testsuite/

	PR ld/pr17709
	* ld-i386/i386.exp: Run protected6b.
	* ld-i386/protected6b.d: New file.
	* ld-x86-64/protected6b.d: Likewise.
	* ld-x86-64/x86-64.exp:  Run protected6b.
2015-04-14 04:13:11 -07:00
..
32bit.s
64bit.s
abs-k1om.d
abs-l1om.d
abs.d
bnd-branch-1.d Add bnd-branch-1 test 2013-11-21 04:53:05 -08:00
bnd-branch-1.s Add bnd-branch-1 test 2013-11-21 04:53:05 -08:00
bnd-ifunc-1.d Add -z bndplt to generate BND prefix in PLT entries 2014-11-18 05:40:17 -08:00
bnd-ifunc-1.s Create the second PLT for BND relocations 2014-02-19 11:48:23 -08:00
bnd-ifunc-2.d Add -z bndplt to generate BND prefix in PLT entries 2014-11-18 05:40:17 -08:00
bnd-ifunc-2.s Properly match PLT entry against .got.plt relocation 2014-07-16 10:57:49 -07:00
bnd-plt-1.d Add -z bndplt to generate BND prefix in PLT entries 2014-11-18 05:40:17 -08:00
compressed1.d Use nm/readelf with "failif" 2015-02-19 04:45:27 -08:00
compressed1.s
copyreloc-lib.c X86-64: Allow copy relocs for building PIE 2014-12-02 15:19:25 -08:00
copyreloc-main1.rd X86-64: Allow copy relocs for building PIE 2014-12-02 15:19:25 -08:00
copyreloc-main2.rd X86-64: Allow copy relocs for building PIE 2014-12-02 15:19:25 -08:00
copyreloc-main.out X86-64: Allow copy relocs for building PIE 2014-12-02 15:19:25 -08:00
copyreloc-main.S Replace copyreloc-main.c with copyreloc-main.S 2014-12-03 08:52:00 -08:00
discarded1.d
discarded1.s
discarded1.t
dummy.s
dwarfreloc1.s
dwarfreloc2.s
dwarfreloc.exp ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
dwarfreloc.rd
export-class.exp ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
foo.s
gotplt1.d Add assembler support for @gotplt 2014-11-13 11:09:40 -08:00
gotplt1.s Add assembler support for @gotplt 2014-11-13 11:09:40 -08:00
hidden1.d
hidden1.s
hidden2.d
hidden2.s
hidden3.d
hidden3.s
hidden4.d Replace SYMBOLIC_BIND with SYMBOL_REFERENCES_LOCAL 2015-04-11 07:56:48 -07:00
hidden4.s Replace SYMBOLIC_BIND with SYMBOL_REFERENCES_LOCAL 2015-04-11 07:56:48 -07:00
hidden5.d Replace SYMBOLIC_BIND with SYMBOL_REFERENCES_LOCAL 2015-04-11 07:56:48 -07:00
hidden5.s Replace SYMBOLIC_BIND with SYMBOL_REFERENCES_LOCAL 2015-04-11 07:56:48 -07:00
ia32-1.d
ia32-2.d bfd/ 2013-08-26 22:18:07 +00:00
ia32-3.d bfd/ 2013-08-26 22:18:07 +00:00
ilp32-1.d
ilp32-2.d Set CPU type in BFD backend for x86_64-nacl* and i?86-nacl* targets 2013-11-07 10:00:32 -08:00
ilp32-3.d Set CPU type in BFD backend for x86_64-nacl* and i?86-nacl* targets 2013-11-07 10:00:32 -08:00
ilp32-4-nacl.d bfd/ 2013-08-26 19:27:25 +00:00
ilp32-4.d Move ELF section headers to end of object file 2014-09-11 00:15:51 +09:30
ilp32-4.s
ilp32-5.d
ilp32-5.s
ilp32-6.d
ilp32-6.s
ilp32-7.d
ilp32-7.s
ilp32-8.d
ilp32-8.s
ilp32-9.d
ilp32-9.s
ilp32-10.d
ilp32-10.s
ilp32-11.d
ilp32-11.s
incompatible.l
lea1.s
lea1a.d
lea1b.d
lea1c.d
lea1d.d
lea1e.d
lea1f.d
lea1g.d
lea1h.d
lea1i.d
lea1j.d
lea1k.d
lea1l.d
line.exp ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
lp64-1.d
lp64-2.d Set CPU type in BFD backend for x86_64-nacl* and i?86-nacl* targets 2013-11-07 10:00:32 -08:00
lp64-3.d Set CPU type in BFD backend for x86_64-nacl* and i?86-nacl* targets 2013-11-07 10:00:32 -08:00
mixed1a.s
mixed1b.s
mixed2a.s
mixed2b.s
mov1.s
mov1a.d
mov1b.d
mov1c.d
mov1d.d
mpx1.out Add R_X86_64_PC32_BND and R_X86_64_PLT32_BND 2013-11-17 08:57:56 -08:00
mpx1a.c Add R_X86_64_PC32_BND and R_X86_64_PLT32_BND 2013-11-17 08:57:56 -08:00
mpx1a.rd Add -z bndplt to generate BND prefix in PLT entries 2014-11-18 05:40:17 -08:00
mpx1b.c Add R_X86_64_PC32_BND and R_X86_64_PLT32_BND 2013-11-17 08:57:56 -08:00
mpx1c.c Add R_X86_64_PC32_BND and R_X86_64_PLT32_BND 2013-11-17 08:57:56 -08:00
mpx1c.rd Add -z bndplt to generate BND prefix in PLT entries 2014-11-18 05:40:17 -08:00
mpx2.out Add mpx1static, mpx2 and mpx2static tests 2013-11-20 12:35:10 -08:00
mpx2a.c Add mpx1static, mpx2 and mpx2static tests 2013-11-20 12:35:10 -08:00
mpx2a.rd Add -z bndplt to generate BND prefix in PLT entries 2014-11-18 05:40:17 -08:00
mpx2b.c Add mpx1static, mpx2 and mpx2static tests 2013-11-20 12:35:10 -08:00
mpx2c.c Add mpx1static, mpx2 and mpx2static tests 2013-11-20 12:35:10 -08:00
mpx2c.rd Add -z bndplt to generate BND prefix in PLT entries 2014-11-18 05:40:17 -08:00
mpx3.dd Add -z bndplt to generate BND prefix in PLT entries 2014-11-18 05:40:17 -08:00
mpx3a.s Add -z bndplt to generate BND prefix in PLT entries 2014-11-18 05:40:17 -08:00
mpx3b.s Add -z bndplt to generate BND prefix in PLT entries 2014-11-18 05:40:17 -08:00
mpx4.dd Add -z bndplt to generate BND prefix in PLT entries 2014-11-18 05:40:17 -08:00
mpx4a.s Add -z bndplt to generate BND prefix in PLT entries 2014-11-18 05:40:17 -08:00
mpx4b.s Add -z bndplt to generate BND prefix in PLT entries 2014-11-18 05:40:17 -08:00
mpx.exp ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
nogot1.d
nogot1.s
nogot2.d
nogot2.s
pcrel8.d
pcrel16.d
pie1.d Use nm/readelf with "failif" 2015-02-19 04:45:27 -08:00
pie1.s Don't complain about -fPIC for undefined symbol 2015-01-15 11:08:59 -08:00
plt-lib.c Add function and function pointer tests 2014-11-20 12:41:11 -08:00
plt-main1.c Add function and function pointer tests 2014-11-20 12:41:11 -08:00
plt-main1.rd Update plt-main tests for x32 2014-11-20 13:29:41 -08:00
plt-main2.c Add function and function pointer tests 2014-11-20 12:41:11 -08:00
plt-main2.rd Update plt-main tests for x32 2014-11-20 13:29:41 -08:00
plt-main3.c Add function and function pointer tests 2014-11-20 12:41:11 -08:00
plt-main3.rd Update plt-main tests for x32 2014-11-20 13:29:41 -08:00
plt-main4.c Add function and function pointer tests 2014-11-20 12:41:11 -08:00
plt-main4.rd Update plt-main tests for x32 2014-11-20 13:29:41 -08:00
plt-main5.c Add function and function pointer tests 2014-11-20 12:41:11 -08:00
plt-main-bnd.dd Optimize out i386/x86-64 JUMP_SLOT relocation 2014-11-25 05:05:39 -08:00
plt-main.out Add function and function pointer tests 2014-11-20 12:41:11 -08:00
plt-main.rd Optimize out i386/x86-64 JUMP_SLOT relocation 2014-11-25 05:05:39 -08:00
plt-nacl.pd Properly display extra data/address size prefixes 2014-05-09 10:58:00 -07:00
plt-pic.s
plt.pd
plt.s
pltlib.s
pr12570a.d
pr12570a.s
pr12570b.d
pr12570b.s
pr12718.d
pr12718.s
pr12921.d
pr12921.s
pr13082-1.s
pr13082-1a.d
pr13082-1b.d
pr13082-2.s
pr13082-2a.d
pr13082-2b.d
pr13082-3.s
pr13082-3a.d
pr13082-3b.d
pr13082-4.s
pr13082-4a.d
pr13082-4b.d
pr13082-5.s
pr13082-5a.d
pr13082-5b.d
pr13082-6.s
pr13082-6a.d
pr13082-6b.d
pr13947.d
pr13947.s
pr14207.d ld/x86-64: adjust pr14207 test expectations 2015-01-08 14:10:36 +01:00
pr14207.s
pr14215.d
pr14215.s
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
pr17618.d Don't run pr17618 test on x32 2014-11-20 13:38:31 -08:00
pr17618.s Check PC-relative offset overflow in PLT entry 2014-11-18 11:04:46 -08:00
pr17689.out Only discard space for pc-relative relocs symbols 2015-01-11 08:04:27 -08:00
pr17689.rd Handle weak alias for PIE with copy reloc 2014-12-13 23:39:56 -08:00
pr17689a.c Handle weak alias for PIE with copy reloc 2014-12-13 23:39:56 -08:00
pr17689b.S Only discard space for pc-relative relocs symbols 2015-01-11 08:04:27 -08: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 Only discard space for pc-relative relocs symbols 2015-01-11 08:04:27 -08: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
pr18160.d Don't run ld-x86-64/pr18160.d for x86_64-*-nacl* 2015-03-27 14:40:43 -07:00
pr18160.s Skip gc-sections if relocation is incompatible 2015-03-26 08:22:55 -07:00
pr18160.t Skip gc-sections if relocation is incompatible 2015-03-26 08:22:55 -07:00
pr18176.d Add a testcase for PR ld/18176 2015-04-01 04:24:24 -07:00
pr18176.s Add a testcase for PR ld/18176 2015-04-01 04:24:24 -07:00
pr18176.t Add a testcase for PR ld/18176 2015-04-01 04:24:24 -07:00
protected1.d
protected1.s
protected2-k1om.d
protected2-l1om.d
protected2.d
protected2.s
protected3-k1om.d
protected3-l1om.d
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
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
protected7.s Check GOTOFF reloc against protected data on x86 2015-04-10 14:02:23 -07:00
protected7a.d Check GOTOFF reloc against protected data on x86 2015-04-10 14:02:23 -07:00
protected7b.d Check GOTOFF reloc against protected data on x86 2015-04-10 14:02:23 -07:00
simple.c
split-by-file1.s
split-by-file2.s
split-by-file-nacl.rd Move ELF section headers to end of object file 2014-09-11 00:15:51 +09:30
split-by-file.rd Move ELF section headers to end of object file 2014-09-11 00:15:51 +09:30
start.s
tlsbin-nacl.rd Properly place the NULL STT_FILE symbol 2015-02-16 04:54:45 -08:00
tlsbin.dd Properly display extra data/address size prefixes 2014-05-09 10:58:00 -07:00
tlsbin.rd Properly place the NULL STT_FILE symbol 2015-02-16 04:54:45 -08:00
tlsbin.s
tlsbin.sd
tlsbin.td
tlsbindesc-nacl.rd Properly place the NULL STT_FILE symbol 2015-02-16 04:54:45 -08:00
tlsbindesc.dd
tlsbindesc.rd Properly place the NULL STT_FILE symbol 2015-02-16 04:54:45 -08:00
tlsbindesc.s
tlsbindesc.sd
tlsbindesc.td
tlsbinpic.s
tlsdesc-nacl.pd Properly match PLT entry against .got.plt relocation 2014-07-16 10:57:49 -07:00
tlsdesc-nacl.rd Properly place the NULL STT_FILE symbol revistited 2015-02-18 00:31:52 +10:30
tlsdesc.dd
tlsdesc.pd Properly match PLT entry against .got.plt relocation 2014-07-16 10:57:49 -07:00
tlsdesc.rd Properly place the NULL STT_FILE symbol revistited 2015-02-18 00:31:52 +10:30
tlsdesc.s
tlsdesc.sd
tlsdesc.td
tlsg.s Handle R_X86_64_DTPOFF64 2013-06-28 15:07:55 +00:00
tlsg.sd Adjust ld-x86-64/tlsg.sd 2013-07-01 16:17:11 +00:00
tlsgd1.dd
tlsgd1.s
tlsgd2.d
tlsgd2.s
tlsgd3.d
tlsgd3.s
tlsgd4.dd
tlsgd4.s
tlsgd5.dd
tlsgd5a.s
tlsgd5b.s
tlsgd6.dd
tlsgd6a.s
tlsgd6b.s
tlsgd7.dd * elf64-x86-64.c (elf_x86_64_check_tls_transition): Allow 2013-08-29 10:25:27 +00:00
tlsgd7.s * elf64-x86-64.c (elf_x86_64_check_tls_transition): Allow 2013-08-29 10:25:27 +00:00
tlsgd8.dd * elf64-x86-64.c (elf_x86_64_check_tls_transition): Allow 2013-08-29 10:25:27 +00:00
tlsgd8.s * elf64-x86-64.c (elf_x86_64_check_tls_transition): Allow 2013-08-29 10:25:27 +00:00
tlsgdesc-nacl.rd
tlsgdesc.dd Properly display extra data/address size prefixes 2014-05-09 10:58:00 -07:00
tlsgdesc.rd
tlsgdesc.s
tlsie1.dd
tlsie1.s
tlsie2.d
tlsie2.s
tlsie3.d
tlsie3.s
tlsie4.dd X32: Add REX prefix to encode R_X86_64_GOTTPOFF 2014-11-07 12:22:53 -08:00
tlsie4.s
tlsld1.dd Properly display extra data/address size prefixes 2014-05-09 10:58:00 -07:00
tlsld1.s
tlsld2.dd
tlsld2.s
tlsld3.dd Properly display extra data/address size prefixes 2014-05-09 10:58:00 -07:00
tlsld3.s * elf64-x86-64.c (elf_x86_64_check_tls_transition): Allow 2013-08-29 10:25:27 +00:00
tlsle1.d
tlsle1.s
tlslib.s
tlspic1.s * elf64-x86-64.c (elf_x86_64_check_tls_transition): Allow 2013-08-29 10:25:27 +00:00
tlspic2.s
tlspic-nacl.rd Properly place the NULL STT_FILE symbol revistited 2015-02-18 00:31:52 +10:30
tlspic.dd Properly display extra data/address size prefixes 2014-05-09 10:58:00 -07:00
tlspic.rd Properly place the NULL STT_FILE symbol revistited 2015-02-18 00:31:52 +10:30
tlspic.sd
tlspic.td
tlspie1.d
tlspie1.s
undefined.s
unique1.d
unique1.s
x86-64-64-export-class.rd
x86-64-x32-export-class.rd
x86-64-x32.rd
x86-64.exp Add -z noextern-protected-data to ld for ELF/x86 2015-04-14 04:13:11 -07:00