This is the mail archive of the
binutils-cvs@sourceware.org
mailing list for the binutils project.
[binutils-gdb/binutils-2_27-branch] Don't treat as separate symbols if unversioned symbol is undefined.
- From: Cary Coutant <ccoutant at sourceware dot org>
- To: bfd-cvs at sourceware dot org
- Date: 27 Sep 2016 19:25:00 -0000
- Subject: [binutils-gdb/binutils-2_27-branch] Don't treat as separate symbols if unversioned symbol is undefined.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=a617f9ddc3e30bca79cd40f4afa90d2851260f38
commit a617f9ddc3e30bca79cd40f4afa90d2851260f38
Author: Cary Coutant <ccoutant@gmail.com>
Date: Tue Sep 27 12:08:19 2016 -0700
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.
Diff:
---
gold/ChangeLog | 6 ++++++
gold/symtab.cc | 1 +
2 files changed, 7 insertions(+)
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 7e69839..f5005ef 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,9 @@
+2016-09-26 Cary Coutant <ccoutant@gmail.com>
+
+ PR gold/20238
+ * symtab.cc (Symbol_table::define_default_version): Check that
+ unversioned symbol is defined.
+
2016-08-23 Roland McGrath <roland@hack.frob.com>
* options.h (General_options): Grok -z stack-size.
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