xref: /openbmc/qemu/tests/docker/dockerfiles/debian-legacy-test-cross.docker (revision 40a770ea8b9478aefa3a60049bc67cc04ace569c)
1aa39c4c0SAlex Bennée# Docker legacy cross-compiler target (tests and minimal qemu)
2aa39c4c0SAlex Bennée#
3aa39c4c0SAlex Bennée# Compilers for some of our older targets which we cant currently
4aa39c4c0SAlex Bennée# upgrade. Currently:
5aa39c4c0SAlex Bennée#
6aa39c4c0SAlex Bennée#   libc6.1-dev-alpha-cross: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1054412
74e76d98aSAlex Bennée#   sh4-linux-user: binaries don't run with bookworm compiler
8aa39c4c0SAlex Bennée#
9aa39c4c0SAlex Bennée# As we are targeting check-tcg here we only need minimal qemu
10aa39c4c0SAlex Bennée# dependencies and the relevant cross compilers.
11aa39c4c0SAlex Bennée
12aa39c4c0SAlex BennéeFROM docker.io/library/debian:11-slim
13aa39c4c0SAlex Bennée
14aa39c4c0SAlex Bennée# Duplicate deb line as deb-src
15aa39c4c0SAlex BennéeRUN cat /etc/apt/sources.list | sed "s/^deb\ /deb-src /" >> /etc/apt/sources.list
16aa39c4c0SAlex Bennée
17aa39c4c0SAlex BennéeRUN export DEBIAN_FRONTEND=noninteractive && \
18aa39c4c0SAlex Bennée    apt-get update && \
19aa39c4c0SAlex Bennée    apt-get install -y eatmydata && \
20aa39c4c0SAlex Bennée    eatmydata apt-get dist-upgrade -y && \
21aa39c4c0SAlex Bennée    apt build-dep -yy qemu
22aa39c4c0SAlex Bennée
23aa39c4c0SAlex Bennée# Add extra build tools and as many cross compilers as we can for testing
24aa39c4c0SAlex BennéeRUN DEBIAN_FRONTEND=noninteractive eatmydata \
25aa39c4c0SAlex Bennée        apt install -y --no-install-recommends \
26aa39c4c0SAlex Bennée        bison \
27aa39c4c0SAlex Bennée        ccache \
28aa39c4c0SAlex Bennée        clang  \
29aa39c4c0SAlex Bennée        flex \
30aa39c4c0SAlex Bennée        git \
31aa39c4c0SAlex Bennée        ninja-build \
32aa39c4c0SAlex Bennée        gcc-alpha-linux-gnu \
33aa39c4c0SAlex Bennée        libc6.1-dev-alpha-cross \
344e76d98aSAlex Bennée        gcc-sh4-linux-gnu \
354e76d98aSAlex Bennée        libc6-dev-sh4-cross \
36aa39c4c0SAlex Bennée        python3-pip \
37aa39c4c0SAlex Bennée        python3-setuptools \
38aa39c4c0SAlex Bennée        python3-venv \
39*c1d822caSDaniel P. Berrangé        python3-wheel && \
40*c1d822caSDaniel P. Berrangé        dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
41aa39c4c0SAlex Bennée
42aa39c4c0SAlex BennéeRUN /usr/bin/pip3 install tomli
43aa39c4c0SAlex Bennée
44aa39c4c0SAlex BennéeENV QEMU_CONFIGURE_OPTS --disable-system --disable-docs --disable-tools
454e76d98aSAlex BennéeENV DEF_TARGET_LIST alpha-linux-user,sh4-linux-user
46bad7a275SDaniel P. BerrangéENV MAKE /usr/bin/make
47aa39c4c0SAlex Bennée# As a final step configure the user (if env is defined)
48aa39c4c0SAlex BennéeARG USER
49aa39c4c0SAlex BennéeARG UID
50aa39c4c0SAlex BennéeRUN if [ "${USER}" ]; then \
51aa39c4c0SAlex Bennée  id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
52