aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2004-09-25 15:59:41 +0000
committerReid Spencer <rspencer@reidspencer.com>2004-09-25 15:59:41 +0000
commit8d9b6800f6941e15863d09f0524b2f8ca49ff690 (patch)
treeaf93c96dcb7f7df05300b664e8c17f0a20e5aa82 /tools
parent725f2c82c943388e615924da1b7bb63135ff2f93 (diff)
downloadexternal_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')
-rw-r--r--tools/llvm-ld/Linker.cpp35
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