]> git.proxmox.com Git - rustc.git/blob - src/ci/docker/host-x86_64/test-various/Dockerfile
New upstream version 1.67.1+dfsg1
[rustc.git] / src / ci / docker / host-x86_64 / test-various / Dockerfile
1 FROM ubuntu:20.04
2
3 RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
4 clang-11 \
5 g++ \
6 make \
7 ninja-build \
8 file \
9 curl \
10 ca-certificates \
11 python3 \
12 git \
13 cmake \
14 sudo \
15 gdb \
16 libssl-dev \
17 pkg-config \
18 xz-utils \
19 wget \
20 patch \
21 ovmf \
22 qemu-efi-aarch64 \
23 qemu-system-arm \
24 qemu-system-x86 \
25 && rm -rf /var/lib/apt/lists/*
26
27 RUN curl -sL https://nodejs.org/dist/v15.14.0/node-v15.14.0-linux-x64.tar.xz | \
28 tar -xJ
29
30 # Install 32-bit OVMF files for the i686-unknown-uefi test. This package
31 # is not available in ubuntu 20.04, so download a 22.04 package.
32 RUN curl -sL --output ovmf-ia32.deb http://mirrors.kernel.org/ubuntu/pool/universe/e/edk2/ovmf-ia32_2022.02-3_all.deb
33 RUN dpkg -i ovmf-ia32.deb && rm ovmf-ia32.deb
34
35 WORKDIR /build/
36 COPY scripts/musl-patch-configure.diff /build/
37 COPY scripts/musl-toolchain.sh /build/
38 RUN bash musl-toolchain.sh x86_64 && rm -rf build
39 WORKDIR /
40
41 COPY scripts/sccache.sh /scripts/
42 RUN sh /scripts/sccache.sh
43
44 # We are disabling CI LLVM since this builder needs to build LLD, which is
45 # currently unsupported when downloading pre-built LLVM.
46 ENV NO_DOWNLOAD_CI_LLVM 1
47
48 ENV RUST_CONFIGURE_ARGS \
49 --musl-root-x86_64=/usr/local/x86_64-linux-musl \
50 --set build.nodejs=/node-v15.14.0-linux-x64/bin/node \
51 --set rust.lld
52
53 # Some run-make tests have assertions about code size, and enabling debug
54 # assertions in libstd causes the binary to be much bigger than it would
55 # otherwise normally be. We already test libstd with debug assertions in lots of
56 # other contexts as well
57 ENV NO_DEBUG_ASSERTIONS=1
58 ENV NO_OVERFLOW_CHECKS=1
59
60 ENV WASM_TARGETS=wasm32-unknown-unknown
61 ENV WASM_SCRIPT python3 /checkout/x.py --stage 2 test --host='' --target $WASM_TARGETS \
62 src/test/run-make \
63 src/test/ui \
64 src/test/mir-opt \
65 src/test/codegen-units \
66 library/core
67
68 ENV NVPTX_TARGETS=nvptx64-nvidia-cuda
69 ENV NVPTX_SCRIPT python3 /checkout/x.py --stage 2 test --host='' --target $NVPTX_TARGETS \
70 src/test/run-make \
71 src/test/assembly
72
73 ENV MUSL_TARGETS=x86_64-unknown-linux-musl \
74 CC_x86_64_unknown_linux_musl=x86_64-linux-musl-gcc \
75 CXX_x86_64_unknown_linux_musl=x86_64-linux-musl-g++
76 ENV MUSL_SCRIPT python3 /checkout/x.py --stage 2 test --host='' --target $MUSL_TARGETS
77
78 COPY host-x86_64/test-various/uefi_qemu_test /uefi_qemu_test
79 ENV UEFI_TARGETS=aarch64-unknown-uefi,i686-unknown-uefi,x86_64-unknown-uefi \
80 CC_aarch64_unknown_uefi=clang-11 \
81 CXX_aarch64_unknown_uefi=clang++-11 \
82 CC_i686_unknown_uefi=clang-11 \
83 CXX_i686_unknown_uefi=clang++-11 \
84 CC_x86_64_unknown_uefi=clang-11 \
85 CXX_x86_64_unknown_uefi=clang++-11
86 ENV UEFI_SCRIPT python3 /checkout/x.py --stage 2 build --host='' --target $UEFI_TARGETS && \
87 python3 -u /uefi_qemu_test/run.py
88
89 ENV SCRIPT $WASM_SCRIPT && $NVPTX_SCRIPT && $MUSL_SCRIPT && $UEFI_SCRIPT