add cross-x86_64
This commit is contained in:
parent
98f9d0dfa6
commit
5351e027c5
|
@ -3,13 +3,10 @@ FROM ${REGISTRY}/live-bootstrap:latest as live-bootstrap
|
||||||
|
|
||||||
FROM live-bootstrap as base
|
FROM live-bootstrap as base
|
||||||
ENV TARGET=x86_64-linux-musl
|
ENV TARGET=x86_64-linux-musl
|
||||||
ENV BINUTILS_VERSION 2.41
|
ENV GCC_VERSION 13.1.0
|
||||||
ENV BINUTILS_SRC_SITE https://ftp.gnu.org/gnu/binutils
|
|
||||||
ENV BINUTILS_SRC_HASH ae9a5789e23459e59606e6714723f2d3ffc31c03174191ef0d015bdf06007450
|
|
||||||
ENV GCC_VERSION 12.2.0
|
|
||||||
ENV GCC_SRC_FILE gcc-$GCC_VERSION.tar.xz
|
ENV GCC_SRC_FILE gcc-$GCC_VERSION.tar.xz
|
||||||
ENV GCC_SRC_SITE https://mirrors.kernel.org/gnu/gcc/gcc-${GCC_VERSION}
|
ENV GCC_SRC_SITE https://mirrors.kernel.org/gnu/gcc/gcc-${GCC_VERSION}
|
||||||
ENV GCC_SRC_HASH e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
|
ENV GCC_SRC_HASH 61d684f0aa5e76ac6585ad8898a2427aade8979ed5e7f85492286c4dfc13ee86
|
||||||
ENV GCC_DEP_SITE https://gcc.gnu.org/pub/gcc/infrastructure/
|
ENV GCC_DEP_SITE https://gcc.gnu.org/pub/gcc/infrastructure/
|
||||||
ENV GMP_FILE gmp-6.2.1.tar.bz2
|
ENV GMP_FILE gmp-6.2.1.tar.bz2
|
||||||
ENV GMP_HASH eae9326beb4158c386e39a356818031bd28f3124cf915f8c5b1dc4c7a36b4d7c
|
ENV GMP_HASH eae9326beb4158c386e39a356818031bd28f3124cf915f8c5b1dc4c7a36b4d7c
|
||||||
|
@ -23,8 +20,6 @@ ENV ISL_HASH fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0
|
||||||
FROM base as fetch
|
FROM base as fetch
|
||||||
WORKDIR /home/user
|
WORKDIR /home/user
|
||||||
RUN set -eux; \
|
RUN set -eux; \
|
||||||
curl -OJ ${BINUTILS_SRC_SITE}/binutils-${BINUTILS_VERSION}.tar.xz; \
|
|
||||||
echo "${BINUTILS_SRC_HASH} binutils-${BINUTILS_VERSION}.tar.xz" | sha256sum -c; \
|
|
||||||
curl -OJ ${GCC_SRC_SITE}/${GCC_SRC_FILE}; \
|
curl -OJ ${GCC_SRC_SITE}/${GCC_SRC_FILE}; \
|
||||||
echo "${GCC_SRC_HASH} ${GCC_SRC_FILE}" | sha256sum -c; \
|
echo "${GCC_SRC_HASH} ${GCC_SRC_FILE}" | sha256sum -c; \
|
||||||
curl -OJ ${GCC_DEP_SITE}/${GMP_FILE}; \
|
curl -OJ ${GCC_DEP_SITE}/${GMP_FILE}; \
|
||||||
|
@ -37,44 +32,54 @@ RUN set -eux; \
|
||||||
echo "${ISL_HASH} ${ISL_FILE}" | sha256sum -c
|
echo "${ISL_HASH} ${ISL_FILE}" | sha256sum -c
|
||||||
|
|
||||||
FROM fetch as build
|
FROM fetch as build
|
||||||
RUN tar -xf binutils-${BINUTILS_VERSION}.tar.xz
|
RUN set -eux; \
|
||||||
RUN set -ex; \
|
tar -xf ${GCC_SRC_FILE}; \
|
||||||
cd binutils-${BINUTILS_VERSION}; \
|
cd gcc-${GCC_VERSION}; \
|
||||||
./configure \
|
mv ../*.tar.* .; \
|
||||||
|
./contrib/download_prerequisites
|
||||||
|
ENV PATH=/home/user/gcc-build/bin:${PATH}
|
||||||
|
RUN set -eux; \
|
||||||
|
mkdir -p gcc-build/bin; \
|
||||||
|
cd gcc-build; \
|
||||||
|
ln -s /usr/sbin/ar bin/${TARGET}-ar; \
|
||||||
|
ln -s /usr/sbin/ranlib bin/${TARGET}-ranlib; \
|
||||||
|
../gcc-${GCC_VERSION}/configure \
|
||||||
|
--build=i386-unknown-linux-musl \
|
||||||
|
--host=i386-unknown-linux-musl \
|
||||||
--target=${TARGET} \
|
--target=${TARGET} \
|
||||||
--libdir=/lib \
|
--libdir=/lib \
|
||||||
--with-sysroot= \
|
|
||||||
--prefix= \
|
--prefix= \
|
||||||
|
--enable-languages=c,c++ \
|
||||||
|
--disable-nls \
|
||||||
|
--disable-shared \
|
||||||
|
--without-headers \
|
||||||
|
--with-as=/usr/sbin/as \
|
||||||
--disable-multilib \
|
--disable-multilib \
|
||||||
--disable-separate-code \
|
--disable-libquadmath \
|
||||||
|
--disable-libatomic \
|
||||||
|
--disable-libgomp \
|
||||||
|
--disable-libssp \
|
||||||
|
--disable-libvtv \
|
||||||
|
--disable-gcov \
|
||||||
|
--disable-libstdcxx \
|
||||||
--disable-werror \
|
--disable-werror \
|
||||||
|
--disable-threads \
|
||||||
|
--disable-separate-code \
|
||||||
--enable-deterministic-archives; \
|
--enable-deterministic-archives; \
|
||||||
make -j "$(nproc)"
|
make -j "$(nproc)" || :
|
||||||
#RUN tar -xf ${GCC_SRC_FILE}
|
|
||||||
#RUN set -eux; \
|
|
||||||
# cd gcc-${GCC_VERSION}; \
|
|
||||||
# mv ../*.tar.* .; \
|
|
||||||
# ./contrib/download_prerequisites; \
|
|
||||||
# ./configure \
|
|
||||||
# --target=${TARGET} \
|
|
||||||
# --prefix=/usr \
|
|
||||||
# --mandir=/usr/share/man \
|
|
||||||
# --infodir=/usr/share/info \
|
|
||||||
# --libdir=/usr/lib \
|
|
||||||
# --disable-nls \
|
|
||||||
# --without-headers \
|
|
||||||
# --enable-languages=c,c++; \
|
|
||||||
#make -j "$(nproc)"
|
|
||||||
|
|
||||||
|
|
||||||
FROM build as package
|
FROM build as install
|
||||||
|
USER 0:0
|
||||||
|
WORKDIR /home/user/gcc-build
|
||||||
|
RUN set -eux; \
|
||||||
|
make DESTDIR="/rootfs" install; \
|
||||||
|
cp /lib/ld-musl-i386.so.1 /rootfs/lib/; \
|
||||||
|
ln -s /lib/ld-musl-i386.so.1 /rootfs/lib/libc.so; \
|
||||||
|
find /rootfs -exec touch -hcd "@0" "{}" +
|
||||||
|
|
||||||
#FROM build as install
|
#FROM install as package
|
||||||
#USER 0:0
|
FROM scratch as package
|
||||||
#RUN make DESTDIR="/rootfs" install;
|
COPY --from=install /rootfs /
|
||||||
#RUN find /rootfs -exec touch -hcd "@0" "{}" +
|
ENTRYPOINT ["/bin/x86_64-linux-musl-gcc"]
|
||||||
#
|
CMD ["--version"]
|
||||||
#FROM scratch as package
|
|
||||||
#COPY --from=install /rootfs /
|
|
||||||
#ENTRYPOINT ["/bin/ld"]
|
|
||||||
#CMD ["--version"]
|
|
||||||
|
|
Reference in New Issue