aboutsummaryrefslogtreecommitdiff
path: root/bfd/elflink.c
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/elflink.c')
-rw-r--r--bfd/elflink.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/bfd/elflink.c b/bfd/elflink.c
index 9932186..4d54add 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -4290,10 +4290,6 @@ error_free_dyn:
h->type = ELF_ST_TYPE (isym->st_info);
}
- /* STT_GNU_IFUNC symbol must go through PLT. */
- if (h->type == STT_GNU_IFUNC)
- h->needs_plt = 1;
-
/* Merge st_other field. */
elf_merge_st_other (abfd, h, isym, definition, dynamic);
@@ -8657,7 +8653,7 @@ elf_link_output_extsym (struct elf_link_hash_entry *h, void *data)
forced local syms when non-shared is due to a historical quirk.
STT_GNU_IFUNC symbol must go through PLT. */
if ((h->type == STT_GNU_IFUNC
- && h->ref_regular
+ && h->def_regular
&& !finfo->info->relocatable)
|| ((h->dynindx != -1
|| h->forced_local)