* dynobj.cc (Dynobj::create_gnu_hash_table): Add symbols to the
	GNU hash table if they need a dynamic value.  Otherwise, don't add
	them if they are defined in a dynamic object or are forced local.
This commit is contained in:
Ian Lance Taylor 2009-12-30 08:29:37 +00:00
parent 1b81fb710f
commit 176fe33f0d
2 changed files with 11 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2009-12-30 Ian Lance Taylor <iant@google.com>
PR 10450
* dynobj.cc (Dynobj::create_gnu_hash_table): Add symbols to the
GNU hash table if they need a dynamic value. Otherwise, don't add
them if they are defined in a dynamic object or are forced local.
2009-12-29 Ian Lance Taylor <iant@google.com>
PR 10450

View File

@ -959,9 +959,10 @@ Dynobj::create_gnu_hash_table(const std::vector<Symbol*>& dynsyms,
{
Symbol* sym = dynsyms[i];
// FIXME: Should put on unhashed_dynsyms if the symbol is
// hidden.
if (sym->is_undefined())
if (!sym->needs_dynsym_value()
&& (sym->is_undefined()
|| sym->is_from_dynobj()
|| sym->is_forced_local()))
unhashed_dynsyms.push_back(sym);
else
{