| 1 | diff -u -r ../llvm-3.9.0.src/tools/clang/lib/Driver/Tools.cpp ./tools/clang/lib/Driver/Tools.cpp |
| 2 | --- ../llvm-3.9.0.src/tools/clang/lib/Driver/Tools.cpp 2016-08-13 16:43:56.000000000 -0400 |
| 3 | +++ ./tools/clang/lib/Driver/Tools.cpp 2016-09-04 06:15:59.703422745 -0400 |
| 4 | @@ -9357,9 +9357,12 @@ |
| 5 | const llvm::Triple::ArchType Arch = ToolChain.getArch(); |
| 6 | const bool isAndroid = ToolChain.getTriple().isAndroid(); |
| 7 | const bool IsIAMCU = ToolChain.getTriple().isOSIAMCU(); |
| 8 | + // Termux modification: Enable pie by default for Android and support the |
| 9 | + // nopie flag. |
| 10 | const bool IsPIE = |
| 11 | !Args.hasArg(options::OPT_shared) && !Args.hasArg(options::OPT_static) && |
| 12 | - (Args.hasArg(options::OPT_pie) || ToolChain.isPIEDefault()); |
| 13 | + (Args.hasArg(options::OPT_pie) || ToolChain.isPIEDefault() || isAndroid) && |
| 14 | + !Args.hasArg(options::OPT_nopie); |
| 15 | const bool HasCRTBeginEndFiles = |
| 16 | ToolChain.getTriple().hasEnvironment() || |
| 17 | (ToolChain.getTriple().getVendor() != llvm::Triple::MipsTechnologies); |