Any symbol which is in both a regular object and a dynamic object

requires an entry in the dynamic symbol table.
This commit is contained in:
Ian Lance Taylor 2007-08-29 05:48:24 +00:00
parent d037d08851
commit 429c15693c
2 changed files with 4 additions and 10 deletions

View File

@ -189,15 +189,6 @@ Symbol_table::resolve(Sized_symbol<size>* to,
break;
}
if ((tobits & (1 << 1)) != (frombits & (1 << 1)))
{
// This symbol is seen in both a dynamic object and a regular
// object. That means that we need the symbol to go into the
// dynamic symbol table, so that the dynamic linker can use the
// regular symbol to override or define the dynamic symbol.
to->set_needs_dynsym_entry();
}
// FIXME: Warn if either but not both of TO and SYM are STT_TLS.
// We use a giant switch table for symbol resolution. This code is

View File

@ -178,7 +178,10 @@ class Symbol
// table.
bool
needs_dynsym_entry() const
{ return this->needs_dynsym_entry_; }
{
return (this->needs_dynsym_entry_
|| (this->in_reg() && this->in_dyn()));
}
// Mark this symbol as needing an entry in the dynamic symbol table.
void