From: Rafael Ávila de Espíndola Date: Thu, 3 Mar 2016 19:42:21 +0000 (-0500) Subject: Don't handle every plugin symbol as defined. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a06ed37d755d3bb76c69980f13d22927c8967844;p=binutils-gdb.git 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. --- diff --git a/gold/ChangeLog b/gold/ChangeLog index 2d8193a34a6..ca90470d430 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,8 @@ +2015-03-03 Rafael Ávila de Espíndola + + * plugin.cc (do_should_include_member): Ignore LDPK_UNDEF and + LDPK_WEAKUNDEF symbols. + 2015-03-03 Evgenii Stepanov * plugin.h (Pluginobj::get_symbol_resolution_info): Add version diff --git a/gold/plugin.cc b/gold/plugin.cc index bb7d6b2606b..026748f4207 100644 --- a/gold/plugin.cc +++ b/gold/plugin.cc @@ -1179,6 +1179,8 @@ Sized_pluginobj::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,