diff options
-rw-r--r-- | include/llvm/Support/SystemUtils.h | 13 | ||||
-rw-r--r-- | lib/CompilerDriver/Action.cpp | 3 | ||||
-rw-r--r-- | lib/Support/SystemUtils.cpp | 15 | ||||
-rw-r--r-- | tools/bugpoint/OptimizerDriver.cpp | 3 | ||||
-rw-r--r-- | tools/bugpoint/ToolRunner.cpp | 10 | ||||
-rw-r--r-- | tools/llvm-ld/llvm-ld.cpp | 12 |
6 files changed, 30 insertions, 26 deletions
diff --git a/include/llvm/Support/SystemUtils.h b/include/llvm/Support/SystemUtils.h index 91fcfed028..399aee51eb 100644 --- a/include/llvm/Support/SystemUtils.h +++ b/include/llvm/Support/SystemUtils.h @@ -30,13 +30,14 @@ bool CheckBitcodeOutputToConsole( bool print_warning = true ///< Control whether warnings are printed ); -/// FindExecutable - Find a named executable, given the value of argv[0] of the -/// program being executed and the address of main itself. This allows us to -/// find another LLVM tool if it is built in the same directory. An empty string -/// is returned on error. +/// PrependMainExecutablePath - Prepend the path to the program being executed +/// to \p ExeName, given the value of argv[0] and the address of main() +/// itself. This allows us to find another LLVM tool if it is built in the same +/// directory. An empty string is returned on error; note that this function +/// just mainpulates the path and doesn't check for executability. /// @brief Find a named executable. -sys::Path FindExecutable(const std::string &ExeName, - const char *Argv0, void *MainAddr); +sys::Path PrependMainExecutablePath(const std::string &ExeName, + const char *Argv0, void *MainAddr); } // End llvm namespace diff --git a/lib/CompilerDriver/Action.cpp b/lib/CompilerDriver/Action.cpp index 54b55d0d42..19f5bbaa00 100644 --- a/lib/CompilerDriver/Action.cpp +++ b/lib/CompilerDriver/Action.cpp @@ -57,7 +57,8 @@ namespace { sys::Path prog(name); if (!prog.isAbsolute()) { - prog = FindExecutable(name, ProgramName, (void *)(intptr_t)&Main); + prog = PrependMainExecutablePath(name, ProgramName, + (void *)(intptr_t)&Main); if (!prog.canExecute()) { prog = sys::Program::FindProgramByName(name); diff --git a/lib/Support/SystemUtils.cpp b/lib/Support/SystemUtils.cpp index ff076637ab..9646d75bd2 100644 --- a/lib/Support/SystemUtils.cpp +++ b/lib/Support/SystemUtils.cpp @@ -32,13 +32,14 @@ bool llvm::CheckBitcodeOutputToConsole(raw_ostream &stream_to_check, return false; } -/// FindExecutable - Find a named executable, given the value of argv[0] of the -/// program being executed and the address of main itself. This allows us to -/// find another LLVM tool if it is built in the same directory. An empty string -/// is returned on error. -#undef FindExecutable // needed on windows :( -sys::Path llvm::FindExecutable(const std::string &ExeName, - const char *Argv0, void *MainAddr) { +/// PrependMainExecutablePath - Prepend the path to the program being executed +/// to \p ExeName, given the value of argv[0] and the address of main() +/// itself. This allows us to find another LLVM tool if it is built in the same +/// directory. An empty string is returned on error; note that this function +/// just mainpulates the path and doesn't check for executability. +/// @brief Find a named executable. +sys::Path llvm::PrependMainExecutablePath(const std::string &ExeName, + const char *Argv0, void *MainAddr) { // Check the directory that the calling program is in. We can do // this if ProgramPath contains at least one / character, indicating that it // is a relative path to the executable itself. diff --git a/tools/bugpoint/OptimizerDriver.cpp b/tools/bugpoint/OptimizerDriver.cpp index d28ce79877..e8c1ab5f91 100644 --- a/tools/bugpoint/OptimizerDriver.cpp +++ b/tools/bugpoint/OptimizerDriver.cpp @@ -144,7 +144,8 @@ bool BugDriver::runPasses(Module *Program, return 1; } - sys::Path tool = FindExecutable("opt", getToolName(), (void*)"opt"); + sys::Path tool = PrependMainExecutablePath("opt", getToolName(), + (void*)"opt"); if (tool.empty()) { errs() << "Cannot find `opt' in executable directory!\n"; return 1; diff --git a/tools/bugpoint/ToolRunner.cpp b/tools/bugpoint/ToolRunner.cpp index 83b358be55..ea82a6cd26 100644 --- a/tools/bugpoint/ToolRunner.cpp +++ b/tools/bugpoint/ToolRunner.cpp @@ -238,7 +238,7 @@ AbstractInterpreter *AbstractInterpreter::createLLI(const char *Argv0, std::string &Message, const std::vector<std::string> *ToolArgs) { std::string LLIPath = - FindExecutable("lli", Argv0, (void *)(intptr_t)&createLLI).str(); + PrependMainExecutablePath("lli", Argv0, (void *)(intptr_t)&createLLI).str(); if (!LLIPath.empty()) { Message = "Found lli: " + LLIPath + "\n"; return new LLI(LLIPath, ToolArgs); @@ -438,7 +438,7 @@ LLC *AbstractInterpreter::createLLC(const char *Argv0, const std::vector<std::string> *GCCArgs, bool UseIntegratedAssembler) { std::string LLCPath = - FindExecutable("llc", Argv0, (void *)(intptr_t)&createLLC).str(); + PrependMainExecutablePath("llc", Argv0, (void *)(intptr_t)&createLLC).str(); if (LLCPath.empty()) { Message = "Cannot find `llc' in executable directory!\n"; return 0; @@ -526,7 +526,7 @@ int JIT::ExecuteProgram(const std::string &Bitcode, AbstractInterpreter *AbstractInterpreter::createJIT(const char *Argv0, std::string &Message, const std::vector<std::string> *Args) { std::string LLIPath = - FindExecutable("lli", Argv0, (void *)(intptr_t)&createJIT).str(); + PrependMainExecutablePath("lli", Argv0, (void *)(intptr_t)&createJIT).str(); if (!LLIPath.empty()) { Message = "Found lli: " + LLIPath + "\n"; return new JIT(LLIPath, Args); @@ -604,11 +604,11 @@ int CBE::ExecuteProgram(const std::string &Bitcode, /// CBE *AbstractInterpreter::createCBE(const char *Argv0, std::string &Message, - const std::string &GCCBinary, + const std::string &GCCBinary, const std::vector<std::string> *Args, const std::vector<std::string> *GCCArgs) { sys::Path LLCPath = - FindExecutable("llc", Argv0, (void *)(intptr_t)&createCBE); + PrependMainExecutablePath("llc", Argv0, (void *)(intptr_t)&createCBE); if (LLCPath.isEmpty()) { Message = "Cannot find `llc' in executable directory!\n"; diff --git a/tools/llvm-ld/llvm-ld.cpp b/tools/llvm-ld/llvm-ld.cpp index a28592bd97..9bf1081c7f 100644 --- a/tools/llvm-ld/llvm-ld.cpp +++ b/tools/llvm-ld/llvm-ld.cpp @@ -415,8 +415,8 @@ static void EmitShellScript(char **argv, Module *M) { // support windows systems, we copy the llvm-stub.exe executable from the // build tree to the destination file. std::string ErrMsg; - sys::Path llvmstub = FindExecutable("llvm-stub.exe", argv[0], - (void *)(intptr_t)&Optimize); + sys::Path llvmstub = PrependMainExecutablePath("llvm-stub", argv[0], + (void *)(intptr_t)&Optimize); if (llvmstub.isEmpty()) PrintAndExit("Could not find llvm-stub.exe executable!", M); @@ -664,8 +664,8 @@ int main(int argc, char **argv, char **envp) { sys::RemoveFileOnSignal(AssemblyFile); // Determine the locations of the llc and gcc programs. - sys::Path llc = FindExecutable("llc", argv[0], - (void *)(intptr_t)&Optimize); + sys::Path llc = PrependMainExecutablePath("llc", argv[0], + (void *)(intptr_t)&Optimize); if (llc.isEmpty()) PrintAndExit("Failed to find llc", Composite.get()); @@ -691,8 +691,8 @@ int main(int argc, char **argv, char **envp) { sys::RemoveFileOnSignal(CFile); // Determine the locations of the llc and gcc programs. - sys::Path llc = FindExecutable("llc", argv[0], - (void *)(intptr_t)&Optimize); + sys::Path llc = PrependMainExecutablePath("llc", argv[0], + (void *)(intptr_t)&Optimize); if (llc.isEmpty()) PrintAndExit("Failed to find llc", Composite.get()); |