diff options
author | Cary Coutant <ccoutant@gmail.com> | 2016-09-27 12:08:19 -0700 |
---|---|---|
committer | Cary Coutant <ccoutant@gmail.com> | 2016-09-27 12:08:28 -0700 |
commit | e3f07b5b750554bbbbee1bddc34bb77fd7d31eeb (patch) | |
tree | 96454a34955a2149b805714951a3702e4583c3a2 /gold/symtab.cc | |
parent | 07619d52fef6fda58cbc327512a4d8ec60ad5637 (diff) | |
download | fsf-binutils-gdb-e3f07b5b750554bbbbee1bddc34bb77fd7d31eeb.zip fsf-binutils-gdb-e3f07b5b750554bbbbee1bddc34bb77fd7d31eeb.tar.gz fsf-binutils-gdb-e3f07b5b750554bbbbee1bddc34bb77fd7d31eeb.tar.bz2 |
Don't treat as separate symbols if unversioned symbol is undefined.
When we see an unversioned symbol reference in a shared library, followed
by a default definition of the symbol in another shared library, we were
treating them as separate symbols. That should only happen when both are
definitions.
gold/
PR gold/20238
* symtab.cc (Symbol_table::define_default_version): Check that
unversioned symbol is defined.
Diffstat (limited to 'gold/symtab.cc')
-rw-r--r-- | gold/symtab.cc | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gold/symtab.cc b/gold/symtab.cc index b31794a..c872f47 100644 --- a/gold/symtab.cc +++ b/gold/symtab.cc @@ -882,6 +882,7 @@ Symbol_table::define_default_version(Sized_symbol<size>* sym, ; else if (pdef->second->is_from_dynobj() && sym->is_from_dynobj() + && pdef->second->is_defined() && pdef->second->object() != sym->object()) ; else |