[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug ld/23195] New: [AArch64] ld-aarch64/ifunc-9 failing
From: |
sudi at gcc dot gnu.org |
Subject: |
[Bug ld/23195] New: [AArch64] ld-aarch64/ifunc-9 failing |
Date: |
Thu, 17 May 2018 12:16:44 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=23195
Bug ID: 23195
Summary: [AArch64] ld-aarch64/ifunc-9 failing
Product: binutils
Version: unspecified
Status: NEW
Severity: normal
Priority: P2
Component: ld
Assignee: unassigned at sourceware dot org
Reporter: sudi at gcc dot gnu.org
Target Milestone: ---
Since the following commit:
commit 4ec0995016801cc5d5cf13baf6e10163861e6852
Author: H.J. Lu <address@hidden>
Date: Mon May 14 03:55:37 2018 -0700
x86; Allow IFUNC pointer defined in PDE
If IFUNC symbol is defined in position-dependent executable, we should
change it to the normal function and set its address to its PLT entry
which should be resolved by R_*_IRELATIVE at run-time. All external
references should be resolved to its PLT in executable.
bfd/
PR ld/23169
* elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Don't issue
an error on IFUNC pointer defined in PDE.
* elf32-i386.c (elf_i386_finish_dynamic_symbol): Call
_bfd_x86_elf_link_fixup_ifunc_symbol.
* elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Likewise.
* elfxx-x86.c (_bfd_x86_elf_link_fixup_ifunc_symbol): New
function.
* elfxx-x86.h (_bfd_x86_elf_link_fixup_ifunc_symbol): New.
ld/
PR ld/23169
* testsuite/ld-ifunc/ifunc-9-i386.d: New file.
* testsuite/ld-ifunc/ifunc-9-x86-64.d: Likewise.
* testsuite/ld-ifunc/pr23169a.c: Likewise.
* testsuite/ld-ifunc/pr23169a.rd: Likewise.
* testsuite/ld-ifunc/pr23169b.c: Likewise.
* testsuite/ld-ifunc/pr23169b.c: Likewise.
* testsuite/ld-ifunc/pr23169c.rd: Likewise.
* testsuite/ld-ifunc/pr23169c.rd: Likewise.
* testsuite/ld-ifunc/ifunc-9-x86.d: Removed.
* testsuite/ld-ifunc/ifunc.exp: Run PR ld/23169 tests.
I have observed the following failure on aarch64-none-linux-gnu
succeeded with: <>, expected: <.*dynamic STT_GNU_IFUNC symbol `foo' with
pointer equality in `.*.o' can not be used when making an executable; recompile
with -fPIE and relink with -pie>
FAIL: ld-aarch64/ifunc-9
I have also observed some of the new tests failing:
FAIL: Build pr23169a
FAIL: Build pr23169d
FAIL: Run pr23169a
FAIL: Run pr23169d
--
You are receiving this mail because:
You are on the CC list for the bug.
- [Bug ld/23195] New: [AArch64] ld-aarch64/ifunc-9 failing,
sudi at gcc dot gnu.org <=