diff options
author | Ian Lance Taylor <iant@google.com> | 2008-01-24 00:51:57 +0000 |
---|---|---|
committer | Ian Lance Taylor <iant@google.com> | 2008-01-24 00:51:57 +0000 |
commit | 5240d12aa0e73466bccf3e6d43ee846977644306 (patch) | |
tree | 62128171b45f594672ea73b3f270c53df0755404 | |
parent | 55a934330a2d2f84e4f972454adda275b02f7aef (diff) | |
download | gdb-5240d12aa0e73466bccf3e6d43ee846977644306.zip gdb-5240d12aa0e73466bccf3e6d43ee846977644306.tar.gz gdb-5240d12aa0e73466bccf3e6d43ee846977644306.tar.bz2 |
From Cary Coutant: Fix last patch.
-rw-r--r-- | gold/symtab.h | 15 |
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 |