[gold commit] PR 20238: Don't treat as separate symbols if unversioned symbol is undefined

Cary Coutant ccoutant@gmail.com
Tue Sep 27 19:39:00 GMT 2016

When we see an unversioned symbol reference in a shared library,
followed by a default definition of the symbol in another shared
library, we were treating them as separate symbols. That should only
happen when both are definitions.

Committed to trunk and backported to 2.27 branch.


2016-09-26  Cary Coutant  <ccoutant@gmail.com>

        PR gold/20238
        * symtab.cc (Symbol_table::define_default_version): Check that
        unversioned symbol is defined.

diff --git a/gold/symtab.cc b/gold/symtab.cc
index b31794a..c872f47 100644
--- a/gold/symtab.cc
+++ b/gold/symtab.cc
@@ -882,6 +882,7 @@
Symbol_table::define_default_version(Sized_symbol<size>* sym,
       else if (pdef->second->is_from_dynobj()
               && sym->is_from_dynobj()
+              && pdef->second->is_defined()
               && pdef->second->object() != sym->object())

More information about the Binutils mailing list