diff options
author | Michal Gorny <mgorny@gentoo.org> | 2017-08-26 21:35:11 +0000 |
---|---|---|
committer | Michal Gorny <mgorny@gentoo.org> | 2017-08-26 21:35:11 +0000 |
commit | 172645925291222d7b21c356c54dd08073afc424 (patch) | |
tree | d807e669bce4d1bb747aac4e9c10401dccf424e3 /clang/lib/Driver/ToolChain.cpp | |
parent | a67e13129ddd05c6f8c06960dd134a7931d57002 (diff) | |
download | bcm5719-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.cpp | 5 |
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 { |