From 960ec52bcfb697e8db2124c20e5477d3de13c165 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Tue, 20 Aug 2024 16:13:55 -0700 Subject: [PATCH] ci: add a runner for vanilla LLVM 19 --- .../host-x86_64/x86_64-gnu-llvm-19/Dockerfile | 62 +++++++++++++++++++ src/ci/github-actions/jobs.yml | 5 ++ 2 files changed, 67 insertions(+) create mode 100644 src/ci/docker/host-x86_64/x86_64-gnu-llvm-19/Dockerfile diff --git a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-19/Dockerfile b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-19/Dockerfile new file mode 100644 index 0000000000000..44328b078ad41 --- /dev/null +++ b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-19/Dockerfile @@ -0,0 +1,62 @@ +FROM ubuntu:24.10 + +ARG DEBIAN_FRONTEND=noninteractive + +RUN apt-get update && apt-get install -y --no-install-recommends \ + g++ \ + gcc-multilib \ + make \ + ninja-build \ + file \ + curl \ + ca-certificates \ + python3 \ + git \ + cmake \ + sudo \ + gdb \ + llvm-19-tools \ + llvm-19-dev \ + libedit-dev \ + libssl-dev \ + pkg-config \ + zlib1g-dev \ + xz-utils \ + nodejs \ + mingw-w64 \ + # libgccjit dependencies + flex \ + libmpfr-dev \ + libgmp-dev \ + libmpc3 \ + libmpc-dev \ + && rm -rf /var/lib/apt/lists/* + +# Install powershell (universal package) so we can test x.ps1 on Linux +# FIXME: need a "universal" version that supports libicu74, but for now it still works to ignore that dep. +RUN curl -sL "https://github.com/PowerShell/PowerShell/releases/download/v7.3.1/powershell_7.3.1-1.deb_amd64.deb" > powershell.deb && \ + dpkg --ignore-depends=libicu72 -i powershell.deb && \ + rm -f powershell.deb + +COPY scripts/sccache.sh /scripts/ +RUN sh /scripts/sccache.sh + +# We are disabling CI LLVM since this builder is intentionally using a host +# LLVM, rather than the typical src/llvm-project LLVM. +ENV NO_DOWNLOAD_CI_LLVM 1 +ENV EXTERNAL_LLVM 1 + +# Using llvm-link-shared due to libffi issues -- see #34486 +ENV RUST_CONFIGURE_ARGS \ + --build=x86_64-unknown-linux-gnu \ + --llvm-root=/usr/lib/llvm-19 \ + --enable-llvm-link-shared \ + --set rust.thin-lto-import-instr-limit=10 + +COPY host-x86_64/dist-x86_64-linux/shared.sh /scripts/ +COPY host-x86_64/dist-x86_64-linux/build-gccjit.sh /scripts/ + +RUN /scripts/build-gccjit.sh /scripts + +COPY scripts/x86_64-gnu-llvm.sh /tmp/script.sh +ENV SCRIPT /tmp/script.sh diff --git a/src/ci/github-actions/jobs.yml b/src/ci/github-actions/jobs.yml index 4de44c6dd39d7..c5fde010bc669 100644 --- a/src/ci/github-actions/jobs.yml +++ b/src/ci/github-actions/jobs.yml @@ -247,6 +247,11 @@ auto: - image: x86_64-gnu-distcheck <<: *job-linux-8c + - image: x86_64-gnu-llvm-19 + env: + RUST_BACKTRACE: 1 + <<: *job-linux-8c + - image: x86_64-gnu-llvm-18 env: RUST_BACKTRACE: 1