diff options
author | Petr Hosek <phosek@chromium.org> | 2017-08-10 04:16:38 +0000 |
---|---|---|
committer | Petr Hosek <phosek@chromium.org> | 2017-08-10 04:16:38 +0000 |
commit | 916a4672c11d40698987e16c2b896a3b68b8a776 (patch) | |
tree | 50a9a3eb68129ee6d0b2604d33d5e62a240bcc80 /clang/lib/Driver/ToolChain.cpp | |
parent | 9c161e894af3dd7f54dd29218a476bc270864d24 (diff) | |
download | bcm5719-llvm-916a4672c11d40698987e16c2b896a3b68b8a776.tar.gz bcm5719-llvm-916a4672c11d40698987e16c2b896a3b68b8a776.zip |
[Driver] Search compiler-rt paths in -print-file-name=
This makes it possible to print the name of compiler-rt libraries
by using simply clang -print-file-name=libclang_rt.${runtime}-${arch}.so
same as other libraries, without having to know the details of the
resource directory organization.
Differential Revision: https://reviews.llvm.org/D35820
llvm-svn: 310548
Diffstat (limited to 'clang/lib/Driver/ToolChain.cpp')
-rw-r--r-- | clang/lib/Driver/ToolChain.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp index 10fad752cfe..c7c377971e5 100644 --- a/clang/lib/Driver/ToolChain.cpp +++ b/clang/lib/Driver/ToolChain.cpp @@ -308,6 +308,13 @@ static StringRef getArchNameForCompilerRTLib(const ToolChain &TC, return TC.getArchName(); } +std::string ToolChain::getCompilerRTPath() const { + SmallString<128> Path(getDriver().ResourceDir); + StringRef OSLibName = Triple.isOSFreeBSD() ? "freebsd" : getOS(); + llvm::sys::path::append(Path, "lib", OSLibName); + return Path.str(); +} + std::string ToolChain::getCompilerRT(const ArgList &Args, StringRef Component, bool Shared) const { const llvm::Triple &TT = getTriple(); @@ -320,9 +327,7 @@ std::string ToolChain::getCompilerRT(const ArgList &Args, StringRef Component, const char *Suffix = Shared ? (Triple.isOSWindows() ? ".dll" : ".so") : (IsITANMSVCWindows ? ".lib" : ".a"); - SmallString<128> Path(getDriver().ResourceDir); - StringRef OSLibName = Triple.isOSFreeBSD() ? "freebsd" : getOS(); - llvm::sys::path::append(Path, "lib", OSLibName); + SmallString<128> Path(getCompilerRTPath()); llvm::sys::path::append(Path, Prefix + Twine("clang_rt.") + Component + "-" + Arch + Env + Suffix); return Path.str(); |