summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp
diff options
context:
space:
mode:
authorSimon Atanasyan <simon@atanasyan.com>2014-04-30 19:03:51 +0000
committerSimon Atanasyan <simon@atanasyan.com>2014-04-30 19:03:51 +0000
commita54d34d4ad4c65154e7d53297cc2d9ad67644d6d (patch)
tree3984c56797690470bdf276b4316d1dfad022264d /lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp
parent76d8d36c3c6f7445a52487263f7231ca0fe6b3aa (diff)
downloadbcm5719-llvm-a54d34d4ad4c65154e7d53297cc2d9ad67644d6d.tar.gz
bcm5719-llvm-a54d34d4ad4c65154e7d53297cc2d9ad67644d6d.zip
[ELF] Factor out the code builds a library search directory path
into the separate function. No functional changes. llvm-svn: 207689
Diffstat (limited to 'lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp')
-rw-r--r--lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp26
1 files changed, 12 insertions, 14 deletions
diff --git a/lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp b/lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp
index bbd22b9e7ac..7157df03b72 100644
--- a/lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp
+++ b/lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp
@@ -215,6 +215,16 @@ ELFLinkingContext::create(llvm::Triple triple) {
}
}
+static void buildSearchPath(SmallString<128> &path, StringRef dir,
+ StringRef sysRoot) {
+ if (!dir.startswith("=/"))
+ path.assign(dir);
+ else {
+ path.assign(sysRoot);
+ path.append(dir.substr(1));
+ }
+}
+
ErrorOr<StringRef> ELFLinkingContext::searchLibrary(StringRef libName) const {
bool foundFile = false;
StringRef pathref;
@@ -222,13 +232,7 @@ ErrorOr<StringRef> ELFLinkingContext::searchLibrary(StringRef libName) const {
for (StringRef dir : _inputSearchPaths) {
// Search for dynamic library
if (!_isStaticExecutable) {
- path.clear();
- if (dir.startswith("=/")) {
- path.assign(_sysrootPath);
- path.append(dir.substr(1));
- } else {
- path.assign(dir);
- }
+ buildSearchPath(path, dir, _sysrootPath);
llvm::sys::path::append(path, Twine("lib") + libName + ".so");
pathref = path.str();
if (llvm::sys::fs::exists(pathref)) {
@@ -237,13 +241,7 @@ ErrorOr<StringRef> ELFLinkingContext::searchLibrary(StringRef libName) const {
}
// Search for static libraries too
if (!foundFile) {
- path.clear();
- if (dir.startswith("=/")) {
- path.assign(_sysrootPath);
- path.append(dir.substr(1));
- } else {
- path.assign(dir);
- }
+ buildSearchPath(path, dir, _sysrootPath);
llvm::sys::path::append(path, Twine("lib") + libName + ".a");
pathref = path.str();
if (llvm::sys::fs::exists(pathref)) {
OpenPOWER on IntegriCloud