rustc-i686-unknown-linux-musl/Dockerfile
2025-06-23 22:09:06 +02:00

35 lines
1.3 KiB
Docker

FROM debian:12
WORKDIR /root
RUN apt update && apt install build-essential git python3 cmake curl ninja-build libssl-dev pkg-config -y
# Install cross-toolchain
RUN curl -LO https://musl.cc/i686-linux-musl-cross.tgz
RUN tar -xf i686-linux-musl-cross.tgz
# Build OpenSSL
RUN curl -LO https://github.com/openssl/openssl/releases/download/openssl-3.5.0/openssl-3.5.0.tar.gz
RUN tar -xf openssl-3.5.0.tar.gz && mkdir /root/openssl-3.5.0/build
WORKDIR /root/openssl-3.5.0/build
RUN ../Configure linux-x86 --cross-compile-prefix=/root/i686-linux-musl-cross/bin/i686-linux-musl- --prefix=/root/openssl-3.5.0/build
RUN make all "-j$(nproc)"
RUN cp -r ../include/openssl/*.h include/openssl/
ENV OPENSSL_DIR=/root/openssl-3.5.0/build
ENV OPENSSL_LIB_DIR=$OPENSSL_DIR
# Build Rust
WORKDIR /root
RUN git clone https://github.com/rust-lang/rust.git
WORKDIR /root/rust
RUN git checkout beta
RUN ./configure --musl-root-i686=../i686-linux-musl-cross/i686-linux-musl --disable-docs --set target.i686-unknown-linux-musl.crt-static=false --enable-extended
ENV CC_i686_unknown_linux_musl=/root/i686-linux-musl-cross/bin/i686-linux-musl-gcc
ENV CXX_i686_unknown_linux_musl=/root/i686-linux-musl-cross/bin/i686-linux-musl-g++
RUN ./x --help
RUN ./x dist --host='i686-unknown-linux-musl' --target i686-unknown-linux-musl