aboutsummaryrefslogtreecommitdiff
path: root/gold/plugin.cc
diff options
context:
space:
mode:
authorTeresa Johnson <tejohnson@google.com>2017-09-20 15:43:37 -0700
committerSriraman Tallam <tmsriram@google.com>2017-09-20 15:45:04 -0700
commitca464aac1b0a444f7debb8fc1e5e8b3f30602a35 (patch)
tree65a29f37988cc32f48c563741031c8bd3e40b5e0 /gold/plugin.cc
parent223ffa714ce1cf1dc6e0c361189fa80417ff90d9 (diff)
downloadgdb-ca464aac1b0a444f7debb8fc1e5e8b3f30602a35.zip
gdb-ca464aac1b0a444f7debb8fc1e5e8b3f30602a35.tar.gz
gdb-ca464aac1b0a444f7debb8fc1e5e8b3f30602a35.tar.bz2
Check for export dynamic symbol options when doing symbol resolution in plugins.
2017-09-20 Teresa Johnson <tejohnson@google.com> * plugin.cc (is_visible_from_outside): Check for export dynamic symbol option and list. * testsuite/Makefile.am (plugin_test_12): New test. * testsuite/Makefile.in: Regenerate. * testsuite/export_dynamic_plugin.cc: New test source. * testsuite/plugin_test_12.sh: New test script.
Diffstat (limited to 'gold/plugin.cc')
-rw-r--r--gold/plugin.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/gold/plugin.cc b/gold/plugin.cc
index c051805..5ea23b5 100644
--- a/gold/plugin.cc
+++ b/gold/plugin.cc
@@ -930,7 +930,9 @@ is_visible_from_outside(Symbol* lsym)
{
if (lsym->in_dyn())
return true;
- if (parameters->options().export_dynamic() || parameters->options().shared())
+ if (parameters->options().export_dynamic() || parameters->options().shared()
+ || parameters->options().in_dynamic_list(lsym->name())
+ || parameters->options().is_export_dynamic_symbol(lsym->name()))
return lsym->is_externally_visible();
return false;
}