Source
FROM scratch AS build
ARG VERSION
ARG GMP_VERSION
ARG MPFR_VERSION
ARG MPC_VERSION
ARG ISL_VERSION
ARG TARGETARCH
COPY --from=stagex/bootstrap-stage3 . /
ADD fetch/gcc-${VERSION}.tar.xz .
ADD fetch/gmp-${GMP_VERSION}.tar.bz2 .
ADD fetch/mpfr-${MPFR_VERSION}.tar.bz2 .
ADD fetch/mpc-${MPC_VERSION}.tar.gz .
ADD fetch/isl-${ISL_VERSION}.tar.bz2 .
WORKDIR /gcc-${VERSION}
RUN --network=none <<-EOF
set -eux
mv ../gmp-${GMP_VERSION} gmp
mv ../mpfr-${MPFR_VERSION} mpfr
mv ../mpc-${MPC_VERSION} mpc
mv ../isl-${ISL_VERSION} isl
export TARGET=`echo ${TARGETARCH} | sed 's/amd64/x86_64/' | sed 's/arm64/aarch64/'`-linux-musl
./configure \
--target=${TARGET} \
--build=${TARGET} \
--host=${TARGET} \
--prefix=/usr \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--libdir=/usr/lib \
--disable-cet \
--disable-fixed-point \
--disable-libstdcxx-pch \
--disable-multilib \
--disable-libsanitizer \
--disable-nls \
--disable-werror \
--enable-__cxa_atexit \
--enable-default-pie \
--enable-default-ssp \
--enable-languages=c,c++ \
--enable-link-serialization=2 \
--enable-linker-build-id
make -j "$(nproc)"
make DESTDIR=/rootfs install-strip
ln -s gcc /rootfs/usr/bin/cc
mv /rootfs/usr/lib64/* /rootfs/usr/lib/
rm -rf /rootfs/usr/lib64
EOF
FROM stagex/core-filesystem AS package
COPY --from=build /rootfs/ /