xref: /openbmc/qemu/tests/docker/dockerfiles/debian-loongarch-cross.docker (revision 34f38a1b11d646a898cb6378706d3bcf5a786a9b)
1b70ec50bSRichard Henderson#
2b70ec50bSRichard Henderson# Docker cross-compiler target
3b70ec50bSRichard Henderson#
435782a1bSAlex Bennée# This docker target uses prebuilt toolchains for LoongArch64 from:
5b70ec50bSRichard Henderson# https://github.com/loongson/build-tools/releases
6b70ec50bSRichard Henderson#
735782a1bSAlex BennéeFROM docker.io/library/debian:11-slim
835782a1bSAlex Bennée
935782a1bSAlex Bennée# Duplicate deb line as deb-src
1035782a1bSAlex BennéeRUN cat /etc/apt/sources.list | sed "s/^deb\ /deb-src /" >> /etc/apt/sources.list
11b70ec50bSRichard Henderson
12cb8715bfSAlex BennéeRUN export DEBIAN_FRONTEND=noninteractive && \
13cb8715bfSAlex Bennée    apt-get update && \
14cb8715bfSAlex Bennée    apt-get install -y eatmydata && \
15cb8715bfSAlex Bennée    eatmydata apt-get dist-upgrade -y && \
16cb8715bfSAlex Bennée    apt build-dep -yy qemu
17cb8715bfSAlex Bennée
18b70ec50bSRichard HendersonRUN apt-get update && \
19b70ec50bSRichard Henderson    DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
20b70ec50bSRichard Henderson    DEBIAN_FRONTEND=noninteractive eatmydata \
21b70ec50bSRichard Henderson    apt-get install -y --no-install-recommends \
22b70ec50bSRichard Henderson        build-essential \
23cb8715bfSAlex Bennée        bison \
24b70ec50bSRichard Henderson        ca-certificates \
25cb8715bfSAlex Bennée        ccache \
26cb8715bfSAlex Bennée        clang  \
27cb8715bfSAlex Bennée        flex \
28b70ec50bSRichard Henderson        curl \
29b70ec50bSRichard Henderson        gettext \
30b70ec50bSRichard Henderson        git \
31cb8715bfSAlex Bennée        ninja-build \
32cb8715bfSAlex Bennée        python3-pip \
33cb8715bfSAlex Bennée        python3-setuptools \
34cb8715bfSAlex Bennée        python3-venv \
35c1d822caSDaniel P. Berrangé        python3-wheel && \
36c1d822caSDaniel P. Berrangé        dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
37cb8715bfSAlex Bennée
38cb8715bfSAlex BennéeRUN /usr/bin/pip3 install tomli
39b70ec50bSRichard Henderson
40232ce1ebSRichard HendersonRUN curl -#SL https://github.com/loongson/build-tools/releases/download/2023.08.08/CLFS-loongarch64-8.1-x86_64-cross-tools-gcc-glibc.tar.xz \
41b70ec50bSRichard Henderson    | tar -xJC /opt
42b70ec50bSRichard Henderson
43b70ec50bSRichard HendersonENV PATH $PATH:/opt/cross-tools/bin
44b70ec50bSRichard HendersonENV LD_LIBRARY_PATH /opt/cross-tools/lib:/opt/cross-tools/loongarch64-unknown-linux-gnu/lib:$LD_LIBRARY_PATH
45cb8715bfSAlex Bennée
46*34f38a1bSPierrick BouvierENV QEMU_CONFIGURE_OPTS --disable-docs --disable-tools
47*34f38a1bSPierrick BouvierENV DEF_TARGET_LIST loongarch64-linux-user,loongarch64-softmmu
48bad7a275SDaniel P. BerrangéENV MAKE /usr/bin/make
49cb8715bfSAlex Bennée
5093bd2954SAlex Bennée# As a final step configure the user (if env is defined)
5193bd2954SAlex BennéeARG USER
5293bd2954SAlex BennéeARG UID
5393bd2954SAlex BennéeRUN if [ "${USER}" ]; then \
5493bd2954SAlex Bennée  id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
55