diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c index 45218843d5..f1922db241 100644 --- a/bfd/elfnn-aarch64.c +++ b/bfd/elfnn-aarch64.c @@ -4580,7 +4580,7 @@ aarch64_can_relax_tls (bfd *input_bfd, if (symbol_got_type == GOT_TLS_IE && GOT_TLS_GD_ANY_P (reloc_got_type)) return TRUE; - if (bfd_link_pic (info)) + if (!bfd_link_executable (info)) return FALSE; if (h && h->root.type == bfd_link_hash_undefweak) @@ -6247,7 +6247,7 @@ elfNN_aarch64_relocate_section (bfd *output_bfd, indx = h && h->dynindx != -1 ? h->dynindx : 0; need_relocs = - (bfd_link_pic (info) || indx != 0) && + (!bfd_link_executable (info) || indx != 0) && (h == NULL || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT || h->root.type != bfd_link_hash_undefweak); @@ -6342,7 +6342,7 @@ elfNN_aarch64_relocate_section (bfd *output_bfd, indx = h && h->dynindx != -1 ? h->dynindx : 0; need_relocs = - (bfd_link_pic (info) || indx != 0) && + (!bfd_link_executable (info) || indx != 0) && (h == NULL || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT || h->root.type != bfd_link_hash_undefweak); @@ -8054,7 +8054,7 @@ elfNN_aarch64_allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf) indx = h && h->dynindx != -1 ? h->dynindx : 0; if ((ELF_ST_VISIBILITY (h->other) == STV_DEFAULT || h->root.type != bfd_link_hash_undefweak) - && (bfd_link_pic (info) + && (!bfd_link_executable (info) || indx != 0 || WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, 0, h))) {