diff options
author | Rafael Ávila de Espíndola <rafael.espindola@gmail.com> | 2016-03-03 14:42:21 -0500 |
---|---|---|
committer | Rafael Ávila de Espíndola <rafael.espindola@gmail.com> | 2016-03-03 15:16:52 -0500 |
commit | a06ed37d755d3bb76c69980f13d22927c8967844 (patch) | |
tree | 343781672e7b1162003edaa1fa3eb733dbba42c7 /gold | |
parent | 82838bd626b10f1a82b0de29728c26f4458ec514 (diff) | |
download | gdb-a06ed37d755d3bb76c69980f13d22927c8967844.zip gdb-a06ed37d755d3bb76c69980f13d22927c8967844.tar.gz 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')
-rw-r--r-- | gold/ChangeLog | 5 | ||||
-rw-r--r-- | gold/plugin.cc | 2 |
2 files changed, 7 insertions, 0 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index 2d8193a..ca90470 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,8 @@ +2015-03-03 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> + + * plugin.cc (do_should_include_member): Ignore LDPK_UNDEF and + LDPK_WEAKUNDEF symbols. + 2015-03-03 Evgenii Stepanov <eugenis@google.com> * plugin.h (Pluginobj::get_symbol_resolution_info): Add version 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, |