Revert "ia64: Check UNDEFWEAK_NO_DYNAMIC_RELOC"
This reverts commit db41f6eb5234ea3c74c1ce4798cf9923d4a45a98.
This commit is contained in:
parent
a1670b7263
commit
769c253f45
@ -1,3 +1,8 @@
|
||||
2021-02-11 Alan Modra <amodra@gmail.com>
|
||||
|
||||
PR ld/22269
|
||||
* elfnn-ia64.c: Revert 2017-10-14 git commit db41f6eb5234.
|
||||
|
||||
2021-02-11 Alan Modra <amodra@gmail.com>
|
||||
|
||||
PR 27294
|
||||
|
@ -2200,9 +2200,6 @@ elfNN_ia64_check_relocs (bfd *abfd, struct bfd_link_info *info,
|
||||
else
|
||||
h = NULL;
|
||||
|
||||
if (h && UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
|
||||
continue;
|
||||
|
||||
/* We can only get preliminary data on whether a symbol is
|
||||
locally or externally defined, as not all of the input files
|
||||
have yet been processed. Do something with what we know, as
|
||||
@ -2377,9 +2374,6 @@ elfNN_ia64_check_relocs (bfd *abfd, struct bfd_link_info *info,
|
||||
else
|
||||
h = NULL;
|
||||
|
||||
if (h && UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
|
||||
continue;
|
||||
|
||||
/* We can only get preliminary data on whether a symbol is
|
||||
locally or externally defined, as not all of the input files
|
||||
have yet been processed. Do something with what we know, as
|
||||
@ -2732,8 +2726,7 @@ allocate_fptr (struct elfNN_ia64_dyn_sym_info *dyn_i, void * data)
|
||||
|
||||
if (!bfd_link_executable (x->info)
|
||||
&& (!h
|
||||
|| (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
|
||||
&& !UNDEFWEAK_NO_DYNAMIC_RELOC (x->info, h))
|
||||
|| ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
|
||||
|| (h->root.type != bfd_link_hash_undefweak
|
||||
&& h->root.type != bfd_link_hash_undefined)))
|
||||
{
|
||||
@ -2862,8 +2855,8 @@ allocate_dynrel_entries (struct elfNN_ia64_dyn_sym_info *dyn_i,
|
||||
|
||||
shared = bfd_link_pic (x->info);
|
||||
resolved_zero = (dyn_i->h
|
||||
&& UNDEFWEAK_NO_DYNAMIC_RELOC (x->info,
|
||||
dyn_i->h));
|
||||
&& ELF_ST_VISIBILITY (dyn_i->h->other)
|
||||
&& dyn_i->h->root.type == bfd_link_hash_undefweak);
|
||||
|
||||
/* Take care of the GOT and PLT relocations. */
|
||||
|
||||
@ -3307,8 +3300,7 @@ set_got_entry (bfd *abfd, struct bfd_link_info *info,
|
||||
/* Install a dynamic relocation if needed. */
|
||||
if (((bfd_link_pic (info)
|
||||
&& (!dyn_i->h
|
||||
|| (ELF_ST_VISIBILITY (dyn_i->h->other) == STV_DEFAULT
|
||||
&& !UNDEFWEAK_NO_DYNAMIC_RELOC (info, dyn_i->h))
|
||||
|| ELF_ST_VISIBILITY (dyn_i->h->other) == STV_DEFAULT
|
||||
|| dyn_i->h->root.type != bfd_link_hash_undefweak)
|
||||
&& dyn_r_type != R_IA64_DTPREL32LSB
|
||||
&& dyn_r_type != R_IA64_DTPREL64LSB)
|
||||
@ -3472,8 +3464,7 @@ set_pltoff_entry (bfd *abfd, struct bfd_link_info *info,
|
||||
if (!is_plt
|
||||
&& bfd_link_pic (info)
|
||||
&& (!dyn_i->h
|
||||
|| (ELF_ST_VISIBILITY (dyn_i->h->other) == STV_DEFAULT
|
||||
&& !UNDEFWEAK_NO_DYNAMIC_RELOC (info, dyn_i->h))
|
||||
|| ELF_ST_VISIBILITY (dyn_i->h->other) == STV_DEFAULT
|
||||
|| dyn_i->h->root.type != bfd_link_hash_undefweak))
|
||||
{
|
||||
unsigned int dyn_r_type;
|
||||
@ -3940,7 +3931,6 @@ elfNN_ia64_relocate_section (bfd *output_bfd,
|
||||
case R_IA64_DIR64LSB:
|
||||
/* Install a dynamic relocation for this reloc. */
|
||||
if ((dynamic_symbol_p || bfd_link_pic (info))
|
||||
&& !(h && UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
|
||||
&& r_symndx != STN_UNDEF
|
||||
&& (input_section->flags & SEC_ALLOC) != 0)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user