From e3f07b5b750554bbbbee1bddc34bb77fd7d31eeb Mon Sep 17 00:00:00 2001 From: Cary Coutant Date: Tue, 27 Sep 2016 12:08:19 -0700 Subject: [PATCH] Don't treat as separate symbols if unversioned symbol is undefined. 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. gold/ PR gold/20238 * symtab.cc (Symbol_table::define_default_version): Check that unversioned symbol is defined. --- gold/ChangeLog | 6 ++++++ gold/symtab.cc | 1 + 2 files changed, 7 insertions(+) diff --git a/gold/ChangeLog b/gold/ChangeLog index d791d29..1e01a4a 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,9 @@ +2016-09-26 Cary Coutant + + PR gold/20238 + * symtab.cc (Symbol_table::define_default_version): Check that + unversioned symbol is defined. + 2016-09-26 Vlad Zakharov * Makefile.in: Regenerate. 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* sym, ; else if (pdef->second->is_from_dynobj() && sym->is_from_dynobj() + && pdef->second->is_defined() && pdef->second->object() != sym->object()) ; else -- 2.7.4