[PATCH] D131563: [clang] Fix clang multiarch isssue with musl
Brahmajit via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Aug 31 03:54:57 PDT 2022
listout updated this revision to Diff 456920.
listout marked an inline comment as done.
listout retitled this revision from "[WIP] [clang] Fix clang multiarch isssue with musl" to "[clang] Fix clang multiarch isssue with musl".
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D131563/new/
https://reviews.llvm.org/D131563
Files:
clang/lib/Driver/ToolChains/Linux.cpp
Index: clang/lib/Driver/ToolChains/Linux.cpp
===================================================================
--- clang/lib/Driver/ToolChains/Linux.cpp
+++ clang/lib/Driver/ToolChains/Linux.cpp
@@ -42,6 +42,15 @@
StringRef SysRoot) const {
llvm::Triple::EnvironmentType TargetEnvironment =
TargetTriple.getEnvironment();
+ // Fall back to "-gnu" on unknown environment to preserve the historical
+ // behavior.
+ std::string EnvName =
+ TargetTriple
+ .getEnvironmentTypeName(TargetEnvironment !=
+ llvm::Triple::UnknownEnvironment
+ ? TargetEnvironment
+ : llvm::Triple::GNU)
+ .str();
bool IsAndroid = TargetTriple.isAndroid();
bool IsMipsR6 = TargetTriple.getSubArch() == llvm::Triple::MipsSubArch_r6;
bool IsMipsN32Abi = TargetTriple.getEnvironment() == llvm::Triple::GNUABIN32;
@@ -60,40 +69,30 @@
case llvm::Triple::thumb:
if (IsAndroid)
return "arm-linux-androideabi";
- if (TargetEnvironment == llvm::Triple::GNUEABIHF)
- return "arm-linux-gnueabihf";
- return "arm-linux-gnueabi";
+ return "arm-linux-" + EnvName;
case llvm::Triple::armeb:
case llvm::Triple::thumbeb:
- if (TargetEnvironment == llvm::Triple::GNUEABIHF)
- return "armeb-linux-gnueabihf";
- return "armeb-linux-gnueabi";
+ return "armeb-linux-" + EnvName;
case llvm::Triple::x86:
if (IsAndroid)
return "i686-linux-android";
- return "i386-linux-gnu";
+ return "i386-linux-" + EnvName;
case llvm::Triple::x86_64:
- if (IsAndroid)
- return "x86_64-linux-android";
- if (TargetEnvironment == llvm::Triple::GNUX32)
- return "x86_64-linux-gnux32";
- return "x86_64-linux-gnu";
+ return "x86_64-linux-" + EnvName;
case llvm::Triple::aarch64:
- if (IsAndroid)
- return "aarch64-linux-android";
- return "aarch64-linux-gnu";
+ return "aarch64-linux-" + EnvName;
case llvm::Triple::aarch64_be:
- return "aarch64_be-linux-gnu";
+ return "aarch64_be-linux-" + EnvName;
case llvm::Triple::m68k:
- return "m68k-linux-gnu";
+ return "m68k-linux-" + EnvName;
case llvm::Triple::mips:
- return IsMipsR6 ? "mipsisa32r6-linux-gnu" : "mips-linux-gnu";
+ return (IsMipsR6 ? "mipsisa32r6-linux-" : "mips-linux-") + EnvName;
case llvm::Triple::mipsel:
if (IsAndroid)
return "mipsel-linux-android";
- return IsMipsR6 ? "mipsisa32r6el-linux-gnu" : "mipsel-linux-gnu";
+ return (IsMipsR6 ? "mipsisa32r6el-linux-" : "mipsel-linux-") + EnvName;
case llvm::Triple::mips64: {
std::string MT = std::string(IsMipsR6 ? "mipsisa64r6" : "mips64") +
"-linux-" + (IsMipsN32Abi ? "gnuabin32" : "gnuabi64");
@@ -117,21 +116,21 @@
case llvm::Triple::ppc:
if (D.getVFS().exists(concat(SysRoot, "/lib/powerpc-linux-gnuspe")))
return "powerpc-linux-gnuspe";
- return "powerpc-linux-gnu";
+ return "powerpc-linux-" + EnvName;
case llvm::Triple::ppcle:
- return "powerpcle-linux-gnu";
+ return "powerpcle-linux-" + EnvName;
case llvm::Triple::ppc64:
- return "powerpc64-linux-gnu";
+ return "powerpc64-linux-" + EnvName;
case llvm::Triple::ppc64le:
- return "powerpc64le-linux-gnu";
+ return "powerpc64le-linux-" + EnvName;
case llvm::Triple::riscv64:
- return "riscv64-linux-gnu";
+ return "riscv64-linux-" + EnvName;
case llvm::Triple::sparc:
- return "sparc-linux-gnu";
+ return "sparc-linux-" + EnvName;
case llvm::Triple::sparcv9:
- return "sparc64-linux-gnu";
+ return "sparc64-linux-" + EnvName;
case llvm::Triple::systemz:
- return "s390x-linux-gnu";
+ return "s390x-linux-" + EnvName;
}
return TargetTriple.str();
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D131563.456920.patch
Type: text/x-patch
Size: 3842 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20220831/d19e8996/attachment.bin>
More information about the cfe-commits
mailing list