old-cross-binutils/ld/testsuite
H.J. Lu cbe950e9fe bfd/
2009-06-01  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/10205
	* elf32-i386.c (elf_howto_table): Add R_386_IRELATIVE.
	(elf_i386_reloc_type_lookup): Likewise.
	(R_386_tls): Removed.
	(R_386_irelative): New.
	(R_386_vt_offset): Updated.
	(elf_i386_rtype_to_howto): Likewise.
	(elf_i386_link_hash_table): Add igotplt, iplt and irelplt.
	(elf_i386_link_hash_table_create): Initialize igotplt,
	iplt and irelplt.
	(elf_i386_check_relocs): Handle STT_GNU_IFUNC symbol first.
	(elf_i386_adjust_dynamic_symbol): Likewise.
	(elf_i386_allocate_dynrelocs): Likewise.
	(elf_i386_relocate_section): Likewise.
	(elf_i386_size_dynamic_sections): Set up .iplt and .igot.plt
	sections.
	(elf_i386_finish_dynamic_symbol): When building a static
	executable, use .iplt, .igot.plt and .rel.iplt sections for
	STT_GNU_IFUNC symbols.  Generate R_386_IRELATIVE relocation for
	locally defined STT_GNU_IFUNC symbol.

	* elf64-x86-64.c (x86_64_elf_howto): Add R_X86_64_IRELATIVE.
	(x86_64_reloc_map): Likewise.
	(R_X86_64_standard): Updated.
	(elf64_x86_64_link_hash_table): Add igotplt, iplt and irelplt.
	(elf64_x86_64_link_hash_table_create): Initialize igotplt,
	iplt and irelplt.
	(elf64_x86_64_check_relocs): Handle STT_GNU_IFUNC symbol first.
	(elf64_x86_64_adjust_dynamic_symbol): Likewise.
	(elf64_x86_64_allocate_dynrelocs): Likewise.
	(elf64_x86_64_relocate_section): Likewise.
	(elf64_x86_64_size_dynamic_sections): Set up .iplt and .igot.plt
	sections.
	(elf64_x86_64_finish_dynamic_symbol): When building a static
	executable, use .iplt, .igot.plt and .rela.iplt sections for
	STT_GNU_IFUNC symbols.  Generate R_X86_64_IRELATIVE relocation
	for locally defined STT_GNU_IFUNC symbol.

	* reloc.c (BFD_RELOC_386_IRELATIVE): New.
	(BFD_RELOC_X86_64_IRELATIVE): Likewise.

	* bfd-in2.h: Regenerated.
	* libbfd.h: Likewise.

include/elf/

2009-06-01  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/10205
	* i386.h (R_386_IRELATIVE): New.
	* x86-64.h (R_X86_64_IRELATIVE): Likewise.

ld/testsuite/

2009-06-01  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/10205
	* ld-ifunc/ifunc.exp (contains_irelative_reloc): New.
	Use it on executable and shared library.
	Run *.d.

	* ld-ifunc/lib.c: Add a hidden alias, __GI_library_func2, for
	library_func2.
	(library_func): New.

	* ld-ifunc/ifunc-1-x86.d: New.
	* ld-ifunc/ifunc-1-x86.s: Likewise.
	* ld-ifunc/ifunc-2-i386.d: Likewise.
	* ld-ifunc/ifunc-2-i386.s: Likewise.
	* ld-ifunc/ifunc-2-x86-64.d: Likewise.
	* ld-ifunc/ifunc-2-x86-64.s: Likewise.
	* ld-ifunc/ifunc-3a-x86.d: Likewise.
	* ld-ifunc/ifunc-3b-x86.d: Likewise.
	* ld-ifunc/ifunc-3-x86.s: Likewise.
	* ld-ifunc/ifunc-4-x86.d: Likewise.
	* ld-ifunc/ifunc-4-x86.s: Likewise.
	* ld-ifunc/ifunc-5-i386.d: Likewise.
	* ld-ifunc/ifunc-5-i386.s: Likewise.
	* ld-ifunc/ifunc-5-x86-64.d: Likewise.
	* ld-ifunc/ifunc-5-x86-64.s: Likewise.
