binutils-gdb/include
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
..
aout ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
cgen ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
coff Fixes a buffer overflow when compiling assembler for the MinGW targets. 2015-01-06 16:46:40 +00:00
elf Add support to the RX toolchain to restrict the use of string instructions. 2015-04-09 12:48:37 +01:00
gdb sim: ft32: new port 2015-03-28 02:12:33 -04:00
mach-o ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
nlm ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
opcode Extend arm_feature_set struct to provide more bits 2015-03-24 14:08:08 +08:00
som ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
vms ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
alloca-conf.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ansidecl.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
bfdlink.h Add -z noextern-protected-data to ld for ELF/x86 2015-04-14 04:13:11 -07:00
binary-io.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
bout.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ChangeLog Add -z noextern-protected-data to ld for ELF/x86 2015-04-14 04:13:11 -07:00
ChangeLog-9103 Add copyright notices 2012-12-10 12:48:03 +00:00
COPYING Update the address and phone number of the FSF organization 2005-05-10 10:21:13 +00:00
COPYING3 * COPYING3: New file. Contains version 3 of the GNU General Public License. 2007-07-17 13:50:23 +00:00
demangle.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
dis-asm.h FT32 initial support 2015-01-28 16:25:18 +10:30
dwarf2.def GCC5/DWARFv5 Handle DW_TAG_atomic_type for C11 _Atomic type qualifier. 2015-02-09 15:09:22 +01:00
dwarf2.h Recognize new DWARF5/GCC5 DW_LANG constants for Fortran 03 and Fortran 08. 2015-02-10 09:07:25 +01:00
dyn-string.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
fibheap.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
filenames.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
floatformat.h floatformat.h: Wrap in extern "C" 2015-02-19 22:44:44 +00:00
fnmatch.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
fopen-bin.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
fopen-same.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
fopen-vms.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
gcc-c-fe.def ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
gcc-c-interface.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
gcc-interface.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
getopt.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
hashtab.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
hp-symtab.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ieee.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
leb128.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
libiberty.h Merge include/libiberty.h from GCC 2015-01-14 22:15:02 +01:00
longlong.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
lto-symtab.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
MAINTAINERS ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
md5.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
oasys.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
objalloc.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
obstack.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
os9k.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
partition.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
plugin-api.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
progress.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
safe-ctype.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
sha1.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
simple-object.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
sort.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
splay-tree.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
symcat.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
timeval-utils.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
vtv-change-permission.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
xregex2.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
xregex.h merge from gcc 2011-07-25 17:11:48 +00:00
xtensa-config.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
xtensa-isa-internal.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
xtensa-isa.h ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30