binutils-gdb/ld/testsuite/ld-ifunc
H.J. Lu 74437ea28f i386: Issue an error on non-PIC call to IFUNC in PIC object
On i386, IFUNC function must be called via PLT.  Since PLT in PIC
object uses EBX register, R_386_PLT32 relocation must be used to
call IFUNC function even when IFUNC function is defined locally.
Linker should issue an error when R_386_PC32 relocation is used
to call IFUNC function.

Since PR ld/19784 tests doesn't use PLT relocation to local IFUNC
function, they are moved to the x86-64 test directory.

bfd/

	PR ld/14961
	PR ld/20515
	* elf32-i386.c (elf_i386_check_relocs): Issue an error when
	R_386_PC32 relocation is used to call IFUNC function in PIC
	object.

ld/

	PR ld/14961
	PR ld/20515
	* testsuite/ld-i386/i386.exp: Run pr20515.
	* testsuite/ld-i386/pr20515.d: New file.
	* testsuite/ld-i386/pr20515.s: Likewise.
	* testsuite/ld-ifunc/ifunc-14a.s: Use R_386_PLT32 to call IFUNC
	function.
	* testsuite/ld-ifunc/ifunc-14c.s: Likewise.
	* testsuite/ld-ifunc/ifunc-2-i386.s: Likewise.
	* testsuite/ld-ifunc/ifunc-2-local-i386.s: Likewise.
	* testsuite/ld-ifunc/ifunc.exp: Move PR ld/19784 tests to ...
	* testsuite/ld-x86-64/x86-64.exp: Here.
	* testsuite/ld-ifunc/pr19784a.c: Moved to ...
	* testsuite/ld-x86-64/pr19784a.c: Here.
	* testsuite/ld-ifunc/pr19784b.c: Moved to ...
	* testsuite/ld-x86-64/pr19784b.c: Here.
	* testsuite/ld-ifunc/pr19784c.c: Moved to ...
	* testsuite/ld-x86-64/pr19784c.c: Here.
2016-08-29 08:14:45 -07:00
..
binutils.exp Copyright update for binutils 2016-01-01 23:00:01 +10:30
dummy.c
ifunc-1-local-x86.d Update IFUNC tests for x32 2016-02-17 13:05:06 -08:00
ifunc-1-local-x86.s
ifunc-1-x86.d Update IFUNC tests for x32 2016-02-17 13:05:06 -08:00
ifunc-1-x86.s
ifunc-2-i386.d
ifunc-2-i386.s i386: Issue an error on non-PIC call to IFUNC in PIC object 2016-08-29 08:14:45 -07:00
ifunc-2-local-i386.d
ifunc-2-local-i386.s i386: Issue an error on non-PIC call to IFUNC in PIC object 2016-08-29 08:14:45 -07:00
ifunc-2-local-x86-64.d [x86-64] Omit dynamic sections symbols 2016-02-17 11:19:04 -08:00
ifunc-2-local-x86-64.s
ifunc-2-x86-64.d [x86-64] Omit dynamic sections symbols 2016-02-17 11:19:04 -08:00
ifunc-2-x86-64.s
ifunc-3-x86.s
ifunc-3a-x86.d Update IFUNC tests for x32 2016-02-17 13:05:06 -08:00
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 Add -mrelax-relocations= to x86 assembler 2016-02-03 08:25:15 -08:00
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 Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
ifunc-13-x86-64.d Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
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 i386: Issue an error on non-PIC call to IFUNC in PIC object 2016-08-29 08:14:45 -07:00
ifunc-14b-i386.d
ifunc-14b-x86-64.d
ifunc-14b.s
ifunc-14c-i386.d
ifunc-14c-x86-64.d
ifunc-14c.s i386: Issue an error on non-PIC call to IFUNC in PIC object 2016-08-29 08:14:45 -07:00
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 Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
ifunc-15-i386.s
ifunc-15-x86-64.d Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
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 Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
ifunc-18a-x86-64.d Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
ifunc-18a.s Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
ifunc-18b-i386.d Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
ifunc-18b-x86-64.d Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
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-21-i386.d Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
ifunc-21-i386.s Add ifunc tests for call, jmp, add, test 2015-09-03 04:03:13 -07:00
ifunc-21-x86-64.d Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
ifunc-21-x86-64.s Add ifunc tests for call, jmp, add, test 2015-09-03 04:03:13 -07:00
ifunc-22-i386.d Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
ifunc-22-i386.s Add ifunc tests for call, jmp, add, test 2015-09-03 04:03:13 -07:00
ifunc-22-x86-64.d Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
ifunc-22-x86-64.s Add ifunc tests for call, jmp, add, test 2015-09-03 04:03:13 -07:00
ifunc-23-x86.s Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
ifunc-23a-x86.d Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
ifunc-23b-x86.d Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
ifunc-23c-x86.d Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
ifunc-24-x86.s Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
ifunc-24a-x86.d Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
ifunc-24b-x86.d Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
ifunc-24c-x86.d Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
ifunc-25-x86.s Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
ifunc-25a-x86.d Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
ifunc-25b-x86.d Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
ifunc-25c-x86.d Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
ifunc-common-1.out
ifunc-common-1a.c
ifunc-common-1b.c
ifunc-lib.c
ifunc-main.c
ifunc-main.out
ifunc.exp i386: Issue an error on non-PIC call to IFUNC in PIC object 2016-08-29 08:14:45 -07:00
lib.c
pass.out Handle local IFUNC symbols in shared object 2016-03-08 09:42:16 -08:00
pr16467.out
pr16467a.c
pr16467a.map
pr16467b.c
pr16467b.map
pr16467c.c
pr17154-i386.d
pr17154-x86-64.d [x86-64] Omit dynamic sections symbols 2016-02-17 11:19:04 -08:00
pr17154-x86.s
pr18808.out
pr18808a.c
pr18808b.c
pr18841.out
pr18841a.c
pr18841b.c
pr18841c.c Add another test for PR ld/18841 2015-08-18 10:43:47 -07:00
prog.c
test-1.c
test-2.c