[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