Skip to content

Commit 5fe3528

Browse files
committed
Auto merge of rust-lang#110242 - cuviper:vanilla-llvm-16, r=Mark-Simulacrum
ci: add a runner for vanilla LLVM 16 Like rust-lang#107044, this will let us track compatibility with LLVM 16 going forward, especially after we eventually upgrade our own to the next. This also drops `tidy` here and in `x86_64-gnu-llvm-15`, syncing with that change in rust-lang#106085.
2 parents 74864fa + 6fe2406 commit 5fe3528

File tree

7 files changed

+81
-7
lines changed

7 files changed

+81
-7
lines changed

.github/workflows/ci.yml

+4
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,10 @@ jobs:
292292
- name: x86_64-gnu-distcheck
293293
os: ubuntu-20.04-8core-32gb
294294
env: {}
295+
- name: x86_64-gnu-llvm-16
296+
env:
297+
RUST_BACKTRACE: 1
298+
os: ubuntu-20.04-8core-32gb
295299
- name: x86_64-gnu-llvm-15
296300
env:
297301
RUST_BACKTRACE: 1

src/ci/docker/host-x86_64/dist-x86_64-illumos/Dockerfile

+3-2
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,13 @@ RUN sed -i 's/^# deb-src/deb-src/' /etc/apt/sources.list
66
COPY scripts/cross-apt-packages.sh /tmp/
77
RUN bash /tmp/cross-apt-packages.sh
88

9-
# Required for cross-build gcc
9+
# Required for cross-build gcc, and we install python2 to test general compatibility.
1010
RUN apt-get update && \
1111
apt-get install -y --no-install-recommends \
1212
libgmp-dev \
1313
libmpfr-dev \
1414
libmpc-dev \
15+
python2.7 \
1516
&& rm -rf /var/lib/apt/lists/*
1617

1718
COPY scripts/illumos-toolchain.sh /tmp/
@@ -35,4 +36,4 @@ ENV \
3536
ENV HOSTS=x86_64-unknown-illumos
3637

3738
ENV RUST_CONFIGURE_ARGS --enable-extended --disable-docs
38-
ENV SCRIPT python3 ../x.py dist --host $HOSTS --target $HOSTS
39+
ENV SCRIPT python2.7 ../x.py dist --host $HOSTS --target $HOSTS

src/ci/docker/host-x86_64/x86_64-gnu-llvm-15/Dockerfile

+1-5
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ FROM ubuntu:22.10
22

33
ARG DEBIAN_FRONTEND=noninteractive
44

5-
# NOTE: intentionally installs both python2 and python3 so we can test support for both.
65
RUN apt-get update && apt-get install -y --no-install-recommends \
76
g++ \
87
gcc-multilib \
@@ -11,7 +10,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
1110
file \
1211
curl \
1312
ca-certificates \
14-
python2.7 \
1513
python3 \
1614
git \
1715
cmake \
@@ -63,6 +61,4 @@ ENV SCRIPT ../x.py --stage 2 test --exclude src/tools/tidy && \
6361
# work.
6462
#
6563
../x.ps1 --stage 2 test tests/ui --pass=check \
66-
--host='' --target=i686-unknown-linux-gnu && \
67-
# Run tidy at the very end, after all the other tests.
68-
python2.7 ../x.py --stage 2 test src/tools/tidy
64+
--host='' --target=i686-unknown-linux-gnu
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
FROM ubuntu:23.04
2+
3+
ARG DEBIAN_FRONTEND=noninteractive
4+
5+
RUN apt-get update && apt-get install -y --no-install-recommends \
6+
g++ \
7+
gcc-multilib \
8+
make \
9+
ninja-build \
10+
file \
11+
curl \
12+
ca-certificates \
13+
python3 \
14+
git \
15+
cmake \
16+
sudo \
17+
gdb \
18+
llvm-16-tools \
19+
llvm-16-dev \
20+
libedit-dev \
21+
libssl-dev \
22+
pkg-config \
23+
zlib1g-dev \
24+
xz-utils \
25+
nodejs \
26+
mingw-w64 \
27+
&& rm -rf /var/lib/apt/lists/*
28+
29+
# Install powershell (universal package) so we can test x.ps1 on Linux
30+
RUN curl -sL "https://github.com/PowerShell/PowerShell/releases/download/v7.3.1/powershell_7.3.1-1.deb_amd64.deb" > powershell.deb && \
31+
dpkg -i powershell.deb && \
32+
rm -f powershell.deb
33+
34+
COPY scripts/sccache.sh /scripts/
35+
RUN sh /scripts/sccache.sh
36+
37+
# We are disabling CI LLVM since this builder is intentionally using a host
38+
# LLVM, rather than the typical src/llvm-project LLVM.
39+
ENV NO_DOWNLOAD_CI_LLVM 1
40+
41+
# Using llvm-link-shared due to libffi issues -- see #34486
42+
ENV RUST_CONFIGURE_ARGS \
43+
--build=x86_64-unknown-linux-gnu \
44+
--llvm-root=/usr/lib/llvm-16 \
45+
--enable-llvm-link-shared \
46+
--set rust.thin-lto-import-instr-limit=10
47+
48+
# NOTE: intentionally uses all of `x.py`, `x`, and `x.ps1` to make sure they all work on Linux.
49+
ENV SCRIPT ../x.py --stage 2 test --exclude src/tools/tidy && \
50+
# Run the `mir-opt` tests again but this time for a 32-bit target.
51+
# This enforces that tests using `// EMIT_MIR_FOR_EACH_BIT_WIDTH` have
52+
# both 32-bit and 64-bit outputs updated by the PR author, before
53+
# the PR is approved and tested for merging.
54+
# It will also detect tests lacking `// EMIT_MIR_FOR_EACH_BIT_WIDTH`,
55+
# despite having different output on 32-bit vs 64-bit targets.
56+
../x --stage 2 test tests/mir-opt \
57+
--host='' --target=i686-unknown-linux-gnu && \
58+
# Run the UI test suite again, but in `--pass=check` mode
59+
#
60+
# This is intended to make sure that both `--pass=check` continues to
61+
# work.
62+
#
63+
../x.ps1 --stage 2 test tests/ui --pass=check \
64+
--host='' --target=i686-unknown-linux-gnu

src/ci/github-actions/ci.yml

+5
Original file line numberDiff line numberDiff line change
@@ -457,6 +457,11 @@ jobs:
457457
- name: x86_64-gnu-distcheck
458458
<<: *job-linux-8c
459459

460+
- name: x86_64-gnu-llvm-16
461+
env:
462+
RUST_BACKTRACE: 1
463+
<<: *job-linux-8c
464+
460465
- name: x86_64-gnu-llvm-15
461466
env:
462467
RUST_BACKTRACE: 1

tests/codegen/option-as-slice.rs

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
// compile-flags: -O -Z randomize-layout=no
22
// only-x86_64
3+
// ignore-llvm-version: 16.0.0
4+
// ^ needs https://reviews.llvm.org/D146149 in 16.0.1
35

46
#![crate_type = "lib"]
57
#![feature(option_as_slice)]

tests/debuginfo/unsized.rs

+2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
// compile-flags:-g
2+
// ignore-gdb-version: 13.1 - 99.0
3+
// ^ https://sourceware.org/bugzilla/show_bug.cgi?id=30330
24

35
// === GDB TESTS ===================================================================================
46

0 commit comments

Comments
 (0)