summaryrefslogtreecommitdiffstats
path: root/llvm/tools/gccld/gccld.cpp
diff options
context:
space:
mode:
authorBrian Gaeke <gaeke@uiuc.edu>2004-05-07 21:47:36 +0000
committerBrian Gaeke <gaeke@uiuc.edu>2004-05-07 21:47:36 +0000
commit9a7b9d07f0659fc6c4054c564f2741c4b198c1fc (patch)
treeeec1469c864012274768a376a39f65daad8b5a4a /llvm/tools/gccld/gccld.cpp
parent584308b71ac7d8120bf3eecb5aed5d767c91ae90 (diff)
downloadbcm5719-llvm-9a7b9d07f0659fc6c4054c564f2741c4b198c1fc.tar.gz
bcm5719-llvm-9a7b9d07f0659fc6c4054c564f2741c4b198c1fc.zip
Allow the user to set the LLVMINTERP environment variable as a workaround, for
when they have to run a gccld shell script without having lli in their path. This is intended to address Bug 289. Also, emit the traditional syntax ${1+"$@"} for passing all of a shell script's args to a subprocess. If you have arguments that have spaces in them, $* will not preserve the quoting (i.e., the quoted string "foo bar" as an argument will end up as two arguments "foo" "bar" to lli.) llvm-svn: 13414
Diffstat (limited to 'llvm/tools/gccld/gccld.cpp')
-rw-r--r--llvm/tools/gccld/gccld.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/llvm/tools/gccld/gccld.cpp b/llvm/tools/gccld/gccld.cpp
index 389a6b13da4..eee34dbe681 100644
--- a/llvm/tools/gccld/gccld.cpp
+++ b/llvm/tools/gccld/gccld.cpp
@@ -309,7 +309,10 @@ int main(int argc, char **argv, char **envp) {
if (!Out2.good())
return PrintAndReturn(argv[0], "error opening '" + OutputFilename +
"' for writing!");
- Out2 << "#!/bin/sh\nlli \\\n";
+ Out2 << "#!/bin/sh\n";
+ // Allow user to setenv LLVMINTERP if lli is not in their PATH.
+ Out2 << "lli=${LLVMINTERP-lli}\n";
+ Out2 << "exec $lli \\\n";
// gcc accepts -l<lib> and implicitly searches /lib and /usr/lib.
LibPaths.push_back("/lib");
LibPaths.push_back("/usr/lib");
@@ -327,7 +330,7 @@ int main(int argc, char **argv, char **envp) {
if (!FullLibraryPath.empty() && IsSharedObject(FullLibraryPath))
Out2 << " -load=" << FullLibraryPath << " \\\n";
}
- Out2 << " $0.bc $*\n";
+ Out2 << " $0.bc ${1+\"$@\"}\n";
Out2.close();
}
OpenPOWER on IntegriCloud