Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions packages/atool/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
19 changes: 0 additions & 19 deletions packages/binutils/binutils-bin.subpackage.sh

This file was deleted.

58 changes: 29 additions & 29 deletions packages/binutils/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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:
Expand Down Expand Up @@ -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
}
5 changes: 3 additions & 2 deletions packages/debootstrap/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
4 changes: 2 additions & 2 deletions packages/flang/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
6 changes: 3 additions & 3 deletions packages/gauche/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
56 changes: 51 additions & 5 deletions packages/ldc/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -55,15 +58,48 @@ 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

LLVM_TRIPLE=${TERMUX_HOST_PLATFORM/-/--}
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
Expand All @@ -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:
Expand Down Expand Up @@ -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
Expand Down
23 changes: 0 additions & 23 deletions packages/ldc/no-enum-constexpr-conversion.patch

This file was deleted.

7 changes: 4 additions & 3 deletions packages/ldd/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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}")"
Expand Down
51 changes: 48 additions & 3 deletions packages/libllvm/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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*
Expand Down Expand Up @@ -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
"

Expand Down Expand Up @@ -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
Expand Down
6 changes: 5 additions & 1 deletion packages/libllvm/clang.subpackage.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Loading