+diff -u -r ../llvm-3.8.0.src/tools/clang/lib/Driver/Tools.cpp ./tools/clang/lib/Driver/Tools.cpp
+--- ../llvm-3.8.0.src/tools/clang/lib/Driver/Tools.cpp 2016-02-12 17:51:41.000000000 -0500
++++ ./tools/clang/lib/Driver/Tools.cpp 2016-05-01 23:01:30.148998957 -0400
+@@ -733,11 +733,11 @@
+ ABI = FloatABI::SoftFP;
+ break;
+ case llvm::Triple::Android:
+- ABI = (SubArch == 7) ? FloatABI::SoftFP : FloatABI::Soft;
++ ABI = FloatABI::Hard;
+ break;
+ default:
+ // Assume "soft", but warn the user we are guessing.
+- ABI = FloatABI::Soft;
++ ABI = FloatABI::Hard;
+ if (Triple.getOS() != llvm::Triple::UnknownOS ||
+ !Triple.isOSBinFormatMachO())
+ D.Diag(diag::warn_drv_assuming_mfloat_abi_is) << "soft";