summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/ToolChain.cpp
diff options
context:
space:
mode:
authorMichal Gorny <mgorny@gentoo.org>2017-08-26 21:35:11 +0000
committerMichal Gorny <mgorny@gentoo.org>2017-08-26 21:35:11 +0000
commit172645925291222d7b21c356c54dd08073afc424 (patch)
treed807e669bce4d1bb747aac4e9c10401dccf424e3 /clang/lib/Driver/ToolChain.cpp
parenta67e13129ddd05c6f8c06960dd134a7931d57002 (diff)
downloadbcm5719-llvm-172645925291222d7b21c356c54dd08073afc424.tar.gz
bcm5719-llvm-172645925291222d7b21c356c54dd08073afc424.zip
[Driver] Use arch type to find compiler-rt libraries (on Linux)
Use llvm::Triple::getArchTypeName() when looking for compiler-rt libraries, rather than the exact arch string from the triple. This is more correct as it matches the values used when building compiler-rt (builtin-config-ix.cmake) which are the subset of the values allowed in triples. For example, this fixes an issue when the compiler set for i686-pc-linux-gnu triple would not find an i386 compiler-rt library, while this is the exact arch that is detected by compiler-rt. The same applies to any other i?86 variant allowed by LLVM. This also makes the special case for MSVC unnecessary, since now i386 will be used reliably for all 32-bit x86 variants. Differential Revision: https://reviews.llvm.org/D26796 llvm-svn: 311836
Diffstat (limited to 'clang/lib/Driver/ToolChain.cpp')
-rw-r--r--clang/lib/Driver/ToolChain.cpp5
1 files changed, 1 insertions, 4 deletions
diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp
index 0476d156f56..2660c5a2c02 100644
--- a/clang/lib/Driver/ToolChain.cpp
+++ b/clang/lib/Driver/ToolChain.cpp
@@ -297,15 +297,12 @@ static StringRef getArchNameForCompilerRTLib(const ToolChain &TC,
const llvm::Triple &Triple = TC.getTriple();
bool IsWindows = Triple.isOSWindows();
- if (Triple.isWindowsMSVCEnvironment() && TC.getArch() == llvm::Triple::x86)
- return "i386";
-
if (TC.getArch() == llvm::Triple::arm || TC.getArch() == llvm::Triple::armeb)
return (arm::getARMFloatABI(TC, Args) == arm::FloatABI::Hard && !IsWindows)
? "armhf"
: "arm";
- return TC.getArchName();
+ return llvm::Triple::getArchTypeName(TC.getArch());
}
std::string ToolChain::getCompilerRTPath() const {
OpenPOWER on IntegriCloud