Add initial barebones kernel and cross compiler container image
This commit is contained in:
67
cross-compiler-image/Dockerfile
Normal file
67
cross-compiler-image/Dockerfile
Normal file
@@ -0,0 +1,67 @@
|
||||
|
||||
FROM ubuntu:latest
|
||||
|
||||
RUN apt-get update
|
||||
|
||||
COPY packages.txt .
|
||||
RUN apt-get install -y --no-install-recommends --no-install-suggests $(cat packages.txt)
|
||||
|
||||
COPY gnu-keyring.gpg /gnu-keyring.gpg
|
||||
RUN gpg --import /gnu-keyring.gpg
|
||||
|
||||
#ARG BINUTILS_MIRROR="https://ftp.gnu.org/gnu/binutils/"
|
||||
ARG BINUTILS_MIRROR="https://gnuftp.uib.no/binutils/"
|
||||
ARG BINUTILS_NAME="binutils-2.42"
|
||||
ARG BINUTILS_ARCHIVE=${BINUTILS_NAME}".tar.gz"
|
||||
|
||||
#ARG GCC_MIRROR="https://ftp.gnu.org/gnu/gcc/gcc-14.1.0/"
|
||||
ARG GCC_MIRROR="https://gnuftp.uib.no/gcc/gcc-14.1.0/"
|
||||
ARG GCC_NAME="gcc-14.1.0"
|
||||
ARG GCC_ARCHIVE=${GCC_NAME}".tar.gz"
|
||||
|
||||
ARG PREFIX=/opt/cross/
|
||||
ARG TARGET=i686-elf
|
||||
ENV PATH=${PREFIX}bin:${PATH}
|
||||
|
||||
WORKDIR build
|
||||
|
||||
# download and build gcc and binutils source
|
||||
RUN set -x \
|
||||
&& wget --no-verbose ${BINUTILS_MIRROR}${BINUTILS_ARCHIVE} \
|
||||
&& wget --no-verbose ${BINUTILS_MIRROR}${BINUTILS_ARCHIVE}.sig \
|
||||
&& gpg --verify "${BINUTILS_ARCHIVE}.sig" \
|
||||
&& mkdir binutils \
|
||||
&& tar -xf ${BINUTILS_ARCHIVE} -C binutils \
|
||||
&& mkdir binutils-build \
|
||||
&& cd binutils-build \
|
||||
&& ../binutils/${BINUTILS_NAME}/configure \
|
||||
--target=$TARGET \
|
||||
--prefix=$PREFIX \
|
||||
--with-sysroot \
|
||||
--disable-nls \
|
||||
--disable-werror \
|
||||
&& make -j 8 \
|
||||
&& make install \
|
||||
&& rm -rf binutils-build binutils ${BINUTLS_ARCHIVE}
|
||||
|
||||
RUN set -x \
|
||||
&& wget --no-verbose ${GCC_MIRROR}${GCC_ARCHIVE} \
|
||||
&& wget --no-verbose ${GCC_MIRROR}${GCC_ARCHIVE}.sig \
|
||||
&& gpg --verify "${GCC_ARCHIVE}.sig" \
|
||||
&& mkdir gcc \
|
||||
&& tar -xf ${GCC_ARCHIVE} -C gcc \
|
||||
&& mkdir gcc-build \
|
||||
&& cd gcc-build \
|
||||
&& ../gcc/${GCC_NAME}/configure \
|
||||
--target=$TARGET \
|
||||
--prefix=$PREFIX \
|
||||
--disable-nls \
|
||||
--enable-languages=c \
|
||||
--without-headers \
|
||||
&& make -j 8 all-gcc \
|
||||
&& make -j 8 all-target-libgcc \
|
||||
&& make install-gcc \
|
||||
&& make install-target-libgcc \
|
||||
&& rm -rf gcc-build gcc ${GCC_ARCHIVE}
|
||||
|
||||
WORKDIR /runtime
|
||||
BIN
cross-compiler-image/gnu-keyring.gpg
Normal file
BIN
cross-compiler-image/gnu-keyring.gpg
Normal file
Binary file not shown.
13
cross-compiler-image/packages.txt
Normal file
13
cross-compiler-image/packages.txt
Normal file
@@ -0,0 +1,13 @@
|
||||
build-essential
|
||||
bison
|
||||
flex
|
||||
libgmp3-dev
|
||||
libmpc-dev
|
||||
libmpfr-dev
|
||||
texinfo
|
||||
libisl-dev
|
||||
wget
|
||||
gpg
|
||||
gpg-agent
|
||||
gzip
|
||||
ca-certificates
|
||||
Reference in New Issue
Block a user