aboutsummaryrefslogtreecommitdiff
path: root/gold/plugin.cc
diff options
context:
space:
mode:
authorRafael Ávila de Espíndola <rafael.espindola@gmail.com>2016-03-03 14:42:21 -0500
committerRafael Ávila de Espíndola <rafael.espindola@gmail.com>2016-03-03 15:16:52 -0500
commita06ed37d755d3bb76c69980f13d22927c8967844 (patch)
tree343781672e7b1162003edaa1fa3eb733dbba42c7 /gold/plugin.cc
parent82838bd626b10f1a82b0de29728c26f4458ec514 (diff)
downloadfsf-binutils-gdb-a06ed37d755d3bb76c69980f13d22927c8967844.zip
fsf-binutils-gdb-a06ed37d755d3bb76c69980f13d22927c8967844.tar.gz
fsf-binutils-gdb-a06ed37d755d3bb76c69980f13d22927c8967844.tar.bz2
Don't handle every plugin symbol as defined.
Gold was fetching --start-lib/--end-lib members if that member defined or used a currently undefined symbol.
Diffstat (limited to 'gold/plugin.cc')
-rw-r--r--gold/plugin.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/gold/plugin.cc b/gold/plugin.cc
index bb7d6b2..026748f 100644
--- a/gold/plugin.cc
+++ b/gold/plugin.cc
@@ -1179,6 +1179,8 @@ Sized_pluginobj<size, big_endian>::do_should_include_member(
for (int i = 0; i < this->nsyms_; ++i)
{
const struct ld_plugin_symbol& sym = this->syms_[i];
+ if (sym.def == LDPK_UNDEF || sym.def == LDPK_WEAKUNDEF)
+ continue;
const char* name = sym.name;
Symbol* symbol;
Archive::Should_include t = Archive::should_include_member(symtab,