The first argument to ExecuteAndWait should be the program name, but pointed
out by Markus F.X.J. Oberhumer.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21211 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/llvm-ld/llvm-ld.cpp b/tools/llvm-ld/llvm-ld.cpp
index f19c079..944f23d 100644
--- a/tools/llvm-ld/llvm-ld.cpp
+++ b/tools/llvm-ld/llvm-ld.cpp
@@ -221,10 +221,11 @@
                             const sys::Path &llc) {
   // Run LLC to convert the bytecode file into assembly code.
   std::vector<const char*> args;
-  args.push_back( "-f");
-  args.push_back( "-o");
-  args.push_back( OutputFilename.c_str() );
-  args.push_back( InputFilename.c_str() );
+  args.push_back(llc.c_str());
+  args.push_back("-f");
+  args.push_back("-o");
+  args.push_back(OutputFilename.c_str());
+  args.push_back(InputFilename.c_str());
   args.push_back(0);
 
   return sys::Program::ExecuteAndWait(llc,&args[0]);
@@ -237,11 +238,12 @@
                          const sys::Path &llc) {
   // Run LLC to convert the bytecode file into C.
   std::vector<const char*> args;
-  args.push_back( "-march=c");
-  args.push_back( "-f");
-  args.push_back( "-o");
-  args.push_back( OutputFile.c_str() );
-  args.push_back( InputFile.c_str() );
+  args.push_back(llc.c_str());
+  args.push_back("-march=c");
+  args.push_back("-f");
+  args.push_back("-o");
+  args.push_back(OutputFile.c_str());
+  args.push_back(InputFile.c_str());
   args.push_back(0);
   return sys::Program::ExecuteAndWait(llc, &args[0]);
 }
@@ -290,6 +292,7 @@
   //  and linker because we don't know where to put the _start symbol.
   //  GCC mysteriously knows how to do it.
   std::vector<const char*> args;
+  args.push_back(gcc.c_str());
   args.push_back("-fno-strict-aliasing");
   args.push_back("-O3");
   args.push_back("-o");