FROM docker.io/library/debian:bookworm-slim@sha256:6bd27d44e6c32a66bbd72d7cb2b76a8ae3497ec2e5274a81abd1b37f6013fa1f
RUN apt-get update && apt-get install -y --no-install-recommends build-essential ca-certificates curl xz-utils libgmp-dev libmpfr-dev libmpc-dev nasm qemu-system-x86 seabios gdb-multiarch && rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt-get install -y --no-install-recommends texinfo && rm -rf /var/lib/apt/lists/*
ENV PATH="/opt/cross/bin:${PATH}"
WORKDIR /tmp/toolchain
RUN curl -fL https://ftp.gnu.org/gnu/binutils/binutils-2.42.tar.xz -o binutils.tar.xz && tar -xf binutils.tar.xz && mkdir binutils-build && cd binutils-build && ../binutils-2.42/configure --target=i686-elf --prefix=/opt/cross --disable-nls --disable-werror && make -j4 && make install
RUN curl -fL https://ftp.gnu.org/gnu/gcc/gcc-13.2.0/gcc-13.2.0.tar.xz -o gcc.tar.xz && tar -xf gcc.tar.xz && mkdir gcc-build && cd gcc-build && ../gcc-13.2.0/configure --target=i686-elf --prefix=/opt/cross --disable-nls --enable-languages=c --without-headers --disable-multilib --disable-bootstrap && make -j4 all-gcc && make install-gcc
RUN sha256sum binutils.tar.xz gcc.tar.xz > /opt/cross/source-sha256.txt && rm -rf /tmp/toolchain
WORKDIR /work
CMD ["make", "check"]
