binutils-gdb/ld/testsuite/ld-i386/pr27998a.s
H.J. Lu 406b4ada55 x86: Count PLT for GOTOFF relocation against IFUNC symbol
Since GOTOFF relocations against IFUNC symbols must go through PLT,
set PLT reference count to 1 for GOTOFF relocation.

bfd/

	PR ld/27998
	* elfxx-x86.c (elf_x86_allocate_dynrelocs): Count PLT for GOTOFF
	relocation against IFUNC symbols.
	(_bfd_x86_elf_adjust_dynamic_symbol): Likewise.

ld/

	PR ld/27998
	* testsuite/ld-i386/i386.exp: Run PR ld/27998 tests.
	* testsuite/ld-i386/pr27998a.d: New file.
	* testsuite/ld-i386/pr27998a.s: Likewise.
	* testsuite/ld-i386/pr27998b.d: Likewise.
	* testsuite/ld-i386/pr27998b.s: Likewise.
2021-06-19 20:21:04 -07:00

23 lines
374 B
ArmAsm

.text
.p2align 4
.type my_foo, @function
my_foo:
ret
.size my_foo, .-my_foo
.p2align 4
.type resolve_foo, @function
resolve_foo:
leal my_foo@GOTOFF(%eax), %eax
ret
.size resolve_foo, .-resolve_foo
.globl foo
.hidden foo
.type foo, @gnu_indirect_function
.set foo,resolve_foo
.p2align 4
.globl bar
.type bar, @function
bar:
leal foo@GOTOFF(%eax), %eax
ret