newlib/include
Will Newton 0d284dd0c1 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:00 +00:00
..
aout Add copyright notices 2012-12-17 16:56:03 +00:00
cgen Add copyright notices 2012-12-10 12:48:00 +00:00
coff include/coff/ 2013-02-04 05:25:41 +00:00
elf aarch64: Add support for GNU indirect functions. 2013-06-07 18:57:00 +00:00
gdb gdb: 2013-03-15 17:53:41 +00:00
mach-o Add copyright notices 2012-12-10 12:48:00 +00:00
nlm Add copyright notices 2012-12-10 12:48:00 +00:00
opcode * gas/config/tc-avr.c: Change ISA for devices with USB support to 2013-06-01 07:14:44 +00:00
som Add copyright notices 2012-12-10 12:48:00 +00:00
vms Add copyright notices 2012-12-10 12:48:00 +00:00
COPYING
COPYING3
ChangeLog 2013-05-06 Paul Brook <paul@codesourcery.com> 2013-05-06 15:25:45 +00:00
ChangeLog-9103 Add copyright notices 2012-12-10 12:48:00 +00:00
MAINTAINERS Add copyright notices 2012-12-17 16:56:03 +00:00
alloca-conf.h Add copyright notices 2012-12-17 16:56:03 +00:00
ansidecl.h merge from gcc 2012-12-18 17:41:27 +00:00
bfdlink.h include/ 2013-02-18 23:50:26 +00:00
binary-io.h
bout.h Upgrade header files to use GPLv3 2010-04-15 10:26:09 +00:00
demangle.h merge from gcc 2013-04-03 18:21:40 +00:00
dis-asm.h 2013-02-06 Sandra Loosemore <sandra@codesourcery.com> 2013-02-06 23:22:18 +00:00
dwarf2.def merge from gcc 2012-11-11 22:37:19 +00:00
dwarf2.h Restore patch lost in last merge from GCC. 2013-03-01 23:40:38 +00:00
dyn-string.h merge from gcc 2009-06-01 19:40:32 +00:00
fibheap.h merge from gcc 2009-06-01 19:40:32 +00:00
filenames.h include/ 2012-07-13 23:39:46 +00:00
floatformat.h merge from gcc 2011-01-03 21:05:50 +00:00
fnmatch.h
fopen-bin.h Add copyright notices 2012-12-17 16:56:03 +00:00
fopen-same.h Add copyright notices 2012-12-17 16:56:03 +00:00
fopen-vms.h Add copyright notices 2012-12-17 16:56:03 +00:00
gdbm.h
getopt.h
hashtab.h merge from gcc 2010-06-10 18:30:17 +00:00
hp-symtab.h Upgrade header files to use GPLv3 2010-04-15 10:26:09 +00:00
ieee.h
leb128.h * leb128.h: #include stdint.h, inttypes.h. 2012-05-24 01:18:15 +00:00
libiberty.h merge from gcc 2011-09-28 20:01:37 +00:00
lto-symtab.h merge from gcc 2009-10-07 02:57:27 +00:00
md5.h PR other/54620 2013-01-30 16:52:35 +00:00
oasys.h Upgrade header files to use GPLv3 2010-04-15 10:26:09 +00:00
objalloc.h merge from gcc 2012-10-10 03:11:22 +00:00
obstack.h * obstack.h [!GNUC] (obstack_free): Avoid cast to int. 2011-10-22 01:35:29 +00:00
os9k.h
partition.h
plugin-api.h This patch assigns explicit integers to enum values corresponding 2013-02-11 19:36:56 +00:00
progress.h Upgrade header files to use GPLv3 2010-04-15 10:26:09 +00:00
safe-ctype.h
sha1.h PR other/54620 2013-01-30 16:52:35 +00:00
simple-object.h merge from gcc 2010-11-17 02:03:39 +00:00
sort.h
splay-tree.h merge from gcc 2012-04-10 17:07:28 +00:00
symcat.h * symcat.h (CONCAT5, CONCAT6, XCONCAT5, XCONCAT6): Define. 2010-03-23 15:58:51 +00:00
timeval-utils.h merge from gcc 2011-09-28 20:01:37 +00:00
xregex.h merge from gcc 2011-07-25 17:11:44 +00:00
xregex2.h
xtensa-config.h merge from gcc 2011-01-03 21:05:50 +00:00
xtensa-isa-internal.h Upgrade header files to use GPLv3 2010-04-15 10:26:09 +00:00
xtensa-isa.h Upgrade header files to use GPLv3 2010-04-15 10:26:09 +00:00