From 0df5250e922565b92f199dba58435a5753f2dc13 Mon Sep 17 00:00:00 2001 From: xonx <119700621+xonx4l@users.noreply.github.com> Date: Sat, 9 May 2026 10:17:25 +0000 Subject: [PATCH 01/17] port-intrinsic-test --- src/bootstrap/src/core/build_steps/test.rs | 65 +++++++++++++++++++ src/bootstrap/src/core/build_steps/tool.rs | 1 + .../builder/cli_paths/snapshots/x_test.snap | 3 + .../cli_paths/snapshots/x_test_library.snap | 4 ++ .../snapshots/x_test_skip_coverage.snap | 3 + .../snapshots/x_test_skip_tests.snap | 3 + src/bootstrap/src/core/builder/mod.rs | 1 + .../host-aarch64/aarch64-gnu/Dockerfile | 2 + .../docker/host-x86_64/x86_64-gnu/Dockerfile | 8 +++ 9 files changed, 90 insertions(+) diff --git a/src/bootstrap/src/core/build_steps/test.rs b/src/bootstrap/src/core/build_steps/test.rs index 25b9d74417bba..009c4e21cc784 100644 --- a/src/bootstrap/src/core/build_steps/test.rs +++ b/src/bootstrap/src/core/build_steps/test.rs @@ -957,6 +957,71 @@ impl Step for StdarchVerify { } } +#[derive(Debug, Clone, PartialEq, Eq, Hash)] +pub struct IntrinsicTest { + host: TargetSelection, +} + +impl Step for IntrinsicTest { + type Output = (); + const IS_HOST: bool = true; + + fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> { + run.path("library/stdarch/crates/intrinsic-test") + } + + fn is_default_step(_builder: &Builder<'_>) -> bool { + true + } + + fn make_run(run: RunConfig<'_>) { + run.builder.ensure(IntrinsicTest { host: run.target }); + } + + fn run(self, builder: &Builder<'_>) { + let host = self.host; + + let (input_file, skip_file, runner, cppflags) = if host.contains("x86_64-unknown-linux") { + let cpuid_def = + builder.src.join("library/stdarch/ci/docker/x86_64-unknown-linux-gnu/cpuid.def"); + let runner = format!( + "/intel-sde/sde64 -cpuid-in {} -rtm-mode full -tsx --", + cpuid_def.display() + ); + ( + builder.src.join("library/stdarch/intrinsics_data/x86-intel.xml"), + builder.src.join("library/stdarch/crates/intrinsic-test/missing_x86.txt"), + runner, + String::from("-fuse-ld=lld -I/usr/include/x86_64-linux-gnu/"), + ) + } else if host.contains("aarch64-unknown-linux") { + ( + builder.src.join("library/stdarch/intrinsics_data/arm_intrinsics.json"), + builder.src.join("library/stdarch/crates/intrinsic-test/missing_aarch64.txt"), + String::from("env"), + String::from("-fuse-ld=lld"), + ) + } else { + return; + }; + + let out_dir = builder.out.join(host).join("intrinsic-test"); + t!(fs::create_dir_all(&out_dir)); + + let mut cmd = builder.tool_cmd(Tool::IntrinsicTest); + cmd.current_dir(&out_dir); + cmd.arg(&input_file); + cmd.arg("--target").arg(&*host.triple); + cmd.arg("--cppcompiler").arg("clang++"); + cmd.arg("--runner").arg(&runner); + cmd.arg("--skip").arg(&skip_file); + cmd.arg("--sample-percentage").arg("10"); + cmd.env("CPPFLAGS", &cppflags); + + cmd.delay_failure().run(builder); + } +} + #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct Clippy { compilers: RustcPrivateCompilers, diff --git a/src/bootstrap/src/core/build_steps/tool.rs b/src/bootstrap/src/core/build_steps/tool.rs index a75d5e4db8998..b5d915d51dea0 100644 --- a/src/bootstrap/src/core/build_steps/tool.rs +++ b/src/bootstrap/src/core/build_steps/tool.rs @@ -508,6 +508,7 @@ bootstrap_tool!( FeaturesStatusDump, "src/tools/features-status-dump", "features-status-dump"; OptimizedDist, "src/tools/opt-dist", "opt-dist", submodules = &["src/tools/rustc-perf"]; RunMakeSupport, "src/tools/run-make-support", "run_make_support", artifact_kind = ToolArtifactKind::Library; + IntrinsicTest, "library/stdarch/crates/intrinsic-test", "intrinsic-test", is_external_tool = true; ); /// These are the submodules that are required for rustbook to work due to diff --git a/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test.snap b/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test.snap index 60e8a219585c6..6471721d88e1a 100644 --- a/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test.snap +++ b/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test.snap @@ -181,6 +181,9 @@ expression: test [Test] test::RustcBook targets: [x86_64-unknown-linux-gnu] - Set({test::src/doc/rustc}) +[Test] test::IntrinsicTest + targets: [x86_64-unknown-linux-gnu] + - Set({test::library/stdarch/crates/intrinsic-test}) [Test] test::StdarchVerify targets: [x86_64-unknown-linux-gnu] - Set({test::library/stdarch/crates/stdarch-verify}) diff --git a/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_library.snap b/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_library.snap index f97bb839c1e73..49fa1bedac8d9 100644 --- a/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_library.snap +++ b/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_library.snap @@ -18,6 +18,10 @@ expression: test library - Set({test::library/sysroot}) - Set({test::library/test}) - Set({test::library/unwind}) +[Test] test::IntrinsicTest + targets: [x86_64-unknown-linux-gnu] + - Set({test::library/stdarch/crates/intrinsic-test}) [Test] test::StdarchVerify targets: [x86_64-unknown-linux-gnu] - Set({test::library/stdarch/crates/stdarch-verify}) + diff --git a/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_skip_coverage.snap b/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_skip_coverage.snap index fb83986445bea..d9485b77d26ee 100644 --- a/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_skip_coverage.snap +++ b/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_skip_coverage.snap @@ -180,6 +180,9 @@ expression: test --skip=coverage [Test] test::RustcBook targets: [x86_64-unknown-linux-gnu] - Set({test::src/doc/rustc}) +[Test] test::IntrinsicTest + targets: [x86_64-unknown-linux-gnu] + - Set({test::library/stdarch/crates/intrinsic-test}) [Test] test::StdarchVerify targets: [x86_64-unknown-linux-gnu] - Set({test::library/stdarch/crates/stdarch-verify}) diff --git a/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_skip_tests.snap b/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_skip_tests.snap index 3737272dd83a4..9d2b223bb4315 100644 --- a/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_skip_tests.snap +++ b/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_skip_tests.snap @@ -144,6 +144,9 @@ expression: test --skip=tests [Test] test::RustcBook targets: [x86_64-unknown-linux-gnu] - Set({test::src/doc/rustc}) +[Test] test::IntrinsicTest + targets: [x86_64-unknown-linux-gnu] + - Set({test::library/stdarch/crates/intrinsic-test}) [Test] test::StdarchVerify targets: [x86_64-unknown-linux-gnu] - Set({test::library/stdarch/crates/stdarch-verify}) diff --git a/src/bootstrap/src/core/builder/mod.rs b/src/bootstrap/src/core/builder/mod.rs index 2e640220efd8e..048fcc5c80145 100644 --- a/src/bootstrap/src/core/builder/mod.rs +++ b/src/bootstrap/src/core/builder/mod.rs @@ -911,6 +911,7 @@ impl<'a> Builder<'a> { test::Clippy, test::CompiletestTest, test::StdarchVerify, + test::IntrinsicTest, test::CrateRunMakeSupport, test::CrateBuildHelper, test::RustdocJSStd, diff --git a/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile b/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile index 87bfc0766fbd9..6fc0aa9b1fe7d 100644 --- a/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile +++ b/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile @@ -16,6 +16,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ libssl-dev \ pkg-config \ xz-utils \ + clang \ + lld \ && rm -rf /var/lib/apt/lists/* COPY scripts/sccache.sh /scripts/ diff --git a/src/ci/docker/host-x86_64/x86_64-gnu/Dockerfile b/src/ci/docker/host-x86_64/x86_64-gnu/Dockerfile index 7ca2dbb7d9f36..09fa00e188c5c 100644 --- a/src/ci/docker/host-x86_64/x86_64-gnu/Dockerfile +++ b/src/ci/docker/host-x86_64/x86_64-gnu/Dockerfile @@ -19,8 +19,16 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ mingw-w64 \ zlib1g-dev \ libzstd-dev \ + clang \ + lld \ && rm -rf /var/lib/apt/lists/* +# Install Intel SDE for AVX-512 emulation +RUN curl -L http://ci-mirrors.rust-lang.org/sde-external-10.8.0-2026-03-15-lin.tar.xz -o /tmp/sde.tar.xz \ + && mkdir -p /intel-sde \ + && tar -xJf /tmp/sde.tar.xz --strip-components=1 -C /intel-sde \ + && rm /tmp/sde.tar.xz + COPY scripts/sccache.sh /scripts/ RUN sh /scripts/sccache.sh From 51f2651884e4568bbef5631b15e4e2c2850329fc Mon Sep 17 00:00:00 2001 From: xonx <119700621+xonx4l@users.noreply.github.com> Date: Sat, 9 May 2026 12:06:00 +0000 Subject: [PATCH 02/17] bless tests --- src/bootstrap/src/core/builder/tests.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bootstrap/src/core/builder/tests.rs b/src/bootstrap/src/core/builder/tests.rs index 618129e27b8ad..5456efee3a7de 100644 --- a/src/bootstrap/src/core/builder/tests.rs +++ b/src/bootstrap/src/core/builder/tests.rs @@ -2138,6 +2138,7 @@ mod snapshot { [test] link-check [test] tier-check [test] rustc 0 -> rust-analyzer 1 + [build] rustc 0 -> IntrinsicTest 1 [build] rustc 0 -> RustdocTheme 1 [test] rustdoc-theme 1 [test] compiletest-rustdoc-ui 1 @@ -2321,6 +2322,7 @@ mod snapshot { [test] rustc 1 -> rust-analyzer 2 [doc] rustc (book) [test] rustc 1 -> lint-docs 2 + [build] rustc 0 -> IntrinsicTest 1 [build] rustc 0 -> RustdocTheme 1 [test] rustdoc-theme 2 [test] compiletest-rustdoc-ui 2 From 29612d06d38cdb153c20ca245589095ea33716ae Mon Sep 17 00:00:00 2001 From: xonx <119700621+xonx4l@users.noreply.github.com> Date: Sat, 9 May 2026 13:17:19 +0000 Subject: [PATCH 03/17] fix: create clang++ symlink on Ubuntu 25.10 for aarch64-gnu --- src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile b/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile index 6fc0aa9b1fe7d..52f914cd7f8af 100644 --- a/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile +++ b/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile @@ -18,7 +18,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ xz-utils \ clang \ lld \ - && rm -rf /var/lib/apt/lists/* + && rm -rf /var/lib/apt/lists/* \ + && ln -sf "$(ls /usr/bin/clang++-* | tail -1)" /usr/local/bin/clang++ COPY scripts/sccache.sh /scripts/ RUN sh /scripts/sccache.sh From 8c34814ceaa10e7e56960ab606a4f02e4a417c83 Mon Sep 17 00:00:00 2001 From: xonx <119700621+xonx4l@users.noreply.github.com> Date: Sat, 9 May 2026 17:37:30 +0000 Subject: [PATCH 04/17] fix: clang++ broken symlink --- src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile b/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile index 52f914cd7f8af..e465657051417 100644 --- a/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile +++ b/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile @@ -19,8 +19,14 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ clang \ lld \ && rm -rf /var/lib/apt/lists/* \ - && ln -sf "$(ls /usr/bin/clang++-* | tail -1)" /usr/local/bin/clang++ - + && find /usr/lib -maxdepth 5 -name 'clang++' -executable 2>/dev/null \ + | sort -V | tail -1 | xargs -r ln -sf -t /usr/local/bin/ \ + && if ! test -x /usr/local/bin/clang++; then \ + find /usr/bin -name 'clang++-*' -executable 2>/dev/null \ + | sort -V | tail -1 | xargs -r -I{} ln -sf {} /usr/local/bin/clang++; \ + fi \ + && clang++ --version + COPY scripts/sccache.sh /scripts/ RUN sh /scripts/sccache.sh From 7cab70e086897084d5f7d8d843829a5663db4d0b Mon Sep 17 00:00:00 2001 From: xonx <119700621+xonx4l@users.noreply.github.com> Date: Sat, 9 May 2026 20:25:33 +0000 Subject: [PATCH 05/17] fix: Use g++ for aarch64 --- src/bootstrap/src/core/build_steps/test.rs | 5 +++-- src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile | 9 +-------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/bootstrap/src/core/build_steps/test.rs b/src/bootstrap/src/core/build_steps/test.rs index 009c4e21cc784..b77ec32995cb5 100644 --- a/src/bootstrap/src/core/build_steps/test.rs +++ b/src/bootstrap/src/core/build_steps/test.rs @@ -999,7 +999,7 @@ impl Step for IntrinsicTest { builder.src.join("library/stdarch/intrinsics_data/arm_intrinsics.json"), builder.src.join("library/stdarch/crates/intrinsic-test/missing_aarch64.txt"), String::from("env"), - String::from("-fuse-ld=lld"), + String::from(""), ) } else { return; @@ -1012,7 +1012,8 @@ impl Step for IntrinsicTest { cmd.current_dir(&out_dir); cmd.arg(&input_file); cmd.arg("--target").arg(&*host.triple); - cmd.arg("--cppcompiler").arg("clang++"); + let cppcompiler = if host.contains("x86_64-unknown-linux") { "clang++" } else { "g++" }; + cmd.arg("--cppcompiler").arg(cppcompiler); cmd.arg("--runner").arg(&runner); cmd.arg("--skip").arg(&skip_file); cmd.arg("--sample-percentage").arg("10"); diff --git a/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile b/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile index e465657051417..d63eb10b0d463 100644 --- a/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile +++ b/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile @@ -18,14 +18,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ xz-utils \ clang \ lld \ - && rm -rf /var/lib/apt/lists/* \ - && find /usr/lib -maxdepth 5 -name 'clang++' -executable 2>/dev/null \ - | sort -V | tail -1 | xargs -r ln -sf -t /usr/local/bin/ \ - && if ! test -x /usr/local/bin/clang++; then \ - find /usr/bin -name 'clang++-*' -executable 2>/dev/null \ - | sort -V | tail -1 | xargs -r -I{} ln -sf {} /usr/local/bin/clang++; \ - fi \ - && clang++ --version + && rm -rf /var/lib/apt/lists/* COPY scripts/sccache.sh /scripts/ RUN sh /scripts/sccache.sh From d9f84a88dc1d3dac967d05cd7501802f765d6c12 Mon Sep 17 00:00:00 2001 From: xonx <119700621+xonx4l@users.noreply.github.com> Date: Sun, 10 May 2026 04:25:41 +0000 Subject: [PATCH 06/17] fix: use clang++ via argv[0] symlink for aarch64 --- src/bootstrap/src/core/build_steps/test.rs | 3 +-- src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile | 3 ++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/bootstrap/src/core/build_steps/test.rs b/src/bootstrap/src/core/build_steps/test.rs index b77ec32995cb5..6451c2abf9385 100644 --- a/src/bootstrap/src/core/build_steps/test.rs +++ b/src/bootstrap/src/core/build_steps/test.rs @@ -1012,8 +1012,7 @@ impl Step for IntrinsicTest { cmd.current_dir(&out_dir); cmd.arg(&input_file); cmd.arg("--target").arg(&*host.triple); - let cppcompiler = if host.contains("x86_64-unknown-linux") { "clang++" } else { "g++" }; - cmd.arg("--cppcompiler").arg(cppcompiler); + cmd.arg("--cppcompiler").arg("clang++"); cmd.arg("--runner").arg(&runner); cmd.arg("--skip").arg(&skip_file); cmd.arg("--sample-percentage").arg("10"); diff --git a/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile b/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile index d63eb10b0d463..44f85d18c5d2d 100644 --- a/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile +++ b/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile @@ -18,7 +18,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ xz-utils \ clang \ lld \ - && rm -rf /var/lib/apt/lists/* + && rm -rf /var/lib/apt/lists/* \ + && ln -sf /usr/bin/clang /usr/local/bin/clang++ COPY scripts/sccache.sh /scripts/ RUN sh /scripts/sccache.sh From d8c5095d9e195553de19918c7ce5542a92b87c2e Mon Sep 17 00:00:00 2001 From: xonx <119700621+xonx4l@users.noreply.github.com> Date: Sun, 10 May 2026 07:29:55 +0000 Subject: [PATCH 07/17] fix: install clang in LLVM-N images for intrinsic-test --- src/ci/docker/host-aarch64/aarch64-gnu-llvm-21/Dockerfile | 2 ++ src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile | 6 +++--- src/ci/docker/host-x86_64/x86_64-gnu-llvm-21/Dockerfile | 2 ++ src/ci/docker/host-x86_64/x86_64-gnu-llvm-22/Dockerfile | 2 ++ 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/ci/docker/host-aarch64/aarch64-gnu-llvm-21/Dockerfile b/src/ci/docker/host-aarch64/aarch64-gnu-llvm-21/Dockerfile index c364ac27aaa52..499cbdae8e2aa 100644 --- a/src/ci/docker/host-aarch64/aarch64-gnu-llvm-21/Dockerfile +++ b/src/ci/docker/host-aarch64/aarch64-gnu-llvm-21/Dockerfile @@ -17,6 +17,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ gdb \ llvm-21-tools \ llvm-21-dev \ + clang-21 \ + lld \ libedit-dev \ libssl-dev \ pkg-config \ diff --git a/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile b/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile index 44f85d18c5d2d..990d044a0a882 100644 --- a/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile +++ b/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile @@ -16,10 +16,10 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ libssl-dev \ pkg-config \ xz-utils \ - clang \ + clang-21 \ lld \ - && rm -rf /var/lib/apt/lists/* \ - && ln -sf /usr/bin/clang /usr/local/bin/clang++ + && rm -rf /var/lib/apt/lists/* + COPY scripts/sccache.sh /scripts/ RUN sh /scripts/sccache.sh diff --git a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-21/Dockerfile b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-21/Dockerfile index fc96735521077..4de595167fe2e 100644 --- a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-21/Dockerfile +++ b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-21/Dockerfile @@ -18,6 +18,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ gdb \ llvm-21-tools \ llvm-21-dev \ + clang-21 \ + lld \ libedit-dev \ libssl-dev \ pkg-config \ diff --git a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-22/Dockerfile b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-22/Dockerfile index a22e8de90804f..ad10b3c994be2 100644 --- a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-22/Dockerfile +++ b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-22/Dockerfile @@ -18,6 +18,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ gdb \ llvm-22-tools \ llvm-22-dev \ + clang-22 \ + lld \ libedit-dev \ libssl-dev \ pkg-config \ From a558195cad65d5eb05d0e15faa7bca00dda86788 Mon Sep 17 00:00:00 2001 From: xonx <119700621+xonx4l@users.noreply.github.com> Date: Sun, 10 May 2026 10:55:54 +0000 Subject: [PATCH 08/17] fix: install clang meta-package --- src/ci/docker/host-aarch64/aarch64-gnu-llvm-21/Dockerfile | 2 +- src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile | 2 +- src/ci/docker/host-x86_64/x86_64-gnu-llvm-21/Dockerfile | 2 +- src/ci/docker/host-x86_64/x86_64-gnu-llvm-22/Dockerfile | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ci/docker/host-aarch64/aarch64-gnu-llvm-21/Dockerfile b/src/ci/docker/host-aarch64/aarch64-gnu-llvm-21/Dockerfile index 499cbdae8e2aa..df54c5b7a9c67 100644 --- a/src/ci/docker/host-aarch64/aarch64-gnu-llvm-21/Dockerfile +++ b/src/ci/docker/host-aarch64/aarch64-gnu-llvm-21/Dockerfile @@ -17,7 +17,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ gdb \ llvm-21-tools \ llvm-21-dev \ - clang-21 \ + clang \ lld \ libedit-dev \ libssl-dev \ diff --git a/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile b/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile index 990d044a0a882..d4bdff95d32d1 100644 --- a/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile +++ b/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile @@ -16,7 +16,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ libssl-dev \ pkg-config \ xz-utils \ - clang-21 \ + clang \ lld \ && rm -rf /var/lib/apt/lists/* diff --git a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-21/Dockerfile b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-21/Dockerfile index 4de595167fe2e..2fbeb957a3e53 100644 --- a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-21/Dockerfile +++ b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-21/Dockerfile @@ -18,7 +18,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ gdb \ llvm-21-tools \ llvm-21-dev \ - clang-21 \ + clang \ lld \ libedit-dev \ libssl-dev \ diff --git a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-22/Dockerfile b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-22/Dockerfile index ad10b3c994be2..443a48177b99d 100644 --- a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-22/Dockerfile +++ b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-22/Dockerfile @@ -18,7 +18,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ gdb \ llvm-22-tools \ llvm-22-dev \ - clang-22 \ + clang \ lld \ libedit-dev \ libssl-dev \ From 957a4f73884d4974434fdda0092cf1d4b4bc8514 Mon Sep 17 00:00:00 2001 From: xonx <119700621+xonx4l@users.noreply.github.com> Date: Sun, 10 May 2026 13:06:27 +0000 Subject: [PATCH 09/17] putting cargo on PATH --- src/bootstrap/src/core/build_steps/test.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/bootstrap/src/core/build_steps/test.rs b/src/bootstrap/src/core/build_steps/test.rs index 6451c2abf9385..8d603fdfe9b12 100644 --- a/src/bootstrap/src/core/build_steps/test.rs +++ b/src/bootstrap/src/core/build_steps/test.rs @@ -1018,6 +1018,15 @@ impl Step for IntrinsicTest { cmd.arg("--sample-percentage").arg("10"); cmd.env("CPPFLAGS", &cppflags); + if let Some(cargo_dir) = builder.initial_cargo.parent() { + let old_path = env::var_os("PATH").unwrap_or_default(); + let new_path = env::join_paths( + iter::once(cargo_dir.to_path_buf()).chain(env::split_paths(&old_path)), + ) + .expect("Could not prepend cargo bin path to PATH"); + cmd.env("PATH", new_path); + } + cmd.delay_failure().run(builder); } } From 34e12ddb101493e4f947a5ddca6cb98aec5d254e Mon Sep 17 00:00:00 2001 From: xonx <119700621+xonx4l@users.noreply.github.com> Date: Mon, 11 May 2026 09:52:52 +0000 Subject: [PATCH 10/17] add core_arch path --- src/bootstrap/src/core/build_steps/test.rs | 2 +- src/bootstrap/src/core/builder/cli_paths/snapshots/x_test.snap | 1 + .../src/core/builder/cli_paths/snapshots/x_test_library.snap | 1 + .../core/builder/cli_paths/snapshots/x_test_skip_coverage.snap | 1 + .../src/core/builder/cli_paths/snapshots/x_test_skip_tests.snap | 1 + 5 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/bootstrap/src/core/build_steps/test.rs b/src/bootstrap/src/core/build_steps/test.rs index 8d603fdfe9b12..1ec1958a0b81e 100644 --- a/src/bootstrap/src/core/build_steps/test.rs +++ b/src/bootstrap/src/core/build_steps/test.rs @@ -967,7 +967,7 @@ impl Step for IntrinsicTest { const IS_HOST: bool = true; fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> { - run.path("library/stdarch/crates/intrinsic-test") + run.path("library/stdarch/crates/intrinsic-test").path("library/stdarch/crates/core_arch") } fn is_default_step(_builder: &Builder<'_>) -> bool { diff --git a/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test.snap b/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test.snap index 6471721d88e1a..5f18b3a76961d 100644 --- a/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test.snap +++ b/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test.snap @@ -183,6 +183,7 @@ expression: test - Set({test::src/doc/rustc}) [Test] test::IntrinsicTest targets: [x86_64-unknown-linux-gnu] + - Set({test::library/stdarch/crates/core_arch}) - Set({test::library/stdarch/crates/intrinsic-test}) [Test] test::StdarchVerify targets: [x86_64-unknown-linux-gnu] diff --git a/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_library.snap b/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_library.snap index 49fa1bedac8d9..1d156cd1d9ca5 100644 --- a/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_library.snap +++ b/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_library.snap @@ -20,6 +20,7 @@ expression: test library - Set({test::library/unwind}) [Test] test::IntrinsicTest targets: [x86_64-unknown-linux-gnu] + - Set({test::library/stdarch/crates/core_arch}) - Set({test::library/stdarch/crates/intrinsic-test}) [Test] test::StdarchVerify targets: [x86_64-unknown-linux-gnu] diff --git a/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_skip_coverage.snap b/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_skip_coverage.snap index d9485b77d26ee..e776f70e14cde 100644 --- a/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_skip_coverage.snap +++ b/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_skip_coverage.snap @@ -182,6 +182,7 @@ expression: test --skip=coverage - Set({test::src/doc/rustc}) [Test] test::IntrinsicTest targets: [x86_64-unknown-linux-gnu] + - Set({test::library/stdarch/crates/core_arch}) - Set({test::library/stdarch/crates/intrinsic-test}) [Test] test::StdarchVerify targets: [x86_64-unknown-linux-gnu] diff --git a/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_skip_tests.snap b/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_skip_tests.snap index 9d2b223bb4315..88ce3205ed530 100644 --- a/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_skip_tests.snap +++ b/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_skip_tests.snap @@ -146,6 +146,7 @@ expression: test --skip=tests - Set({test::src/doc/rustc}) [Test] test::IntrinsicTest targets: [x86_64-unknown-linux-gnu] + - Set({test::library/stdarch/crates/core_arch}) - Set({test::library/stdarch/crates/intrinsic-test}) [Test] test::StdarchVerify targets: [x86_64-unknown-linux-gnu] From 4c6143cb07e7efc46aa85636a6662578e2332dbc Mon Sep 17 00:00:00 2001 From: xonx <119700621+xonx4l@users.noreply.github.com> Date: Sat, 23 May 2026 06:05:55 +0000 Subject: [PATCH 11/17] add changes to align with the intrinsic-test redesign --- src/bootstrap/src/core/build_steps/test.rs | 41 ++++++++++--------- .../aarch64-gnu-llvm-21/Dockerfile | 1 - .../host-aarch64/aarch64-gnu/Dockerfile | 1 - .../host-x86_64/x86_64-gnu-llvm-21/Dockerfile | 1 - .../host-x86_64/x86_64-gnu-llvm-22/Dockerfile | 1 - .../docker/host-x86_64/x86_64-gnu/Dockerfile | 1 - 6 files changed, 22 insertions(+), 24 deletions(-) diff --git a/src/bootstrap/src/core/build_steps/test.rs b/src/bootstrap/src/core/build_steps/test.rs index 1ec1958a0b81e..a7ce83f6338ef 100644 --- a/src/bootstrap/src/core/build_steps/test.rs +++ b/src/bootstrap/src/core/build_steps/test.rs @@ -981,25 +981,25 @@ impl Step for IntrinsicTest { fn run(self, builder: &Builder<'_>) { let host = self.host; - let (input_file, skip_file, runner, cppflags) = if host.contains("x86_64-unknown-linux") { + let (input_file, skip_file, cflags, sde_runner) = if host.contains("x86_64-unknown-linux") { let cpuid_def = builder.src.join("library/stdarch/ci/docker/x86_64-unknown-linux-gnu/cpuid.def"); - let runner = format!( + let sde_runner = format!( "/intel-sde/sde64 -cpuid-in {} -rtm-mode full -tsx --", cpuid_def.display() ); ( builder.src.join("library/stdarch/intrinsics_data/x86-intel.xml"), builder.src.join("library/stdarch/crates/intrinsic-test/missing_x86.txt"), - runner, - String::from("-fuse-ld=lld -I/usr/include/x86_64-linux-gnu/"), + "-I/usr/include/x86_64-linux-gnu/", + Some(sde_runner), ) } else if host.contains("aarch64-unknown-linux") { ( builder.src.join("library/stdarch/intrinsics_data/arm_intrinsics.json"), builder.src.join("library/stdarch/crates/intrinsic-test/missing_aarch64.txt"), - String::from("env"), - String::from(""), + "-I/usr/aarch64-linux-gnu/include/", + None, ) } else { return; @@ -1012,22 +1012,25 @@ impl Step for IntrinsicTest { cmd.current_dir(&out_dir); cmd.arg(&input_file); cmd.arg("--target").arg(&*host.triple); - cmd.arg("--cppcompiler").arg("clang++"); - cmd.arg("--runner").arg(&runner); cmd.arg("--skip").arg(&skip_file); cmd.arg("--sample-percentage").arg("10"); - cmd.env("CPPFLAGS", &cppflags); - - if let Some(cargo_dir) = builder.initial_cargo.parent() { - let old_path = env::var_os("PATH").unwrap_or_default(); - let new_path = env::join_paths( - iter::once(cargo_dir.to_path_buf()).chain(env::split_paths(&old_path)), - ) - .expect("Could not prepend cargo bin path to PATH"); - cmd.env("PATH", new_path); - } + cmd.env("CC", "clang"); + cmd.env("CFLAGS", cflags); + cmd.run(builder); - cmd.delay_failure().run(builder); + let manifest = out_dir.join("rust_programs/Cargo.toml"); + let mut cargo = command(&builder.initial_cargo); + cargo.arg("test"); + cargo.arg("--manifest-path").arg(&manifest); + cargo.arg("--target").arg(&*host.triple); + cargo.arg("--profile").arg("release"); + cargo.env("CC", "clang"); + cargo.env("CFLAGS", cflags); + cargo.env("RUSTC", &builder.initial_rustc); + if let Some(runner) = sde_runner { + cargo.env("CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUNNER", runner); + } + cargo.delay_failure().run(builder); } } diff --git a/src/ci/docker/host-aarch64/aarch64-gnu-llvm-21/Dockerfile b/src/ci/docker/host-aarch64/aarch64-gnu-llvm-21/Dockerfile index df54c5b7a9c67..397fca9131b03 100644 --- a/src/ci/docker/host-aarch64/aarch64-gnu-llvm-21/Dockerfile +++ b/src/ci/docker/host-aarch64/aarch64-gnu-llvm-21/Dockerfile @@ -18,7 +18,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ llvm-21-tools \ llvm-21-dev \ clang \ - lld \ libedit-dev \ libssl-dev \ pkg-config \ diff --git a/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile b/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile index d4bdff95d32d1..8fc2a79cbf71b 100644 --- a/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile +++ b/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile @@ -17,7 +17,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ pkg-config \ xz-utils \ clang \ - lld \ && rm -rf /var/lib/apt/lists/* diff --git a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-21/Dockerfile b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-21/Dockerfile index 2fbeb957a3e53..29a70b368e00e 100644 --- a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-21/Dockerfile +++ b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-21/Dockerfile @@ -19,7 +19,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ llvm-21-tools \ llvm-21-dev \ clang \ - lld \ libedit-dev \ libssl-dev \ pkg-config \ diff --git a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-22/Dockerfile b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-22/Dockerfile index 443a48177b99d..773f809c9e650 100644 --- a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-22/Dockerfile +++ b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-22/Dockerfile @@ -19,7 +19,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ llvm-22-tools \ llvm-22-dev \ clang \ - lld \ libedit-dev \ libssl-dev \ pkg-config \ diff --git a/src/ci/docker/host-x86_64/x86_64-gnu/Dockerfile b/src/ci/docker/host-x86_64/x86_64-gnu/Dockerfile index 09fa00e188c5c..522000846714d 100644 --- a/src/ci/docker/host-x86_64/x86_64-gnu/Dockerfile +++ b/src/ci/docker/host-x86_64/x86_64-gnu/Dockerfile @@ -20,7 +20,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ zlib1g-dev \ libzstd-dev \ clang \ - lld \ && rm -rf /var/lib/apt/lists/* # Install Intel SDE for AVX-512 emulation From 561e9f0427feb59a326965bddf57605caa99a2fe Mon Sep 17 00:00:00 2001 From: xonx <119700621+xonx4l@users.noreply.github.com> Date: Sat, 23 May 2026 10:37:51 +0000 Subject: [PATCH 12/17] add symlink crates inside out_dir --- src/bootstrap/src/core/build_steps/test.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/bootstrap/src/core/build_steps/test.rs b/src/bootstrap/src/core/build_steps/test.rs index a7ce83f6338ef..fa18c4628ff50 100644 --- a/src/bootstrap/src/core/build_steps/test.rs +++ b/src/bootstrap/src/core/build_steps/test.rs @@ -1008,6 +1008,12 @@ impl Step for IntrinsicTest { let out_dir = builder.out.join(host).join("intrinsic-test"); t!(fs::create_dir_all(&out_dir)); + let crates_link = out_dir.join("crates"); + if !crates_link.exists() { + std::os::unix::fs::symlink(builder.src.join("library/stdarch/crates"), &crates_link) + .unwrap(); + } + let mut cmd = builder.tool_cmd(Tool::IntrinsicTest); cmd.current_dir(&out_dir); cmd.arg(&input_file); From 152db4e612325a96ba8aabeb9c8de060af011824 Mon Sep 17 00:00:00 2001 From: xonx <119700621+xonx4l@users.noreply.github.com> Date: Sat, 23 May 2026 12:06:06 +0000 Subject: [PATCH 13/17] add RUSTC_BOOTSTRAP=1 --- src/bootstrap/src/core/build_steps/test.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bootstrap/src/core/build_steps/test.rs b/src/bootstrap/src/core/build_steps/test.rs index fa18c4628ff50..e5cbdb928c699 100644 --- a/src/bootstrap/src/core/build_steps/test.rs +++ b/src/bootstrap/src/core/build_steps/test.rs @@ -1032,7 +1032,7 @@ impl Step for IntrinsicTest { cargo.arg("--profile").arg("release"); cargo.env("CC", "clang"); cargo.env("CFLAGS", cflags); - cargo.env("RUSTC", &builder.initial_rustc); + cargo.env("RUSTC_BOOTSTRAP", "1"); if let Some(runner) = sde_runner { cargo.env("CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUNNER", runner); } From beaa34276a4e8c619475aacaed2a82ba26b8207a Mon Sep 17 00:00:00 2001 From: xonx <119700621+xonx4l@users.noreply.github.com> Date: Sat, 23 May 2026 13:21:56 +0000 Subject: [PATCH 14/17] Add RUSTC --- src/bootstrap/src/core/build_steps/test.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bootstrap/src/core/build_steps/test.rs b/src/bootstrap/src/core/build_steps/test.rs index e5cbdb928c699..6f0f2d8e2d316 100644 --- a/src/bootstrap/src/core/build_steps/test.rs +++ b/src/bootstrap/src/core/build_steps/test.rs @@ -1032,6 +1032,7 @@ impl Step for IntrinsicTest { cargo.arg("--profile").arg("release"); cargo.env("CC", "clang"); cargo.env("CFLAGS", cflags); + cargo.env("RUSTC", &builder.initial_rustc); cargo.env("RUSTC_BOOTSTRAP", "1"); if let Some(runner) = sde_runner { cargo.env("CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUNNER", runner); From e0ae211587e9ae9c2c007804735040df7a6779f4 Mon Sep 17 00:00:00 2001 From: xonx <119700621+xonx4l@users.noreply.github.com> Date: Sat, 23 May 2026 15:15:20 +0000 Subject: [PATCH 15/17] add tests --- src/bootstrap/src/core/build_steps/test.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bootstrap/src/core/build_steps/test.rs b/src/bootstrap/src/core/build_steps/test.rs index 6f0f2d8e2d316..c7dfe855f4b2e 100644 --- a/src/bootstrap/src/core/build_steps/test.rs +++ b/src/bootstrap/src/core/build_steps/test.rs @@ -1027,6 +1027,7 @@ impl Step for IntrinsicTest { let manifest = out_dir.join("rust_programs/Cargo.toml"); let mut cargo = command(&builder.initial_cargo); cargo.arg("test"); + cargo.arg("--tests"); cargo.arg("--manifest-path").arg(&manifest); cargo.arg("--target").arg(&*host.triple); cargo.arg("--profile").arg("release"); From 5c82915197d4a1e4199f680b90ff7a1b71311fb4 Mon Sep 17 00:00:00 2001 From: xonx <119700621+xonx4l@users.noreply.github.com> Date: Fri, 29 May 2026 12:00:54 +0000 Subject: [PATCH 16/17] address review feedbacks --- src/bootstrap/src/core/build_steps/test.rs | 32 +++++++++++++++------- src/bootstrap/src/core/build_steps/tool.rs | 2 +- src/bootstrap/src/core/builder/tests.rs | 2 -- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/src/bootstrap/src/core/build_steps/test.rs b/src/bootstrap/src/core/build_steps/test.rs index c7dfe855f4b2e..1674aeb1ff8a6 100644 --- a/src/bootstrap/src/core/build_steps/test.rs +++ b/src/bootstrap/src/core/build_steps/test.rs @@ -957,6 +957,12 @@ impl Step for StdarchVerify { } } +/// Runs stdarch's intrinsic-test binary crate to verify that Rust's `core::arch` +/// SIMD intrinsics produce the same results as their C counterparts. +/// +/// First runs the `intrinsic-test` binary, which generates C wrapper programs +/// and a Rust Cargo workspace. Then runs `cargo test` on that workspace +/// which compiles both versions and compares their outputs on random inputs. #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct IntrinsicTest { host: TargetSelection, @@ -970,12 +976,12 @@ impl Step for IntrinsicTest { run.path("library/stdarch/crates/intrinsic-test").path("library/stdarch/crates/core_arch") } - fn is_default_step(_builder: &Builder<'_>) -> bool { - true - } - fn make_run(run: RunConfig<'_>) { - run.builder.ensure(IntrinsicTest { host: run.target }); + let target = run.target; + if !target.contains("aarch64-unknown-linux") && !target.contains("x86_64-unknown-linux") { + return; + } + run.builder.ensure(IntrinsicTest { host: target }); } fn run(self, builder: &Builder<'_>) { @@ -1002,7 +1008,7 @@ impl Step for IntrinsicTest { None, ) } else { - return; + panic!("intrinsic-test only supports aarch64/x86_64 Linux, got {host}"); }; let out_dir = builder.out.join(host).join("intrinsic-test"); @@ -1010,8 +1016,14 @@ impl Step for IntrinsicTest { let crates_link = out_dir.join("crates"); if !crates_link.exists() { - std::os::unix::fs::symlink(builder.src.join("library/stdarch/crates"), &crates_link) - .unwrap(); + t!( + helpers::symlink_dir( + &builder.config, + &builder.src.join("library/stdarch/crates"), + &crates_link + ), + format!("failed to symlink stdarch crates into {}", crates_link.display()) + ); } let mut cmd = builder.tool_cmd(Tool::IntrinsicTest); @@ -1020,7 +1032,7 @@ impl Step for IntrinsicTest { cmd.arg("--target").arg(&*host.triple); cmd.arg("--skip").arg(&skip_file); cmd.arg("--sample-percentage").arg("10"); - cmd.env("CC", "clang"); + cmd.env("CC", builder.cc(host)); cmd.env("CFLAGS", cflags); cmd.run(builder); @@ -1031,7 +1043,7 @@ impl Step for IntrinsicTest { cargo.arg("--manifest-path").arg(&manifest); cargo.arg("--target").arg(&*host.triple); cargo.arg("--profile").arg("release"); - cargo.env("CC", "clang"); + cargo.env("CC", builder.cc(host)); cargo.env("CFLAGS", cflags); cargo.env("RUSTC", &builder.initial_rustc); cargo.env("RUSTC_BOOTSTRAP", "1"); diff --git a/src/bootstrap/src/core/build_steps/tool.rs b/src/bootstrap/src/core/build_steps/tool.rs index b5d915d51dea0..7b62e31ab4084 100644 --- a/src/bootstrap/src/core/build_steps/tool.rs +++ b/src/bootstrap/src/core/build_steps/tool.rs @@ -508,7 +508,7 @@ bootstrap_tool!( FeaturesStatusDump, "src/tools/features-status-dump", "features-status-dump"; OptimizedDist, "src/tools/opt-dist", "opt-dist", submodules = &["src/tools/rustc-perf"]; RunMakeSupport, "src/tools/run-make-support", "run_make_support", artifact_kind = ToolArtifactKind::Library; - IntrinsicTest, "library/stdarch/crates/intrinsic-test", "intrinsic-test", is_external_tool = true; + IntrinsicTest, "library/stdarch/crates/intrinsic-test", "intrinsic-test"; ); /// These are the submodules that are required for rustbook to work due to diff --git a/src/bootstrap/src/core/builder/tests.rs b/src/bootstrap/src/core/builder/tests.rs index 5456efee3a7de..618129e27b8ad 100644 --- a/src/bootstrap/src/core/builder/tests.rs +++ b/src/bootstrap/src/core/builder/tests.rs @@ -2138,7 +2138,6 @@ mod snapshot { [test] link-check [test] tier-check [test] rustc 0 -> rust-analyzer 1 - [build] rustc 0 -> IntrinsicTest 1 [build] rustc 0 -> RustdocTheme 1 [test] rustdoc-theme 1 [test] compiletest-rustdoc-ui 1 @@ -2322,7 +2321,6 @@ mod snapshot { [test] rustc 1 -> rust-analyzer 2 [doc] rustc (book) [test] rustc 1 -> lint-docs 2 - [build] rustc 0 -> IntrinsicTest 1 [build] rustc 0 -> RustdocTheme 1 [test] rustdoc-theme 2 [test] compiletest-rustdoc-ui 2 From 7d15b283a6d31cd3e9d80157efbc16547627d8fe Mon Sep 17 00:00:00 2001 From: xonx <119700621+xonx4l@users.noreply.github.com> Date: Mon, 1 Jun 2026 13:31:04 +0000 Subject: [PATCH 17/17] reviews addressing --- src/bootstrap/src/core/build_steps/test.rs | 4 ++-- .../src/core/builder/cli_paths/snapshots/x_test.snap | 4 ---- .../core/builder/cli_paths/snapshots/x_test_library.snap | 8 +++----- .../builder/cli_paths/snapshots/x_test_skip_coverage.snap | 4 ---- .../builder/cli_paths/snapshots/x_test_skip_tests.snap | 4 ---- 5 files changed, 5 insertions(+), 19 deletions(-) diff --git a/src/bootstrap/src/core/build_steps/test.rs b/src/bootstrap/src/core/build_steps/test.rs index 1674aeb1ff8a6..f73d498026deb 100644 --- a/src/bootstrap/src/core/build_steps/test.rs +++ b/src/bootstrap/src/core/build_steps/test.rs @@ -973,7 +973,7 @@ impl Step for IntrinsicTest { const IS_HOST: bool = true; fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> { - run.path("library/stdarch/crates/intrinsic-test").path("library/stdarch/crates/core_arch") + run.path("library/stdarch/crates/intrinsic-test") } fn make_run(run: RunConfig<'_>) { @@ -1050,7 +1050,7 @@ impl Step for IntrinsicTest { if let Some(runner) = sde_runner { cargo.env("CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUNNER", runner); } - cargo.delay_failure().run(builder); + cargo.run(builder); } } diff --git a/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test.snap b/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test.snap index 5f18b3a76961d..60e8a219585c6 100644 --- a/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test.snap +++ b/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test.snap @@ -181,10 +181,6 @@ expression: test [Test] test::RustcBook targets: [x86_64-unknown-linux-gnu] - Set({test::src/doc/rustc}) -[Test] test::IntrinsicTest - targets: [x86_64-unknown-linux-gnu] - - Set({test::library/stdarch/crates/core_arch}) - - Set({test::library/stdarch/crates/intrinsic-test}) [Test] test::StdarchVerify targets: [x86_64-unknown-linux-gnu] - Set({test::library/stdarch/crates/stdarch-verify}) diff --git a/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_library.snap b/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_library.snap index 1d156cd1d9ca5..ba1f6b3c940c3 100644 --- a/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_library.snap +++ b/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_library.snap @@ -18,11 +18,9 @@ expression: test library - Set({test::library/sysroot}) - Set({test::library/test}) - Set({test::library/unwind}) -[Test] test::IntrinsicTest - targets: [x86_64-unknown-linux-gnu] - - Set({test::library/stdarch/crates/core_arch}) - - Set({test::library/stdarch/crates/intrinsic-test}) [Test] test::StdarchVerify targets: [x86_64-unknown-linux-gnu] - Set({test::library/stdarch/crates/stdarch-verify}) - +[Test] test::IntrinsicTest + targets: [x86_64-unknown-linux-gnu] + - Set({test::library/stdarch/crates/intrinsic-test}) diff --git a/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_skip_coverage.snap b/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_skip_coverage.snap index e776f70e14cde..fb83986445bea 100644 --- a/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_skip_coverage.snap +++ b/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_skip_coverage.snap @@ -180,10 +180,6 @@ expression: test --skip=coverage [Test] test::RustcBook targets: [x86_64-unknown-linux-gnu] - Set({test::src/doc/rustc}) -[Test] test::IntrinsicTest - targets: [x86_64-unknown-linux-gnu] - - Set({test::library/stdarch/crates/core_arch}) - - Set({test::library/stdarch/crates/intrinsic-test}) [Test] test::StdarchVerify targets: [x86_64-unknown-linux-gnu] - Set({test::library/stdarch/crates/stdarch-verify}) diff --git a/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_skip_tests.snap b/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_skip_tests.snap index 88ce3205ed530..3737272dd83a4 100644 --- a/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_skip_tests.snap +++ b/src/bootstrap/src/core/builder/cli_paths/snapshots/x_test_skip_tests.snap @@ -144,10 +144,6 @@ expression: test --skip=tests [Test] test::RustcBook targets: [x86_64-unknown-linux-gnu] - Set({test::src/doc/rustc}) -[Test] test::IntrinsicTest - targets: [x86_64-unknown-linux-gnu] - - Set({test::library/stdarch/crates/core_arch}) - - Set({test::library/stdarch/crates/intrinsic-test}) [Test] test::StdarchVerify targets: [x86_64-unknown-linux-gnu] - Set({test::library/stdarch/crates/stdarch-verify})