From 0fee54ef37e0dc63946e8a064565f21acfad8d0b Mon Sep 17 00:00:00 2001 From: Tee KOBAYASHI Date: Mon, 27 Dec 2021 23:28:18 +0900 Subject: [PATCH] ldc: Build cross binutils --- packages/ldc/build.sh | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/packages/ldc/build.sh b/packages/ldc/build.sh index bec94e923..755d64582 100644 --- a/packages/ldc/build.sh +++ b/packages/ldc/build.sh @@ -10,20 +10,23 @@ TERMUX_PKG_VERSION+=(1.27.1) TERMUX_PKG_VERSION+=(12.0.1) # LLVM version TERMUX_PKG_VERSION+=(2.097.1) # TOOLS version TERMUX_PKG_VERSION+=(1.26.1) # DUB version +TERMUX_PKG_VERSION+=(2.37) # GNU Binutils version 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/v${TERMUX_PKG_VERSION[2]}.tar.gz https://github.com/dlang/dub/archive/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://mirrors.kernel.org/gnu/binutils/binutils-${TERMUX_PKG_VERSION[4]}.tar.xz) TERMUX_PKG_SHA256=(93c8f500b39823dcdabbd73e1bcb487a1b93cb9a60144b0de1c81ab50200e59c 9fc126f4ddfc80c5135ab182b3a4e8764282c15b9462161f8fb0c5ee00126f89 0bea6089518395ca65cf58b0a450716c5c99ce1f041079d3aa42d280ace15ca4 e42c3bac10266e44cb4939124fce0392ce155979c1791981e30d8166f44c03ab 1e458599306bdfbe498418363c0e375bd75e9ae99676033ef3035f43cbd43dfd - 48d68e0747dc17b9b0d2799a2fffdc5ddaf986c649283c784830f19c4c82830c) -TERMUX_PKG_DEPENDS="clang, libc++, zlib" + 48d68e0747dc17b9b0d2799a2fffdc5ddaf986c649283c784830f19c4c82830c + 820d9724f020a3e69cb337893a0b63c2db161dadcb0e06fc11dc29eb1e84a32c) +TERMUX_PKG_DEPENDS="binutils, clang, libc++, zlib" TERMUX_PKG_NO_STATICSPLIT=true TERMUX_PKG_HOSTBUILD=true TERMUX_PKG_FORCE_CMAKE=true @@ -55,6 +58,7 @@ termux_step_post_get_source() { mv libunwind-${TERMUX_PKG_VERSION[1]}.src libunwind mv tools-${TERMUX_PKG_VERSION[2]} dlang-tools mv dub-${TERMUX_PKG_VERSION[3]} dub + mv binutils-${TERMUX_PKG_VERSION[4]} binutils # Exclude MLIR rm -Rf llvm/projects/mlir @@ -64,6 +68,18 @@ termux_step_post_get_source() { } termux_step_host_build() { + _BINUTILS_PREFIX=$TERMUX_PKG_HOSTBUILD_DIR/prefix + mkdir -p binutils + pushd binutils + $TERMUX_PKG_SRCDIR/binutils/configure \ + --prefix=$_BINUTILS_PREFIX \ + --target=$TERMUX_HOST_PLATFORM + make -j $TERMUX_MAKE_PROCESSES + make install + popd + + _BINUTILS_BIN=$_BINUTILS_PREFIX/$TERMUX_HOST_PLATFORM/bin + termux_setup_cmake termux_setup_ninja @@ -79,6 +95,7 @@ termux_step_host_build() { # Just before CMake invokation for LLVM: termux_step_pre_configure() { + export PATH=$_BINUTILS_BIN:$PATH if [ "$TERMUX_ARCH" == "arm" ]; then # [...]/ldc/src/llvm/projects/compiler-rt/lib/builtins/clear_cache.c:85:20: # error: write to reserved register 'R7'