old-cross-binutils/ld/testsuite/ld-i386/pr20244-2a.d
H.J. Lu 712ec27916 Add the GOT base for GOT32 relocs against IFUNC
Add the GOT base for R_386_GOT32/R_386_GOT32X relocations against IFUNC
symbols if there is no base register and disallow them for PIC.

bfd/

	PR ld/20244
	* elf32-i386.c (elf_i386_relocate_section): Add the .got.plt
	section address for R_386_GOT32/R_386_GOT32X relocations against
	IFUNC symbols if there is no base register and return error for
	PIC.

ld/

	PR ld/20244
	* testsuite/ld-i386/i386.exp: Run pr20244-2a, pr20244-2b,
	pr20244-2c and pr20244-2d.
	* testsuite/ld-i386/no-plt.exp: Run pr20244-3a and pr20244-3b.
	* testsuite/ld-i386/pr20244-2.s: New file.
	* testsuite/ld-i386/pr20244-2a.d: Likewise.
	* testsuite/ld-i386/pr20244-2b.d: Likewise.
	* testsuite/ld-i386/pr20244-2c.d: Likewise.
	* testsuite/ld-i386/pr20244-2d.d: Likewise.
	* testsuite/ld-i386/pr20244-3a.c: Likewise.
	* testsuite/ld-i386/pr20244-3b.S: Likewise.
	* testsuite/ld-i386/pr20244-3c.S: Likewise.
	* testsuite/ld-i386/pr20244-3d.S: Likewise.
2016-06-13 11:11:23 -07:00

43 lines
1.1 KiB
Makefile

#source: pr20244-2.s
#as: --32
#ld: -m elf_i386
#objdump: --sym -dw
#notarget: i?86-*-nacl* x86_64-*-nacl*
.*: +file format .*
SYMBOL TABLE:
#...
0+80480b1 l i .text 00000000 bar
#...
0+80480b2 g F .text 00000000 _start
#...
0+80480b0 g i .text 00000000 foo
#...
Disassembly of section .plt:
0+8048090 <.plt>:
+[a-f0-9]+: ff 25 e0 90 04 08 jmp \*0x80490e0
+[a-f0-9]+: 68 00 00 00 00 push \$0x0
+[a-f0-9]+: e9 00 00 00 00 jmp 80480a0 <foo-0x10>
+[a-f0-9]+: ff 25 e4 90 04 08 jmp \*0x80490e4
+[a-f0-9]+: 68 00 00 00 00 push \$0x0
+[a-f0-9]+: e9 00 00 00 00 jmp 80480b0 <foo>
Disassembly of section .text:
0+80480b0 <foo>:
+[a-f0-9]+: c3 ret
0+80480b1 <bar>:
+[a-f0-9]+: c3 ret
0+80480b2 <_start>:
+[a-f0-9]+: ff 15 e0 90 04 08 call \*0x80490e0
+[a-f0-9]+: ff 25 e4 90 04 08 jmp \*0x80490e4
+[a-f0-9]+: c7 05 e4 90 04 08 00 00 00 00 movl \$0x0,0x80490e4
+[a-f0-9]+: 83 3d e0 90 04 08 00 cmpl \$0x0,0x80490e0
+[a-f0-9]+: b9 10 00 00 00 mov \$0x10,%ecx
#pass