1419bbe571
Add support for STT_GNU_IFUNC symbols to the AArch64 bfd backend. The tests are ported from the ld-ifunc tests but are enabled for cross builds so can be run easily without hardware or a simulator. bfd/ChangeLog: 2013-10-03 Will Newton <will.newton@linaro.org> * configure: Regenerate. * configure.in: Build elf-ifunc.o for AArch64. * elfnn-aarch64.c: Include objalloc.h. (elfNN_aarch64_local_htab_hash): New function. (elfNN_aarch64_local_htab_eq): New function. (elfNN_aarch64_get_local_sym_hash): New function. (elfNN_aarch64_link_hash_table_create): Initialize local STT_GNU_IFUNC symbol hash. (elfNN_aarch64_hash_table_free): Free local STT_GNU_IFUNC symbol hash. (elfNN_aarch64_final_link_relocate): Add sym argument. Add support for handling STT_GNU_IFUNC symbols. (elfNN_aarch64_gc_sweep_hook): Add support for garbage collecting references to STT_GNU_IFUNC symbols. (elfNN_aarch64_adjust_dynamic_symbol): Add support for handling STT_GNU_IFUNC symbols. (elfNN_aarch64_check_relocs): Add support for handling STT_GNU_IFUNC symbols. Ensure we don't increase plt.refcount from -1 to 0. (elfNN_aarch64_post_process_headers): Call _bfd_elf_set_osabi. (elfNN_aarch64_is_function_type): Remove function. (elfNN_aarch64_allocate_dynrelocs): Handle STT_GNU_IFUNC symbols. (elfNN_aarch64_allocate_ifunc_dynrelocs): New function. (elfNN_aarch64_allocate_local_dynrelocs): New function. (elfNN_aarch64_allocate_local_ifunc_dynrelocs): New function. (elfNN_aarch64_size_dynamic_sections): Call elfNN_aarch64_allocate_local_dynrelocs. (elfNN_aarch64_create_small_pltn_entry): Add info argument. Add support for creating .iplt entries for STT_GNU_IFUNC symbols. (elfNN_aarch64_finish_dynamic_symbol): Add support for handling STT_GNU_IFUNC symbols and .iplt. (elfNN_aarch64_finish_local_dynamic_symbol): New function. (elfNN_aarch64_finish_dynamic_sections): Call elfNN_aarch64_finish_local_dynamic_symbol. ld/ChangeLog: 2013-10-03 Will Newton <will.newton@linaro.org> * emulparams/aarch64elf.sh: Add IREL_IN_PLT. * emulparams/aarch64elf32.sh: Likewise. ld/testsuite/ChangeLog: 2013-10-03 Will Newton <will.newton@linaro.org> * ld-ifunc/ifunc.exp: Enable ifunc tests for AArch64. * ld-aarch64/aarch64-elf.exp: Run ifunc tests. * ld-aarch64/ifunc-1-local.d: New file. * ld-aarch64/ifunc-1-local.s: Likewise. * ld-aarch64/ifunc-1.d: Likewise. * ld-aarch64/ifunc-1.s: Likewise. * ld-aarch64/ifunc-10.d: Likewise. * ld-aarch64/ifunc-10.s: Likewise. * ld-aarch64/ifunc-11.d: Likewise. * ld-aarch64/ifunc-11.s: Likewise. * ld-aarch64/ifunc-12.d: Likewise. * ld-aarch64/ifunc-12.s: Likewise. * ld-aarch64/ifunc-13.d: Likewise. * ld-aarch64/ifunc-13a.s: Likewise. * ld-aarch64/ifunc-13b.s: Likewise. * ld-aarch64/ifunc-14a.d: Likewise. * ld-aarch64/ifunc-14a.s: Likewise. * ld-aarch64/ifunc-14b.d: Likewise. * ld-aarch64/ifunc-14b.s: Likewise. * ld-aarch64/ifunc-14c.d: Likewise. * ld-aarch64/ifunc-14c.s: Likewise. * ld-aarch64/ifunc-14d.d: Likewise. * ld-aarch64/ifunc-14e.d: Likewise. * ld-aarch64/ifunc-14f.d: Likewise. * ld-aarch64/ifunc-15.d: Likewise. * ld-aarch64/ifunc-15.s: Likewise. * ld-aarch64/ifunc-16.d: Likewise. * ld-aarch64/ifunc-16.s: Likewise. * ld-aarch64/ifunc-17a.d: Likewise. * ld-aarch64/ifunc-17a.s: Likewise. * ld-aarch64/ifunc-17b.d: Likewise. * ld-aarch64/ifunc-17b.s: Likewise. * ld-aarch64/ifunc-18a.d: Likewise. * ld-aarch64/ifunc-18a.s: Likewise. * ld-aarch64/ifunc-18b.d: Likewise. * ld-aarch64/ifunc-18b.s: Likewise. * ld-aarch64/ifunc-19a.d: Likewise. * ld-aarch64/ifunc-19a.s: Likewise. * ld-aarch64/ifunc-19b.d: Likewise. * ld-aarch64/ifunc-19b.s: Likewise. * ld-aarch64/ifunc-2-local.d: Likewise. * ld-aarch64/ifunc-2-local.s: Likewise. * ld-aarch64/ifunc-2.d: Likewise. * ld-aarch64/ifunc-2.s: Likewise. * ld-aarch64/ifunc-20.d: Likewise. * ld-aarch64/ifunc-20.s: Likewise. * ld-aarch64/ifunc-3.s: Likewise. * ld-aarch64/ifunc-3a.d: Likewise. * ld-aarch64/ifunc-3b.d: Likewise. * ld-aarch64/ifunc-4.d: Likewise. * ld-aarch64/ifunc-4.s: Likewise. * ld-aarch64/ifunc-4a.d: Likewise. * ld-aarch64/ifunc-5-local.s: Likewise. * ld-aarch64/ifunc-5.s: Likewise. * ld-aarch64/ifunc-5a-local.d: Likewise. * ld-aarch64/ifunc-5a.d: Likewise. * ld-aarch64/ifunc-5b-local.d: Likewise. * ld-aarch64/ifunc-5b.d: Likewise. * ld-aarch64/ifunc-5r-local.d: Likewise. * ld-aarch64/ifunc-6.s: Likewise. * ld-aarch64/ifunc-6a.d: Likewise. * ld-aarch64/ifunc-6b.d: Likewise. * ld-aarch64/ifunc-7.s: Likewise. * ld-aarch64/ifunc-7a.d: Likewise. * ld-aarch64/ifunc-7b.d: Likewise. * ld-aarch64/ifunc-7c.d: Likewise. * ld-aarch64/ifunc-8.d: Likewise. * ld-aarch64/ifunc-8a.s: Likewise. * ld-aarch64/ifunc-8b.s: Likewise. * ld-aarch64/ifunc-9.d: Likewise. * ld-aarch64/ifunc-9.s: Likewise. |
||
---|---|---|
.. | ||
aarch64elf32.sh | ||
aarch64elf32b.sh | ||
aarch64elf.sh | ||
aarch64elfb.sh | ||
aarch64linux.sh | ||
aarch64linuxb.sh | ||
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 | ||
armelf_linux_eabi.sh | ||
armelf_linux.sh | ||
armelf_nacl.sh | ||
armelf_nbsd.sh | ||
armelf_vxworks.sh | ||
armelf.sh | ||
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 | ||
avrxmega1.sh | ||
avrxmega2.sh | ||
avrxmega3.sh | ||
avrxmega4.sh | ||
avrxmega5.sh | ||
avrxmega6.sh | ||
avrxmega7.sh | ||
bfin.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_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 | ||
elf32_tic6x_linux_be.sh | ||
elf32_tic6x_linux_le.sh | ||
elf32_x86_64_nacl.sh | ||
elf32_x86_64.sh | ||
elf32am33lin.sh | ||
elf32b4300.sh | ||
elf32bfinfd.sh | ||
elf32bmip.sh | ||
elf32bmipn32-defs.sh | ||
elf32bmipn32.sh | ||
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 | ||
elf32frv.sh | ||
elf32frvfd.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_fbsd.sh | ||
elf32ltsmip.sh | ||
elf32ltsmipn32_fbsd.sh | ||
elf32ltsmipn32.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 | ||
elf32openrisc.sh | ||
elf32ppc_fbsd.sh | ||
elf32ppc.sh | ||
elf32ppccommon.sh | ||
elf32ppclinux.sh | ||
elf32ppcnto.sh | ||
elf32ppcsim.sh | ||
elf32ppcvxworks.sh | ||
elf32ppcwindiss.sh | ||
elf32rl78.sh | ||
elf32rx.sh | ||
elf32tilegx_be.sh | ||
elf32tilegx.sh | ||
elf32tilepro.sh | ||
elf32vax.sh | ||
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 | ||
elf64bmip.sh | ||
elf64btsmip_fbsd.sh | ||
elf64btsmip.sh | ||
elf64hppa.sh | ||
elf64lppc.sh | ||
elf64ltsmip_fbsd.sh | ||
elf64ltsmip.sh | ||
elf64mmix.sh | ||
elf64ppc_fbsd.sh | ||
elf64ppc.sh | ||
elf64rdos.sh | ||
elf64tilegx_be.sh | ||
elf64tilegx.sh | ||
elf_fbsd.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_i386.sh | ||
elf_k1om_fbsd.sh | ||
elf_k1om.sh | ||
elf_l1om_fbsd.sh | ||
elf_l1om.sh | ||
elf_nacl.sh | ||
elf_s390.sh | ||
elf_x86_64_fbsd.sh | ||
elf_x86_64_nacl.sh | ||
elf_x86_64_sol2.sh | ||
elf_x86_64.sh | ||
gld960.sh | ||
gld960coff.sh | ||
h8300.sh | ||
h8300elf.sh | ||
h8300h.sh | ||
h8300helf.sh | ||
h8300hn.sh | ||
h8300hnelf.sh | ||
h8300s.sh | ||
h8300self.sh | ||
h8300sn.sh | ||
h8300snelf.sh | ||
h8300sx.sh | ||
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 | ||
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 | ||
i386pep.sh | ||
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 | ||
msp430all.sh | ||
news.sh | ||
nios2elf.sh | ||
ns32knbsd.sh | ||
or32.sh | ||
or32elf.sh | ||
pc532macha.sh | ||
pdp11.sh | ||
pjelf.sh | ||
pjlelf.sh | ||
plt_unwind.sh | ||
ppclynx.sh | ||
ppcmacos.sh | ||
ppcnw.sh | ||
ppcpe.sh | ||
README | ||
riscix.sh | ||
scoreelf.sh | ||
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 | ||
v850.sh | ||
vanilla.sh | ||
vax.sh | ||
vaxnbsd.sh | ||
vsta.sh | ||
vxworks.sh | ||
w65.sh | ||
xgateelf.sh | ||
z80.sh | ||
z8001.sh | ||
z8002.sh |
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.