diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2004-09-25 15:59:41 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2004-09-25 15:59:41 +0000 |
commit | 8d9b6800f6941e15863d09f0524b2f8ca49ff690 (patch) | |
tree | af93c96dcb7f7df05300b664e8c17f0a20e5aa82 /tools/llvm-ld | |
parent | 725f2c82c943388e615924da1b7bb63135ff2f93 (diff) | |
download | external_llvm-8d9b6800f6941e15863d09f0524b2f8ca49ff690.zip external_llvm-8d9b6800f6941e15863d09f0524b2f8ca49ff690.tar.gz external_llvm-8d9b6800f6941e15863d09f0524b2f8ca49ff690.tar.bz2 |
Qualify Path with sys:: namespace so this file compiles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16516 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvm-ld')
-rw-r--r-- | tools/llvm-ld/Linker.cpp | 35 |
1 files changed, 7 insertions, 28 deletions
diff --git a/tools/llvm-ld/Linker.cpp b/tools/llvm-ld/Linker.cpp index 42788f2..4af152b 100644 --- a/tools/llvm-ld/Linker.cpp +++ b/tools/llvm-ld/Linker.cpp @@ -25,6 +25,7 @@ #include "llvm/Support/CommandLine.h" #include "llvm/Support/FileUtilities.h" #include "llvm/System/Signals.h" +#include "llvm/System/Path.h" #include "llvm/Support/SystemUtils.h" #include <algorithm> #include <fstream> @@ -43,37 +44,15 @@ std::string llvm::FindLib(const std::string &Filename, const std::vector<std::string> &Paths, bool SharedObjectOnly) { // Determine if the pathname can be found as it stands. - if (FileOpenable(Filename)) + sys::Path FilePath; + if (FilePath.set_file(Filename) && FilePath.readable()) return Filename; - // If that doesn't work, convert the name into a library name. - std::string LibName = "lib" + Filename; + // Ask the System Path object to locate the library. This ensures that + // the library search is done correctly for a given platform. + sys::Path LibPath = sys::Path::GetLibraryPath(Filename,Paths); - // Iterate over the directories in Paths to see if we can find the library - // there. - for (unsigned Index = 0; Index != Paths.size(); ++Index) { - std::string Directory = Paths[Index] + "/"; - - if (!SharedObjectOnly && FileOpenable(Directory + LibName + ".bc")) - return Directory + LibName + ".bc"; - - if (FileOpenable(Directory + LibName + SHLIBEXT)) - return Directory + LibName + SHLIBEXT; - - if (!SharedObjectOnly && FileOpenable(Directory + LibName + ".a")) - return Directory + LibName + ".a"; - } - - // One last hope: Check LLVM_LIB_SEARCH_PATH. - char *SearchPath = getenv("LLVM_LIB_SEARCH_PATH"); - if (SearchPath == NULL) - return std::string(); - - LibName = std::string(SearchPath) + "/" + LibName; - if (FileOpenable(LibName)) - return LibName; - - return std::string(); + return LibPath.get(); } /// GetAllDefinedSymbols - Modifies its parameter DefinedSymbols to contain the |