summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/elf64-x86-64.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index 373f701d9d4..96b509af65f 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -4396,7 +4396,9 @@ direct:
&& !bfd_link_pic (info)
&& h != NULL
&& h->dynindx != -1
- && (!h->non_got_ref || eh->pointer_refcount > 0)
+ && (!h->non_got_ref
+ || (eh->dyn_relocs != NULL
+ && eh->pointer_refcount > 0))
&& ((h->def_dynamic
&& !h->def_regular)
|| h->root.type == bfd_link_hash_undefweak