diff options
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/elfxx-x86.c | 3 | ||||
-rw-r--r-- | ld/ChangeLog | 8 | ||||
-rw-r--r-- | ld/testsuite/ld-ifunc/ifunc.exp | 22 | ||||
-rw-r--r-- | ld/testsuite/ld-ifunc/pr23169a.c | 2 |
5 files changed, 18 insertions, 23 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index ac18a85..dbb240a 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2021-01-16 H.J. Lu <hongjiu.lu@intel.com> + + PR ld/23169 + * elfxx-x86.c (_bfd_x86_elf_link_fixup_ifunc_symbol): Don't + check pointer_equality_needed. + 2021-01-15 H.J. Lu <hongjiu.lu@intel.com> * elf-linker-x86.h (elf_linker_x86_params): Add diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c index 8cda8d2..93ad38c 100644 --- a/bfd/elfxx-x86.c +++ b/bfd/elfxx-x86.c @@ -1711,8 +1711,7 @@ _bfd_x86_elf_link_fixup_ifunc_symbol (struct bfd_link_info *info, && h->def_regular && h->dynindx != -1 && h->plt.offset != (bfd_vma) -1 - && h->type == STT_GNU_IFUNC - && h->pointer_equality_needed) + && h->type == STT_GNU_IFUNC) { asection *plt_s; bfd_vma plt_offset; diff --git a/ld/ChangeLog b/ld/ChangeLog index 6e53414..8a20eba 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,11 @@ +2021-01-16 H.J. Lu <hongjiu.lu@intel.com> + + PR ld/23169 + * testsuite/ld-ifunc/ifunc.exp: Replace pr23169c.rd with + pr23169a.rd for pr23169c and pr23169f. Remove pr23169e tests. + * testsuite/ld-ifunc/pr23169a.c (foo): Don't compare function + address. + 2021-01-15 H.J. Lu <hongjiu.lu@intel.com> * NEWS: Mention -z report-relative-reloc. diff --git a/ld/testsuite/ld-ifunc/ifunc.exp b/ld/testsuite/ld-ifunc/ifunc.exp index 31666d0..9d3ace6 100644 --- a/ld/testsuite/ld-ifunc/ifunc.exp +++ b/ld/testsuite/ld-ifunc/ifunc.exp @@ -640,7 +640,7 @@ run_cc_link_tests [list \ "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/libpr23169a.so" \ "-fPIE -O2 -g" \ { pr23169b.c pr23169c.c } \ - {{readelf {--dyn-syms} pr23169c.rd} \ + {{readelf {--dyn-syms} pr23169a.rd} \ {readelf {-r -W} pr23169b.rd}} \ "pr23169c" \ ] \ @@ -654,20 +654,11 @@ run_cc_link_tests [list \ "pr23169d" \ ] \ [list \ - "Build pr23169e" \ - "-pie -Wl,--no-as-needed,-z,now tmpdir/libpr23169b.so" \ - "-fPIE -O2 -g" \ - { pr23169b.c pr23169c.c } \ - {{readelf {--dyn-syms} pr23169c.rd} \ - {readelf {-r -W} pr23169b.rd}} \ - "pr23169e" \ - ] \ - [list \ "Build pr23169f" \ "$NOPIE_LDFLAGS -Wl,--no-as-needed,-z,now tmpdir/libpr23169b.so" \ "-fPIE -O2 -g" \ { pr23169b.c pr23169c.c } \ - {{readelf {--dyn-syms} pr23169c.rd} \ + {{readelf {--dyn-syms} pr23169a.rd} \ {readelf {-r -W} pr23169b.rd}} \ "pr23169f" \ ] \ @@ -775,15 +766,6 @@ run_ld_link_exec_tests [list \ "$NOPIE_CFLAGS -O2 -g" \ ] \ [list \ - "Run pr23169e" \ - "-pie -Wl,--no-as-needed,-z,now tmpdir/libpr23169b.so" \ - "" \ - { pr23169b.c pr23169c.c } \ - "pr23169e" \ - "pass.out" \ - "-fPIE -O2 -g" \ - ] \ - [list \ "Run pr23169f" \ "$NOPIE_LDFLAGS -Wl,--no-as-needed,-z,now tmpdir/libpr23169b.so" \ "" \ diff --git a/ld/testsuite/ld-ifunc/pr23169a.c b/ld/testsuite/ld-ifunc/pr23169a.c index 02bf220..8beed28 100644 --- a/ld/testsuite/ld-ifunc/pr23169a.c +++ b/ld/testsuite/ld-ifunc/pr23169a.c @@ -4,6 +4,6 @@ extern int func (void); void foo (void) { - if (func_p != &func || func_p () != 0xbadbeef) + if (func () != 0xbadbeef || func_p () != 0xbadbeef) __builtin_abort (); } |