binutils-gdb/ld/emulparams
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
..
aarch64elf32.sh ld/ChangeLog: 2013-11-21 11:17:50 -08:00
aarch64elf32b.sh
aarch64elf.sh aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
aarch64elfb.sh
aarch64fbsd.sh Add support for configuring an aarch64-freebsd target. 2015-04-02 15:07:27 +01:00
aarch64fbsdb.sh Add support for configuring an aarch64-freebsd target. 2015-04-02 15:07:27 +01:00
aarch64linux32.sh 2014-02-11 Andrew Pinski <apinski@cavium.com> 2014-02-11 11:16:30 -08:00
aarch64linux32b.sh 2014-02-11 Andrew Pinski <apinski@cavium.com> 2014-02-11 11:16:30 -08:00
aarch64linux.sh [AArch64] Define LP64 LE loader name. 2014-01-20 18:18:52 +00:00
aarch64linuxb.sh [AArch64] Define LP64 BE linker name. 2014-01-20 18:20:04 +00:00
aix5ppc.sh
aix5rs6.sh
aixppc.sh
aixrs6.sh
alpha.sh
alphavms.sh
arcelf.sh
arm_epoc_pe.sh
arm_wince_pe.sh
armaoutb.sh
armaoutl.sh
armcoff.sh
armelf_fbsd.sh * emulparams/armelf_fbsd.sh (TEXT_START_ADDR): Increase alignment to 64kB boundary like in armelf_linux.sh 2014-08-22 06:33:45 +02:00
armelf_linux_eabi.sh
armelf_linux.sh ld/ARM: Increase maximum page size to 64kB 2014-07-08 15:00:12 +01:00
armelf_nacl.sh
armelf_nbsd.sh
armelf_vxworks.sh
armelf.sh
armelfb_fbsd.sh ld/ARM: Add target arm*b-*-freebsd*, update target arm*-*-freebsd*. 2014-06-18 21:58:19 +02:00
armelfb_linux_eabi.sh
armelfb_linux.sh
armelfb_nacl.sh
armelfb_nbsd.sh
armelfb.sh
armnbsd.sh
armnto.sh
armpe.sh
armsymbian.sh
avr1.sh
avr2.sh
avr3.sh
avr4.sh
avr5.sh
avr6.sh
avr25.sh
avr31.sh
avr35.sh
avr51.sh
avrtiny.sh Add support for the AVR Tiny series of microcontrollers. 2014-07-01 10:20:17 +01:00
avrxmega1.sh
avrxmega2.sh
avrxmega3.sh
avrxmega4.sh
avrxmega5.sh
avrxmega6.sh
avrxmega7.sh
coff_i860.sh
coff_sparc.sh
crisaout.sh
criself.sh
crislinux.sh * emulparams/crislinux.sh (COMMONPAGESIZE): Define. 2014-01-10 01:25:26 +01:00
d10velf.sh
d30v_e.sh
d30v_o.sh
d30velf.sh
delta68.sh
elf32_dlx.sh
elf32_i860.sh
elf32_i960.sh
elf32_sparc_sol2.sh
elf32_sparc_vxworks.sh
elf32_sparc.sh
elf32_spu.sh
elf32_tic6x_be.sh
elf32_tic6x_elf_be.sh
elf32_tic6x_elf_le.sh
elf32_tic6x_le.sh Prevent multiple definitions for _HEAP_START, _HEAP_MAX, and _STACK_START when performing a relocatable link with a tic6x target. 2015-04-01 11:29:46 +01:00
elf32_tic6x_linux_be.sh
elf32_tic6x_linux_le.sh
elf32_x86_64_nacl.sh
elf32_x86_64.sh Add -z noextern-protected-data to ld for ELF/x86 2015-04-14 04:13:11 -07:00
elf32am33lin.sh
elf32b4300.sh
elf32bfin.sh fix 2014-05-28 ld Makefile.am changes 2014-06-02 14:52:52 +09:30
elf32bfinfd.sh fix 2014-05-28 ld Makefile.am changes 2014-06-02 14:52:52 +09:30
elf32bmip.sh [MIPS] Implement O32 FPXX, FP64 and FP64A ABI extensions 2014-07-29 11:27:59 +01:00
elf32bmipn32-defs.sh Skip empty EMULATION_NAME 2015-04-08 09:46:50 -07:00
elf32bmipn32.sh strip off +x bits on non-executable/script files 2013-12-07 02:03:03 -05:00
elf32bsmip.sh
elf32btsmip_fbsd.sh
elf32btsmip.sh
elf32btsmipn32_fbsd.sh
elf32btsmipn32.sh
elf32cr16.sh
elf32cr16c.sh
elf32crx.sh
elf32ebmip.sh
elf32ebmipvxworks.sh
elf32elmip.sh
elf32elmipvxworks.sh
elf32epiphany_4x4.sh
elf32epiphany.sh
elf32fr30.sh strip off +x bits on non-executable/script files 2013-12-07 02:03:03 -05:00
elf32frv.sh strip off +x bits on non-executable/script files 2013-12-07 02:03:03 -05:00
elf32frvfd.sh
elf32ft32.sh FT32 initial support 2015-01-28 16:25:18 +10:30
elf32i370.sh
elf32ip2k.sh
elf32iq10.sh strip off +x bits on non-executable/script files 2013-12-07 02:03:03 -05:00
elf32iq2000.sh strip off +x bits on non-executable/script files 2013-12-07 02:03:03 -05:00
elf32l4300.sh
elf32lm32.sh
elf32lm32fd.sh
elf32lmip.sh
elf32lppc.sh
elf32lppclinux.sh
elf32lppcnto.sh
elf32lppcsim.sh
elf32lr5900.sh
elf32lr5900n32.sh
elf32lsmip.sh
elf32ltsmip_fbsd.sh
elf32ltsmip.sh
elf32ltsmipn32_fbsd.sh
elf32ltsmipn32.sh
elf32m32c.sh
elf32mb_linux.sh
elf32mbel_linux.sh
elf32mcore.sh
elf32mep.sh strip off +x bits on non-executable/script files 2013-12-07 02:03:03 -05:00
elf32metag.sh
elf32microblaze.sh
elf32microblazeel.sh
elf32mipswindiss.sh
elf32moxie.sh
elf32mt.sh
elf32or1k_linux.sh or1k: increase linux TEXT_START_ADDR to 0x2000 2014-07-17 00:26:45 +03:00
elf32or1k.sh Remove support for the (deprecated) openrisc and or32 configurations and replace 2014-04-22 15:57:47 +01:00
elf32ppc_fbsd.sh
elf32ppc.sh
elf32ppccommon.sh Rewrite ppc32 backend .sdata and .sdata2 handling 2014-05-20 13:13:23 +09:30
elf32ppclinux.sh
elf32ppcnto.sh
elf32ppcsim.sh
elf32ppcvxworks.sh Fix ELF ppc32 targets that don't use ppc32elf.em 2014-02-27 23:39:01 +10:30
elf32ppcwindiss.sh
elf32rl78.sh
elf32rx.sh
elf32tilegx_be.sh
elf32tilegx.sh
elf32tilepro.sh
elf32vax.sh
elf32visium.sh Add Visium support to ld 2014-12-06 16:45:22 +01:00
elf32xc16x.sh
elf32xc16xl.sh
elf32xc16xs.sh
elf32xstormy16.sh
elf32xtensa.sh
elf64_aix.sh
elf64_ia64_fbsd.sh
elf64_ia64_vms.sh
elf64_ia64.sh
elf64_s390.sh
elf64_sparc_fbsd.sh
elf64_sparc_sol2.sh
elf64_sparc.sh
elf64alpha_fbsd.sh
elf64alpha_nbsd.sh
elf64alpha.sh
elf64bmip-defs.sh [MIPS] Implement O32 FPXX, FP64 and FP64A ABI extensions 2014-07-29 11:27:59 +01:00
elf64bmip.sh strip off +x bits on non-executable/script files 2013-12-07 02:03:03 -05:00
elf64btsmip_fbsd.sh
elf64btsmip.sh
elf64hppa.sh strip off +x bits on non-executable/script files 2013-12-07 02:03:03 -05:00
elf64lppc.sh
elf64ltsmip_fbsd.sh
elf64ltsmip.sh
elf64mmix.sh
elf64ppc_fbsd.sh
elf64ppc.sh PowerPC64 changes for xlc 2015-01-28 18:30:54 +10:30
elf64rdos.sh
elf64tilegx_be.sh
elf64tilegx.sh
elf_fbsd.sh
elf_i386_be.sh Add -z noextern-protected-data to ld for ELF/x86 2015-04-14 04:13:11 -07:00
elf_i386_chaos.sh Add -z noextern-protected-data to ld for ELF/x86 2015-04-14 04:13:11 -07:00
elf_i386_fbsd.sh
elf_i386_ldso.sh Add -z noextern-protected-data to ld for ELF/x86 2015-04-14 04:13:11 -07:00
elf_i386_nacl.sh
elf_i386_sol2.sh
elf_i386_vxworks.sh Add -z noextern-protected-data to ld for ELF/x86 2015-04-14 04:13:11 -07:00
elf_i386.sh Add -z noextern-protected-data to ld for ELF/x86 2015-04-14 04:13:11 -07:00
elf_k1om_fbsd.sh
elf_k1om.sh Add -z noextern-protected-data to ld for ELF/x86 2015-04-14 04:13:11 -07:00
elf_l1om_fbsd.sh
elf_l1om.sh Add -z noextern-protected-data to ld for ELF/x86 2015-04-14 04:13:11 -07:00
elf_nacl.sh
elf_s390.sh
elf_x86_64_cloudabi.sh Add support for Nuxi CloudABI on x86-64 2015-03-31 08:11:08 -07:00
elf_x86_64_fbsd.sh
elf_x86_64_nacl.sh
elf_x86_64_sol2.sh
elf_x86_64.sh Add -z noextern-protected-data to ld for ELF/x86 2015-04-14 04:13:11 -07:00
extern_protected_data.sh Add -z noextern-protected-data to ld for ELF/x86 2015-04-14 04:13:11 -07:00
gld960.sh
gld960coff.sh
h8300.sh
h8300elf_linux.sh Add support for the h8300-linux target. 2015-02-23 17:04:53 +00:00
h8300elf.sh
h8300h.sh
h8300helf_linux.sh Add support for the h8300-linux target. 2015-02-23 17:04:53 +00:00
h8300helf.sh
h8300hn.sh
h8300hnelf.sh
h8300s.sh
h8300self_linux.sh Add support for the h8300-linux target. 2015-02-23 17:04:53 +00:00
h8300self.sh
h8300sn.sh
h8300snelf.sh
h8300sx.sh
h8300sxelf_linux.sh Add support for the h8300-linux target. 2015-02-23 17:04:53 +00:00
h8300sxelf.sh
h8300sxn.sh
h8300sxnelf.sh
h8500.sh
h8500b.sh
h8500c.sh
h8500m.sh
h8500s.sh
hp3hpux.sh
hp300bsd.sh
hppa64linux.sh
hppaelf.sh
hppalinux.sh
hppanbsd.sh
hppaobsd.sh
i386aout.sh
i386beos.sh strip off +x bits on non-executable/script files 2013-12-07 02:03:03 -05:00
i386bsd.sh
i386coff.sh
i386go32.sh
i386linux.sh
i386lynx.sh
i386mach.sh
i386moss.sh
i386msdos.sh
i386nbsd.sh
i386nto.sh
i386nw.sh
i386pe_posix.sh
i386pe.sh Remove remaining default manifest support. 2014-04-09 17:12:30 +01:00
i386pep.sh Remove remaining default manifest support. 2014-04-09 17:12:30 +01:00
lnk960.sh
m32relf_linux.sh
m32relf.sh
m32rlelf_linux.sh
m32rlelf.sh
m68hc11elf.sh
m68hc11elfb.sh
m68hc12elf.sh
m68hc12elfb.sh
m68k4knbsd.sh
m68kaout.sh
m68kaux.sh
m68kcoff.sh
m68kelf.sh
m68kelfnbsd.sh
m68klinux.sh
m68knbsd.sh
m68kpsos.sh
m88kbcs.sh
mcorepe.sh
mmo.sh
mn10200.sh
mn10300.sh
moxiebox.sh Add moxiebox target 2014-07-27 08:51:20 -04:00
msp430.sh fix 2014-05-28 ld Makefile.am changes 2014-06-02 14:52:52 +09:30
msp430X.sh fix 2014-05-28 ld Makefile.am changes 2014-06-02 14:52:52 +09:30
nds32belf16m.sh Add support for Andes NDS32: 2013-12-13 11:52:32 +00:00
nds32belf_linux.sh Add support for Andes NDS32: 2013-12-13 11:52:32 +00:00
nds32belf.sh Add support for Andes NDS32: 2013-12-13 11:52:32 +00:00
nds32elf16m.sh Allow ld target customiser script to force on disk scripts. 2014-01-17 10:41:49 +10:30
nds32elf_linux.sh Allow ld target customiser script to force on disk scripts. 2014-01-17 10:41:49 +10:30
nds32elf.sh Allow ld target customiser script to force on disk scripts. 2014-01-17 10:41:49 +10:30
news.sh
nios2elf.sh Nios II CALL26 linker relaxation 2014-01-30 17:47:07 -08:00
nios2linux.sh 2014-05-11 Chung-Lin Tang <cltang@codesourcery.com> 2014-05-11 10:04:45 -07:00
ns32knbsd.sh
pc532macha.sh
pdp11.sh
pjelf.sh
pjlelf.sh
plt_unwind.sh Add ld_list_options 2015-04-08 04:55:23 -07:00
ppclynx.sh
ppcmacos.sh
ppcnw.sh
ppcpe.sh
README ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
riscix.sh
score3_elf.sh fix 2014-05-28 ld Makefile.am changes 2014-06-02 14:52:52 +09:30
score7_elf.sh fix 2014-05-28 ld Makefile.am changes 2014-06-02 14:52:52 +09:30
sh.sh
shelf32_linux.sh
shelf32_nbsd.sh
shelf32.sh
shelf64_nbsd.sh
shelf64.sh
shelf_fd.sh
shelf_linux.sh
shelf_nbsd.sh
shelf_nto.sh
shelf_uclinux.sh
shelf_vxworks.sh
shelf.sh
shl.sh
shlelf32_linux.sh
shlelf32_nbsd.sh
shlelf32.sh
shlelf64_nbsd.sh
shlelf64.sh
shlelf_fd.sh
shlelf_linux.sh
shlelf_nbsd.sh
shlelf_nto.sh
shlelf_vxworks.sh
shlelf.sh
shlsymbian.sh
shpe.sh
solaris2.sh
sparcaout.sh
sparclinux.sh
sparcnbsd.sh
st2000.sh
sun3.sh
sun4.sh
tic3xcoff_onchip.sh
tic3xcoff.sh
tic4xcoff.sh
tic30aout.sh
tic30coff.sh
tic54xcoff.sh
tic80coff.sh
v850_rh850.sh Adds support for generating notes in V850 binaries. 2015-02-24 17:54:09 +00:00
v850.sh Adds support for generating notes in V850 binaries. 2015-02-24 17:54:09 +00:00
vanilla.sh
vax.sh
vaxnbsd.sh
vsta.sh
vxworks.sh
w65.sh
xgateelf.sh
z80.sh
z8001.sh
z8002.sh

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

The files in this directory are read by genscripts.sh as shell commands.
They set parameters for the emulations.

Copyright (C) 2012-2015 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.