forked from Imagelibrary/binutils-gdb
* elf-bfd.h (struct elf_link_hash_entry): Clarify ref_regular
and ref_regular_nonweak comment. * elflink.c (elf_link_output_extsym): Special case ifunc syms when def_regular, not ref_regular. (elf_link_add_object_symbols): Don't set needs_plt on ifunc syms,.. * elf32-i386.c (elf_i386_check_relocs): ..set it here instead.. * elf64-x86-64.c (elf64_x86_64_check_relocs): ..and here.
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user