64 lines
1.9 KiB
Docker
64 lines
1.9 KiB
Docker
|
FROM ubuntu:22.04
|
||
|
|
||
|
ARG BINUTILS_VERSION=2.44
|
||
|
ARG GCC_VERSION=14.2.0
|
||
|
|
||
|
RUN apt-get update && apt-get install -y \
|
||
|
build-essential \
|
||
|
bison \
|
||
|
flex \
|
||
|
grub-pc-bin \
|
||
|
grub-efi-amd64-bin \
|
||
|
mtools qemu-system-x86 \
|
||
|
grub2 \
|
||
|
libgmp3-dev \
|
||
|
libmpc-dev \
|
||
|
libmpfr-dev \
|
||
|
libisl-dev \
|
||
|
libelf-dev \
|
||
|
wget
|
||
|
|
||
|
# Set environment variables
|
||
|
ENV PREFIX=/usr/local/opt/cross
|
||
|
ENV TARGET=i686-elf
|
||
|
ENV PATH="$PREFIX/bin:$PATH"
|
||
|
|
||
|
# Create build directory
|
||
|
WORKDIR /build
|
||
|
|
||
|
# Download and extract sources
|
||
|
RUN wget https://ftp.gnu.org/gnu/binutils/binutils-${BINUTILS_VERSION}.tar.gz && \
|
||
|
wget https://ftp.gnu.org/gnu/gcc/gcc-${GCC_VERSION}/gcc-${GCC_VERSION}.tar.gz && \
|
||
|
tar -xzf binutils-${BINUTILS_VERSION}.tar.gz && \
|
||
|
tar -xzf gcc-${GCC_VERSION}.tar.gz
|
||
|
|
||
|
RUN mkdir -p $PREFIX
|
||
|
|
||
|
# Build Binutils
|
||
|
RUN mkdir binutils-build && \
|
||
|
cd binutils-build && \
|
||
|
../binutils-${BINUTILS_VERSION}/configure --target=${TARGET} --prefix="$PREFIX" --with-sysroot --disable-nls --disable-werror && \
|
||
|
make && \
|
||
|
make install
|
||
|
|
||
|
# Build GCC
|
||
|
RUN mkdir gcc-build && \
|
||
|
cd gcc-build && \
|
||
|
../gcc-${GCC_VERSION}/configure --target=$TARGET --prefix="$PREFIX" --disable-nls --enable-languages=c,c++ --without-headers --disable-hosted-libstdcxx && \
|
||
|
make all-gcc && \
|
||
|
make all-target-libgcc && \
|
||
|
make install-gcc && \
|
||
|
make install-target-libgcc
|
||
|
|
||
|
# Clean up
|
||
|
RUN rm -rf /build
|
||
|
|
||
|
# Check if the installation is successful
|
||
|
RUN $PREFIX/bin/$TARGET-gcc --version
|
||
|
|
||
|
RUN apt-get install -y xorriso
|
||
|
|
||
|
VOLUME /var/lib/deados
|
||
|
|
||
|
WORKDIR /var/lib/deados
|