From: Brian Gaeke Date: Fri, 7 May 2004 21:47:36 +0000 (+0000) Subject: Allow the user to set the LLVMINTERP environment variable as a workaround, for X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=7532e34537de56cc42512085abb77ad84c8a42a6;p=oota-llvm.git 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.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13414 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/tools/gccld/gccld.cpp b/tools/gccld/gccld.cpp index 389a6b13da4..eee34dbe681 100644 --- a/tools/gccld/gccld.cpp +++ b/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 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(); }