2023-10-29 17:50:17 +03:00
|
|
|
# Docker legacy cross-compiler target (tests and minimal qemu)
|
|
|
|
#
|
|
|
|
# Compilers for some of our older targets which we cant currently
|
|
|
|
# upgrade. Currently:
|
|
|
|
#
|
|
|
|
# libc6.1-dev-alpha-cross: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1054412
|
2023-10-29 17:50:21 +03:00
|
|
|
# sh4-linux-user: binaries don't run with bookworm compiler
|
2023-10-29 17:50:17 +03:00
|
|
|
#
|
|
|
|
# As we are targeting check-tcg here we only need minimal qemu
|
|
|
|
# dependencies and the relevant cross compilers.
|
|
|
|
|
|
|
|
FROM docker.io/library/debian:11-slim
|
|
|
|
|
|
|
|
# Duplicate deb line as deb-src
|
|
|
|
RUN cat /etc/apt/sources.list | sed "s/^deb\ /deb-src /" >> /etc/apt/sources.list
|
|
|
|
|
|
|
|
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
|
|
apt-get update && \
|
|
|
|
apt-get install -y eatmydata && \
|
|
|
|
eatmydata apt-get dist-upgrade -y && \
|
|
|
|
apt build-dep -yy qemu
|
|
|
|
|
|
|
|
# Add extra build tools and as many cross compilers as we can for testing
|
|
|
|
RUN DEBIAN_FRONTEND=noninteractive eatmydata \
|
|
|
|
apt install -y --no-install-recommends \
|
|
|
|
bison \
|
|
|
|
ccache \
|
|
|
|
clang \
|
|
|
|
flex \
|
|
|
|
git \
|
|
|
|
ninja-build \
|
|
|
|
gcc-alpha-linux-gnu \
|
|
|
|
libc6.1-dev-alpha-cross \
|
2023-10-29 17:50:21 +03:00
|
|
|
gcc-sh4-linux-gnu \
|
|
|
|
libc6-dev-sh4-cross \
|
2023-10-29 17:50:17 +03:00
|
|
|
python3-pip \
|
|
|
|
python3-setuptools \
|
|
|
|
python3-venv \
|
|
|
|
python3-wheel
|
|
|
|
|
|
|
|
RUN /usr/bin/pip3 install tomli
|
|
|
|
|
|
|
|
ENV QEMU_CONFIGURE_OPTS --disable-system --disable-docs --disable-tools
|
2023-10-29 17:50:21 +03:00
|
|
|
ENV DEF_TARGET_LIST alpha-linux-user,sh4-linux-user
|
2024-05-13 14:15:49 +03:00
|
|
|
ENV MAKE /usr/bin/make
|
2023-10-29 17:50:17 +03:00
|
|
|
# As a final step configure the user (if env is defined)
|
|
|
|
ARG USER
|
|
|
|
ARG UID
|
|
|
|
RUN if [ "${USER}" ]; then \
|
|
|
|
id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
|