old-cross-binutils/ld/emulparams
H.J. Lu caa65211bb Add "-z call-nop=PADDING" option to ld
The ld linker can transform indirect call to a locally defined function,
foo, via its GOT slot, to either "NOP call foo" or "call foo NOP" where
NOP is a 1-byte NOP padding.  This patch adds a "-z call-nop=PADDING"
option to x86 ld to control 1-byte NOP padding for x86 call instruction.
PADDING is one of prefix-addr, prefix-nop, suffix-nop, prefix-NUMBER or
suffix-NUMBER.

bfd/

	* elf32-i386.c (elf_i386_convert_load): Use call_nop_byte and
	check call_nop_as_suffix for 1-byte NOP padding to pad call.
	* elf64-x86-64.c (elf_x86_64_convert_load): Likewise.

include/

	* bfdlink.h (bfd_link_info): Add call_nop_as_suffix and
	call_nop_byte.

ld/

	* ld/ld.texinfo: Document "-z call-nop=PADDING" option.
	* emulparams/call_nop.sh: New file.
	* emulparams/elf_i386_be.sh: Source
	${srcdir}/emulparams/call_nop.sh.
	* emulparams/elf_i386_chaos.sh: Likewise.
	* emulparams/elf_i386_ldso.sh: Likewise.
	* emulparams/elf_i386_vxworks.sh: Likewise.
	* emulparams/elf_iamcu.sh: Likewise.
	* emulparams/elf_k1om.sh: Likewise.
	* emulparams/elf_l1om.sh: Likewise.
	* emulparams/elf_x86_64.sh: Likewise.
	* emultempl/elf32.em (gld${EMULATION_NAME}_before_parse): Set
	link_info.call_nop_byte if $CALL_NOP_BYTE isn't empty.

ld/testsuite/

	* ld-i386/call3.s: New file.
	* ld-i386/call3a.d: Likewise.
	* ld-i386/call3b.d: Likewise.
	* ld-i386/call3c.d: Likewise.
	* ld-i386/call3d.d: Likewise.
	* ld-i386/call3e.d: Likewise.
	* ld-i386/call3f.d: Likewise.
	* ld-i386/call3g.d: Likewise.
	* ld-i386/call3h.d: Likewise.
	* ld-i386/load1-nacl.d: Likewise.
	* ld-x86-64/call1.s: Likewise.
	* ld-x86-64/call1a.d: Likewise.
	* ld-x86-64/call1b.d: Likewise.
	* ld-x86-64/call1c.d: Likewise.
	* ld-x86-64/call1d.d: Likewise.
	* ld-x86-64/call1e.d: Likewise.
	* ld-x86-64/call1f.d: Likewise.
	* ld-x86-64/call1g.d: Likewise.
	* ld-x86-64/call1h.d: Likewise.
	* ld-x86-64/call1i.d: Likewise.
	* ld-x86-64/load1a-nacl.d: Likewise.
	* ld-x86-64/load1b-nacl.d: Likewise.
	* ld-x86-64/load1c-nacl.d: Likewise.
	* ld-x86-64/load1d-nacl.d: Likewise.
