diff options
Diffstat (limited to 'gold/options.cc')
-rw-r--r-- | gold/options.cc | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/gold/options.cc b/gold/options.cc index 78f0b1a..08b67fd 100644 --- a/gold/options.cc +++ b/gold/options.cc @@ -36,6 +36,7 @@ #include "script.h" #include "target-select.h" #include "options.h" +#include "plugin.h" namespace gold { @@ -296,6 +297,15 @@ General_options::parse_library(const char*, const char* arg, cmdline->inputs().add_file(file); } +#ifdef ENABLE_PLUGINS +void +General_options::parse_plugin(const char*, const char* arg, + Command_line*) +{ + this->add_plugin(arg); +} +#endif // ENABLE_PLUGINS + void General_options::parse_R(const char* option, const char* arg, Command_line* cmdline) @@ -594,7 +604,7 @@ namespace gold General_options::General_options() : execstack_status_(General_options::EXECSTACK_FROM_INPUT), static_(false), - do_demangle_(false) + do_demangle_(false), plugins_() { } @@ -632,6 +642,16 @@ General_options::add_sysroot() free(canonical_sysroot); } +// Add a plugin and its arguments to the list of plugins. + +void +General_options::add_plugin(const char* arg) +{ + if (this->plugins_ == NULL) + this->plugins_ = new Plugin_manager(*this); + this->plugins_->add_plugin(arg); +} + // Set up variables and other state that isn't set up automatically by // the parse routine, and ensure options don't contradict each other // and are otherwise kosher. |