* symtab.cc (Symbol_table::add_from_relobj): Don't set the version

of an undefined symbol from a version script.
	* testsuite/Makefile.am (ver_test_5.so): New target.
	(ver_test_5.o): New target.
	(check_SCRIPTS): Add ver_test_5.sh.
	(check_DATA): Add ver_test_5.syms.
	(ver_test_5.syms): New target.
	* testsuite/ver_test_5.cc: New file.
	* testsuite/ver_test_5.script: New file.
	* testsuite/ver_test_5.sh: New file.
	* Makefile.in, testsuite/Makefile.in: Rebuild.
This commit is contained in:
Ian Lance Taylor
2008-03-27 06:11:57 +00:00
parent 42972f502e
commit 5871526fc2
8 changed files with 149 additions and 5 deletions

View File

@ -719,7 +719,11 @@ Symbol_table::add_from_relobj(
++ver;
}
}
else if (!version_script_.empty())
// We don't want to assign a version to an undefined symbol,
// even if it is listed in the version script. FIXME: What
// about a common symbol?
else if (!version_script_.empty()
&& psym->get_st_shndx() != elfcpp::SHN_UNDEF)
{
// The symbol name did not have a version, but
// the version script may assign a version anyway.