diff --git a/packages/binutils-is-llvm/LICENSE b/disabled-packages/binutils-is-llvm/LICENSE similarity index 100% rename from packages/binutils-is-llvm/LICENSE rename to disabled-packages/binutils-is-llvm/LICENSE diff --git a/packages/binutils-is-llvm/build.sh b/disabled-packages/binutils-is-llvm/build.sh similarity index 100% rename from packages/binutils-is-llvm/build.sh rename to disabled-packages/binutils-is-llvm/build.sh diff --git a/packages/atool/build.sh b/packages/atool/build.sh index a3bb3212c90..614f086107d 100644 --- a/packages/atool/build.sh +++ b/packages/atool/build.sh @@ -4,13 +4,13 @@ TERMUX_PKG_LICENSE="GPL-3.0" TERMUX_PKG_LICENSE_FILE="COPYING" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="0.39.0" -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL="https://download.savannah.gnu.org/releases/atool/atool-$TERMUX_PKG_VERSION.tar.gz" TERMUX_PKG_SHA256="aaf60095884abb872e25f8e919a8a63d0dabaeca46faeba87d12812d6efc703b" TERMUX_PKG_DEPENDS="perl" TERMUX_PKG_BUILD_IN_SRC=true TERMUX_PKG_AUTO_UPDATE=true -TERMUX_PKG_RECOMMENDS="arj, binutils-is-llvm | binutils, bzip2, cpio, file, gzip, lhasa, lzip, lzop, p7zip, tar, unrar, unzip, xz-utils, zip" +TERMUX_PKG_RECOMMENDS="arj, llvm, bzip2, cpio, file, gzip, lhasa, lzip, lzop, p7zip, tar, unrar, unzip, xz-utils, zip" TERMUX_PKG_SUGGESTS="bash-completion" TERMUX_PKG_PLATFORM_INDEPENDENT=true diff --git a/packages/binutils/binutils-bin.subpackage.sh b/packages/binutils/binutils-bin.subpackage.sh deleted file mode 100644 index f4572759625..00000000000 --- a/packages/binutils/binutils-bin.subpackage.sh +++ /dev/null @@ -1,19 +0,0 @@ -TERMUX_SUBPKG_INCLUDE=" -bin/as -bin/elfedit -bin/gprof -bin/ld.bfd -libexec/binutils/ -share/info/as.info -share/info/binutils.info -share/info/gprof.info -share/info/ld.info -share/man/ -" -# The contents of this subpackage are specifically chosen to not conflict with binutils-is-llvm, -# to provide `as` in that collection since `llvm-as` behaves quite differently from GNU `as`. -TERMUX_SUBPKG_DESCRIPTION="Collection of binary tools, the main ones being ld, the GNU linker, and as, the GNU assembler" -TERMUX_SUBPKG_DEPEND_ON_PARENT=true -TERMUX_SUBPKG_DEPENDS="libc++, zlib, zstd" -TERMUX_SUBPKG_BREAKS="binutils (<< 2.46)" -TERMUX_SUBPKG_REPLACES="binutils (<< 2.46)" diff --git a/packages/binutils/build.sh b/packages/binutils/build.sh index ce1157cd07f..cfbec6e5e03 100644 --- a/packages/binutils/build.sh +++ b/packages/binutils/build.sh @@ -5,14 +5,13 @@ TERMUX_PKG_MAINTAINER="@termux" # `lua-language-server` links against libbfd, # remember to rebuild it when updating `binutils`. TERMUX_PKG_VERSION="2.46.0" -TERMUX_PKG_REVISION=2 -TERMUX_PKG_SRCURL=https://mirrors.kernel.org/gnu/binutils/binutils-${TERMUX_PKG_VERSION}.tar.xz +TERMUX_PKG_REVISION=3 +TERMUX_PKG_SRCURL="https://mirrors.kernel.org/gnu/binutils/binutils-${TERMUX_PKG_VERSION}.tar.xz" TERMUX_PKG_SHA256=d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2 -TERMUX_PKG_DEPENDS="binutils-bin, zlib, zstd" -TERMUX_PKG_BREAKS="binutils (<< 2.46), binutils-libs, binutils-dev" -TERMUX_PKG_REPLACES="binutils (<< 2.46), binutils-libs, binutils-dev" +TERMUX_PKG_DEPENDS="libc++, zlib, zstd" +TERMUX_PKG_BREAKS="binutils (<< 2.46), binutils-bin, binutils-libs, binutils-dev" +TERMUX_PKG_REPLACES="binutils (<< 2.46), binutils-bin, binutils-libs, binutils-dev" TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" ---bindir=$TERMUX_PREFIX/libexec/binutils --disable-gprofng --enable-plugins --disable-werror @@ -22,6 +21,8 @@ TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" TERMUX_PKG_EXTRA_MAKE_ARGS="tooldir=$TERMUX_PREFIX" TERMUX_PKG_RM_AFTER_INSTALL="share/man/man1/windmc.1 share/man/man1/windres.1" TERMUX_PKG_NO_STATICSPLIT=true +# will overwrite llvm binutils and llvm ld +TERMUX_PKG_ON_DEVICE_BUILD_NOT_SUPPORTED=true TERMUX_PKG_GROUPS="base-devel" # For binutils-cross: @@ -73,28 +74,27 @@ termux_step_pre_configure() { } termux_step_post_make_install() { - local dir="$TERMUX_PREFIX/share/binutils" - mkdir -p "$dir" - touch "$dir/.placeholder" - - mkdir -p "$TERMUX_PREFIX/bin" - cd "$TERMUX_PREFIX/libexec/binutils" || termux_error_exit "failed to change into 'libexec/binutils' directory" - - mv ld.bfd ld - ln -sf ld ld.bfd - ln -sfr "$TERMUX_PREFIX/libexec/binutils/ld" "$TERMUX_PREFIX/bin/ld.bfd" - - local bin - for bin in ./*; do - ln -sfr "$TERMUX_PREFIX/libexec/binutils/$bin" \ - "$TERMUX_PREFIX/bin/$bin" - done - - # Setup symlinks as these are used when building, so used by - # system setup in e.g. python, perl and libtool: - local -a _TOOLS_WITH_HOST_PREFIX=("ar" "ld" "nm" "objdump" "ranlib" "readelf" "strip") - for bin in "${_TOOLS_WITH_HOST_PREFIX[@]}"; do - ln -sfr "$TERMUX_PREFIX/libexec/binutils/$bin" \ - "$TERMUX_PREFIX/bin/$TERMUX_HOST_PLATFORM-$bin" + rm "${TERMUX_PREFIX}/bin/ld" + mv "${TERMUX_PREFIX}/share/man/man1/ld.1" \ + "${TERMUX_PREFIX}/share/man/man1/ld.bfd.1" + local -a _BINUTILS_CONFLICTING_WITH_LLVM=( + "ar" + "addr2line" + "c++filt" + "nm" + "objcopy" + "objdump" + "ranlib" + "readelf" + "size" + "strings" + "strip" + ) + local binutil + for binutil in "${_BINUTILS_CONFLICTING_WITH_LLVM[@]}"; do + mv "${TERMUX_PREFIX}/bin/${binutil}" \ + "${TERMUX_PREFIX}/bin/g${binutil}" + mv "${TERMUX_PREFIX}/share/man/man1/${binutil}.1" \ + "${TERMUX_PREFIX}/share/man/man1/g${binutil}.1" done } diff --git a/packages/debootstrap/build.sh b/packages/debootstrap/build.sh index 415f2264093..97b2653c261 100644 --- a/packages/debootstrap/build.sh +++ b/packages/debootstrap/build.sh @@ -4,10 +4,11 @@ TERMUX_PKG_LICENSE="MIT" TERMUX_PKG_LICENSE_FILE="debian/copyright" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="1.0.142" -TERMUX_PKG_SRCURL=https://deb.debian.org/debian/pool/main/d/debootstrap/debootstrap_${TERMUX_PKG_VERSION}.tar.gz +TERMUX_PKG_REVISION=1 +TERMUX_PKG_SRCURL="https://deb.debian.org/debian/pool/main/d/debootstrap/debootstrap_${TERMUX_PKG_VERSION}.tar.gz" TERMUX_PKG_SHA256=334b188c2bab5c1aa6f858a044274631d342f07f5ddec1bad870d728f02fd652 TERMUX_PKG_AUTO_UPDATE=true -TERMUX_PKG_DEPENDS="binutils | binutils-is-llvm, perl, proot, sed, wget" +TERMUX_PKG_DEPENDS="llvm, perl, proot, sed, wget" TERMUX_PKG_BUILD_IN_SRC=true TERMUX_PKG_PLATFORM_INDEPENDENT=true diff --git a/packages/flang/build.sh b/packages/flang/build.sh index ef98fcaa968..1869f28c160 100644 --- a/packages/flang/build.sh +++ b/packages/flang/build.sh @@ -3,8 +3,8 @@ TERMUX_PKG_DESCRIPTION="LLVM's Fortran frontend" TERMUX_PKG_LICENSE="Apache-2.0" TERMUX_PKG_LICENSE_FILE="flang/LICENSE.TXT" TERMUX_PKG_MAINTAINER="@termux" -TERMUX_PKG_VERSION=21.1.8 -TERMUX_PKG_REVISION=1 +TERMUX_PKG_VERSION="21.1.8" +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=( "https://github.com/llvm/llvm-project/releases/download/llvmorg-${TERMUX_PKG_VERSION}/llvm-project-${TERMUX_PKG_VERSION}.src.tar.xz" "https://github.com/llvm/llvm-project/releases/download/llvmorg-${TERMUX_PKG_VERSION}/LLVM-${TERMUX_PKG_VERSION}-Linux-X64.tar.xz" diff --git a/packages/gauche/build.sh b/packages/gauche/build.sh index 4ad1236e48e..ae94ff4d209 100644 --- a/packages/gauche/build.sh +++ b/packages/gauche/build.sh @@ -3,13 +3,13 @@ TERMUX_PKG_DESCRIPTION="An R7RS Scheme implementation developed to be a handy sc TERMUX_PKG_LICENSE="BSD 3-Clause" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="0.9.15" -TERMUX_PKG_REVISION=2 -TERMUX_PKG_SRCURL=https://github.com/shirok/Gauche/releases/download/release${TERMUX_PKG_VERSION//./_}/Gauche-${TERMUX_PKG_VERSION}.tgz +TERMUX_PKG_REVISION=3 +TERMUX_PKG_SRCURL="https://github.com/shirok/Gauche/releases/download/release${TERMUX_PKG_VERSION//./_}/Gauche-${TERMUX_PKG_VERSION}.tgz" TERMUX_PKG_SHA256=3643e27bc7c8822cfd6fb2892db185f658e8e364938bc2ccfcedb239e35af783 TERMUX_PKG_AUTO_UPDATE=false TERMUX_PKG_DEPENDS="gdbm, libcrypt, libiconv, mbedtls, zlib" TERMUX_PKG_BUILD_DEPENDS="libatomic-ops" -TERMUX_PKG_RECOMMENDS="binutils-is-llvm | binutils, ca-certificates" +TERMUX_PKG_RECOMMENDS="llvm, ca-certificates" TERMUX_PKG_HOSTBUILD=true TERMUX_PKG_BUILD_IN_SRC=true diff --git a/packages/ldc/build.sh b/packages/ldc/build.sh index 5564bd4fe18..5b913f52455 100644 --- a/packages/ldc/build.sh +++ b/packages/ldc/build.sh @@ -6,22 +6,25 @@ TERMUX_PKG_VERSION=(1.30.0) TERMUX_PKG_VERSION+=(14.0.3) # LLVM version TERMUX_PKG_VERSION+=(2.100.1) # TOOLS version TERMUX_PKG_VERSION+=(1.30.0) # DUB version -TERMUX_PKG_REVISION=2 +TERMUX_PKG_VERSION+=(14.0.21) # SPIRV-LLVM-Translator version +TERMUX_PKG_REVISION=3 TERMUX_PKG_SRCURL=(https://github.com/ldc-developers/ldc/releases/download/v${TERMUX_PKG_VERSION}/ldc-${TERMUX_PKG_VERSION}-src.tar.gz https://github.com/ldc-developers/llvm-project/releases/download/ldc-v${TERMUX_PKG_VERSION[1]}/llvm-${TERMUX_PKG_VERSION[1]}.src.tar.xz https://github.com/llvm/llvm-project/releases/download/llvmorg-${TERMUX_PKG_VERSION[1]}/libunwind-${TERMUX_PKG_VERSION[1]}.src.tar.xz https://github.com/dlang/tools/archive/refs/tags/v${TERMUX_PKG_VERSION[2]}.tar.gz https://github.com/dlang/dub/archive/refs/tags/v${TERMUX_PKG_VERSION[3]}.tar.gz - https://github.com/ldc-developers/ldc/releases/download/v${TERMUX_PKG_VERSION}/ldc2-${TERMUX_PKG_VERSION}-linux-x86_64.tar.xz) + https://github.com/ldc-developers/ldc/releases/download/v${TERMUX_PKG_VERSION}/ldc2-${TERMUX_PKG_VERSION}-linux-x86_64.tar.xz + https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${TERMUX_PKG_VERSION[4]}.tar.gz) TERMUX_PKG_SHA256=(fdbb376f08242d917922a6a22a773980217fafa310046fc5d6459490af23dacd 9638d8d0b6a43d9cdc53699bec19e6bc9bef98f5950b99e6b8c1ec373aee4fa7 301137841d1e3401f59b3828d2a9ac86a1b826b89265d55541a2fd6ca2a595eb 54bde9a979d70952690a517f90de8d76631fa9a2f7252af7278dafbcaaa42d54 840cd65bf5f0dd06ca688f63b94d71fccd92b526bbf1d3892fe5535b1e85c10e - 5784d4cc47d0845af0897d3b7473a08dd0281a4cdabac0a486740840d014fde1) + 5784d4cc47d0845af0897d3b7473a08dd0281a4cdabac0a486740840d014fde1 + 47951817c2fcc1bb8911d288d42d7ddda1771fe58c29ffd6cf6671056145be22) TERMUX_PKG_AUTO_UPDATE=false # dub dlopen()s libcurl.so: -TERMUX_PKG_DEPENDS="binutils-bin, binutils-is-llvm | binutils, clang, libc++, libcurl, zlib" +TERMUX_PKG_DEPENDS="binutils, clang, libc++, libcurl, zlib" TERMUX_PKG_BUILD_DEPENDS="binutils-cross" TERMUX_PKG_NO_STATICSPLIT=true TERMUX_PKG_HOSTBUILD=true @@ -55,6 +58,12 @@ termux_step_post_get_source() { mv tools-${TERMUX_PKG_VERSION[2]} dlang-tools mv dub-${TERMUX_PKG_VERSION[3]} dub + # replace SPIRV-LLVM-Translator with more updated version to prevent: + # spirv_internal.hpp:185:28: error: constexpr variable + # 'MemoryAccessAliasScopeINTELMask' must be initialized by a constant expression + rm -rf llvm/projects/SPIRV-LLVM-Translator + mv "SPIRV-LLVM-Translator-${TERMUX_PKG_VERSION[4]}" llvm/projects/SPIRV-LLVM-Translator + # Exclude MLIR rm -Rf llvm/projects/mlir @@ -62,8 +71,35 @@ termux_step_post_get_source() { if [ $TERMUX_ARCH = arm ]; then LLVM_TRIPLE=${LLVM_TRIPLE/arm-/armv7a-}; fi } +_setup_cmake_3() { + local TERMUX_CMAKE_VERSION=3.31.10 + local TERMUX_CMAKE_SHA256=3cb3dd247b6a1de2d0f4b20c6fd4326c9024e894cebc9dc8699758887e566ca7 + local TERMUX_CMAKE_MAJORVERSION="${TERMUX_CMAKE_VERSION%.*}" + local TERMUX_CMAKE_TARNAME="cmake-${TERMUX_CMAKE_VERSION}-linux-x86_64.tar.gz" + local TERMUX_CMAKE_URL="https://github.com/Kitware/CMake/releases/download/v${TERMUX_CMAKE_VERSION}/${TERMUX_CMAKE_TARNAME}" + local TERMUX_CMAKE_TARFILE="${TERMUX_PKG_TMPDIR}/${TERMUX_CMAKE_TARNAME}" + local TERMUX_CMAKE_FOLDER="${TERMUX_PKG_TMPDIR}/cmake-${TERMUX_CMAKE_VERSION}" + + local TERMUX_CMAKE_NAME="cmake" + + if [[ ! -d "${TERMUX_CMAKE_FOLDER}" ]]; then + termux_download "${TERMUX_CMAKE_URL}" \ + "${TERMUX_CMAKE_TARFILE}" \ + "${TERMUX_CMAKE_SHA256}" + rm -Rf "${TERMUX_PKG_TMPDIR}/cmake-${TERMUX_CMAKE_VERSION}-linux-x86_64" + tar xf "${TERMUX_CMAKE_TARFILE}" -C "${TERMUX_PKG_TMPDIR}" + mv "${TERMUX_PKG_TMPDIR}/cmake-${TERMUX_CMAKE_VERSION}-linux-x86_64" \ + "${TERMUX_CMAKE_FOLDER}" + fi + + export CMAKE_INSTALL_ALWAYS=1 + + export PATH="${TERMUX_CMAKE_FOLDER}/bin:${PATH}" +} + termux_step_host_build() { - termux_setup_cmake + # LDC for Android is stuck at version 1.30.0, which is hardcoded to require CMake 3 + _setup_cmake_3 termux_setup_ninja # Build native llvm-tblgen, a prerequisite for cross-compiling LLVM @@ -79,10 +115,15 @@ termux_step_host_build() { # Just before CMake invokation for LLVM: termux_step_pre_configure() { + # LDC for Android is stuck at version 1.30.0, which is hardcoded to require CMake 3 + _setup_cmake_3 + termux_setup_ninja export PATH="$TERMUX_PREFIX/opt/binutils/cross/$TERMUX_HOST_PLATFORM/bin:$PATH" LLVM_INSTALL_DIR=$TERMUX_PKG_BUILDDIR/llvm-install TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" -DCMAKE_INSTALL_PREFIX=$LLVM_INSTALL_DIR" + TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" -DCMAKE_INSTALL_INCLUDEDIR=$LLVM_INSTALL_DIR/include" + TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" -DCMAKE_INSTALL_LIBDIR=$LLVM_INSTALL_DIR/lib" if [ "$TERMUX_ARCH" == "arm" ]; then # [...]/ldc/src/llvm/projects/compiler-rt/lib/builtins/clear_cache.c:85:20: @@ -125,6 +166,11 @@ termux_step_pre_configure() { mkdir "$TERMUX_PKG_BUILDDIR" } +termux_step_configure() { + # skip termux_setup_cmake which would install cmake 4 into $PATH + termux_step_configure_cmake +} + # CMake for LLVM has been run: termux_step_post_configure() { # Cross-compile & install LLVM diff --git a/packages/ldc/no-enum-constexpr-conversion.patch b/packages/ldc/no-enum-constexpr-conversion.patch deleted file mode 100644 index 9ad27b939df..00000000000 --- a/packages/ldc/no-enum-constexpr-conversion.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- a/llvm/projects/SPIRV-LLVM-Translator/lib/SPIRV/libSPIRV/spirv_internal.hpp -+++ b/llvm/projects/SPIRV-LLVM-Translator/lib/SPIRV/libSPIRV/spirv_internal.hpp -@@ -26,6 +26,11 @@ - #ifndef spirv_internal_HPP - #define spirv_internal_HPP - -+#if defined(__clang__) && __clang_major__ >= 16 -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wenum-constexpr-conversion" -+#endif -+ - namespace spv { - namespace internal { - -@@ -193,4 +198,8 @@ - } // namespace internal - } // namespace spv - -+#if defined(__clang__) && __clang_major__ >= 16 -+#pragma GCC diagnostic pop -+#endif -+ - #endif // #ifndef spirv_internal_HPP diff --git a/packages/ldd/build.sh b/packages/ldd/build.sh index 0036c6c3cd9..c4c2d1ca184 100644 --- a/packages/ldd/build.sh +++ b/packages/ldd/build.sh @@ -2,14 +2,15 @@ TERMUX_PKG_HOMEPAGE=https://github.com/termux/termux-packages TERMUX_PKG_DESCRIPTION="Fake ldd command" TERMUX_PKG_LICENSE="Apache-2.0" TERMUX_PKG_MAINTAINER="@termux" -TERMUX_PKG_VERSION=0.3 +TERMUX_PKG_VERSION="0.3" +TERMUX_PKG_REVISION=1 TERMUX_PKG_AUTO_UPDATE=false TERMUX_PKG_SKIP_SRC_EXTRACT=true -TERMUX_PKG_DEPENDS="bash, binutils-bin" +TERMUX_PKG_DEPENDS="bash, llvm" TERMUX_PKG_CONFLICTS="binutils (<< 2.39-1)" termux_step_make_install() { - local _READELF=$TERMUX_PREFIX/libexec/binutils/readelf + local _READELF="$TERMUX_PREFIX/bin/readelf" local ldd="$TERMUX_PREFIX/bin/ldd" mkdir -p "$(dirname "${ldd}")" diff --git a/packages/libllvm/build.sh b/packages/libllvm/build.sh index b123f9db0aa..3ce5d60ae38 100644 --- a/packages/libllvm/build.sh +++ b/packages/libllvm/build.sh @@ -4,11 +4,11 @@ TERMUX_PKG_LICENSE="Apache-2.0, NCSA" TERMUX_PKG_LICENSE_FILE="llvm/LICENSE.TXT" TERMUX_PKG_MAINTAINER="@finagolfin" # Keep flang version and revision in sync when updating (enforced by check in termux_step_pre_configure). -TERMUX_PKG_VERSION=21.1.8 -TERMUX_PKG_REVISION=1 +TERMUX_PKG_VERSION="21.1.8" +TERMUX_PKG_REVISION=2 TERMUX_PKG_SHA256=4633a23617fa31a3ea51242586ea7fb1da7140e426bd62fc164261fe036aa142 TERMUX_PKG_AUTO_UPDATE=false -TERMUX_PKG_SRCURL=https://github.com/llvm/llvm-project/releases/download/llvmorg-${TERMUX_PKG_VERSION}/llvm-project-${TERMUX_PKG_VERSION}.src.tar.xz +TERMUX_PKG_SRCURL="https://github.com/llvm/llvm-project/releases/download/llvmorg-${TERMUX_PKG_VERSION}/llvm-project-${TERMUX_PKG_VERSION}.src.tar.xz" TERMUX_PKG_HOSTBUILD=true TERMUX_PKG_RM_AFTER_INSTALL=" bin/ld64.lld.darwin* @@ -53,6 +53,7 @@ TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" -DLLVM_ENABLE_FFI=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INSTALL_UTILS=ON +-DLLVM_INSTALL_BINUTILS_SYMLINKS=ON -DMLIR_INSTALL_AGGREGATE_OBJECTS=OFF " @@ -166,6 +167,50 @@ termux_step_post_make_install() { EOF chmod u+x "$wrapper" done + + # remove symbolic links to llvm-debuginfod and llvm-debuginfod-find + # they conflict with elfutils, which is not necessary for most tasks + rm -f "${TERMUX_PREFIX}"/bin/debuginfod{,-find} + + # Make lld provide ld + ln -sf ld.lld "${TERMUX_PREFIX}/bin/ld" + # https://bugs.llvm.org/show_bug.cgi?id=42455 + install -Dm644 -t "${TERMUX_PREFIX}/share/man/man1" "$TERMUX_PKG_SRCDIR/lld/docs/ld.lld.1" + ln -sf ld.lld.1.gz "${TERMUX_PREFIX}/share/man/man1/ld.1.gz" + + # Make llvm provide manpages for binutils that -DLLVM_INSTALL_BINUTILS_SYMLINKS=ON installed + local -a _BINUTILS_CONFLICTING_WITH_LLVM=( + "ar" + "addr2line" + "c++filt" + "nm" + "objcopy" + "objdump" + "ranlib" + "readelf" + "size" + "strings" + "strip" + ) + local binutil + for binutil in "${_BINUTILS_CONFLICTING_WITH_LLVM[@]}"; do + ln -sf "llvm-${binutil//+/x}.1.gz" "${TERMUX_PREFIX}/share/man/man1/${binutil}.1.gz" + done + + # Make llvm and lld provide triplet-prefixed symbolic links which are used by some tools, + # like python, perl and libtool: + local -a _BINUTILS_WITH_HOST_PREFIX=( + "ar" + "ld" + "nm" + "objdump" + "ranlib" + "readelf" + "strip" + ) + for binutil in "${_BINUTILS_WITH_HOST_PREFIX[@]}"; do + ln -sf "${binutil}" "${TERMUX_PREFIX}/bin/${TERMUX_HOST_PLATFORM}-${binutil}" + done } # shellcheck disable=SC2031 diff --git a/packages/libllvm/clang.subpackage.sh b/packages/libllvm/clang.subpackage.sh index 2de4a1f083a..cfd87a019bf 100644 --- a/packages/libllvm/clang.subpackage.sh +++ b/packages/libllvm/clang.subpackage.sh @@ -12,7 +12,11 @@ bin/gcc bin/git-clang-format bin/hmaptool bin/intercept-build -bin/*-linux-android* +bin/*-linux-android*-clang +bin/*-linux-android*-clang++ +bin/*-linux-android*-cpp +bin/*-linux-android*-g++ +bin/*-linux-android*-gcc bin/modularize bin/nvptx-arch bin/offload-arch diff --git a/packages/libllvm/lld.subpackage.sh b/packages/libllvm/lld.subpackage.sh index fccddb696b9..52afd9307b8 100644 --- a/packages/libllvm/lld.subpackage.sh +++ b/packages/libllvm/lld.subpackage.sh @@ -1,11 +1,18 @@ TERMUX_SUBPKG_INCLUDE=" +bin/ld bin/ld.lld bin/ld64.lld bin/lld bin/lld-link bin/wasm-ld +bin/*-linux-android*-ld include/lld/ lib/cmake/lld/ lib/liblld*.a +share/man/man1/ld.1.gz +share/man/man1/ld.lld.1.gz " TERMUX_SUBPKG_DESCRIPTION="LLVM-based linker" +TERMUX_SUBPKG_BREAKS="binutils (<< 2.46.0-3), binutils-is-llvm" +TERMUX_SUBPKG_CONFLICTS="binutils (<< 2.46.0-3), binutils-is-llvm" +TERMUX_SUBPKG_REPLACES="binutils-is-llvm" diff --git a/packages/libllvm/llvm.subpackage.sh b/packages/libllvm/llvm.subpackage.sh index 4e756832ff0..d9549f039e9 100644 --- a/packages/libllvm/llvm.subpackage.sh +++ b/packages/libllvm/llvm.subpackage.sh @@ -1,4 +1,21 @@ TERMUX_SUBPKG_INCLUDE=" +bin/*-linux-android*-ar +bin/*-linux-android*-nm +bin/*-linux-android*-objdump +bin/*-linux-android*-ranlib +bin/*-linux-android*-readelf +bin/*-linux-android*-strip +bin/addr2line +bin/ar +bin/c++filt +bin/nm +bin/objcopy +bin/objdump +bin/ranlib +bin/readelf +bin/size +bin/strings +bin/strip bin/bugpoint bin/dsymutil bin/llc @@ -15,10 +32,22 @@ share/man/man1/dsymutil.1.gz share/man/man1/llc.1.gz share/man/man1/lli.1.gz share/man/man1/llvm!(-test-mustache-spec) +share/man/man1/ar.1.gz +share/man/man1/addr2line.1.gz +share/man/man1/c++filt.1.gz +share/man/man1/nm.1.gz +share/man/man1/objcopy.1.gz +share/man/man1/objdump.1.gz +share/man/man1/ranlib.1.gz +share/man/man1/readelf.1.gz +share/man/man1/size.1.gz +share/man/man1/strings.1.gz +share/man/man1/strip.1.gz share/man/man1/opt.1.gz share/man/man1/*tblgen.1.gz share/opt-viewer " TERMUX_SUBPKG_DESCRIPTION="LLVM modular compiler and toolchain executables" -TERMUX_SUBPKG_BREAKS="libllvm (<< 11.0.0-1)" -TERMUX_SUBPKG_REPLACES="libllvm (<< 11.0.0-1)" +TERMUX_SUBPKG_BREAKS="binutils (<< 2.46.0-3), binutils-is-llvm, libllvm (<< 11.0.0-1)" +TERMUX_SUBPKG_CONFLICTS="binutils (<< 2.46.0-3), binutils-is-llvm" +TERMUX_SUBPKG_REPLACES="binutils-is-llvm, libllvm (<< 11.0.0-1)" diff --git a/packages/opencl-vendor-driver/build.sh b/packages/opencl-vendor-driver/build.sh index 7b142db611c..fcc18c55f80 100644 --- a/packages/opencl-vendor-driver/build.sh +++ b/packages/opencl-vendor-driver/build.sh @@ -2,9 +2,10 @@ TERMUX_PKG_HOMEPAGE=https://termux.dev TERMUX_PKG_DESCRIPTION="OpenCL driver from system vendor" TERMUX_PKG_LICENSE="Apache-2.0" TERMUX_PKG_MAINTAINER="@termux" -TERMUX_PKG_VERSION=0.3 +TERMUX_PKG_VERSION="0.3" +TERMUX_PKG_REVISION=1 TERMUX_PKG_AUTO_UPDATE=false -TERMUX_PKG_RECOMMENDS="binutils | binutils-is-llvm, ocl-icd, patchelf" +TERMUX_PKG_RECOMMENDS="llvm, ocl-icd, patchelf" TERMUX_PKG_SKIP_SRC_EXTRACT=true termux_step_make_install() { diff --git a/packages/termux-apt-repo/build.sh b/packages/termux-apt-repo/build.sh index 0890789158a..8283860ed06 100644 --- a/packages/termux-apt-repo/build.sh +++ b/packages/termux-apt-repo/build.sh @@ -2,14 +2,14 @@ TERMUX_PKG_HOMEPAGE=https://github.com/termux/termux-apt-repo TERMUX_PKG_DESCRIPTION="Script to create Termux apt repositories" TERMUX_PKG_LICENSE="Apache-2.0" TERMUX_PKG_MAINTAINER="@termux" -TERMUX_PKG_VERSION=0.5 -TERMUX_PKG_REVISION=3 -TERMUX_PKG_SRCURL=https://github.com/termux/termux-apt-repo/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz +TERMUX_PKG_VERSION="0.5" +TERMUX_PKG_REVISION=4 +TERMUX_PKG_SRCURL="https://github.com/termux/termux-apt-repo/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz" TERMUX_PKG_SHA256=22c2ad46e548a9b73179da072b798cbbe6767f2dcc99cc476fa88641f8595434 TERMUX_PKG_BUILD_IN_SRC=true TERMUX_PKG_PLATFORM_INDEPENDENT=true -# binutils for ar: -TERMUX_PKG_DEPENDS="binutils-is-llvm | binutils, python, tar" +# llvm for ar: +TERMUX_PKG_DEPENDS="llvm, python, tar" termux_step_pre_configure() { termux_setup_python_pip diff --git a/packages/termux-create-package/build.sh b/packages/termux-create-package/build.sh index 4c158095fb7..0be716c7771 100644 --- a/packages/termux-create-package/build.sh +++ b/packages/termux-create-package/build.sh @@ -2,11 +2,11 @@ TERMUX_PKG_HOMEPAGE=https://github.com/termux/termux-create-package TERMUX_PKG_DESCRIPTION="Utility to create Termux packages" TERMUX_PKG_LICENSE="Apache-2.0" TERMUX_PKG_MAINTAINER="@termux" -TERMUX_PKG_VERSION=0.12.0 -TERMUX_PKG_REVISION=2 -TERMUX_PKG_SRCURL=https://github.com/termux/termux-create-package/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz +TERMUX_PKG_VERSION="0.12.0" +TERMUX_PKG_REVISION=3 +TERMUX_PKG_SRCURL="https://github.com/termux/termux-create-package/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz" TERMUX_PKG_SHA256=13bcc1264844e9865eeab19805f24ff28bbfac8d39c11bca66f4357fa70e6ace -TERMUX_PKG_DEPENDS="binutils-is-llvm | binutils, python" +TERMUX_PKG_DEPENDS="llvm, python" TERMUX_PKG_BUILD_IN_SRC=true TERMUX_PKG_PLATFORM_INDEPENDENT=true diff --git a/scripts/build/setup/termux_setup_no_integrated_as.sh b/scripts/build/setup/termux_setup_no_integrated_as.sh index 21b7cf8a59f..5c316d37629 100644 --- a/scripts/build/setup/termux_setup_no_integrated_as.sh +++ b/scripts/build/setup/termux_setup_no_integrated_as.sh @@ -1,13 +1,13 @@ termux_setup_no_integrated_as() { if [ "$TERMUX_ON_DEVICE_BUILD" = true ]; then - if [[ "$TERMUX_APP_PACKAGE_MANAGER" = "apt" && "$(dpkg-query -W -f '${db:Status-Status}\n' binutils-bin 2>/dev/null)" != "installed" ]] || - [[ "$TERMUX_APP_PACKAGE_MANAGER" = "pacman" && ! "$(pacman -Q binutils-bin 2>/dev/null)" ]]; then - echo "Package 'binutils-bin' is not installed." + if [[ "$TERMUX_APP_PACKAGE_MANAGER" = "apt" && "$(dpkg-query -W -f '${db:Status-Status}\n' binutils 2>/dev/null)" != "installed" ]] || + [[ "$TERMUX_APP_PACKAGE_MANAGER" = "pacman" && ! "$(pacman -Q binutils 2>/dev/null)" ]]; then + echo "Package 'binutils' is not installed." echo "You can install it with" echo - echo " pkg install binutils-bin" + echo " pkg install binutils" echo - echo " pacman -S binutils-bin" + echo " pacman -S binutils" echo exit 1 fi diff --git a/scripts/setup-termux.sh b/scripts/setup-termux.sh index 401669409f5..a07eb77abe9 100755 --- a/scripts/setup-termux.sh +++ b/scripts/setup-termux.sh @@ -11,7 +11,6 @@ PACKAGES+=" python" # Used buildorder.py core script. PACKAGES+=" python-pip" # Necessary to install 'itstool' for on-device-building (since Ubuntu gets it from 'apt') PACKAGES+=" unzip" # Used to extract *.zip source archives. PACKAGES+=" jq" # Used for parsing repo.json. -PACKAGES+=" binutils-is-llvm" # Used for checking symbols. # Tier 2: requirements for building many other packages. PACKAGES+=" asciidoc" diff --git a/x11-packages/xarchiver/build.sh b/x11-packages/xarchiver/build.sh index 568f08e68e1..2abdabb1dfc 100644 --- a/x11-packages/xarchiver/build.sh +++ b/x11-packages/xarchiver/build.sh @@ -3,9 +3,10 @@ TERMUX_PKG_DESCRIPTION="GTK+ frontend to various command line archivers" TERMUX_PKG_LICENSE="GPL-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="0.5.4.26" -TERMUX_PKG_SRCURL=https://github.com/ib/xarchiver/archive/refs/tags/${TERMUX_PKG_VERSION}.tar.gz +TERMUX_PKG_REVISION=1 +TERMUX_PKG_SRCURL="https://github.com/ib/xarchiver/archive/refs/tags/${TERMUX_PKG_VERSION}.tar.gz" TERMUX_PKG_SHA256=58e4fb2c1fb8421573a31cf3b4dfec301076d61f48ac5720df632986c87e9573 TERMUX_PKG_AUTO_UPDATE=true TERMUX_PKG_UPDATE_TAG_TYPE="newest-tag" TERMUX_PKG_DEPENDS="gdk-pixbuf, glib, gtk3" -TERMUX_PKG_RECOMMENDS="arj, binutils-is-llvm | binutils, bzip2, cpio, gzip, lz4, lzip, lzop, p7zip, tar, unar, unrar, unzip, xz-utils, zip, zstd" +TERMUX_PKG_RECOMMENDS="arj, llvm, bzip2, cpio, gzip, lz4, lzip, lzop, p7zip, tar, unar, unrar, unzip, xz-utils, zip, zstd"