clang: Update from 3.8.1 to 3.9.0
authorFredrik Fornwall <fredrik@fornwall.net>
Sun, 4 Sep 2016 20:17:03 +0000 (16:17 -0400)
committerFredrik Fornwall <fredrik@fornwall.net>
Sun, 4 Sep 2016 20:17:03 +0000 (16:17 -0400)
packages/clang/Makefile.patch [deleted file]
packages/clang/build.sh
packages/clang/compiler-rt-android.disabled [deleted file]
packages/clang/compiler-rt-android.patch.disabled [deleted file]
packages/clang/compiler-rt-clear_cache.c.patch.disabled [deleted file]
packages/clang/dont-build-c-index-test.patch [deleted file]
packages/clang/tools-clang-lib-Driver-Tools.cpp.patch
packages/clang/tools-sancov-sancov.cc.patch [new file with mode: 0644]

diff --git a/packages/clang/Makefile.patch b/packages/clang/Makefile.patch
deleted file mode 100644 (file)
index e497da9..0000000
+++ /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
index 772b7fc..04c25ae 100644 (file)
@@ -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 (file)
index f45b0df..0000000
+++ /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 (file)
index f45b0df..0000000
+++ /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 (file)
index 8102a45..0000000
+++ /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 (file)
index 6558f9c..0000000
+++ /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)
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);
diff --git a/packages/clang/tools-sancov-sancov.cc.patch b/packages/clang/tools-sancov-sancov.cc.patch
new file mode 100644 (file)
index 0000000..837b3ef
--- /dev/null
@@ -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 = "<span class='lz'>" + Zeroes + "</span>";