[PATCH] D34957: clang: add support for hard float musl linux targets.
Martell Malone via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 3 09:19:50 PDT 2017
martell created this revision.
Herald added a subscriber: emaste.
This might seems a little confusing on a first look but `llvm::Triple::GNUEABIHF` generally refers to a glibc hf triple.
We just apply the same logic to `llvm::Triple::MuslEABIHF` because if just refers to the c library.
There doesn't seem to be an existing testcase for the llvm::Triple::GNUEABIHF logic.
The only question I have is should we apply the same logic for FreeBSD targets with musl?
Repository:
rL LLVM
https://reviews.llvm.org/D34957
Files:
tools/clang/lib/Driver/ToolChains/Gnu.cpp
tools/clang/lib/Driver/ToolChains/Linux.cpp
Index: tools/clang/lib/Driver/ToolChains/Linux.cpp
===================================================================
--- tools/clang/lib/Driver/ToolChains/Linux.cpp
+++ tools/clang/lib/Driver/ToolChains/Linux.cpp
@@ -54,7 +54,8 @@
// regardless of what the actual target triple is.
case llvm::Triple::arm:
case llvm::Triple::thumb:
- if (TargetEnvironment == llvm::Triple::GNUEABIHF) {
+ if (TargetEnvironment == llvm::Triple::GNUEABIHF ||
+ TargetEnvironment == llvm::Triple::MuslEABIHF) {
if (D.getVFS().exists(SysRoot + "/lib/arm-linux-gnueabihf"))
return "arm-linux-gnueabihf";
} else {
@@ -64,7 +65,8 @@
break;
case llvm::Triple::armeb:
case llvm::Triple::thumbeb:
- if (TargetEnvironment == llvm::Triple::GNUEABIHF) {
+ if (TargetEnvironment == llvm::Triple::GNUEABIHF ||
+ TargetEnvironment == llvm::Triple::MuslEABIHF) {
if (D.getVFS().exists(SysRoot + "/lib/armeb-linux-gnueabihf"))
return "armeb-linux-gnueabihf";
} else {
Index: tools/clang/lib/Driver/ToolChains/Gnu.cpp
===================================================================
--- tools/clang/lib/Driver/ToolChains/Gnu.cpp
+++ tools/clang/lib/Driver/ToolChains/Gnu.cpp
@@ -1917,7 +1917,8 @@
case llvm::Triple::arm:
case llvm::Triple::thumb:
LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
- if (TargetTriple.getEnvironment() == llvm::Triple::GNUEABIHF) {
+ if (TargetTriple.getEnvironment() == llvm::Triple::GNUEABIHF ||
+ TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
TripleAliases.append(begin(ARMHFTriples), end(ARMHFTriples));
} else {
TripleAliases.append(begin(ARMTriples), end(ARMTriples));
@@ -1926,7 +1927,8 @@
case llvm::Triple::armeb:
case llvm::Triple::thumbeb:
LibDirs.append(begin(ARMebLibDirs), end(ARMebLibDirs));
- if (TargetTriple.getEnvironment() == llvm::Triple::GNUEABIHF) {
+ if (TargetTriple.getEnvironment() == llvm::Triple::GNUEABIHF ||
+ TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
TripleAliases.append(begin(ARMebHFTriples), end(ARMebHFTriples));
} else {
TripleAliases.append(begin(ARMebTriples), end(ARMebTriples));
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D34957.105088.patch
Type: text/x-patch
Size: 2230 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170703/a9b6e94d/attachment.bin>
More information about the llvm-commits
mailing list