From: Ian Lance Taylor Date: Thu, 24 Jan 2008 00:51:57 +0000 (+0000) Subject: From Cary Coutant: Fix last patch. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5240d12aa0e73466bccf3e6d43ee846977644306;p=binutils-gdb.git From Cary Coutant: Fix last patch. --- diff --git a/gold/symtab.h b/gold/symtab.h index 8110e4aebed..f5acd204239 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