diff options
author | Chris Lattner <sabre@nondot.org> | 2004-07-11 01:04:33 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-07-11 01:04:33 +0000 |
commit | 13a253aae77594bb3fd804417e4aa3d4ffe0229b (patch) | |
tree | 6a52d1d5c7bd7df786b747b2cb12b414ec9bac32 /lib/Support | |
parent | 170d3af55254f1c5c668f285514f9d41affc1428 (diff) | |
download | external_llvm-13a253aae77594bb3fd804417e4aa3d4ffe0229b.zip external_llvm-13a253aae77594bb3fd804417e4aa3d4ffe0229b.tar.gz external_llvm-13a253aae77594bb3fd804417e4aa3d4ffe0229b.tar.bz2 |
Implicitly getting a new option by linking to support.o instead of support.a
is a bad idea. Make tools that want the option #include PluginSupport.h
explicitly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14738 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Support')
-rw-r--r-- | lib/Support/PluginLoader.cpp | 31 |
1 files changed, 8 insertions, 23 deletions
diff --git a/lib/Support/PluginLoader.cpp b/lib/Support/PluginLoader.cpp index 20bdce4..cbec6fa 100644 --- a/lib/Support/PluginLoader.cpp +++ b/lib/Support/PluginLoader.cpp @@ -7,34 +7,19 @@ // //===----------------------------------------------------------------------===// // -// This file implements the -load <plugin> command line option processor. When -// linked into a program, this new command line option is available that allows -// users to load shared objects into the running program. -// -// Note that there are no symbols exported by the .o file generated for this -// .cpp file. Because of this, a program must link against support.o instead of -// support.a: otherwise this translation unit will not be included. +// This file implements the -load <plugin> command line option handler. // //===----------------------------------------------------------------------===// +#define DONT_GET_PLUGIN_LOADER_OPTION +#include "Support/PluginLoader.h" #include "Support/DynamicLinker.h" -#include "Support/CommandLine.h" -#include "Config/config.h" #include <iostream> using namespace llvm; -namespace { - struct PluginLoader { - void operator=(const std::string &Filename) { - std::string ErrorMessage; - if (LinkDynamicObject (Filename.c_str (), &ErrorMessage)) - std::cerr << "Error opening '" << Filename << "': " << ErrorMessage - << "\n -load request ignored.\n"; - } - }; +void PluginLoader::operator=(const std::string &Filename) { + std::string ErrorMessage; + if (LinkDynamicObject(Filename.c_str(), &ErrorMessage)) + std::cerr << "Error opening '" << Filename << "': " << ErrorMessage + << "\n -load request ignored.\n"; } - -// This causes operator= above to be invoked for every -load option. -static cl::opt<PluginLoader, false, cl::parser<std::string> > -LoadOpt("load", cl::ZeroOrMore, cl::value_desc("plugin" SHLIBEXT), - cl::desc("Load the specified plugin")); |