From afd9ad33d49744cea35441534fdd1fdc47ad00bc Mon Sep 17 00:00:00 2001 From: Azalea Gui <22280294+hykilpikonna@users.noreply.github.com> Date: Sun, 22 Dec 2024 01:39:13 -0500 Subject: [PATCH] [F] Fix rust builder --- tools/build_rust.sh | 2 +- tools/rust-builder/general/Dockerfile | 11 ++++++++--- tools/rust-builder/general/build.sh | 6 ++++++ 3 files changed, 15 insertions(+), 4 deletions(-) mode change 100644 => 100755 tools/build_rust.sh mode change 100644 => 100755 tools/rust-builder/general/build.sh diff --git a/tools/build_rust.sh b/tools/build_rust.sh old mode 100644 new mode 100755 index 3d0a9a5a..1e5a35ea --- a/tools/build_rust.sh +++ b/tools/build_rust.sh @@ -8,4 +8,4 @@ docker build -t rust-builder-general tools/rust-builder/general # Step 2: Run the Docker container and execute the builder script echo "Running the Docker container..." -docker run --rm -v "$(pwd)":/app rust-builder bash -c "cd /app && ./tools/rust-builder/general/builder.sh" +docker run --rm -v "$(pwd)":/app rust-builder-general bash -c "cd /app && ./tools/rust-builder/general/build.sh" diff --git a/tools/rust-builder/general/Dockerfile b/tools/rust-builder/general/Dockerfile index 1ce8bca3..951d49a1 100644 --- a/tools/rust-builder/general/Dockerfile +++ b/tools/rust-builder/general/Dockerfile @@ -3,14 +3,19 @@ FROM debian:10-slim # Install Rust building environment RUN apt update && apt install -y curl build-essential gcc libssl-dev bash musl-tools mingw-w64 RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y -RUN source $HOME/.cargo/env # Add toolchains for building for gnu[x86_64, aarch64, armv7l], musl[x86_64], and windows[x86_64, aarch64] -RUN rustup target add \ +RUN /root/.cargo/bin/rustup target add \ x86_64-unknown-linux-gnu \ aarch64-unknown-linux-gnu \ armv7-unknown-linux-gnueabihf \ x86_64-unknown-linux-musl \ - x86_64-pc-windows-gnu \ + x86_64-pc-windows-gnu + +# Install armv7l & aarch64 toolchains +RUN apt install -y gcc-arm-linux-gnueabihf gcc-aarch64-linux-gnu + +# Add cargo to path +ENV PATH="/root/.cargo/bin:${PATH}" WORKDIR /app diff --git a/tools/rust-builder/general/build.sh b/tools/rust-builder/general/build.sh old mode 100644 new mode 100755 index f12cae9d..c7d7c436 --- a/tools/rust-builder/general/build.sh +++ b/tools/rust-builder/general/build.sh @@ -1,5 +1,11 @@ #!/usr/bin/env bash +set -e + +# Set linkers for cross-compilation +export CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER=/usr/bin/arm-linux-gnueabihf-gcc +export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=/usr/bin/aarch64-linux-gnu-gcc + # Build for platforms cargo build --release --target x86_64-unknown-linux-gnu cargo build --release --target aarch64-unknown-linux-gnu