X-Git-Url: https://git.distorted.org.uk/~mdw/termux-packages/blobdiff_plain/9cbdadb1fe2c58f1be7cfaa6b502f5d363303d65..b4a6e588933ba55149ae4311ffd50a89940eb84b:/packages/clang/tools-clang-lib-Driver-Tools.cpp.patch diff --git a/packages/clang/tools-clang-lib-Driver-Tools.cpp.patch b/packages/clang/tools-clang-lib-Driver-Tools.cpp.patch index edc2ca99..21f43e30 100644 --- a/packages/clang/tools-clang-lib-Driver-Tools.cpp.patch +++ b/packages/clang/tools-clang-lib-Driver-Tools.cpp.patch @@ -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);