|
| 1 | +FROM ubuntu:24.04 AS cross-base |
| 2 | +ENV DEBIAN_FRONTEND=noninteractive |
| 3 | + |
| 4 | +COPY common.sh lib.sh / |
| 5 | +RUN /common.sh |
| 6 | + |
| 7 | +COPY cmake.sh / |
| 8 | +RUN /cmake.sh |
| 9 | + |
| 10 | +COPY xargo.sh / |
| 11 | +RUN /xargo.sh |
| 12 | + |
| 13 | +FROM cross-base AS build |
| 14 | + |
| 15 | +RUN apt-get update && apt-get install -y --no-install-recommends \ |
| 16 | + bzip2 \ |
| 17 | + adduser |
| 18 | + |
| 19 | +ARG VERBOSE |
| 20 | +COPY crosstool-ng.sh / |
| 21 | +COPY crosstool-config/riscv64gc-unknown-linux-musl.config / |
| 22 | +RUN /crosstool-ng.sh riscv64gc-unknown-linux-musl.config 5 |
| 23 | + |
| 24 | +ENV PATH=/x-tools/riscv64-unknown-linux-musl/bin/:$PATH |
| 25 | + |
| 26 | +COPY qemu.sh / |
| 27 | +RUN /qemu.sh riscv64 |
| 28 | + |
| 29 | +COPY qemu-runner base-runner.sh / |
| 30 | +COPY toolchain.cmake /opt/toolchain.cmake |
| 31 | + |
| 32 | +ENV CROSS_TOOLCHAIN_PREFIX=riscv64-unknown-linux-musl- |
| 33 | +ENV CROSS_SYSROOT=/x-tools/riscv64-unknown-linux-musl/riscv64-unknown-linux-musl/sysroot/ |
| 34 | + |
| 35 | +ENV CROSS_TARGET_RUNNER="/qemu-runner riscv64" |
| 36 | +ENV CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_MUSL_LINKER="$CROSS_TOOLCHAIN_PREFIX"gcc \ |
| 37 | + CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_MUSL_RUNNER="$CROSS_TARGET_RUNNER" \ |
| 38 | + AR_riscv64gc_unknown_linux_musl="$CROSS_TOOLCHAIN_PREFIX"ar \ |
| 39 | + CC_riscv64gc_unknown_linux_musl="$CROSS_TOOLCHAIN_PREFIX"gcc \ |
| 40 | + CXX_riscv64gc_unknown_linux_musl="$CROSS_TOOLCHAIN_PREFIX"g++ \ |
| 41 | + CMAKE_TOOLCHAIN_FILE_riscv64gc_unknown_linux_musl=/opt/toolchain.cmake \ |
| 42 | + BINDGEN_EXTRA_CLANG_ARGS_riscv64gc_unknown_linux_musl="--sysroot=$CROSS_SYSROOT" \ |
| 43 | + QEMU_LD_PREFIX="$CROSS_SYSROOT" \ |
| 44 | + RUST_TEST_THREADS=1 \ |
| 45 | + CROSS_CMAKE_SYSTEM_NAME=Linux \ |
| 46 | + CROSS_CMAKE_SYSTEM_PROCESSOR=riscv64gc \ |
| 47 | + CROSS_CMAKE_CRT=musl \ |
| 48 | + CROSS_CMAKE_OBJECT_FLAGS="-ffunction-sections -fdata-sections -fPIC -march=rv64gc -mabi=lp64d -mcmodel=medany" |
| 49 | + |
| 50 | +RUN sed -e "s#@DEFAULT_QEMU_LD_PREFIX@#$QEMU_LD_PREFIX#g" -i /qemu-runner |
0 commit comments