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++ && \ 362f7350cdSDaniel P. Berrangé ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc 37b9052d36SMukilan Thiyagarajan 387ace2193SPaolo BonziniRUN /usr/bin/pip3 install tomli 39b9052d36SMukilan Thiyagarajan 40b9052d36SMukilan ThiyagarajanENV TOOLCHAIN_INSTALL /opt 4117ed7cecSBrian CainENV TOOLCHAIN_RELEASE 12.Dec.2023 42b9052d36SMukilan ThiyagarajanENV TOOLCHAIN_BASENAME "clang+llvm-${TOOLCHAIN_RELEASE}-cross-hexagon-unknown-linux-musl" 4317ed7cecSBrian CainENV TOOLCHAIN_URL https://codelinaro.jfrog.io/artifactory/codelinaro-toolchain-for-hexagon/${TOOLCHAIN_RELEASE}/${TOOLCHAIN_BASENAME}.tar.xz 442f7350cdSDaniel P. BerrangéENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" 45b9052d36SMukilan Thiyagarajan 46b9052d36SMukilan ThiyagarajanRUN curl -#SL "$TOOLCHAIN_URL" | tar -xJC "$TOOLCHAIN_INSTALL" 47b9052d36SMukilan ThiyagarajanENV PATH $PATH:${TOOLCHAIN_INSTALL}/${TOOLCHAIN_BASENAME}/x86_64-linux-gnu/bin 48*bad7a275SDaniel P. BerrangéENV MAKE /usr/bin/make 4993bd2954SAlex Bennée# As a final step configure the user (if env is defined) 5093bd2954SAlex BennéeARG USER 5193bd2954SAlex BennéeARG UID 5293bd2954SAlex BennéeRUN if [ "${USER}" ]; then \ 5393bd2954SAlex Bennée id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi 54