clang: Update from 3.8.1 to 3.9.0
[termux-packages] / packages / clang / tools-clang-lib-Driver-Tools.cpp.patch
index edc2ca9..21f43e3 100644 (file)
@@ -1,37 +1,17 @@
-diff -u -r ../llvm-3.8.1.src/tools/clang/lib/Driver/Tools.cpp ./tools/clang/lib/Driver/Tools.cpp
---- ../llvm-3.8.1.src/tools/clang/lib/Driver/Tools.cpp 2016-02-12 17:51:41.000000000 -0500
-+++ ./tools/clang/lib/Driver/Tools.cpp 2016-08-18 10:00:30.287138752 -0400
-@@ -733,11 +733,11 @@
-         ABI = FloatABI::SoftFP;
-         break;
-       case llvm::Triple::Android:
--        ABI = (SubArch == 7) ? FloatABI::SoftFP : FloatABI::Soft;
-+        ABI = FloatABI::SoftFP;
-         break;
-       default:
-         // Assume "soft", but warn the user we are guessing.
--        ABI = FloatABI::Soft;
-+        ABI = FloatABI::SoftFP;
-         if (Triple.getOS() != llvm::Triple::UnknownOS ||
-             !Triple.isOSBinFormatMachO())
-           D.Diag(diag::warn_drv_assuming_mfloat_abi_is) << "soft";
-@@ -8773,9 +8773,18 @@
+diff -u -r ../llvm-3.9.0.src/tools/clang/lib/Driver/Tools.cpp ./tools/clang/lib/Driver/Tools.cpp
+--- ../llvm-3.9.0.src/tools/clang/lib/Driver/Tools.cpp 2016-08-13 16:43:56.000000000 -0400
++++ ./tools/clang/lib/Driver/Tools.cpp 2016-09-04 06:15:59.703422745 -0400
+@@ -9357,9 +9357,12 @@
    const llvm::Triple::ArchType Arch = ToolChain.getArch();
    const bool isAndroid = ToolChain.getTriple().isAndroid();
+   const bool IsIAMCU = ToolChain.getTriple().isOSIAMCU();
++  // Termux modification: Enable pie by default for Android and support the
++  // nopie flag.
    const bool IsPIE =
        !Args.hasArg(options::OPT_shared) && !Args.hasArg(options::OPT_static) &&
 -      (Args.hasArg(options::OPT_pie) || ToolChain.isPIEDefault());
-+      (Args.hasArg(options::OPT_pie) || ToolChain.isPIEDefault()
-+       /* Termux modification: Revert
-+         http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20150302/124624.html
-+          as we really want pie by default: */
-+       // On Android every code is PIC so every executable is PIE
-+       // Cannot use isPIEDefault here since otherwise
-+       // PIE only logic will be enabled during compilation
-+       || isAndroid)
-+       && !Args.hasArg(options::OPT_nopie);
-+
++      (Args.hasArg(options::OPT_pie) || ToolChain.isPIEDefault() || isAndroid) &&
++      !Args.hasArg(options::OPT_nopie);
    const bool HasCRTBeginEndFiles =
        ToolChain.getTriple().hasEnvironment() ||
        (ToolChain.getTriple().getVendor() != llvm::Triple::MipsTechnologies);