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