binutils-gdb/ld/emulparams
H.J. Lu 0ff2b86e7c Create the second PLT for BND relocations
Intel MPX introduces 4 bound registers, which will be used for parameter
passing in x86-64.  Bound registers are cleared by branch instructions.
Branch instructions with BND prefix will keep bound register contents.
This leads to 2 requirements to 64-bit MPX run-time:

1. Dynamic linker (ld.so) should save and restore bound registers during
symbol lookup.
2. Change the current 16-byte PLT0:

  ff 35 08 00 00 00	pushq  GOT+8(%rip)
  ff 25 00 10 00	jmpq  *GOT+16(%rip)
  0f 1f 40 00		nopl   0x0(%rax)

and 16-byte PLT1:

  ff 25 00 00 00 00    	jmpq   *name@GOTPCREL(%rip)
  68 00 00 00 00       	pushq  $index
  e9 00 00 00 00       	jmpq   PLT0

which clear bound registers, to preserve bound registers.

We use 2 new relocations:

to mark branch instructions with BND prefix.

When linker sees any R_X86_64_PC32_BND or R_X86_64_PLT32_BND relocations,
it switches to a different PLT0:

  ff 35 08 00 00 00	pushq  GOT+8(%rip)
  f2 ff 25 00 10 00	bnd jmpq *GOT+16(%rip)
  0f 1f 00		nopl   (%rax)

to preserve bound registers for symbol lookup and it also creates an
external PLT section, .pl.bnd.  Linker will create a BND PLT1 entry
in .plt:

  68 00 00 00 00       	pushq  $index
  f2 e9 00 00 00 00     bnd jmpq PLT0
  0f 1f 44 00 00        nopl 0(%rax,%rax,1)

and a 8-byte BND PLT entry in .plt.bnd:

  f2 ff 25 00 00 00 00  bnd jmpq *name@GOTPCREL(%rip)
  90			nop

Otherwise, linker will create a legacy PLT1 entry in .plt:

  68 00 00 00 00       	pushq  $index
  e9 00 00 00 00        jmpq PLT0
  66 0f 1f 44 00 00     nopw 0(%rax,%rax,1)

and a 8-byte legacy PLT in .plt.bnd:

  ff 25 00 00 00 00     jmpq  *name@GOTPCREL(%rip)
  66 90                 xchg  %ax,%ax

The initial value of the GOT entry for "name" will be set to the the
"pushq" instruction in the corresponding entry in .plt.  Linker will
resolve reference of symbol "name" to the entry in the second PLT,
.plt.bnd.

Prelink stores the offset of pushq of PLT1 (plt_base + 0x10) in GOT[1]
and GOT[1] is stored in GOT[3].  We can undo prelink in GOT by computing
the corresponding the pushq offset with

GOT[1] + (GOT offset - &GOT[3]) * 2

Since for each entry in .plt except for PLT0 we create a 8-byte entry in
.plt.bnd, there is extra 8-byte per PLT symbol.

We also investigated the 16-byte entry for .plt.bnd.  We compared the
8-byte entry vs the the 16-byte entry for .plt.bnd on Sandy Bridge.
There are no performance differences in SPEC CPU 2000/2006 as well as
micro benchmarks.

Pros:
	No change to undo prelink in dynamic linker.
	Only 8-byte memory overhead for each PLT symbol.
Cons:
	Extra .plt.bnd section is needed.
	Extra 8 byte for legacy branches to PLT.
	GDB is unware of the new layout of .plt and .plt.bnd.

bfd/

	* elf64-x86-64.c (elf_x86_64_bnd_plt0_entry): New.
	(elf_x86_64_legacy_plt_entry): Likewise.
	(elf_x86_64_bnd_plt_entry): Likewise.
	(elf_x86_64_legacy_plt2_entry): Likewise.
	(elf_x86_64_bnd_plt2_entry): Likewise.
	(elf_x86_64_bnd_arch_bed): Likewise.
	(elf_x86_64_link_hash_entry): Add has_bnd_reloc and plt_bnd.
	(elf_x86_64_link_hash_table): Add plt_bnd.
	(elf_x86_64_link_hash_newfunc): Initialize has_bnd_reloc and
	plt_bnd.
	(elf_x86_64_copy_indirect_symbol): Also copy has_bnd_reloc.
	(elf_x86_64_check_relocs): Create the second PLT for Intel MPX
	in 64-bit mode.
	(elf_x86_64_allocate_dynrelocs): Handle the second PLT for IFUNC
	symbols.  Resolve call to the second PLT if it is created.
	(elf_x86_64_size_dynamic_sections): Keep the second PLT section.
	(elf_x86_64_relocate_section): Resolve PLT references to the
	second PLT if it is created.
	(elf_x86_64_finish_dynamic_symbol): Use BND PLT0 and fill the
	second PLT entry for BND relocation.
	(elf_x86_64_finish_dynamic_sections): Use MPX backend data if
	the second PLT is created.
	(elf_x86_64_get_synthetic_symtab): New.
	(bfd_elf64_get_synthetic_symtab): Likewise.  Undefine for NaCl.

ld/

	* emulparams/elf_x86_64.sh (TINY_READONLY_SECTION): New.

ld/testsuite/

	* ld-x86-64/mpx.exp: Run bnd-ifunc-1 and bnd-plt-1.
	* ld-x86-64/bnd-ifunc-1.d: New file.
	* ld-x86-64/bnd-ifunc-1.s: Likewise.
	* ld-x86-64/bnd-plt-1.d: Likewise.
