|
| 1 | +FROM ubuntu:25.04 |
| 2 | + |
| 3 | +ARG DEBIAN_FRONTEND=noninteractive |
| 4 | + |
| 5 | +RUN apt-get update && apt-get install -y --no-install-recommends \ |
| 6 | + bzip2 \ |
| 7 | + g++ \ |
| 8 | + gcc-multilib \ |
| 9 | + make \ |
| 10 | + ninja-build \ |
| 11 | + file \ |
| 12 | + curl \ |
| 13 | + ca-certificates \ |
| 14 | + python3 \ |
| 15 | + git \ |
| 16 | + cmake \ |
| 17 | + sudo \ |
| 18 | + gdb \ |
| 19 | + llvm-20-tools \ |
| 20 | + llvm-20-dev \ |
| 21 | + libedit-dev \ |
| 22 | + libssl-dev \ |
| 23 | + pkg-config \ |
| 24 | + zlib1g-dev \ |
| 25 | + xz-utils \ |
| 26 | + nodejs \ |
| 27 | + mingw-w64 \ |
| 28 | + # libgccjit dependencies |
| 29 | + flex \ |
| 30 | + libmpfr-dev \ |
| 31 | + libgmp-dev \ |
| 32 | + libmpc3 \ |
| 33 | + libmpc-dev \ |
| 34 | + && rm -rf /var/lib/apt/lists/* |
| 35 | + |
| 36 | +# Install powershell (universal package) so we can test x.ps1 on Linux |
| 37 | +# FIXME: need a "universal" version that supports libicu74, but for now it still works to ignore that dep. |
| 38 | +RUN curl -sL "https://github.com/PowerShell/PowerShell/releases/download/v7.3.1/powershell_7.3.1-1.deb_amd64.deb" > powershell.deb && \ |
| 39 | + dpkg --ignore-depends=libicu72 -i powershell.deb && \ |
| 40 | + rm -f powershell.deb |
| 41 | + |
| 42 | +COPY scripts/sccache.sh /scripts/ |
| 43 | +RUN sh /scripts/sccache.sh |
| 44 | + |
| 45 | +# We are disabling CI LLVM since this builder is intentionally using a host |
| 46 | +# LLVM, rather than the typical src/llvm-project LLVM. |
| 47 | +ENV NO_DOWNLOAD_CI_LLVM 1 |
| 48 | +ENV EXTERNAL_LLVM 1 |
| 49 | + |
| 50 | +# Using llvm-link-shared due to libffi issues -- see #34486 |
| 51 | +ENV RUST_CONFIGURE_ARGS \ |
| 52 | + --build=x86_64-unknown-linux-gnu \ |
| 53 | + --llvm-root=/usr/lib/llvm-20 \ |
| 54 | + --enable-llvm-link-shared \ |
| 55 | + --set rust.randomize-layout=true \ |
| 56 | + --set rust.thin-lto-import-instr-limit=10 |
| 57 | + |
| 58 | +COPY scripts/shared.sh /scripts/ |
| 59 | + |
| 60 | +ARG SCRIPT_ARG |
| 61 | + |
| 62 | +COPY scripts/add_dummy_commit.sh /tmp/ |
| 63 | +COPY scripts/x86_64-gnu-llvm.sh /tmp/ |
| 64 | +COPY scripts/x86_64-gnu-llvm2.sh /tmp/ |
| 65 | +COPY scripts/x86_64-gnu-llvm3.sh /tmp/ |
| 66 | +COPY scripts/stage_2_test_set1.sh /tmp/ |
| 67 | +COPY scripts/stage_2_test_set2.sh /tmp/ |
| 68 | + |
| 69 | +ENV SCRIPT "/tmp/add_dummy_commit.sh && /tmp/${SCRIPT_ARG}" |
0 commit comments