summaryrefslogtreecommitdiff
path: root/bfd/elfnn-ia64.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2021-02-11 22:23:45 +1030
committerAlan Modra <amodra@gmail.com>2021-02-11 22:33:48 +1030
commit769c253f4519145a1d7eaa85038d3e339f507987 (patch)
tree18d18706f7817975b2326d63cdf634a319f40b5e /bfd/elfnn-ia64.c
parenta1670b7263d1cda1e373c0340c9b31b1f132e826 (diff)
downloadbinutils-gdb-769c253f4519145a1d7eaa85038d3e339f507987.tar.gz
Revert "ia64: Check UNDEFWEAK_NO_DYNAMIC_RELOC"
This reverts commit db41f6eb5234ea3c74c1ce4798cf9923d4a45a98.
Diffstat (limited to 'bfd/elfnn-ia64.c')
-rw-r--r--bfd/elfnn-ia64.c20
1 files changed, 5 insertions, 15 deletions
diff --git a/bfd/elfnn-ia64.c b/bfd/elfnn-ia64.c
index 87a86e938f6..aaa69c4b2cd 100644
--- a/bfd/elfnn-ia64.c
+++ b/bfd/elfnn-ia64.c
@@ -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)
{