| # |
| # Docker Hexagon cross-compiler target |
| # |
| # This docker target is used for building hexagon tests. As it also |
| # needs to be able to build QEMU itself in CI we include its |
| # build-deps. |
| # |
| FROM docker.io/library/debian:11-slim |
| |
| # Install common build utilities |
| RUN apt update && \ |
| DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \ |
| DEBIAN_FRONTEND=noninteractive eatmydata \ |
| apt install -y --no-install-recommends \ |
| bison \ |
| ca-certificates \ |
| clang \ |
| cmake \ |
| flex \ |
| gcc \ |
| lld \ |
| make \ |
| ninja-build \ |
| python3 \ |
| rsync \ |
| wget \ |
| xz-utils |
| |
| ENV TOOLCHAIN_INSTALL /usr/local |
| ENV ROOTFS /usr/local |
| |
| ENV LLVM_URL https://github.com/llvm/llvm-project/archive/bfcd21876adc3498065e4da92799f613e730d475.tar.gz |
| ENV MUSL_URL https://github.com/quic/musl/archive/aff74b395fbf59cd7e93b3691905aa1af6c0778c.tar.gz |
| ENV LINUX_URL https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.6.18.tar.xz |
| |
| ADD build-toolchain.sh /root/hexagon-toolchain/build-toolchain.sh |
| |
| RUN cd /root/hexagon-toolchain && ./build-toolchain.sh |
| |
| FROM docker.io/library/debian:11-slim |
| # Duplicate deb line as deb-src |
| RUN cat /etc/apt/sources.list | sed "s/^deb\ /deb-src /" >> /etc/apt/sources.list |
| # Install QEMU build deps for use in CI |
| RUN apt update && \ |
| DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \ |
| DEBIAN_FRONTEND=noninteractive eatmydata apt install -yy bison flex git ninja-build && \ |
| DEBIAN_FRONTEND=noninteractive eatmydata \ |
| apt build-dep -yy --arch-only qemu |
| COPY --from=0 /usr/local /usr/local |
| ENV PATH $PATH:/usr/local/bin/ |