TERMUX_PKG_HOMEPAGE=https://clang.llvm.org/
TERMUX_PKG_DESCRIPTION="Modular compiler and toolchain technologies library"
-_PKG_MAJOR_VERSION=5.0
-TERMUX_PKG_VERSION=${_PKG_MAJOR_VERSION}.1
-TERMUX_PKG_SHA256=5fa7489fc0225b11821cab0362f5813a05f2bcf2533e8a4ea9c9c860168807b0
+_PKG_MAJOR_VERSION=6.0
+TERMUX_PKG_VERSION=${_PKG_MAJOR_VERSION}.0
+TERMUX_PKG_REVISION=1
+TERMUX_PKG_SHA256=1ff53c915b4e761ef400b803f07261ade637b0c269d99569f18040f3dcee4408
TERMUX_PKG_SRCURL=https://releases.llvm.org/${TERMUX_PKG_VERSION}/llvm-${TERMUX_PKG_VERSION}.src.tar.xz
TERMUX_PKG_HOSTBUILD=true
TERMUX_PKG_RM_AFTER_INSTALL="
-bin/bugpoint
bin/clang-check
bin/clang-import-test
bin/clang-offload-bundler
bin/git-clang-format
-bin/llvm-tblgen
bin/macho-dump
-bin/sancov
-bin/sanstats
-bin/scan-build
-bin/scan-view
-lib/BugpointPasses.so
-lib/libclang*.a
-lib/libLLVM*.a
-lib/libLTO.so
-lib/LLVMHello.so
-share/man/man1/scan-build.1
-share/scan-build
-share/scan-view
+lib/libgomp.a
+lib/libiomp5.a
"
-TERMUX_PKG_DEPENDS="binutils, ncurses, ndk-sysroot, ndk-stl, libgcc"
+TERMUX_PKG_DEPENDS="binutils, ncurses, ndk-sysroot, ndk-stl, libffi"
# Replace gcc since gcc is deprecated by google on android and is not maintained upstream.
# Conflict with clang versions earlier than 3.9.1-3 since they bundled llvm.
TERMUX_PKG_CONFLICTS="gcc, clang (<< 3.9.1-3)"
-DC_INCLUDE_DIRS=$TERMUX_PREFIX/include
-DLLVM_LINK_LLVM_DYLIB=ON
-DLLVM_TABLEGEN=$TERMUX_PKG_HOSTBUILD_DIR/bin/llvm-tblgen
--DCLANG_TABLEGEN=$TERMUX_PKG_HOSTBUILD_DIR/bin/clang-tblgen"
+-DCLANG_TABLEGEN=$TERMUX_PKG_HOSTBUILD_DIR/bin/clang-tblgen
+-DLIBOMP_ENABLE_SHARED=FALSE
+-DOPENMP_ENABLE_LIBOMPTARGET=OFF
+-DLLVM_BINUTILS_INCDIR=$TERMUX_PREFIX/include
+-DLLVM_ENABLE_SPHINX=ON
+-DSPHINX_OUTPUT_MAN=ON
+-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly
+-DPERL_EXECUTABLE=$(which perl)
+-DLLVM_ENABLE_FFI=ON
+"
TERMUX_PKG_FORCE_CMAKE=yes
TERMUX_PKG_KEEP_STATIC_LIBRARIES=true
termux_download \
https://releases.llvm.org/${TERMUX_PKG_VERSION}/$CLANG_SRC_TAR \
$TERMUX_PKG_CACHEDIR/$CLANG_SRC_TAR \
- 135f6c9b0cd2da1aff2250e065946258eb699777888df39ca5a5b4fe5e23d0ff
+ e07d6dd8d9ef196cfc8e8bb131cbd6a2ed0b1caf1715f9d05b0f0eeaddb6df32
tar -xf $TERMUX_PKG_CACHEDIR/$CLANG_SRC_TAR -C tools
mv tools/cfe-${TERMUX_PKG_VERSION}.src tools/clang
termux_download \
https://llvm.org/releases/${TERMUX_PKG_VERSION}/$LLD_SRC_TAR \
$TERMUX_PKG_CACHEDIR/$LLD_SRC_TAR \
- d5b36c0005824f07ab093616bdff247f3da817cae2c51371e1d1473af717d895
+ 6b8c4a833cf30230c0213d78dbac01af21387b298225de90ab56032ca79c0e0b
tar -xf $TERMUX_PKG_CACHEDIR/$LLD_SRC_TAR -C tools
mv tools/lld-${TERMUX_PKG_VERSION}.src tools/lld
+ local OPENMP_SRC_TAR=openmp-${TERMUX_PKG_VERSION}.src.tar.xz
+ termux_download \
+ http://releases.llvm.org/${TERMUX_PKG_VERSION}/$OPENMP_SRC_TAR \
+ $TERMUX_PKG_CACHEDIR/$OPENMP_SRC_TAR \
+ 7c0e050d5f7da3b057579fb3ea79ed7dc657c765011b402eb5bbe5663a7c38fc
+ tar -xf $TERMUX_PKG_CACHEDIR/$OPENMP_SRC_TAR -C projects
+ mv projects/openmp-${TERMUX_PKG_VERSION}.src projects/openmp
}
termux_step_host_build () {
}
termux_step_pre_configure () {
+ mkdir projects/openmp/runtime/src/android
+ cp $TERMUX_PKG_BUILDER_DIR/nl_types.h projects/openmp/runtime/src/android
+ cp $TERMUX_PKG_BUILDER_DIR/nltypes_stubs.cpp projects/openmp/runtime/src/android
+
cd $TERMUX_PKG_BUILDDIR
export LLVM_DEFAULT_TARGET_TRIPLE=$TERMUX_HOST_PLATFORM
export LLVM_TARGET_ARCH
# see CMakeLists.txt and tools/clang/CMakeLists.txt
TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" -DLLVM_DEFAULT_TARGET_TRIPLE=$LLVM_DEFAULT_TARGET_TRIPLE"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" -DLLVM_TARGET_ARCH=$LLVM_TARGET_ARCH -DLLVM_TARGETS_TO_BUILD=all"
+ TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" -DLLVM_HOST_TRIPLE=$LLVM_DEFAULT_TARGET_TRIPLE"
}
-
termux_step_post_make_install () {
+ if [ $TERMUX_ARCH = "arm" ]; then
+ cp ../src/projects/openmp/runtime/exports/common.min.50/include/omp.h $TERMUX_PREFIX/include
+ else
+ cp ../src/projects/openmp/runtime/exports/common.min.50.ompt.optional/include/omp.h $TERMUX_PREFIX/include
+ fi
+ make docs-llvm-man
+ cp docs/man/* $TERMUX_PREFIX/share/man/man1
cd $TERMUX_PREFIX/bin
for tool in clang clang++ cc c++ cpp gcc g++ ${TERMUX_HOST_PLATFORM}-{clang,clang++,gcc,g++,cpp}; do
ln -f -s clang-${_PKG_MAJOR_VERSION} $tool
done
-
- local OPENMP_ARCH
- if [ $TERMUX_ARCH = "i686" ]; then
- OPENMP_ARCH="i386"
- else
- OPENMP_ARCH=$TERMUX_ARCH
- fi
-
- local OPENMP_PATH=lib64/clang/5.0/lib/linux/$OPENMP_ARCH/libomp.a
- cp $TERMUX_STANDALONE_TOOLCHAIN/$OPENMP_PATH $TERMUX_PREFIX/lib
}
termux_step_post_massage () {
sed $TERMUX_PKG_BUILDER_DIR/llvm-config.in \
- -e "s|@_PKG_MAJOR_VERSION@|$_PKG_MAJOR_VERSION|g" \
+ -e "s|@TERMUX_PKG_VERSION@|$TERMUX_PKG_VERSION|g" \
-e "s|@TERMUX_PREFIX@|$TERMUX_PREFIX|g" \
-e "s|@TERMUX_PKG_SRCDIR@|$TERMUX_PKG_SRCDIR|g" \
-e "s|@LLVM_TARGET_ARCH@|$LLVM_TARGET_ARCH|g" \