aboutsummaryrefslogtreecommitdiff
path: root/gold
diff options
context:
space:
mode:
Diffstat (limited to 'gold')
-rw-r--r--gold/symtab.h15
1 files changed, 4 insertions, 11 deletions
diff --git a/gold/symtab.h b/gold/symtab.h
index 8110e4a..f5acd20 100644
--- a/gold/symtab.h
+++ b/gold/symtab.h
@@ -508,18 +508,11 @@ class Symbol
return true;
// A function call that can branch to a local PLT entry does not need
- // a dynamic relocation.
- if ((flags & FUNCTION_CALL) && this->has_plt_offset())
- return false;
-
- // A non-pic pc-relative function call in a shared library whose target
- // is defined in the same load module does not need a dynamic relocation.
- // Even if the target is preemptible, we will bind directly, since we
- // cannot use a PLT entry in this case.
+ // a dynamic relocation. A non-pic pc-relative function call in a
+ // shared library cannot use a PLT entry.
if ((flags & FUNCTION_CALL)
- && (flags & NON_PIC_REF)
- && this->is_defined()
- && parameters->output_is_shared())
+ && this->has_plt_offset()
+ && !((flags & NON_PIC_REF) && parameters->output_is_shared()))
return false;
// A reference to any PLT entry in a non-position-independent executable