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:
parent
d037d08851
commit
429c15693c
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user