Skip to content

Commit

Permalink
tidy up proposed Dockerfile & run.sh
Browse files Browse the repository at this point in the history
  • Loading branch information
Jamesbarford committed Feb 20, 2025
1 parent 915fb4e commit 53a7775
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 44 deletions.
13 changes: 0 additions & 13 deletions ci/docker/aarch64_be-none-linux-gnu/Dockerfile

This file was deleted.

29 changes: 29 additions & 0 deletions ci/docker/aarch64_be-unknown-linux-gnu/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
FROM ubuntu:24.04

RUN apt-get update && apt-get install -y --no-install-recommends \
gcc \
g++ \
ca-certificates \
libc6-dev \
libc6-dev-arm64-cross \
qemu-user \
make \
file \
clang-19 \
curl \
xz-utils \
lld

ENV TOOLCHAIN="arm-gnu-toolchain-14.2.rel1-x86_64-aarch64_be-none-linux-gnu"

# Download the aarch64_be gcc toolchain
RUN curl -L "https://developer.arm.com/-/media/Files/downloads/gnu/14.2.rel1/binrel/${TOOLCHAIN}.tar.xz" -o "${TOOLCHAIN}.tar.xz"
RUN tar -xvf "${TOOLCHAIN}.tar.xz"
RUN mkdir /toolchains && mv "./${TOOLCHAIN}" /toolchains

ENV AARCH64_BE_TOOLCHAIN="/toolchains/${TOOLCHAIN}"
ENV AARCH64_BE_LIBC="${AARCH64_BE_TOOLCHAIN}/aarch64_be-none-linux-gnu/libc"

ENV CARGO_TARGET_AARCH64_BE_UNKNOWN_LINUX_GNU_LINKER="${AARCH64_BE_TOOLCHAIN}/bin/aarch64_be-none-linux-gnu-gcc"
ENV CARGO_TARGET_AARCH64_BE_UNKNOWN_LINUX_GNU_RUNNER="qemu-aarch64_be -L ${AARCH64_BE_LIBC}"
ENV OBJDUMP="${AARCH64_BE_TOOLCHAIN}/bin/bin/aarch64-none-linux-gnu-objdump"
47 changes: 16 additions & 31 deletions ci/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,14 @@ case ${TARGET} in
TEST_CXX_COMPILER="clang++-19"
TEST_RUNNER="${CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUNNER}"
;;

aarch64_be-unknown-linux-gnu*)
TEST_CPPFLAGS="-fuse-ld=lld"
TEST_SKIP_INTRINSICS=crates/intrinsic-test/missing_aarch64.txt
TEST_CXX_COMPILER="clang++-19"
TEST_RUNNER="${CARGO_TARGET_AARCH64_BE_UNKNOWN_LINUX_GNU_RUNNER}"
;;

armv7-unknown-linux-gnueabihf*)
TEST_CPPFLAGS="-fuse-ld=lld -I/usr/arm-linux-gnueabihf/include/ -I/usr/arm-linux-gnueabihf/include/c++/9/arm-linux-gnueabihf/"
TEST_SKIP_INTRINSICS=crates/intrinsic-test/missing_arm.txt
Expand All @@ -167,41 +175,18 @@ case "${TARGET}" in
--target "${TARGET}"
;;

aarch64_be-unknown-linux-gnu)
# get the aarch64_be toolchain
TOOLCHAIN="arm-gnu-toolchain-14.2.rel1-x86_64-aarch64_be-none-linux-gnu"

# Download the aarch64_be gcc toolchain
curl -L "https://developer.arm.com/-/media/Files/downloads/gnu/14.2.rel1/binrel/${TOOLCHAIN}.tar.xz" \
-o "${TOOLCHAIN}.tar.xz" && \
tar -xzvf "./${TOOLCHAIN}".tar.xz && \
mdkir /toolchains &&
mv "./${TOOLCHAIN}" /toolchains

# Build the test suite
AARCH64_BE_TOOLCHAIN="/toolchains/${TOOLCHAIN}"
AARCH64_BE_LIBC="${AARCH64_BE_TOOLCHAIN}/aarch64_be-none-linux-gnu/libc"
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER="${AARCH64_BE_TOOLCHAIN}/bin/aarch64_be-none-linux-gnu-gcc" \
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUNNER="qemu-aarch64_be -L ${AARCH64_BE_LIBC}" \
CPPFLAGS="-fuse-ld=lld" \
RUSTFLAGS="-C linker=${AARCH64_BE}/bin/aarch64_be-none-linux-gnu-gcc -C link-args=-static" \
cargo build \
--target="${TARGET}" \
--manifest-path=crates/intrinsic-test/Cargo.toml \
--profile=release

# Now run it
qemu-aarch64_be -L "${AARCH64_BE_LIBC}" \
"./target/${TARGET}/release/intrinsic-test" \
"./intrinsics_data/arm_intrinsics.json" \
aarch64_be-unknown-linux-gnu*)
CPPFLAGS="${TEST_CPPFLAGS}" RUSTFLAGS="${HOST_RUSTFLAGS}" RUST_LOG=warn \
cargo run "${INTRINSIC_TEST}" "${PROFILE}" \
--bin intrinsic-test -- intrinsics_data/arm_intrinsics.json \
--runner "${TEST_RUNNER}" \
--cppcompiler "${TEST_CXX_COMPILER}" \
--skip "${TEST_SKIP_INTRINSICS}" \
--target "${TARGET}" \
--cppcompiler "clang++-19" \
--skip crates/intrinsic-test/missing_aarch64.txt \
--runner "${CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUNNER}" \
--linker "${CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER}" \
--cxx-toolchain-dir "${AARCH64_BE_TOOLCHAIN}"
;;
*)
*)
;;
esac

Expand Down

0 comments on commit 53a7775

Please # to comment.