2014-02-19 11:48:23 -08:00
..
README Add copyright notices 2012-12-17 16:56:12 +00:00
aarch64elf.sh aarch64: Add support for GNU indirect functions. 2013-10-03 14:46:09 +00:00
aarch64elf32.sh ld/ChangeLog: 2013-11-21 11:17:50 -08:00
aarch64elf32b.sh [AArch64, ILP32] 6/6 Add big-endian targets 2013-06-26 10:56:05 +00:00
aarch64elfb.sh Add support for 64-bit ARM architecture: AArch64 2012-08-13 14:52:54 +00:00
aarch64linux.sh [AArch64] Define LP64 LE loader name. 2014-01-20 18:18:52 +00: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
aarch64linuxb.sh [AArch64] Define LP64 BE linker name. 2014-01-20 18:20:04 +00:00
aix5ppc.sh Add AIX 64 shared library support and emulation layer for binutils 2002-03-18 12:46:27 +00:00
aix5rs6.sh Add AIX 64 shared library support and emulation layer for binutils 2002-03-18 12:46:27 +00:00
aixppc.sh Add AIX 64 shared library support and emulation layer for binutils 2002-03-18 12:46:27 +00:00
aixrs6.sh Add AIX 64 shared library support and emulation layer for binutils 2002-03-18 12:46:27 +00:00
alpha.sh
alphavms.sh 2010-04-14 Tristan Gingold <gingold@adacore.com> 2010-04-14 09:27:27 +00:00
arcelf.sh * scripttempl/elf.sc (NO_REL_RELOCS, NO_RELA_RELOCS, NON_ALLOC_DYN): 2008-10-22 05:20:44 +00:00
arm_epoc_pe.sh 2009-11-04 Kai Tietz <kai.tietz@onevision.com> 2009-11-04 18:13:05 +00:00
arm_wince_pe.sh 2009-11-04 Kai Tietz <kai.tietz@onevision.com> 2009-11-04 18:13:05 +00:00
armaoutb.sh PR 4515 2007-08-09 11:02:24 +00:00
armaoutl.sh PR 4515 2007-08-09 11:02:24 +00:00
armcoff.sh
armelf.sh ld/ 2009-11-20 15:04:51 +00:00
armelf_fbsd.sh bfd/ 2004-09-17 12:18:19 +00:00
armelf_linux.sh PR ld/9863 2009-11-19 07:01:40 +00:00
armelf_linux_eabi.sh ld/ 2009-11-20 15:04:51 +00:00
armelf_nacl.sh * elf32-arm.c (elf32_arm_nacl_plt0_entry, elf32_arm_nacl_plt_entry): 2012-04-12 13:01:15 +00:00
armelf_nbsd.sh bfd/ 2006-05-30 16:45:32 +00:00
armelf_vxworks.sh bfd/ 2006-05-30 16:45:32 +00:00
armelfb.sh * Makefile.am (ALL_EMULATIONS): Add earmelfb.o and earmelfb_linux.o. 2003-05-09 20:05:04 +00:00
armelfb_linux.sh * Makefile.am (ALL_EMULATIONS): Add earmelfb.o and earmelfb_linux.o. 2003-05-09 20:05:04 +00:00
armelfb_linux_eabi.sh * emulparams/armelfb_linux_eabi.sh: New file. 2005-01-22 01:50:35 +00:00
armelfb_nacl.sh * elf32-arm.c (elf32_arm_nacl_plt0_entry, elf32_arm_nacl_plt_entry): 2012-04-12 13:01:15 +00:00
armelfb_nbsd.sh bfd: 2002-05-21 15:11:04 +00:00
armnbsd.sh PR 4515 2007-08-09 11:02:24 +00:00
armnto.sh 2008-02-20 Paul Brook <paul@codesourcery.com> 2008-02-20 15:17:56 +00:00
armpe.sh 2009-11-04 Kai Tietz <kai.tietz@onevision.com> 2009-11-04 18:13:05 +00:00
armsymbian.sh ld/ 2009-11-20 15:04:51 +00:00
avr1.sh * scripttempl/avr.sc (MEMORY): Use DATA_ORIGIN. 2009-05-05 11:28:36 +00:00
avr2.sh * scripttempl/avr.sc (MEMORY): Use DATA_ORIGIN. 2009-05-05 11:28:36 +00:00
avr3.sh * scripttempl/avr.sc (MEMORY): Use DATA_ORIGIN. 2009-05-05 11:28:36 +00:00
avr4.sh * scripttempl/avr.sc (MEMORY): Use DATA_ORIGIN. 2009-05-05 11:28:36 +00:00
avr5.sh * scripttempl/avr.sc (MEMORY): Use DATA_ORIGIN. 2009-05-05 11:28:36 +00:00
avr6.sh * scripttempl/avr.sc (MEMORY): Use DATA_ORIGIN. 2009-05-05 11:28:36 +00:00
avr25.sh * scripttempl/avr.sc (MEMORY): Use DATA_ORIGIN. 2009-05-05 11:28:36 +00:00
avr31.sh * scripttempl/avr.sc (MEMORY): Use DATA_ORIGIN. 2009-05-05 11:28:36 +00:00
avr35.sh * scripttempl/avr.sc (MEMORY): Use DATA_ORIGIN. 2009-05-05 11:28:36 +00:00
avr51.sh * scripttempl/avr.sc (MEMORY): Use DATA_ORIGIN. 2009-05-05 11:28:36 +00:00
avrxmega1.sh /bfd: 2011-03-22 18:10:48 +00:00
avrxmega2.sh /bfd: 2011-03-22 18:10:48 +00:00
avrxmega3.sh /bfd: 2011-03-22 18:10:48 +00:00
avrxmega4.sh /bfd: 2011-03-22 18:10:48 +00:00
avrxmega5.sh /bfd: 2011-03-22 18:10:48 +00:00
avrxmega6.sh /bfd: 2011-03-22 18:10:48 +00:00
avrxmega7.sh /bfd: 2011-03-22 18:10:48 +00:00
bfin.sh strip off +x bits on non-executable/script files 2013-12-07 02:03:03 -05:00
coff_i860.sh 2003-08-04 Christian Groessler <chris@groessler.org> 2003-08-06 02:19:05 +00:00
coff_sparc.sh PR 4515 2007-08-09 11:02:24 +00:00
crisaout.sh PR 4515 2007-08-09 11:02:24 +00:00
criself.sh Remove trailing white spaces in ld 2013-01-10 20:08:03 +00:00
crislinux.sh * emulparams/crislinux.sh (COMMONPAGESIZE): Define. 2014-01-10 01:25:26 +01:00
d10velf.sh Fix ld segfault for some elf targets. Fix default layout for d10v. 2002-06-17 14:08:40 +00:00
d30v_e.sh bfd/ 2006-06-20 02:22:16 +00:00
d30v_o.sh bfd/ 2006-06-20 02:22:16 +00:00
d30velf.sh bfd/ 2006-06-20 02:22:16 +00:00
delta68.sh
elf32_dlx.sh bfd/ 2006-06-20 02:22:16 +00:00
elf32_i860.sh * scripttempl/elf.sc (NO_REL_RELOCS, NO_RELA_RELOCS, NON_ALLOC_DYN): 2008-10-22 05:20:44 +00:00
elf32_i960.sh * emulparams/elf32_i960.sh (TEMPLATE_NAME): "generic", not "elf32". 2008-10-22 06:06:09 +00:00
elf32_sparc.sh * emulparams/elf32_sparc.sh: Set NOP to 0x01000000 2010-09-20 18:41:15 +00:00
elf32_sparc_sol2.sh ld: 2010-10-22 12:08:32 +00:00
elf32_sparc_vxworks.sh bfd/ 2006-04-05 12:41:59 +00:00
elf32_spu.sh bfd/ 2009-08-05 20:40:34 +00:00
elf32_tic6x_be.sh bfd: 2010-03-25 21:12:36 +00:00
elf32_tic6x_elf_be.sh ld/ 2011-05-13 18:15:33 +00:00
elf32_tic6x_elf_le.sh ld/ 2011-05-13 18:15:33 +00:00
elf32_tic6x_le.sh Remove trailing white spaces in ld 2013-01-10 20:08:03 +00:00
elf32_tic6x_linux_be.sh ld/ 2011-05-13 18:15:33 +00:00
elf32_tic6x_linux_le.sh ld/ 2011-05-13 18:15:33 +00:00
elf32_x86_64.sh Skip directories with LIBPATH_SUFFIX_SKIP suffix 2014-01-15 20:09:09 -08:00
elf32_x86_64_nacl.sh bfd/ 2013-08-26 22:18:07 +00:00
elf32am33lin.sh * scripttempl/elf.sc (NO_REL_RELOCS, NO_RELA_RELOCS, NON_ALLOC_DYN): 2008-10-22 05:20:44 +00:00
elf32b4300.sh PR 4515 2007-08-09 11:02:24 +00:00
elf32bfinfd.sh blackfin: add support for L1 code/data flags 2010-11-15 22:30:47 +00:00
elf32bmip.sh ld/ 2012-08-06 22:40:36 +00:00
elf32bmipn32-defs.sh Remove trailing white spaces in ld 2013-01-10 20:08:03 +00:00
elf32bmipn32.sh strip off +x bits on non-executable/script files 2013-12-07 02:03:03 -05:00
elf32bsmip.sh * emulparams/elf32bsmip.sh (EXTRA_EM_FILE): Define to irix. 2004-04-08 14:52:44 +00:00
elf32btsmip.sh bfd/ 2013-06-24 23:55:46 +00:00
elf32btsmip_fbsd.sh bfd/ 2010-12-31 11:01:00 +00:00
elf32btsmipn32.sh bfd/ 2006-05-30 16:45:32 +00:00
elf32btsmipn32_fbsd.sh bfd/ 2010-12-31 11:01:00 +00:00
elf32cr16.sh * emultempl/cr16elf.em (cr16_after_open): New function to handle 2008-11-27 12:41:14 +00:00
elf32cr16c.sh Add (linker) support for CR16C processor 2004-03-30 14:04:32 +00:00
elf32crx.sh Add new port: crx-elf 2004-07-07 17:28:53 +00:00
elf32ebmip.sh * Makefile.am (CONFIG_STATUS_DEPENDENCIES): Define. 2001-11-22 09:08:05 +00:00
elf32ebmipvxworks.sh ld/ 2007-05-18 09:18:18 +00:00
elf32elmip.sh * Makefile.am (CONFIG_STATUS_DEPENDENCIES): Define. 2001-11-22 09:08:05 +00:00
elf32elmipvxworks.sh Richard Sandiford <richard@codesourcery.com> 2006-03-22 09:28:15 +00:00
elf32epiphany.sh bfd: 2011-10-25 11:18:16 +00:00
elf32epiphany_4x4.sh * scripttempl/epiphany_4x4.sc, emulparams/elf32epiphany_4x4.sh: Add. 2012-11-30 18:28:38 +00:00
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 bfd/ 2006-06-20 02:22:16 +00:00
elf32i370.sh bfd/ 2006-05-30 16:45:32 +00:00
elf32ip2k.sh * scripttempl/elf.sc (NO_REL_RELOCS, NO_RELA_RELOCS, NON_ALLOC_DYN): 2008-10-22 05:20:44 +00:00
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 * Makefile.am (CONFIG_STATUS_DEPENDENCIES): Define. 2001-11-22 09:08:05 +00:00
elf32lm32.sh Add LM32 port. 2008-12-23 19:10:25 +00:00
elf32lm32fd.sh Add LM32 port. 2008-12-23 19:10:25 +00:00
elf32lmip.sh * Makefile.am (CONFIG_STATUS_DEPENDENCIES): Define. 2001-11-22 09:08:05 +00:00
elf32lppc.sh bfd/ 2013-04-25 13:22:52 +00:00
elf32lppclinux.sh bfd/ 2013-04-25 13:22:52 +00:00
elf32lppcnto.sh bfd/ 2006-05-30 16:45:32 +00:00
elf32lppcsim.sh * Makefile.am (CONFIG_STATUS_DEPENDENCIES): Define. 2001-11-22 09:08:05 +00:00
elf32lr5900.sh * archures.c: Add support for MIPS r5900 2013-01-04 17:22:53 +00:00
elf32lr5900n32.sh * archures.c: Add support for MIPS r5900 2013-01-04 17:22:53 +00:00
elf32lsmip.sh * Makefile.am (CONFIG_STATUS_DEPENDENCIES): Define. 2001-11-22 09:08:05 +00:00
elf32ltsmip.sh * Makefile.am (CONFIG_STATUS_DEPENDENCIES): Define. 2001-11-22 09:08:05 +00:00
elf32ltsmip_fbsd.sh bfd/ 2010-12-31 11:01:00 +00:00
elf32ltsmipn32.sh * Makefile.am (eelf32btsmipn32.o, eelf32ltsmipn32.o): New emulations 2002-07-30 23:48:30 +00:00
elf32ltsmipn32_fbsd.sh bfd/ 2010-12-31 11:01:00 +00:00
elf32m32c.sh * emulparams/elf32m32c.sh (TEMPLATE_NAME): New. 2005-07-20 19:33:18 +00:00
elf32mb_linux.sh Remove trailing white spaces in ld 2013-01-10 20:08:03 +00:00
elf32mbel_linux.sh Files missing from previous commit. 2012-11-09 22:43:28 +00:00
elf32mcore.sh * ldmain.c (main): Flush stdout before and stderr after printing 2011-01-14 12:37:17 +00:00
elf32mep.sh strip off +x bits on non-executable/script files 2013-12-07 02:03:03 -05:00
elf32metag.sh * common.h: Fix case of "Meta". 2013-01-10 09:49:22 +00:00
elf32microblaze.sh Remove trailing white spaces in ld 2013-01-10 20:08:03 +00:00
elf32microblazeel.sh Files missing from previous commit. 2012-11-09 22:43:28 +00:00
elf32mipswindiss.sh ld/ 2012-08-06 22:40:36 +00:00
elf32moxie.sh Bi-endian patches for moxie 2012-09-13 22:24:51 +00:00
elf32mt.sh bfd/ 2006-06-20 02:22:16 +00:00
elf32openrisc.sh strip off +x bits on non-executable/script files 2013-12-07 02:03:03 -05:00
elf32ppc.sh Remove trailing white spaces in ld 2013-01-10 20:08:03 +00:00
elf32ppc_fbsd.sh * Makefile.am (ALL_64_EMULATION_SOURCES): Add powerpc64-*-freebsd 2011-11-21 13:22:46 +00:00
elf32ppccommon.sh * emulparams/elf32ppccommon.sh (LIBPATH_SUFFIX): Provide 32-bit 2013-09-24 06:29:39 +00:00
elf32ppclinux.sh * ldlang.c (exp_init_os): Handle etree_provide. 2005-08-03 05:09:49 +00:00
elf32ppcnto.sh bfd/ 2006-05-30 16:45:32 +00:00
elf32ppcsim.sh * Makefile.am (CONFIG_STATUS_DEPENDENCIES): Define. 2001-11-22 09:08:05 +00:00
elf32ppcvxworks.sh bfd/ 2006-03-02 08:50:04 +00:00
elf32ppcwindiss.sh * scripttempl/elf.sc (NO_REL_RELOCS, NO_RELA_RELOCS, NON_ALLOC_DYN): 2008-10-22 05:20:44 +00:00
elf32rl78.sh [.] 2011-11-02 03:09:11 +00:00
elf32rx.sh * emulparams/elf32rx.sh (OTHER_READONLY_SECTIONS): Add W_* sections. 2012-09-12 21:28:04 +00:00
elf32tilegx.sh Don't hardcode .got.plt into DATA_SEGMENT_RELRO_END evaluation 2012-06-11 13:23:51 +00:00
elf32tilegx_be.sh Add big-endian support for tilegx. 2012-02-25 19:51:34 +00:00
elf32tilepro.sh Don't hardcode .got.plt into DATA_SEGMENT_RELRO_END evaluation 2012-06-11 13:23:51 +00:00
elf32vax.sh * scripttempl/elf.sc (NO_REL_RELOCS, NO_RELA_RELOCS, NON_ALLOC_DYN): 2008-10-22 05:20:44 +00:00
elf32xc16x.sh bfd/ 2006-05-30 16:45:32 +00:00
elf32xc16xl.sh bfd/ 2006-05-30 16:45:32 +00:00
elf32xc16xs.sh bfd/ 2006-05-30 16:45:32 +00:00
elf32xstormy16.sh Index: bfd/ChangeLog 2001-12-08 03:46:03 +00:00
elf32xtensa.sh * emulparams/elf32xtensa.sh (NO_REL_RELOCS): Set. 2008-11-03 18:52:52 +00:00
elf64_aix.sh bfd/ 2006-05-30 16:45:32 +00:00
elf64_ia64.sh bfd/ 2006-05-30 16:45:32 +00:00
elf64_ia64_fbsd.sh 2004-10-14 H.J. Lu <hongjiu.lu@intel.com> 2004-10-14 17:00:16 +00:00
elf64_ia64_vms.sh * configure.ac (ia64*-*-*vms*): Add support for ld. 2012-04-12 07:35:07 +00:00
elf64_s390.sh Remove trailing white spaces in ld 2013-01-10 20:08:03 +00:00
elf64_sparc.sh * scripttempl/elf.sc (NO_REL_RELOCS, NO_RELA_RELOCS, NON_ALLOC_DYN): 2008-10-22 05:20:44 +00:00
elf64_sparc_fbsd.sh 2006-10-18 Roy Marples <uberlord@gentoo.org> 2006-10-18 23:58:52 +00:00
elf64_sparc_sol2.sh ld: 2010-10-22 12:08:32 +00:00
elf64alpha.sh Remove trailing white spaces in ld 2013-01-10 20:08:03 +00:00
elf64alpha_fbsd.sh 2002-09-16 Bruno Haible <bruno@clisp.org> 2002-09-17 02:24:40 +00:00
elf64alpha_nbsd.sh * Makefile.am: Add rules for eelf64alpha_nbsd. 2001-12-17 23:54:58 +00:00
elf64bmip-defs.sh ld/ 2006-10-16 21:34:25 +00:00
elf64bmip.sh strip off +x bits on non-executable/script files 2013-12-07 02:03:03 -05:00
elf64btsmip.sh ld/ 2006-10-16 21:34:25 +00:00
elf64btsmip_fbsd.sh bfd/ 2010-12-31 11:01:00 +00:00
elf64hppa.sh strip off +x bits on non-executable/script files 2013-12-07 02:03:03 -05:00
elf64lppc.sh
elf64ltsmip.sh * Makefile.am (CONFIG_STATUS_DEPENDENCIES): Define. 2001-11-22 09:08:05 +00:00
elf64ltsmip_fbsd.sh bfd/ 2010-12-31 11:01:00 +00:00
elf64mmix.sh * scripttempl/mmo.sc: For relocateable links, set $OUTPUT_FORMAT to 2009-07-29 00:25:22 +00:00
elf64ppc.sh * emulparams/elf32ppccommon.sh (LIBPATH_SUFFIX): Provide 32-bit 2013-09-24 06:29:39 +00:00
elf64ppc_fbsd.sh * Makefile.am (ALL_64_EMULATION_SOURCES): Add powerpc64-*-freebsd 2011-11-21 13:22:46 +00:00
elf64rdos.sh * Makefile.am (ALL_64_EMULATION_SOURCES): Add eelf64rdos.c. 2013-01-23 10:31:13 +00:00
elf64tilegx.sh Don't hardcode .got.plt into DATA_SEGMENT_RELRO_END evaluation 2012-06-11 13:23:51 +00:00
elf64tilegx_be.sh Add big-endian support for tilegx. 2012-02-25 19:51:34 +00:00
elf_fbsd.sh 2002-02-18 David O'Brien <obrien@FreeBSD.org> 2002-02-18 09:38:01 +00:00
elf_i386.sh Skip directories with LIBPATH_SUFFIX_SKIP suffix 2014-01-15 20:09:09 -08:00
elf_i386_be.sh Support arch-dependent fill 2012-01-31 17:54:39 +00:00
elf_i386_chaos.sh * emultempl/elf32.em (gld${EMULATION_NAME}_add_options, 2011-07-14 02:38:43 +00:00
elf_i386_fbsd.sh 2002-09-16 Bruno Haible <bruno@clisp.org> 2002-09-17 02:24:40 +00:00
elf_i386_ldso.sh Support arch-dependent fill 2012-01-31 17:54:39 +00:00
elf_i386_nacl.sh bfd/ 2013-08-26 22:18:07 +00:00
elf_i386_sol2.sh * emultempl/solaris2.em (elf_solaris2_before_allocation): Renamed 2010-10-12 18:39:36 +00:00
elf_i386_vxworks.sh Support arch-dependent fill 2012-01-31 17:54:39 +00:00
elf_k1om.sh Define IREL_IN_PLT for elf_k1om.sh and elf_l1om.sh 2013-12-20 08:27:02 -08:00
elf_k1om_fbsd.sh Add initial Intel K1OM support. 2011-07-22 20:22:38 +00:00
elf_l1om.sh Define IREL_IN_PLT for elf_k1om.sh and elf_l1om.sh 2013-12-20 08:27:02 -08:00
elf_l1om_fbsd.sh Add missing files. 2009-07-25 15:08:26 +00:00
elf_nacl.sh ld/ 2013-08-23 22:38:42 +00:00
elf_s390.sh Remove trailing white spaces in ld 2013-01-10 20:08:03 +00:00
elf_x86_64.sh Create the second PLT for BND relocations 2014-02-19 11:48:23 -08:00
elf_x86_64_fbsd.sh PR binutils/2983 2006-08-02 16:25:14 +00:00
elf_x86_64_nacl.sh bfd/ 2013-08-26 22:18:07 +00:00
elf_x86_64_sol2.sh * emultempl/solaris2.em (elf_solaris2_before_allocation): Renamed 2010-10-12 18:39:36 +00:00
gld960.sh * Makefile.am (GENSCRIPTS_EXTRA, GEN_EXTRA_DEPENDS): Remove. Use 2003-10-16 08:46:35 +00:00
gld960coff.sh * Makefile.am (GENSCRIPTS_EXTRA, GEN_EXTRA_DEPENDS): Remove. Use 2003-10-16 08:46:35 +00:00
h8300.sh * emulparams/h8300elf.sh: _tinydata should not be placed in relocatables. 2006-09-07 17:01:10 +00:00
h8300elf.sh * scripttempl/elf.sc (NO_REL_RELOCS, NO_RELA_RELOCS, NON_ALLOC_DYN): 2008-10-22 05:20:44 +00:00
h8300h.sh
h8300helf.sh * Makefile.am (CONFIG_STATUS_DEPENDENCIES): Define. 2001-11-22 09:08:05 +00:00
h8300hn.sh oops - omitted from previous delta 2003-04-24 15:25:24 +00:00
h8300hnelf.sh oops - omitted from previous delta 2003-04-24 15:25:24 +00:00
h8300s.sh
h8300self.sh * Makefile.am (CONFIG_STATUS_DEPENDENCIES): Define. 2001-11-22 09:08:05 +00:00
h8300sn.sh oops - omitted from previous delta 2003-04-24 15:25:24 +00:00
h8300snelf.sh oops - omitted from previous delta 2003-04-24 15:25:24 +00:00
h8300sx.sh 2003-06-03 Michael Snyder <msnyder@redhat.com> 2003-06-03 21:43:52 +00:00
h8300sxelf.sh * emulparams/h8300elf.sh: _tinydata should not be placed in relocatables. 2006-09-07 17:01:10 +00:00
h8300sxn.sh include/elf/ 2003-06-10 07:09:31 +00:00
h8300sxnelf.sh include/elf/ 2003-06-10 07:09:31 +00:00
h8500.sh
h8500b.sh
h8500c.sh
h8500m.sh
h8500s.sh
hp3hpux.sh
hp300bsd.sh
hppa64linux.sh * configure.tgt: Only use elf64hppa target emulation for hpux. 2009-03-01 22:10:36 +00:00
hppaelf.sh
hppalinux.sh PR ld/12376 2011-02-18 18:20:29 +00:00
hppanbsd.sh bfd: 2004-07-27 22:30:25 +00:00
hppaobsd.sh bfd/ 2006-05-30 16:45:32 +00:00
i386aout.sh PR 4515 2007-08-09 11:02:24 +00:00
i386beos.sh strip off +x bits on non-executable/script files 2013-12-07 02:03:03 -05:00
i386bsd.sh PR 4515 2007-08-09 11:02:24 +00:00
i386coff.sh
i386go32.sh PR 4515 2007-08-09 11:02:24 +00:00
i386linux.sh PR 4515 2007-08-09 11:02:24 +00:00
i386lynx.sh * scripttempl/elf.sc (NO_REL_RELOCS, NO_RELA_RELOCS, NON_ALLOC_DYN): 2008-10-22 05:20:44 +00:00
i386mach.sh PR 4515 2007-08-09 11:02:24 +00:00
i386moss.sh * scripttempl/elf.sc (NO_REL_RELOCS, NO_RELA_RELOCS, NON_ALLOC_DYN): 2008-10-22 05:20:44 +00:00
i386msdos.sh PR 4515 2007-08-09 11:02:24 +00:00
i386nbsd.sh
i386nto.sh * scripttempl/elf.sc (NO_REL_RELOCS, NO_RELA_RELOCS, NON_ALLOC_DYN): 2008-10-22 05:20:44 +00:00
i386nw.sh PR 4515 2007-08-09 11:02:24 +00:00
i386pe.sh 2009-11-04 Kai Tietz <kai.tietz@onevision.com> 2009-11-04 18:13:05 +00:00
i386pe_posix.sh 2009-11-04 Kai Tietz <kai.tietz@onevision.com> 2009-11-04 18:13:05 +00:00
i386pep.sh 2009-11-04 Kai Tietz <kai.tietz@onevision.com> 2009-11-04 18:13:05 +00:00
lnk960.sh * Makefile.am (GENSCRIPTS_EXTRA, GEN_EXTRA_DEPENDS): Remove. Use 2003-10-16 08:46:35 +00:00
m32relf.sh * emulparams/armelf.sh (OTHER_BSS_END_SYMBOLS): Split out from 2005-08-05 04:29:57 +00:00
m32relf_linux.sh bfd/ 2006-05-30 16:45:32 +00:00
m32rlelf.sh Add support for m32r-linux target, including a RELA ABI and PIC. 2003-12-19 11:44:01 +00:00
m32rlelf_linux.sh Add support for m32r-linux target, including a RELA ABI and PIC. 2003-12-19 11:44:01 +00:00
m68hc11elf.sh * emulparams/m68hc11elf.sh: Use m68hc1xelf.em extra. 2003-04-21 13:29:05 +00:00
m68hc11elfb.sh * emulparams/m68hc11elf.sh: Use m68hc1xelf.em extra. 2003-04-21 13:29:05 +00:00
m68hc12elf.sh * emulparams/m68hc11elf.sh: Use m68hc1xelf.em extra. 2003-04-21 13:29:05 +00:00
m68hc12elfb.sh * emulparams/m68hc11elf.sh: Use m68hc1xelf.em extra. 2003-04-21 13:29:05 +00:00
m68k4knbsd.sh PR 4515 2007-08-09 11:02:24 +00:00
m68kaout.sh PR 4515 2007-08-09 11:02:24 +00:00
m68kaux.sh
m68kcoff.sh
m68kelf.sh * emulparams/m68kelf.sh (NOP): Use 0x4e71 (nop) rather than 0x4e75 2009-09-29 16:28:52 +00:00
m68kelfnbsd.sh * config.bfd (m68*-*-netbsdelf*): New target. 2001-12-18 13:26:26 +00:00
m68klinux.sh PR 4515 2007-08-09 11:02:24 +00:00
m68knbsd.sh PR 4515 2007-08-09 11:02:24 +00:00
m68kpsos.sh bfd/ 2006-05-30 16:45:32 +00:00
m88kbcs.sh * Makefile.am (GENSCRIPTS_EXTRA, GEN_EXTRA_DEPENDS): Remove. Use 2003-10-16 08:46:35 +00:00
mcorepe.sh 2009-11-04 Kai Tietz <kai.tietz@onevision.com> 2009-11-04 18:13:05 +00:00
mmo.sh * scripttempl/mmo.sc: For relocateable links, set $OUTPUT_FORMAT to 2009-07-29 00:25:22 +00:00
mn10200.sh * scripttempl/elf.sc (NO_REL_RELOCS, NO_RELA_RELOCS, NON_ALLOC_DYN): 2008-10-22 05:20:44 +00:00
mn10300.sh bfd/ 2006-06-20 02:22:16 +00:00
msp430all.sh The MSP430 linker contains emulations for old and obsolete MCU types. 2014-01-28 12:25:48 +00:00
nds32belf.sh Add support for Andes NDS32: 2013-12-13 11:52:32 +00:00
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
nds32elf.sh Allow ld target customiser script to force on disk scripts. 2014-01-17 10:41:49 +10:30
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
news.sh
nios2elf.sh Nios II CALL26 linker relaxation 2014-01-30 17:47:07 -08:00
nios2linux.sh Nios II CALL26 linker relaxation 2014-01-30 17:47:07 -08:00
ns32knbsd.sh PR 4515 2007-08-09 11:02:24 +00:00
or32.sh bfd/ 2006-06-20 02:22:16 +00:00
or32elf.sh * scripttempl/elf.sc (NO_REL_RELOCS, NO_RELA_RELOCS, NON_ALLOC_DYN): 2008-10-22 05:20:44 +00:00
pc532macha.sh PR 4515 2007-08-09 11:02:24 +00:00
pdp11.sh
pjelf.sh * scripttempl/elf.sc (NO_REL_RELOCS, NO_RELA_RELOCS, NON_ALLOC_DYN): 2008-10-22 05:20:44 +00:00
pjlelf.sh bfd/ 2006-06-20 02:22:16 +00:00
plt_unwind.sh * emultempl/elf32.em (gld${EMULATION_NAME}_add_options, 2011-07-14 02:38:43 +00:00
ppclynx.sh * scripttempl/elf.sc (NO_REL_RELOCS, NO_RELA_RELOCS, NON_ALLOC_DYN): 2008-10-22 05:20:44 +00:00
ppcmacos.sh Add AIX 64 shared library support and emulation layer for binutils 2002-03-18 12:46:27 +00:00
ppcnw.sh PR 4515 2007-08-09 11:02:24 +00:00
ppcpe.sh 2009-11-04 Kai Tietz <kai.tietz@onevision.com> 2009-11-04 18:13:05 +00:00
riscix.sh
scoreelf.sh Add support for Score7 architecture. 2009-03-02 10:33:08 +00:00
sh.sh * Makefile.am (CONFIG_STATUS_DEPENDENCIES): Define. 2001-11-22 09:08:05 +00:00
shelf.sh * scripttempl/elf.sc (NO_REL_RELOCS, NO_RELA_RELOCS, NON_ALLOC_DYN): 2008-10-22 05:20:44 +00:00
shelf32.sh * scripttempl/elf.sc (NO_REL_RELOCS, NO_RELA_RELOCS, NON_ALLOC_DYN): 2008-10-22 05:20:44 +00:00
shelf32_linux.sh * Makefile.am: Add eshelf32_linux.o and 2002-10-09 19:09:59 +00:00
shelf32_nbsd.sh bfd/ 2006-05-30 16:45:32 +00:00
shelf64.sh * emulparams/shelf32.sh: Set default stack to 0x80000. 2006-10-22 01:07:30 +00:00
shelf64_nbsd.sh bfd: 2002-06-04 02:57:44 +00:00
shelf_fd.sh 2010-05-21 Daniel Jacobowitz <dan@codesourcery.com> 2010-05-25 14:12:43 +00:00
shelf_linux.sh * Makefile.am (CONFIG_STATUS_DEPENDENCIES): Define. 2001-11-22 09:08:05 +00:00
shelf_nbsd.sh * emulparams/shlelf_linux.sh (DATA_START_SYMBOLS): Use PROVIDE 2008-01-15 23:05:46 +00:00
shelf_nto.sh * scripttempl/elf.sc (NO_REL_RELOCS, NO_RELA_RELOCS, NON_ALLOC_DYN): 2008-10-22 05:20:44 +00:00
shelf_uclinux.sh * emulparams/shelf_uclinux.sh: New. Missed in 2007-02-28 commit. 2007-03-02 21:02:48 +00:00
shelf_vxworks.sh * scripttempl/elf.sc (NO_REL_RELOCS, NO_RELA_RELOCS, NON_ALLOC_DYN): 2008-10-22 05:20:44 +00:00
shl.sh * Makefile.am (CONFIG_STATUS_DEPENDENCIES): Define. 2001-11-22 09:08:05 +00:00
shlelf.sh * Makefile.am (CONFIG_STATUS_DEPENDENCIES): Define. 2001-11-22 09:08:05 +00:00
shlelf32.sh Contribute sh64-elf. 2002-02-08 06:39:01 +00:00
shlelf32_linux.sh * scripttempl/elf.sc (NO_REL_RELOCS, NO_RELA_RELOCS, NON_ALLOC_DYN): 2008-10-22 05:20:44 +00:00
shlelf32_nbsd.sh bfd: 2002-06-04 02:57:44 +00:00
shlelf64.sh Contribute sh64-elf. 2002-02-08 06:39:01 +00:00
shlelf64_nbsd.sh bfd: 2002-06-04 02:57:44 +00:00
shlelf_fd.sh 2010-05-21 Daniel Jacobowitz <dan@codesourcery.com> 2010-05-25 14:12:43 +00:00
shlelf_linux.sh 2010-05-21 Daniel Jacobowitz <dan@codesourcery.com> 2010-05-25 14:12:43 +00:00
shlelf_nbsd.sh bfd: 2002-01-08 04:23:02 +00:00
shlelf_nto.sh * scripttempl/elf.sc (NO_REL_RELOCS, NO_RELA_RELOCS, NON_ALLOC_DYN): 2008-10-22 05:20:44 +00:00
shlelf_vxworks.sh bfd/ 2006-08-04 13:13:56 +00:00
shlsymbian.sh Add support for sh-symbian-elf target 2004-07-06 16:58:43 +00:00
shpe.sh 2009-11-04 Kai Tietz <kai.tietz@onevision.com> 2009-11-04 18:13:05 +00:00
solaris2.sh * emultempl/solaris2.em (elf_solaris2_before_allocation): Renamed 2010-10-12 18:39:36 +00:00
sparcaout.sh PR 4515 2007-08-09 11:02:24 +00:00
sparclinux.sh PR 4515 2007-08-09 11:02:24 +00:00
sparcnbsd.sh
st2000.sh
sun3.sh PR 4515 2007-08-09 11:02:24 +00:00
sun4.sh PR 4515 2007-08-09 11:02:24 +00:00
tic3xcoff.sh Namespace cleanup for the tic4x target. Replace s/c4x/tic4x/ and s/c3x/tic3x/. 2003 copyright update 2003-04-04 08:15:15 +00:00
tic3xcoff_onchip.sh Namespace cleanup for the tic4x target. Replace s/c4x/tic4x/ and s/c3x/tic3x/. 2003 copyright update 2003-04-04 08:15:15 +00:00
tic4xcoff.sh Namespace cleanup for the tic4x target. Replace s/c4x/tic4x/ and s/c3x/tic3x/. 2003 copyright update 2003-04-04 08:15:15 +00:00
tic30aout.sh
tic30coff.sh
tic54xcoff.sh
tic80coff.sh Remove trailing white spaces in ld 2013-01-10 20:08:03 +00:00
v850.sh Add EXTERN references to __ctbpm __gp and __ep. 2002-09-02 17:03:30 +00:00
v850_rh850.sh 2012-11-09 Nick Clifton <nickc@redhat.com> 2012-11-09 17:36:19 +00:00
vanilla.sh * Makefile.am (GENSCRIPTS_EXTRA, GEN_EXTRA_DEPENDS): Remove. Use 2003-10-16 08:46:35 +00:00
vax.sh * emulparams/vax.sh (OUTPUT_FORMAT): Use a.out-vax-bsd format. 2002-07-01 08:32:30 +00:00
vaxnbsd.sh PR 4515 2007-08-09 11:02:24 +00:00
vsta.sh PR 4515 2007-08-09 11:02:24 +00:00
vxworks.sh * emulparams/vxworks.sh (OTHER_READONLY_SECTIONS): Move into ... 2009-10-29 16:43:56 +00:00
w65.sh
xgateelf.sh Add support for Motorola XGATE embedded CPU 2012-05-03 13:12:08 +00:00
z80.sh Add support for the Z80 processor family 2005-10-25 17:40:19 +00:00
z8001.sh
z8002.sh

README

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 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.