binutils-gdb/ld/testsuite/ld-ifunc
H.J. Lu 144bed8d4d Properly match PLT entry against .got.plt relocation
Relocations against .got.plt section may not be in the same order as
entries in PLT section.  It is incorrect to assume that the Ith reloction
index against .got.plt section always maps to the (I + 1)th entry in PLT
section.  This patch matches the .got.plt relocation offset/index in PLT
entry against the index in .got.plt relocation table.  It only checks
R_*_JUMP_SLOT and R_*_IRELATIVE relocations.  It ignores R_*_TLS_DESC
and R_*_TLSDESC relocations since they have different PLT entries.

bfd/

	PR binutils/17154
	* elf32-i386.c (elf_i386_plt_sym_val): Only match R_*_JUMP_SLOT
	and R_*_IRELATIVE relocation offset with PLT entry.
	* elf64-x86-64.c (elf_x86_64_plt_sym_val): Likewise.
	(elf_x86_64_plt_sym_val_offset_plt_bnd): New.
	(elf_x86_64_get_synthetic_symtab): Use it.

ld/testsuite/

	PR binutils/17154
	* ld-ifunc/pr17154-i386.d: New file.
	* ld-ifunc/pr17154-x86-64.d: Likewise.
	* ld-ifunc/pr17154-x86.s: Likewise.
	* ld-x86-64/bnd-ifunc-2.d: Likewise.
	* ld-x86-64/bnd-ifunc-2.s: Likewise.
	* ld-x86-64/mpx.exp: Run bnd-ifunc-2.
	* ld-x86-64/tlsdesc-nacl.pd: Updated.
	* ld-x86-64/tlsdesc.pd: Likewise.
2014-07-16 10:57:49 -07:00
..
binutils.exp Update copyright years 2014-03-05 22:16:15 +10:30
dummy.c Check incompatible existing default symbol definition 2014-01-21 15:42:51 -08:00
ifunc-1-local-x86.d
ifunc-1-local-x86.s
ifunc-1-x86.d
ifunc-1-x86.s
ifunc-2-i386.d
ifunc-2-i386.s
ifunc-2-local-i386.d
ifunc-2-local-i386.s
ifunc-2-local-x86-64.d
ifunc-2-local-x86-64.s
ifunc-2-x86-64.d
ifunc-2-x86-64.s
ifunc-3-x86.s
ifunc-3a-x86.d
ifunc-3b-x86.d
ifunc-4-local-x86.d
ifunc-4-local-x86.s
ifunc-4-x86.d
ifunc-4-x86.s
ifunc-4a-x86.d
ifunc-5-i386.s
ifunc-5-local-i386.s
ifunc-5-local-x86-64.s
ifunc-5-x86-64.s
ifunc-5a-i386.d
ifunc-5a-local-i386.d
ifunc-5a-local-x86-64.d
ifunc-5a-x86-64.d
ifunc-5b-i386.d
ifunc-5b-local-i386.d
ifunc-5b-local-x86-64.d
ifunc-5b-x86-64.d
ifunc-5r-local-i386.d
ifunc-5r-local-x86-64.d
ifunc-6-i386.s
ifunc-6-x86-64.s
ifunc-6a-i386.d
ifunc-6a-x86-64.d
ifunc-6b-i386.d
ifunc-6b-x86-64.d
ifunc-7-i386.s
ifunc-7-x86-64.s
ifunc-7a-i386.d
ifunc-7a-x86-64.d
ifunc-7b-i386.d
ifunc-7b-x86-64.d
ifunc-8-i386.d
ifunc-8-x86-64.d
ifunc-8a-i386.s
ifunc-8a-x86-64.s
ifunc-8b-i386.s
ifunc-8b-x86-64.s
ifunc-9-x86.d
ifunc-9-x86.s
ifunc-10-i386.d
ifunc-10-i386.s
ifunc-10-x86-64.d
ifunc-10-x86-64.s
ifunc-11-i386.d
ifunc-11-i386.s
ifunc-11-x86-64.d
ifunc-11-x86-64.s
ifunc-12-i386.d
ifunc-12-i386.s
ifunc-12-x86-64.d
ifunc-12-x86-64.s
ifunc-13-i386.d
ifunc-13-x86-64.d
ifunc-13a-i386.s
ifunc-13a-x86-64.s
ifunc-13b-i386.s
ifunc-13b-x86-64.s
ifunc-14a-i386.d
ifunc-14a-x86-64.d
ifunc-14a.s
ifunc-14b-i386.d
ifunc-14b-x86-64.d
ifunc-14b.s
ifunc-14c-i386.d
ifunc-14c-x86-64.d
ifunc-14c.s
ifunc-14d-i386.d
ifunc-14d-x86-64.d
ifunc-14e-i386.d
ifunc-14e-x86-64.d
ifunc-14f-i386.d
ifunc-14f-x86-64.d
ifunc-15-i386.d
ifunc-15-i386.s
ifunc-15-x86-64.d
ifunc-15-x86-64.s
ifunc-16-i386.d
ifunc-16-x86-64.d
ifunc-16-x86.s
ifunc-17a-i386.d
ifunc-17a-x86-64.d
ifunc-17a.s
ifunc-17b-i386.d
ifunc-17b-x86-64.d
ifunc-17b.s
ifunc-18a-i386.d
ifunc-18a-x86-64.d
ifunc-18a.s
ifunc-18b-i386.d
ifunc-18b-x86-64.d
ifunc-18b.s
ifunc-19a-i386.d
ifunc-19a-x86-64.d
ifunc-19a.s
ifunc-19b-i386.d
ifunc-19b-x86-64.d
ifunc-19b.s
ifunc-20-i386.d
ifunc-20-x86-64.d
ifunc-20.s
ifunc-common-1.out
ifunc-common-1a.c
ifunc-common-1b.c
ifunc.exp Update copyright years 2014-03-05 22:16:15 +10:30
lib.c
pr16467.out Check incompatible existing default symbol definition 2014-01-21 15:42:51 -08:00
pr16467a.c Check incompatible existing default symbol definition 2014-01-21 15:42:51 -08:00
pr16467a.map Check incompatible existing default symbol definition 2014-01-21 15:42:51 -08:00
pr16467b.c Check incompatible existing default symbol definition 2014-01-21 15:42:51 -08:00
pr16467b.map Check incompatible existing default symbol definition 2014-01-21 15:42:51 -08:00
pr16467c.c Check incompatible existing default symbol definition 2014-01-21 15:42:51 -08:00
pr17154-i386.d Properly match PLT entry against .got.plt relocation 2014-07-16 10:57:49 -07:00
pr17154-x86-64.d Properly match PLT entry against .got.plt relocation 2014-07-16 10:57:49 -07:00
pr17154-x86.s Properly match PLT entry against .got.plt relocation 2014-07-16 10:57:49 -07:00
prog.c
test-1.c
test-2.c