summaryrefslogtreecommitdiff
path: root/tools/llvm-ld
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2009-08-05 20:21:17 +0000
committerDan Gohman <gohman@apple.com>2009-08-05 20:21:17 +0000
commit197f728d49fa0cc0baa5aadb2b905fbd8c22a81e (patch)
treedc9af5c9dde619ca176b0ad467636902011e0430 /tools/llvm-ld
parent7b3544ba97a31f21f24a9f923bd2a793df6d46ab (diff)
downloadllvm-197f728d49fa0cc0baa5aadb2b905fbd8c22a81e.tar.gz
llvm-197f728d49fa0cc0baa5aadb2b905fbd8c22a81e.tar.bz2
llvm-197f728d49fa0cc0baa5aadb2b905fbd8c22a81e.tar.xz
Fix FindExecutable to use sys::Path::GetMainExecutable instead of
just argv[0]. And remove the code for searching the current working directory and for searching PATH; the point of FindExecutable is not to find whatever version of the executable can be found by searching around, but to find an executable that accompanies the current executable. Update the tools to use sys::Program::FindProgramByName when they want PATH searching. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78240 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvm-ld')
-rw-r--r--tools/llvm-ld/llvm-ld.cpp23
1 files changed, 13 insertions, 10 deletions
diff --git a/tools/llvm-ld/llvm-ld.cpp b/tools/llvm-ld/llvm-ld.cpp
index cc672bc5da..62e5f09a08 100644
--- a/tools/llvm-ld/llvm-ld.cpp
+++ b/tools/llvm-ld/llvm-ld.cpp
@@ -41,6 +41,11 @@
#include <cstring>
using namespace llvm;
+// Rightly this should go in a header file but it just seems such a waste.
+namespace llvm {
+extern void Optimize(Module*);
+}
+
// Input/Output Options
static cl::list<std::string> InputFilenames(cl::Positional, cl::OneOrMore,
cl::desc("<input bitcode files>"));
@@ -409,7 +414,8 @@ static void EmitShellScript(char **argv) {
// 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]);
+ sys::Path llvmstub = FindExecutable("llvm-stub.exe", argv[0],
+ reinterpret_cast<void *>(&Optimize));
if (llvmstub.isEmpty())
PrintAndExit("Could not find llvm-stub.exe executable!");
@@ -500,11 +506,6 @@ static void BuildLinkItems(
}
}
-// Rightly this should go in a header file but it just seems such a waste.
-namespace llvm {
-extern void Optimize(Module*);
-}
-
int main(int argc, char **argv, char **envp) {
// Print a stack trace if we signal out.
sys::PrintStackTraceOnErrorSignal();
@@ -640,11 +641,12 @@ int main(int argc, char **argv, char **envp) {
sys::RemoveFileOnSignal(sys::Path(OutputFilename));
// Determine the locations of the llc and gcc programs.
- sys::Path llc = FindExecutable("llc", argv[0]);
+ sys::Path llc = FindExecutable("llc", argv[0],
+ reinterpret_cast<void *>(&Optimize));
if (llc.isEmpty())
PrintAndExit("Failed to find llc");
- sys::Path gcc = FindExecutable("gcc", argv[0]);
+ sys::Path gcc = sys::Program::FindProgramByName("gcc");
if (gcc.isEmpty())
PrintAndExit("Failed to find gcc");
@@ -669,11 +671,12 @@ int main(int argc, char **argv, char **envp) {
sys::RemoveFileOnSignal(sys::Path(OutputFilename));
// Determine the locations of the llc and gcc programs.
- sys::Path llc = FindExecutable("llc", argv[0]);
+ sys::Path llc = FindExecutable("llc", argv[0],
+ reinterpret_cast<void *>(&Optimize));
if (llc.isEmpty())
PrintAndExit("Failed to find llc");
- sys::Path gcc = FindExecutable("gcc", argv[0]);
+ sys::Path gcc = sys::Program::FindProgramByName("gcc");
if (gcc.isEmpty())
PrintAndExit("Failed to find gcc");