aboutsummaryrefslogtreecommitdiff
path: root/gold/plugin.h
diff options
context:
space:
mode:
Diffstat (limited to 'gold/plugin.h')
-rw-r--r--gold/plugin.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/gold/plugin.h b/gold/plugin.h
index db6093d..e64ee07 100644
--- a/gold/plugin.h
+++ b/gold/plugin.h
@@ -146,11 +146,18 @@ class Plugin_manager
options_(options), workqueue_(NULL), task_(NULL), input_objects_(NULL),
symtab_(NULL), layout_(NULL), dirpath_(NULL), mapfile_(NULL),
this_blocker_(NULL), extra_search_path_(), lock_(NULL),
- initialize_lock_(&lock_)
+ initialize_lock_(&lock_), defsym_defines_set_()
{ this->current_ = plugins_.end(); }
~Plugin_manager();
+ // Returns true if the symbol name is used in the LHS of a defsym.
+ bool
+ is_defsym_def(const char* sym_name) const
+ {
+ return defsym_defines_set_.find(sym_name) != defsym_defines_set_.end();
+ }
+
// Add a plugin library.
void
add_plugin(const char* filename)
@@ -402,6 +409,10 @@ class Plugin_manager
std::string extra_search_path_;
Lock* lock_;
Initialize_lock initialize_lock_;
+
+ // Keep track of all symbols defined by defsym.
+ typedef Unordered_set<std::string> Defsym_defines_set;
+ Defsym_defines_set defsym_defines_set_;
};