2009-06-01 13:11:52 +00:00
..
config ld/ 2009-03-17 05:33:00 +00:00
ld-alpha Update for elf_link_output_extsym change 2008-07-22 14:15:32 +00:00
ld-arm ld/ 2009-05-22 11:58:45 +00:00
ld-auto-import * ld-auto-import/auto-import.exp: Add missing dll entrypoint. 2009-03-15 14:17:28 +00:00
ld-bootstrap ld/ 2009-03-17 05:01:26 +00:00
ld-cdtest
ld-checks include/elf 2009-04-30 15:47:13 +00:00
ld-cris * ld-cris/tls-e-dtpoffd3.d, ld-cris/tls-e-tpoffcomm1.d, 2009-03-25 03:04:21 +00:00
ld-crx
ld-cygwin binutils/ChangeLog 2009-04-01 17:20:19 +00:00
ld-d10v
ld-discard
ld-elf typo fix 2009-05-16 03:22:28 +00:00
ld-elfcomm Fix testcases compilation failures due to unused variables. 2008-09-17 07:43:49 +00:00
ld-elfvers [ld/ChangeLog] 2009-04-29 17:24:27 +00:00
ld-elfvsb
ld-elfweak
ld-fastcall
ld-frv
ld-gc * ld-gc/gc.c (dummy_func): New function - present so that 2008-10-29 08:29:02 +00:00
ld-h8300
ld-i386 * ld-i386/vxworks1-lib.dd: Adjust expected disassembly. 2009-04-28 12:46:10 +00:00
ld-ia64 * readelf.c (process_section_headers): Do not cut the section names and 2008-10-07 12:03:18 +00:00
ld-ifunc bfd/ 2009-06-01 13:11:52 +00:00
ld-libs binutils/testsuite/ 2009-04-16 04:24:07 +00:00
ld-linkonce
ld-m68hc11
ld-m68k new files accidentally omitted from previous delta 2009-02-03 14:48:32 +00:00
ld-maxq
ld-mep
ld-mips-elf include/elf/ 2008-12-03 14:51:00 +00:00
ld-mmix PR gas/6607 2008-06-16 15:07:01 +00:00
ld-mn10300
ld-pe ld/ChangeLog 2009-05-27 18:40:56 +00:00
ld-pie ld/ 2009-03-20 17:39:04 +00:00
ld-powerpc bfd/ 2009-05-27 13:31:24 +00:00
ld-s390
ld-scripts * ld-scripts/rgn-over7.d: Adjust expected message for recent change. 2009-05-22 15:54:36 +00:00
ld-selective
ld-sh * ld-sh/arch/arch_expected.txt: Regenerate. 2008-06-09 22:22:05 +00:00
ld-shared Fix testcases compilation failures due to unused variables. 2008-09-17 07:43:49 +00:00
ld-sparc bfd/ 2008-04-16 08:51:18 +00:00
ld-spu bfd/ 2009-05-14 16:56:09 +00:00
ld-srec * config/tc-mep.h (DIFF_EXPR_OK): Do not define. 2009-01-29 09:03:13 +00:00
ld-undefined ld/ 2009-03-18 12:11:38 +00:00
ld-v850
ld-versados
ld-vxworks bfd/ 2008-04-21 17:54:25 +00:00
ld-x86-64 Remove STT_IFUNC support. 2008-12-23 09:01:51 +00:00
ld-xc16x
ld-xstormy16
ld-xtensa 2008-08-20 Bob Wilson <bob.wilson@acm.org> 2008-08-20 23:28:59 +00:00
lib * lib/ld-lib.exp (run_ld_link_tests): Filter test names against 2009-05-20 13:40:38 +00:00
ChangeLog bfd/ 2009-06-01 13:11:52 +00:00
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008 bfd/ 2009-01-02 16:48:11 +00:00
ChangeLog-9303