summaryrefslogtreecommitdiffstats
path: root/src/ci/docker/host-x86_64/x86_64-gnu-llvm-16
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-19 09:26:03 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-19 09:26:03 +0000
commit9918693037dce8aa4bb6f08741b6812923486c18 (patch)
tree21d2b40bec7e6a7ea664acee056eb3d08e15a1cf /src/ci/docker/host-x86_64/x86_64-gnu-llvm-16
parentReleasing progress-linux version 1.75.0+dfsg1-5~progress7.99u1. (diff)
downloadrustc-9918693037dce8aa4bb6f08741b6812923486c18.tar.xz
rustc-9918693037dce8aa4bb6f08741b6812923486c18.zip
Merging upstream version 1.76.0+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/ci/docker/host-x86_64/x86_64-gnu-llvm-16')
-rw-r--r--src/ci/docker/host-x86_64/x86_64-gnu-llvm-16/Dockerfile5
-rwxr-xr-xsrc/ci/docker/host-x86_64/x86_64-gnu-llvm-16/script.sh49
2 files changed, 53 insertions, 1 deletions
diff --git a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-16/Dockerfile b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-16/Dockerfile
index c177e7387..f4850715e 100644
--- a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-16/Dockerfile
+++ b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-16/Dockerfile
@@ -24,8 +24,11 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
xz-utils \
nodejs \
mingw-w64 \
+ libgccjit-12-dev \
&& rm -rf /var/lib/apt/lists/*
+# Note: libgccjit needs to match the default gcc version for the linker to find it.
+
# Install powershell (universal package) so we can test x.ps1 on Linux
RUN curl -sL "https://github.com/PowerShell/PowerShell/releases/download/v7.3.1/powershell_7.3.1-1.deb_amd64.deb" > powershell.deb && \
dpkg -i powershell.deb && \
@@ -49,6 +52,6 @@ ENV RUST_CONFIGURE_ARGS \
--enable-llvm-link-shared \
--set rust.thin-lto-import-instr-limit=10
-COPY host-x86_64/x86_64-gnu-llvm-15/script.sh /tmp/
+COPY host-x86_64/x86_64-gnu-llvm-16/script.sh /tmp/
ENV SCRIPT /tmp/script.sh
diff --git a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-16/script.sh b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-16/script.sh
new file mode 100755
index 000000000..2eb751ca3
--- /dev/null
+++ b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-16/script.sh
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+set -ex
+
+# Only run the stage 1 tests on merges, not on PR CI jobs.
+if [[ -z "${PR_CI_JOB}" ]]; then
+ # When running gcc backend tests, we need to install `libgccjit` and to not run llvm codegen
+ # tests as it will fail them.
+ if [[ "${ENABLE_GCC_CODEGEN}" == "1" ]]; then
+ ../x.py --stage 1 test --skip src/tools/tidy --skip tests/codegen
+ else
+ ../x.py --stage 1 test --skip src/tools/tidy
+ fi
+
+ # Run the `mir-opt` tests again but this time for a 32-bit target.
+ # This enforces that tests using `// EMIT_MIR_FOR_EACH_BIT_WIDTH` have
+ # both 32-bit and 64-bit outputs updated by the PR author, before
+ # the PR is approved and tested for merging.
+ # It will also detect tests lacking `// EMIT_MIR_FOR_EACH_BIT_WIDTH`,
+ # despite having different output on 32-bit vs 64-bit targets.
+ ../x.py --stage 1 test tests/mir-opt --host='' --target=i686-unknown-linux-gnu
+
+ # Run `ui-fulldeps` in `--stage=1`, which actually uses the stage0
+ # compiler, and is sensitive to the addition of new flags.
+ ../x.py --stage 1 test tests/ui-fulldeps
+fi
+
+# When running gcc backend tests, we need to install `libgccjit` and to not run llvm codegen
+# tests as it will fail them.
+# NOTE: intentionally uses all of `x.py`, `x`, and `x.ps1` to make sure they all work on Linux.
+if [[ "${ENABLE_GCC_CODEGEN}" == "1" ]]; then
+ ../x.py --stage 2 test --skip src/tools/tidy --skip tests/codegen
+else
+ ../x.py --stage 2 test --skip src/tools/tidy
+fi
+
+# Run the `mir-opt` tests again but this time for a 32-bit target.
+# This enforces that tests using `// EMIT_MIR_FOR_EACH_BIT_WIDTH` have
+# both 32-bit and 64-bit outputs updated by the PR author, before
+# the PR is approved and tested for merging.
+# It will also detect tests lacking `// EMIT_MIR_FOR_EACH_BIT_WIDTH`,
+# despite having different output on 32-bit vs 64-bit targets.
+../x --stage 2 test tests/mir-opt --host='' --target=i686-unknown-linux-gnu
+
+# Run the UI test suite again, but in `--pass=check` mode
+#
+# This is intended to make sure that both `--pass=check` continues to
+# work.
+../x.ps1 --stage 2 test tests/ui --pass=check --host='' --target=i686-unknown-linux-gnu