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.
This commit is contained in:
Cary Coutant 2016-09-27 12:08:19 -07:00
parent 07619d52fe
commit e3f07b5b75
2 changed files with 7 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2016-09-26 Cary Coutant <ccoutant@gmail.com>
PR gold/20238
* symtab.cc (Symbol_table::define_default_version): Check that
unversioned symbol is defined.
2016-09-26 Vlad Zakharov <vzakhar@synopsys.com>
* Makefile.in: Regenerate.

View File

@ -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())
;
else