1#
2# Docker Hexagon cross-compiler target
3#
4# This docker target is used for building hexagon tests. As it also
5# needs to be able to build QEMU itself in CI we include its
6# build-deps.
7#
8FROM docker.io/library/debian:11-slim
9
10# Install common build utilities
11RUN apt update && \
12    DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
13    DEBIAN_FRONTEND=noninteractive eatmydata \
14    apt install -y --no-install-recommends \
15        bison \
16        ca-certificates \
17        clang \
18        cmake \
19        flex \
20        gcc \
21        lld \
22        make \
23        ninja-build \
24        python3 \
25        rsync \
26        wget \
27        xz-utils
28
29ENV TOOLCHAIN_INSTALL /usr/local
30ENV ROOTFS /usr/local
31
32ENV LLVM_URL https://github.com/llvm/llvm-project/archive/bfcd21876adc3498065e4da92799f613e730d475.tar.gz
33ENV MUSL_URL https://github.com/quic/musl/archive/aff74b395fbf59cd7e93b3691905aa1af6c0778c.tar.gz
34ENV LINUX_URL https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.6.18.tar.xz
35
36ADD build-toolchain.sh /root/hexagon-toolchain/build-toolchain.sh
37
38RUN cd /root/hexagon-toolchain && ./build-toolchain.sh
39
40FROM docker.io/library/debian:11-slim
41# Duplicate deb line as deb-src
42RUN cat /etc/apt/sources.list | sed "s/^deb\ /deb-src /" >> /etc/apt/sources.list
43# Install QEMU build deps for use in CI
44RUN apt update && \
45    DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
46    DEBIAN_FRONTEND=noninteractive eatmydata apt install -yy git ninja-build && \
47    DEBIAN_FRONTEND=noninteractive eatmydata \
48    apt build-dep -yy --arch-only qemu
49COPY --from=0 /usr/local /usr/local
50ENV PATH $PATH:/usr/local/bin/
51