1afbdf0a4SAlessandro Di Federico# 2afbdf0a4SAlessandro Di Federico# Docker Hexagon cross-compiler target 3afbdf0a4SAlessandro Di Federico# 4afbdf0a4SAlessandro Di Federico# This docker target is used for building hexagon tests. As it also 5581cd47fSAlex Bennée# needs to be able to build QEMU itself in CI we include its 6581cd47fSAlex Bennée# build-deps. 7afbdf0a4SAlessandro Di Federico# 8581cd47fSAlex BennéeFROM docker.io/library/debian:11-slim 9afbdf0a4SAlessandro Di Federico 10afbdf0a4SAlessandro Di Federico# Duplicate deb line as deb-src 11afbdf0a4SAlessandro Di FedericoRUN cat /etc/apt/sources.list | sed "s/^deb\ /deb-src /" >> /etc/apt/sources.list 12b9052d36SMukilan ThiyagarajanRUN apt-get update && \ 13afbdf0a4SAlessandro Di Federico DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \ 14b9052d36SMukilan Thiyagarajan DEBIAN_FRONTEND=noninteractive eatmydata \ 15b9052d36SMukilan Thiyagarajan# Install common build utilities 16b9052d36SMukilan Thiyagarajan apt-get install -y --no-install-recommends \ 17b9052d36SMukilan Thiyagarajan curl \ 182f7350cdSDaniel P. Berrangé ccache \ 19b9052d36SMukilan Thiyagarajan xz-utils \ 20b9052d36SMukilan Thiyagarajan ca-certificates \ 21b9052d36SMukilan Thiyagarajan bison \ 22b9052d36SMukilan Thiyagarajan flex \ 23b9052d36SMukilan Thiyagarajan git \ 24a22a4b29SJohn Snow ninja-build \ 257ace2193SPaolo Bonzini python3-pip \ 267ace2193SPaolo Bonzini python3-setuptools \ 277ace2193SPaolo Bonzini python3-venv \ 287ace2193SPaolo Bonzini python3-wheel && \ 29b9052d36SMukilan Thiyagarajan# Install QEMU build deps for use in CI 30afbdf0a4SAlessandro Di Federico DEBIAN_FRONTEND=noninteractive eatmydata \ 312f7350cdSDaniel P. Berrangé apt build-dep -yy --arch-only qemu && \ 322f7350cdSDaniel P. Berrangé mkdir -p /usr/libexec/ccache-wrappers && \ 332f7350cdSDaniel P. Berrangé ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/c++ && \ 342f7350cdSDaniel P. Berrangé ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ 352f7350cdSDaniel P. Berrangé ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \ 36*c1d822caSDaniel P. Berrangé ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc && \ 37*c1d822caSDaniel P. Berrangé dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt 38b9052d36SMukilan Thiyagarajan 397ace2193SPaolo BonziniRUN /usr/bin/pip3 install tomli 40b9052d36SMukilan Thiyagarajan 41b9052d36SMukilan ThiyagarajanENV TOOLCHAIN_INSTALL /opt 4217ed7cecSBrian CainENV TOOLCHAIN_RELEASE 12.Dec.2023 43b9052d36SMukilan ThiyagarajanENV TOOLCHAIN_BASENAME "clang+llvm-${TOOLCHAIN_RELEASE}-cross-hexagon-unknown-linux-musl" 4417ed7cecSBrian CainENV TOOLCHAIN_URL https://codelinaro.jfrog.io/artifactory/codelinaro-toolchain-for-hexagon/${TOOLCHAIN_RELEASE}/${TOOLCHAIN_BASENAME}.tar.xz 452f7350cdSDaniel P. BerrangéENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" 46b9052d36SMukilan Thiyagarajan 47b9052d36SMukilan ThiyagarajanRUN curl -#SL "$TOOLCHAIN_URL" | tar -xJC "$TOOLCHAIN_INSTALL" 48b9052d36SMukilan ThiyagarajanENV PATH $PATH:${TOOLCHAIN_INSTALL}/${TOOLCHAIN_BASENAME}/x86_64-linux-gnu/bin 49bad7a275SDaniel P. BerrangéENV MAKE /usr/bin/make 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