2015-10-22 04:56:39 -07:00
..
aarch64elf.sh
aarch64elf32.sh
aarch64elf32b.sh
aarch64elfb.sh
aarch64fbsd.sh
aarch64fbsdb.sh
aarch64linux.sh
aarch64linux32.sh
aarch64linux32b.sh
aarch64linuxb.sh
aix5ppc.sh
aix5rs6.sh
aixppc.sh
aixrs6.sh
alpha.sh
alphavms.sh
arcebelf.sh
arcebelf_prof.sh
arceblinux.sh
arceblinux_prof.sh
arcelf.sh
arcelf_prof.sh
arclinux.sh
arclinux_prof.sh
arcv2elf.sh
arcv2elfx.sh
arm_epoc_pe.sh
arm_wince_pe.sh
armaoutb.sh
armaoutl.sh
armcoff.sh
armelf.sh
armelf_fbsd.sh
armelf_linux.sh
armelf_linux_eabi.sh
armelf_nacl.sh
armelf_nbsd.sh
armelf_vxworks.sh
armelfb.sh
armelfb_fbsd.sh
armelfb_linux.sh
armelfb_linux_eabi.sh
armelfb_nacl.sh
armelfb_nbsd.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
avrxmega1.sh
avrxmega2.sh
avrxmega3.sh
avrxmega4.sh
avrxmega5.sh
avrxmega6.sh
avrxmega7.sh
call_nop.sh
coff_i860.sh
coff_sparc.sh
crisaout.sh
criself.sh
crislinux.sh
d10velf.sh
d30v_e.sh
d30v_o.sh
d30velf.sh
delta68.sh
elf32_dlx.sh
elf32_i860.sh
elf32_i960.sh
elf32_sparc.sh
elf32_sparc_sol2.sh
elf32_sparc_vxworks.sh
elf32_spu.sh
elf32_tic6x_be.sh
elf32_tic6x_elf_be.sh
elf32_tic6x_elf_le.sh
elf32_tic6x_le.sh
elf32_tic6x_linux_be.sh
elf32_tic6x_linux_le.sh
elf32_x86_64.sh
elf32_x86_64_nacl.sh
elf32am33lin.sh
elf32b4300.sh
elf32bfin.sh
elf32bfinfd.sh
elf32bmip.sh
elf32bmipn32-defs.sh
elf32bmipn32.sh
elf32bsmip.sh
elf32btsmip.sh
elf32btsmip_fbsd.sh
elf32btsmipn32.sh
elf32btsmipn32_fbsd.sh
elf32cr16.sh
elf32cr16c.sh
elf32crx.sh
elf32ebmip.sh
elf32ebmipvxworks.sh
elf32elmip.sh
elf32elmipvxworks.sh
elf32epiphany.sh
elf32epiphany_4x4.sh
elf32fr30.sh
elf32frv.sh
elf32frvfd.sh
elf32ft32.sh
elf32i370.sh
elf32ip2k.sh
elf32iq10.sh
elf32iq2000.sh
elf32l4300.sh
elf32lm32.sh
elf32lm32fd.sh
elf32lmip.sh
elf32lppc.sh
elf32lppclinux.sh
elf32lppcnto.sh
elf32lppcsim.sh
elf32lr5900.sh
elf32lr5900n32.sh
elf32lsmip.sh
elf32ltsmip.sh
elf32ltsmip_fbsd.sh
elf32ltsmipn32.sh
elf32ltsmipn32_fbsd.sh
elf32m32c.sh
elf32mb_linux.sh
elf32mbel_linux.sh
elf32mcore.sh
elf32mep.sh
elf32metag.sh
elf32microblaze.sh
elf32microblazeel.sh
elf32mipswindiss.sh
elf32moxie.sh
elf32mt.sh
elf32or1k.sh
elf32or1k_linux.sh
elf32ppc.sh
elf32ppc_fbsd.sh
elf32ppccommon.sh
elf32ppclinux.sh
elf32ppcnto.sh
elf32ppcsim.sh
elf32ppcvxworks.sh
elf32ppcwindiss.sh
elf32rl78.sh
elf32rx.sh
elf32tilegx.sh
elf32tilegx_be.sh
elf32tilepro.sh
elf32vax.sh
elf32visium.sh
elf32xc16x.sh
elf32xc16xl.sh
elf32xc16xs.sh
elf32xstormy16.sh
elf32xtensa.sh
elf64_aix.sh
elf64_ia64.sh
elf64_ia64_fbsd.sh
elf64_ia64_vms.sh
elf64_s390.sh
elf64_sparc.sh
elf64_sparc_fbsd.sh
elf64_sparc_sol2.sh
elf64alpha.sh
elf64alpha_fbsd.sh
elf64alpha_nbsd.sh
elf64bmip-defs.sh
elf64bmip.sh
elf64btsmip.sh
elf64btsmip_fbsd.sh
elf64hppa.sh
elf64lppc.sh
elf64ltsmip.sh
elf64ltsmip_fbsd.sh
elf64mmix.sh
elf64ppc.sh
elf64ppc_fbsd.sh
elf64rdos.sh
elf64tilegx.sh
elf64tilegx_be.sh
elf_fbsd.sh
elf_i386.sh
elf_i386_be.sh
elf_i386_chaos.sh
elf_i386_fbsd.sh
elf_i386_ldso.sh
elf_i386_nacl.sh
elf_i386_sol2.sh
elf_i386_vxworks.sh
elf_iamcu.sh
elf_k1om.sh
elf_k1om_fbsd.sh
elf_l1om.sh
elf_l1om_fbsd.sh
elf_nacl.sh
elf_s390.sh
elf_x86_64.sh
elf_x86_64_cloudabi.sh
elf_x86_64_fbsd.sh
elf_x86_64_nacl.sh
elf_x86_64_sol2.sh
extern_protected_data.sh
gld960.sh
gld960coff.sh
h8300.sh
h8300elf.sh
h8300elf_linux.sh
h8300h.sh
h8300helf.sh
h8300helf_linux.sh
h8300hn.sh
h8300hnelf.sh
h8300s.sh
h8300self.sh
h8300self_linux.sh
h8300sn.sh
h8300snelf.sh
h8300sx.sh
h8300sxelf.sh
h8300sxelf_linux.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
i386bsd.sh
i386coff.sh
i386go32.sh
i386linux.sh
i386lynx.sh
i386mach.sh
i386moss.sh
i386msdos.sh
i386nbsd.sh
i386nto.sh
i386nw.sh
i386pe.sh
i386pe_posix.sh
i386pep.sh
lnk960.sh
m32relf.sh
m32relf_linux.sh
m32rlelf.sh
m32rlelf_linux.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
msp430elf.sh
msp430X.sh
nds32belf.sh
nds32belf16m.sh
nds32belf_linux.sh
nds32elf.sh
nds32elf16m.sh
nds32elf_linux.sh
news.sh
nios2elf.sh
nios2linux.sh
ns32knbsd.sh
pc532macha.sh
pdp11.sh
pjelf.sh
pjlelf.sh
plt_unwind.sh
ppclynx.sh
ppcmacos.sh
ppcnw.sh
ppcpe.sh
README
riscix.sh
score3_elf.sh
score7_elf.sh
sh.sh
shelf.sh
shelf32.sh
shelf32_linux.sh
shelf32_nbsd.sh
shelf64.sh
shelf64_nbsd.sh
shelf_fd.sh
shelf_linux.sh
shelf_nbsd.sh
shelf_nto.sh
shelf_uclinux.sh
shelf_vxworks.sh
shl.sh
shlelf.sh
shlelf32.sh
shlelf32_linux.sh
shlelf32_nbsd.sh
shlelf64.sh
shlelf64_nbsd.sh
shlelf_fd.sh
shlelf_linux.sh
shlelf_nbsd.sh
shlelf_nto.sh
shlelf_vxworks.sh
shlsymbian.sh
shpe.sh
solaris2.sh
sparcaout.sh
sparclinux.sh
sparcnbsd.sh
st2000.sh
sun3.sh
sun4.sh
tic3xcoff.sh
tic3xcoff_onchip.sh
tic4xcoff.sh
tic30aout.sh
tic30coff.sh
tic54xcoff.sh
tic80coff.sh
v850.sh
v850_rh850.sh
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.