diff --git a/packages/clang/Makefile.patch b/packages/clang/Makefile.patch deleted file mode 100644 index e497da96f..000000000 --- a/packages/clang/Makefile.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -u -r ../llvm-3.8.0.src/Makefile ./Makefile ---- ../llvm-3.8.0.src/Makefile 2014-03-25 17:45:41.000000000 -0400 -+++ ./Makefile 2016-03-10 16:28:00.142389801 -0500 -@@ -69,7 +69,6 @@ - ifeq ($(MAKECMDGOALS),install-clang) - DIRS := tools/clang/tools/driver tools/clang/lib/Headers \ - tools/clang/tools/libclang \ -- tools/clang/tools/c-index-test \ - tools/clang/include/clang-c \ - tools/clang/runtime tools/clang/docs \ - tools/lto diff --git a/packages/clang/build.sh b/packages/clang/build.sh index 772b7fca2..04c25ae0a 100644 --- a/packages/clang/build.sh +++ b/packages/clang/build.sh @@ -1,9 +1,9 @@ TERMUX_PKG_HOMEPAGE=http://clang.llvm.org/ TERMUX_PKG_DESCRIPTION="C and C++ frontend for the LLVM compiler" -_PKG_MAJOR_VERSION=3.8 -TERMUX_PKG_VERSION=${_PKG_MAJOR_VERSION}.1 -TERMUX_PKG_BUILD_REVISION=3 +_PKG_MAJOR_VERSION=3.9 +TERMUX_PKG_VERSION=${_PKG_MAJOR_VERSION}.0 TERMUX_PKG_SRCURL=http://llvm.org/releases/${TERMUX_PKG_VERSION}/llvm-${TERMUX_PKG_VERSION}.src.tar.xz +TERMUX_PKG_SHA256=66c73179da42cee1386371641241f79ded250e117a79f571bbd69e56daa48948 TERMUX_PKG_HOSTBUILD=true TERMUX_PKG_RM_AFTER_INSTALL="bin/macho-dump bin/bugpoint bin/llvm-tblgen lib/BugpointPasses.so lib/LLVMHello.so" TERMUX_PKG_DEPENDS="binutils, ncurses, ndk-sysroot, ndk-stl, libgcc" @@ -13,7 +13,9 @@ TERMUX_PKG_REPLACES=gcc termux_step_post_extract_package () { CLANG_SRC_TAR=cfe-${TERMUX_PKG_VERSION}.src.tar.xz - test ! -f $TERMUX_PKG_CACHEDIR/$CLANG_SRC_TAR && curl http://llvm.org/releases/${TERMUX_PKG_VERSION}/$CLANG_SRC_TAR > $TERMUX_PKG_CACHEDIR/$CLANG_SRC_TAR + test ! -f $TERMUX_PKG_CACHEDIR/$CLANG_SRC_TAR && termux_download http://llvm.org/releases/${TERMUX_PKG_VERSION}/$CLANG_SRC_TAR \ + $TERMUX_PKG_CACHEDIR/$CLANG_SRC_TAR \ + 7596a7c7d9376d0c89e60028fe1ceb4d3e535e8ea8b89e0eb094e0dcb3183d28 # COMPILERRT_SRC_TAR=compiler-rt-${TERMUX_PKG_VERSION}.src.tar.xz # test ! -f $TERMUX_PKG_CACHEDIR/$COMPILERRT_SRC_TAR && curl http://llvm.org/releases/${TERMUX_PKG_VERSION}/${COMPILERRT_SRC_TAR} > $TERMUX_PKG_CACHEDIR/$COMPILERRT_SRC_TAR @@ -31,8 +33,10 @@ termux_step_post_extract_package () { } termux_step_host_build () { - cmake -G "Unix Makefiles" $TERMUX_PKG_SRCDIR - make -j $TERMUX_MAKE_PROCESSES V=1 + cmake -G "Unix Makefiles" $TERMUX_PKG_SRCDIR \ + -DLLVM_BUILD_TESTS=OFF \ + -DLLVM_INCLUDE_TESTS=OFF + make -j $TERMUX_MAKE_PROCESSES } termux_step_configure () { @@ -53,7 +57,7 @@ termux_step_configure () { exit 1 fi # see CMakeLists.txt and tools/clang/CMakeLists.txt - cmake -G "Unix Makefiles" .. \ + cmake -G "Unix Makefiles" $TERMUX_PKG_SRCDIR \ -DCMAKE_AR=`which ${TERMUX_HOST_PLATFORM}-ar` \ -DCMAKE_BUILD_TYPE=MinSizeRel \ -DCMAKE_CROSSCOMPILING=True \ @@ -68,11 +72,13 @@ termux_step_configure () { -DLLVM_TARGET_ARCH=$LLVM_TARGET_ARCH \ -DLLVM_TARGETS_TO_BUILD=$LLVM_TARGET_ARCH \ -DLLVM_ENABLE_PIC=ON \ - -DLLVM_INCLUDE_TESTS=Off \ + -DLLVM_BUILD_TESTS=OFF \ + -DLLVM_INCLUDE_TESTS=OFF \ -DCLANG_TABLEGEN=$TERMUX_PKG_HOSTBUILD_DIR/bin/clang-tblgen \ + -DCLANG_INCLUDE_TESTS=OFF \ + -DCLANG_TOOL_C_INDEX_TEST_BUILD=OFF \ -DC_INCLUDE_DIRS=$TERMUX_PREFIX/include \ - -DBUILD_SHARED_LIBS=On \ - $TERMUX_PKG_SRCDIR + -DBUILD_SHARED_LIBS=ON } termux_step_post_make_install () { diff --git a/packages/clang/compiler-rt-android.disabled b/packages/clang/compiler-rt-android.disabled deleted file mode 100644 index f45b0dfcf..000000000 --- a/packages/clang/compiler-rt-android.disabled +++ /dev/null @@ -1,13 +0,0 @@ -diff -u -r ../pristine/projects/compiler-rt/CMakeLists.txt ./projects/compiler-rt/CMakeLists.txt ---- ../pristine/projects/compiler-rt/CMakeLists.txt 2015-07-27 12:42:42.000000000 -0400 -+++ ./projects/compiler-rt/CMakeLists.txt 2015-12-08 11:07:26.899747723 -0500 -@@ -147,9 +147,7 @@ - set(COMPILER_RT_HAS_EXPLICIT_TEST_TARGET_TRIPLE FALSE) - endif() - --if ("${COMPILER_RT_TEST_TARGET_ABI}" STREQUAL "androideabi") - set(ANDROID 1) --endif() - - string(TOLOWER ${CMAKE_SYSTEM_NAME} COMPILER_RT_OS_DIR) - set(COMPILER_RT_LIBRARY_OUTPUT_DIR diff --git a/packages/clang/compiler-rt-android.patch.disabled b/packages/clang/compiler-rt-android.patch.disabled deleted file mode 100644 index f45b0dfcf..000000000 --- a/packages/clang/compiler-rt-android.patch.disabled +++ /dev/null @@ -1,13 +0,0 @@ -diff -u -r ../pristine/projects/compiler-rt/CMakeLists.txt ./projects/compiler-rt/CMakeLists.txt ---- ../pristine/projects/compiler-rt/CMakeLists.txt 2015-07-27 12:42:42.000000000 -0400 -+++ ./projects/compiler-rt/CMakeLists.txt 2015-12-08 11:07:26.899747723 -0500 -@@ -147,9 +147,7 @@ - set(COMPILER_RT_HAS_EXPLICIT_TEST_TARGET_TRIPLE FALSE) - endif() - --if ("${COMPILER_RT_TEST_TARGET_ABI}" STREQUAL "androideabi") - set(ANDROID 1) --endif() - - string(TOLOWER ${CMAKE_SYSTEM_NAME} COMPILER_RT_OS_DIR) - set(COMPILER_RT_LIBRARY_OUTPUT_DIR diff --git a/packages/clang/compiler-rt-clear_cache.c.patch.disabled b/packages/clang/compiler-rt-clear_cache.c.patch.disabled deleted file mode 100644 index 8102a452d..000000000 --- a/packages/clang/compiler-rt-clear_cache.c.patch.disabled +++ /dev/null @@ -1,14 +0,0 @@ -See http://reviews.llvm.org/D14115 - -diff -u -r ../pristine/projects/compiler-rt/lib/builtins/clear_cache.c ./projects/compiler-rt/lib/builtins/clear_cache.c ---- ../pristine/projects/compiler-rt/lib/builtins/clear_cache.c 2015-03-11 18:06:53.000000000 -0400 -+++ ./projects/compiler-rt/lib/builtins/clear_cache.c 2015-12-27 07:34:11.519445662 -0500 -@@ -104,7 +104,7 @@ - const register int flags __asm("r2") = 0; - const register int syscall_nr __asm("r7") = __ARM_NR_cacheflush; - __asm __volatile("svc 0x0" : "=r"(start_reg) -- : "r"(syscall_nr), "r"(start_reg), "r"(end_reg), "r"(flags) : "r0"); -+ : "r"(syscall_nr), "r"(start_reg), "r"(end_reg), "r"(flags)); - if (start_reg != 0) { - compilerrt_abort(); - } diff --git a/packages/clang/dont-build-c-index-test.patch b/packages/clang/dont-build-c-index-test.patch deleted file mode 100644 index 6558f9cf0..000000000 --- a/packages/clang/dont-build-c-index-test.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -u -r ../orig-src/tools/clang/tools/CMakeLists.txt ./tools/clang/tools/CMakeLists.txt ---- ../orig-src/tools/clang/tools/CMakeLists.txt 2016-01-12 21:03:50.000000000 -0500 -+++ ./tools/clang/tools/CMakeLists.txt 2016-03-10 16:32:04.320055824 -0500 -@@ -6,7 +6,6 @@ - add_clang_subdirectory(clang-format-vs) - add_clang_subdirectory(clang-fuzzer) - --add_clang_subdirectory(c-index-test) - add_clang_subdirectory(libclang) - - if(CLANG_ENABLE_ARCMT) diff --git a/packages/clang/tools-clang-lib-Driver-Tools.cpp.patch b/packages/clang/tools-clang-lib-Driver-Tools.cpp.patch index edc2ca996..21f43e307 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); diff --git a/packages/clang/tools-sancov-sancov.cc.patch b/packages/clang/tools-sancov-sancov.cc.patch new file mode 100644 index 000000000..837b3eff6 --- /dev/null +++ b/packages/clang/tools-sancov-sancov.cc.patch @@ -0,0 +1,15 @@ +Workaround bug https://github.com/android-ndk/ndk/issues/82 where std::to_string +is not available yet. + +diff -u -r ../llvm-3.9.0.src/tools/sancov/sancov.cc ./tools/sancov/sancov.cc +--- ../llvm-3.9.0.src/tools/sancov/sancov.cc 2016-07-13 22:24:01.000000000 -0400 ++++ ./tools/sancov/sancov.cc 2016-09-04 11:48:19.647813216 -0400 +@@ -512,7 +512,7 @@ + static std::string formatHtmlPct(size_t Pct) { + Pct = std::max(std::size_t{0}, std::min(std::size_t{100}, Pct)); + +- std::string Num = std::to_string(Pct); ++ std::string Num = llvm::utostr(Pct); + std::string Zeroes(3 - Num.size(), '0'); + if (!Zeroes.empty()) + Zeroes = "" + Zeroes + "";