summaryrefslogtreecommitdiff
path: root/gold/symtab.h
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2008-01-24 00:51:57 +0000
committerIan Lance Taylor <iant@google.com>2008-01-24 00:51:57 +0000
commit5240d12aa0e73466bccf3e6d43ee846977644306 (patch)
tree62128171b45f594672ea73b3f270c53df0755404 /gold/symtab.h
parent55a934330a2d2f84e4f972454adda275b02f7aef (diff)
From Cary Coutant: Fix last patch.
Diffstat (limited to 'gold/symtab.h')
-rw-r--r--gold/symtab.h15
1 files changed, 4 insertions, 11 deletions
diff --git a/gold/symtab.h b/gold/symtab.h
index 8110e4aebe..f5acd20423 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