binutils-gdb/include/elf
Will Newton 692e2b8bcd aarch64: Add support for GNU indirect functions.
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-06-07  Will Newton  <will.newton@linaro.org>

	* configure: Regenerate.
	* configure.in: Build elf-ifunc.o for AArch64.
	* elf64-aarch64.c: Include objalloc.h.
	(elf64_aarch64_howto_dynrelocs): Add R_AARCH64_IRELATIVE howto.
	(struct elf64_aarch64_link_hash_table): Add members for handling
	R_AARCH64_IRELATIVE relocations.
	(elf_aarch64_local_htab_hash): New function.
	(elf_aarch64_local_htab_eq): New function.
	(elf_aarch64_get_local_sym_hash): New function.
	(elf64_aarch64_link_hash_table_create): Initialize local STT_GNU_IFUNC
	symbol hash.
	(elf64_aarch64_hash_table_free): Free local STT_GNU_IFUNC symbol hash.
	(elf64_aarch64_final_link_relocate): Add sym argument.  Add support
	for handling STT_GNU_IFUNC symbols.
	(elf64_aarch64_gc_sweep_hook): Add support for garbage collecting
	references to STT_GNU_IFUNC symbols.
	(elf64_aarch64_adjust_dynamic_symbol): Add support for handling
	STT_GNU_IFUNC symbols.
	(elf64_aarch64_check_relocs): Add support for handling STT_GNU_IFUNC
	symbols.  Ensure we don't increase plt.refcount from -1 to 0.
	(elf64_aarch64_post_process_headers): Call _bfd_elf_set_osabi.
	(elf64_aarch64_is_function_type): Remove function.
	(elf64_aarch64_allocate_dynrelocs): Call
	_bfd_elf_allocate_ifunc_dyn_relocs for STT_GNU_IFUNC symbols.
	(elf_aarch64_allocate_local_dynrelocs): New function.
	(elf64_aarch64_size_dynamic_sections): Call
	elf_aarch64_allocate_local_dynrelocs.  Initialize next_irelative_index.
	(elf64_aarch64_create_small_pltn_entry): Add info argument.
	Add support for creating .iplt entries for STT_GNU_IFUNC symbols.
	(elf64_aarch64_finish_dynamic_symbol): Add support for handling
	STT_GNU_IFUNC symbols and .iplt.
	(elf_aarch64_finish_local_dynamic_symbol): New function.
	(elf64_aarch64_finish_dynamic_sections): Call
	elf_aarch64_finish_local_dynamic_symbol.
	(elf64_aarch64_add_symbol_hook): New function.

include/elf/ChangeLog:

2013-06-07  Will Newton  <will.newton@linaro.org>

	* aarch64.h: Add R_AARCH64_IRELATIVE reloc.

ld/ChangeLog:

2013-06-07  Will Newton  <will.newton@linaro.org>

	* emulparams/aarch64elf.sh: Add IREL_IN_PLT.

ld/testsuite/ChangeLog:

2013-06-07  Will Newton  <will.newton@linaro.org>

	* ld-ifunc/ifunc.exp: Enable ifunc tests for AArch64.
	* ld-aarch64/aarch64-elf.exp: Add 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-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.
2013-06-07 18:57:03 +00:00
..
aarch64.h aarch64: Add support for GNU indirect functions. 2013-06-07 18:57:03 +00:00
alpha.h
arc.h
arm.h bfd: 2012-10-30 12:44:58 +00:00
avr.h PR 13503 2012-05-16 14:52:16 +00:00
bfin.h
ChangeLog aarch64: Add support for GNU indirect functions. 2013-06-07 18:57:03 +00:00
ChangeLog-9103 Add copyright notices 2012-12-10 12:48:03 +00:00
common.h Add EM_INTEL205 to EM_INTEL209 2013-05-22 17:02:35 +00:00
cr16.h
cr16c.h
cris.h
crx.h
d10v.h
d30v.h
dlx.h
dwarf.h
epiphany.h
external.h
fr30.h
frv.h
h8.h * elf32-h8300 (h8_relax_section): Add new relaxation of mov 2013-03-21 16:08:07 +00:00
hppa.h
i370.h
i386.h Define R_386_SIZE32/R_X86_64_SIZE32/R_X86_64_SIZE64 2013-01-16 20:31:57 +00:00
i860.h
i960.h
ia64.h
internal.h
ip2k.h
iq2000.h
lm32.h
m32c.h
m32r.h
m68hc11.h * m68hc11.h: #define E_M68HC11_NO_BANK_WARNING 2012-08-02 20:08:54 +00:00
m68k.h
mcore.h
mep.h
metag.h * common.h: Fix case of "Meta". 2013-01-10 09:49:22 +00:00
microblaze.h Microblaze: Add support for handling TLS symbol suffixes and generating 2012-12-11 16:56:53 +00:00
mips.h * mips.h (ELF_ST_SET_MIPS_PIC): Clear any STO_MIPS16 setting. 2013-06-06 22:09:07 +00:00
mmix.h
mn10200.h
mn10300.h
moxie.h
msp430.h * archures.c: Add some more MSP430 machine numbers. 2013-05-02 21:06:15 +00:00
mt.h
nios2.h 2013-02-06 Sandra Loosemore <sandra@codesourcery.com> 2013-02-06 23:22:26 +00:00
openrisc.h
or32.h
pj.h
ppc64.h
ppc.h Add support for PowerPC VLE. 2012-05-14 19:45:30 +00:00
reloc-macros.h
rl78.h
rx.h 2012-11-09 Nick Clifton <nickc@redhat.com> 2012-11-09 17:00:44 +00:00
s390.h 2012-07-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 2012-07-13 15:47:27 +00:00
score.h
sh.h
sparc.h Add new ELF_SPARC_HWCAP_* defines for features found on SPARC-T4. 2012-04-27 18:00:52 +00:00
spu.h
tic6x-attrs.h
tic6x.h
tilegx.h Add support for constructing pc-relative addresses to the plt, by 2012-08-28 02:43:22 +00:00
tilepro.h
v850.h Add support for V850E3V5 architecture 2013-01-24 11:14:05 +00:00
vax.h
vxworks.h
x86-64.h Define R_386_SIZE32/R_X86_64_SIZE32/R_X86_64_SIZE64 2013-01-16 20:31:57 +00:00
xc16x.h
xgate.h Add support for Motorola XGATE embedded CPU 2012-05-03 13:12:08 +00:00
xstormy16.h
xtensa.h