mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 03:51:15 +08:00
Ensure that dynamically loaded libraries won't use separate copies of GNU_UNIQUE symbols.
gold/ * symtab.cc (Symbol::should_add_dynsym_entry): Return true for GNU_UNIQUE.
This commit is contained in:
parent
efdacec57c
commit
4b889c3013
@ -1,3 +1,8 @@
|
||||
2015-04-20 Ian Coolidge <icoolidge@google.com>
|
||||
|
||||
* symtab.cc (Symbol::should_add_dynsym_entry): Return true for
|
||||
GNU_UNIQUE.
|
||||
|
||||
2015-04-17 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
|
||||
|
||||
* gc.cc (Garbage_collection::do_transitive_closure): Use back and
|
||||
|
@ -419,9 +419,13 @@ Symbol::should_add_dynsym_entry(Symbol_table* symtab) const
|
||||
}
|
||||
|
||||
// If exporting all symbols or building a shared library,
|
||||
// or the symbol should be globally unique (GNU_UNIQUE),
|
||||
// and the symbol is defined in a regular object and is
|
||||
// externally visible, we need to add it.
|
||||
if ((parameters->options().export_dynamic() || parameters->options().shared())
|
||||
if ((parameters->options().export_dynamic()
|
||||
|| parameters->options().shared()
|
||||
|| (parameters->options().gnu_unique()
|
||||
&& this->binding() == elfcpp::STB_GNU_UNIQUE))
|
||||
&& !this->is_from_dynobj()
|
||||
&& !this->is_undefined()
|
||||
&& this->is_externally_visible())
|
||||
|
Loading…
Reference in New Issue
Block a user