blob: d75e0b85e249a1eaabe6398763f9684dee34e090 [file] [log] [blame]
# 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
# sh4-linux-user: binaries don't run with bookworm compiler
#
# 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 \
gcc-sh4-linux-gnu \
libc6-dev-sh4-cross \
python3-pip \
python3-setuptools \
python3-venv \
python3-wheel
RUN /usr/bin/pip3 install tomli
ENV QEMU_CONFIGURE_OPTS --disable-system --disable-docs --disable-tools
ENV DEF_TARGET_LIST alpha-linux-user,sh4-linux-user
ENV MAKE /usr/bin/make
# 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