X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=tools%2Fllvm-ld%2Fllvm-ld.cpp;h=6b4c3c7728e520dc2c483f5030a66983bca58470;hb=adf01b3f18442ae8db6b8948e70d82d9df415119;hp=9277554d5faaeae3c0f7dbfef0e2a04637411708;hpb=572ec1f3c0fd2386ce8a7dbeb7c15b3ac8ab1878;p=oota-llvm.git diff --git a/tools/llvm-ld/llvm-ld.cpp b/tools/llvm-ld/llvm-ld.cpp index 9277554d5fa..6b4c3c7728e 100644 --- a/tools/llvm-ld/llvm-ld.cpp +++ b/tools/llvm-ld/llvm-ld.cpp @@ -23,7 +23,7 @@ #include "llvm/LinkAllVMCore.h" #include "llvm/Linker.h" #include "llvm/LLVMContext.h" -#include "llvm/System/Program.h" +#include "llvm/Support/Program.h" #include "llvm/Module.h" #include "llvm/PassManager.h" #include "llvm/Bitcode/ReaderWriter.h" @@ -36,7 +36,7 @@ #include "llvm/Support/PrettyStackTrace.h" #include "llvm/Support/SystemUtils.h" #include "llvm/Support/ToolOutputFile.h" -#include "llvm/System/Signals.h" +#include "llvm/Support/Signals.h" #include "llvm/Config/config.h" #include #include @@ -178,7 +178,7 @@ static char ** CopyEnv(char ** const envp) { // Allocate a new environment list. char **newenv = new char* [entries]; - if ((newenv = new char* [entries]) == NULL) + if (newenv == NULL) return NULL; // Make a copy of the list. Don't forget the NULL that ends the list. @@ -410,13 +410,13 @@ static int GenerateNative(const std::string &OutputFilename, static void EmitShellScript(char **argv, Module *M) { if (Verbose) errs() << "Emitting Shell Script\n"; -#if defined(_WIN32) || defined(__CYGWIN__) +#if defined(_WIN32) // Windows doesn't support #!/bin/sh style shell scripts in .exe files. To // 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); @@ -455,7 +455,7 @@ static void EmitShellScript(char **argv, Module *M) { E = LibPaths.end(); P != E; ++P) { FullLibraryPath = *P; FullLibraryPath.appendComponent("lib" + *i); - FullLibraryPath.appendSuffix(&(LTDL_SHLIB_EXT[1])); + FullLibraryPath.appendSuffix(sys::Path::GetDLLSuffix()); if (!FullLibraryPath.isEmpty()) { if (!FullLibraryPath.isDynamicLibrary()) { // Not a native shared library; mark as invalid @@ -526,7 +526,7 @@ int main(int argc, char **argv, char **envp) { initializeTarget(Registry); // Initial global variable above for convenience printing of program name. - progname = sys::Path(argv[0]).getBasename(); + progname = sys::path::stem(argv[0]); // Parse the command line options cl::ParseCommandLineOptions(argc, argv, "llvm linker\n"); @@ -538,11 +538,8 @@ int main(int argc, char **argv, char **envp) { OutputFilename = "a.exe"; // If there is no suffix add an "exe" one. - sys::Path ExeFile( OutputFilename ); - if (ExeFile.getSuffix() == "") { - ExeFile.appendSuffix("exe"); - OutputFilename = ExeFile.str(); - } + if (sys::path::extension(OutputFilename).empty()) + OutputFilename.append(".exe"); } #endif @@ -555,12 +552,12 @@ int main(int argc, char **argv, char **envp) { } // Arrange for the bitcode output file to be deleted on any errors. - BitcodeOutputRemover.setFile(sys::Path(BitcodeOutputFilename)); + BitcodeOutputRemover.setFile(BitcodeOutputFilename); sys::RemoveFileOnSignal(sys::Path(BitcodeOutputFilename)); // Arrange for the output file to be deleted on any errors. if (!LinkAsLibrary) { - OutputRemover.setFile(sys::Path(OutputFilename)); + OutputRemover.setFile(OutputFilename); sys::RemoveFileOnSignal(sys::Path(OutputFilename)); } @@ -660,12 +657,12 @@ int main(int argc, char **argv, char **envp) { AssemblyFile.appendSuffix("s"); // Mark the output files for removal. - FileRemover AssemblyFileRemover(AssemblyFile); + FileRemover AssemblyFileRemover(AssemblyFile.str()); 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()); @@ -687,12 +684,12 @@ int main(int argc, char **argv, char **envp) { CFile.appendSuffix("cbe.c"); // Mark the output files for removal. - FileRemover CFileRemover(CFile); + FileRemover CFileRemover(CFile.str()); 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());