xref: /qemu/tests/docker/dockerfiles/debian-hexagon-cross.docker (revision afbdf0a44eaf6d529ec1e5250178d025f15aa606)
1*afbdf0a4SAlessandro Di Federico#
2*afbdf0a4SAlessandro Di Federico# Docker Hexagon cross-compiler target
3*afbdf0a4SAlessandro Di Federico#
4*afbdf0a4SAlessandro Di Federico# This docker target is used for building hexagon tests. As it also
5*afbdf0a4SAlessandro Di Federico# needs to be able to build QEMU itself in CI we include it's
6*afbdf0a4SAlessandro Di Federico# build-deps. It is also a "stand-alone" image so as not to be
7*afbdf0a4SAlessandro Di Federico# triggered by re-builds on other base images given it takes a long
8*afbdf0a4SAlessandro Di Federico# time to build.
9*afbdf0a4SAlessandro Di Federico#
10*afbdf0a4SAlessandro Di FedericoFROM qemu/debian10
11*afbdf0a4SAlessandro Di Federico
12*afbdf0a4SAlessandro Di Federico# Install common build utilities
13*afbdf0a4SAlessandro Di FedericoRUN apt update && \
14*afbdf0a4SAlessandro Di Federico    DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
15*afbdf0a4SAlessandro Di Federico    DEBIAN_FRONTEND=noninteractive eatmydata \
16*afbdf0a4SAlessandro Di Federico    apt install -y --no-install-recommends \
17*afbdf0a4SAlessandro Di Federico        bison \
18*afbdf0a4SAlessandro Di Federico        cmake \
19*afbdf0a4SAlessandro Di Federico        flex \
20*afbdf0a4SAlessandro Di Federico        lld \
21*afbdf0a4SAlessandro Di Federico        rsync \
22*afbdf0a4SAlessandro Di Federico        wget
23*afbdf0a4SAlessandro Di Federico
24*afbdf0a4SAlessandro Di FedericoENV TOOLCHAIN_INSTALL /usr/local
25*afbdf0a4SAlessandro Di FedericoENV ROOTFS /usr/local
26*afbdf0a4SAlessandro Di Federico
27*afbdf0a4SAlessandro Di FedericoENV LLVM_URL https://github.com/llvm/llvm-project/archive/bfcd21876adc3498065e4da92799f613e730d475.tar.gz
28*afbdf0a4SAlessandro Di FedericoENV MUSL_URL https://github.com/quic/musl/archive/aff74b395fbf59cd7e93b3691905aa1af6c0778c.tar.gz
29*afbdf0a4SAlessandro Di FedericoENV LINUX_URL https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.6.18.tar.xz
30*afbdf0a4SAlessandro Di Federico
31*afbdf0a4SAlessandro Di FedericoADD build-toolchain.sh /root/hexagon-toolchain/build-toolchain.sh
32*afbdf0a4SAlessandro Di Federico
33*afbdf0a4SAlessandro Di FedericoRUN cd /root/hexagon-toolchain && ./build-toolchain.sh
34*afbdf0a4SAlessandro Di Federico
35*afbdf0a4SAlessandro Di FedericoFROM debian:buster-slim
36*afbdf0a4SAlessandro Di Federico# Duplicate deb line as deb-src
37*afbdf0a4SAlessandro Di FedericoRUN cat /etc/apt/sources.list | sed "s/^deb\ /deb-src /" >> /etc/apt/sources.list
38*afbdf0a4SAlessandro Di Federico# Install QEMU build deps for use in CI
39*afbdf0a4SAlessandro Di FedericoRUN apt update && \
40*afbdf0a4SAlessandro Di Federico    DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
41*afbdf0a4SAlessandro Di Federico    DEBIAN_FRONTEND=noninteractive eatmydata apt install -yy git ninja-build && \
42*afbdf0a4SAlessandro Di Federico    DEBIAN_FRONTEND=noninteractive eatmydata \
43*afbdf0a4SAlessandro Di Federico    apt build-dep -yy --arch-only qemu
44*afbdf0a4SAlessandro Di FedericoCOPY --from=0 /usr/local /usr/local
45*afbdf0a4SAlessandro Di FedericoENV PATH $PATH:/usr/local/bin/
46