440caf8
diff --git a/tools/clang/lib/Driver/Tools.cpp b/tools/clang/lib/Driver/Tools.cpp
440caf8
index 29713ed..0d23694 100644
440caf8
--- a/tools/clang/lib/Driver/Tools.cpp
440caf8
+++ b/tools/clang/lib/Driver/Tools.cpp
440caf8
@@ -747,7 +747,7 @@ static StringRef getARMFloatABI(const Driver &D,
440caf8
         FloatABI = "hard";
440caf8
         break;
440caf8
       case llvm::Triple::GNUEABI:
440caf8
-        FloatABI = "softfp";
440caf8
+        FloatABI = Triple.getVendorName() == "hardfloat" ? "hard" : "softfp";
440caf8
         break;
440caf8
       case llvm::Triple::EABI:
440caf8
         // EABI is always AAPCS, and if it was not marked 'hard', it's softfp