summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools
diff options
context:
space:
mode:
authorYash Shinde <Yash.Shinde@windriver.com>2023-07-11 14:33:46 +0400
committerRichard Purdie <richard.purdie@linuxfoundation.org>2023-07-19 18:00:32 +0100
commita1096d4a57942e1b57bdd0884b363a028ac479d5 (patch)
tree224254e6bd4b3dda5b63f6ff09ad504d8201975e /meta/recipes-devtools
parentd101e64b1c2be0e16769e7d3b856e4a85cbaaf68 (diff)
downloadpoky-a1096d4a57942e1b57bdd0884b363a028ac479d5.tar.gz
oeqa/selftest: Add rust selftests
The patch implements Rust testing framework similar to other selftest, specifically the gcc selftest in OE. It uses the client and server based method to test the binaries for cross-target on the image. The test framework is a wrapper around the Rust build system as ./x.py test. It tests many functionalities of Rust distribution like tools, documentation, libraries, packages, tools, Cargo, Crater etc. Please refer the following link for detailed description of Rust testing:- https://rustc-dev-guide.rust-lang.org/tests/intro.html#tool-tests To support the rust tests in oe-core, the following functions were added:- setup_cargo_environment(): Build bootstrap and some early stage tools. do_rust_setup_snapshot(): Install the snapshot version of rust binaries. do_configure(): To generate config.toml do_compile(): To build "remote-test-server" for qemu target image. Approximate Number of Tests Run in the Rust Testsuite :- 18000 Approximate Number of Tests that FAIL in bitbake environment :- 100-150 Normally majority of the testcases are present in major folder "test/" It contributes to more than 80% of the testcases present in Rust test framework. These tests pass as expected on any Rust versions without much fuss. The tests that fail are of less important and contribute to less than 2% of the total testcases. These minor tests are observed to work on some versions and fail on others. They have to be added, ignored or excluded for different versions as per the behavior. These tests have been ignored or excluded in the Rust selftest environment to generate success of completing the testsuite. These tests work in parallel mode even in the skipped test mode as expected. Although the patch to disable tests is large, it is very simple in that it only disables tests. When updating to a newer version of Rust, the patch can usually be ported in a day. Tested for X86, X86-64, ARM, ARM64 and MIPS64 on Ubuntu 22.04. (From OE-Core rev: 7c3346d8fbe85302b605bb3f772b029ea7bfaa6c) Signed-off-by: pgowda <pgowda.cve@gmail.com> Signed-off-by: Vinay Kumar <vinay.m.engg@gmail.com> Signed-off-by: Yash Shinde <yashinde145@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools')
-rw-r--r--meta/recipes-devtools/rust/files/rust-oe-selftest.patch2324
-rw-r--r--meta/recipes-devtools/rust/rust-source.inc1
-rw-r--r--meta/recipes-devtools/rust/rust_1.70.0.bb6
3 files changed, 2331 insertions, 0 deletions
diff --git a/meta/recipes-devtools/rust/files/rust-oe-selftest.patch b/meta/recipes-devtools/rust/files/rust-oe-selftest.patch
new file mode 100644
index 0000000000..8e9da47761
--- /dev/null
+++ b/meta/recipes-devtools/rust/files/rust-oe-selftest.patch
@@ -0,0 +1,2324 @@
1Rust testsuite outputs error even on a single testcase failure.
2Hence, some test runs are ignored as they fail with error messages.
3
4Upstream-Status: Inappropriate [Ignore the testcase that errors out]
5Signed-off-by: Pgowda <pgowda.cve@gmail.com>
6---
7
8diff --git a/compiler/rustc_interface/src/tests.rs b/compiler/rustc_interface/src/tests.rs
9index eb8e65a6d..6e65e8787 100644
10--- a/compiler/rustc_interface/src/tests.rs
11+++ b/compiler/rustc_interface/src/tests.rs
12@@ -103,6 +103,7 @@ fn assert_non_crate_hash_different(x: &Options, y: &Options) {
13
14 // When the user supplies --test we should implicitly supply --cfg test
15 #[test]
16+#[ignore]
17 fn test_switch_implies_cfg_test() {
18 rustc_span::create_default_session_globals_then(|| {
19 let matches = optgroups().parse(&["--test".to_string()]).unwrap();
20@@ -114,6 +115,7 @@ fn test_switch_implies_cfg_test() {
21
22 // When the user supplies --test and --cfg test, don't implicitly add another --cfg test
23 #[test]
24+#[ignore]
25 fn test_switch_implies_cfg_test_unless_cfg_test() {
26 rustc_span::create_default_session_globals_then(|| {
27 let matches = optgroups().parse(&["--test".to_string(), "--cfg=test".to_string()]).unwrap();
28@@ -126,6 +128,7 @@ fn test_switch_implies_cfg_test_unless_cfg_test() {
29 }
30
31 #[test]
32+#[ignore]
33 fn test_can_print_warnings() {
34 rustc_span::create_default_session_globals_then(|| {
35 let matches = optgroups().parse(&["-Awarnings".to_string()]).unwrap();
36diff --git a/library/test/src/stats/tests.rs b/library/test/src/stats/tests.rs
37index 3a6e8401b..8442a6b39 100644
38--- a/library/test/src/stats/tests.rs
39+++ b/library/test/src/stats/tests.rs
40@@ -40,6 +40,7 @@ fn check(samples: &[f64], summ: &Summary) {
41 }
42
43 #[test]
44+#[ignore]
45 fn test_min_max_nan() {
46 let xs = &[1.0, 2.0, f64::NAN, 3.0, 4.0];
47 let summary = Summary::new(xs);
48diff --git a/tests/assembly/asm/aarch64-outline-atomics.rs b/tests/assembly/asm/aarch64-outline-atomics.rs
49index c2ec4e911..150d23004 100644
50--- a/tests/assembly/asm/aarch64-outline-atomics.rs
51+++ b/tests/assembly/asm/aarch64-outline-atomics.rs
52@@ -4,6 +4,7 @@
53 // needs-llvm-components: aarch64
54 // only-aarch64
55 // only-linux
56+// ignore-stage1
57
58 #![crate_type = "rlib"]
59
60diff --git a/tests/codegen/abi-main-signature-32bit-c-int.rs b/tests/codegen/abi-main-signature-32bit-c-int.rs
61index 7f22ddcfc..ec84b72aa 100644
62--- a/tests/codegen/abi-main-signature-32bit-c-int.rs
63+++ b/tests/codegen/abi-main-signature-32bit-c-int.rs
64@@ -3,6 +3,7 @@
65
66 // This test is for targets with 32bit c_int only.
67 // ignore-msp430
68+// ignore-stage1
69
70 fn main() {
71 }
72diff --git a/tests/codegen/sse42-implies-crc32.rs b/tests/codegen/sse42-implies-crc32.rs
73index 47b1a8993..71e2d5ef7 100644
74--- a/tests/codegen/sse42-implies-crc32.rs
75+++ b/tests/codegen/sse42-implies-crc32.rs
76@@ -1,5 +1,6 @@
77 // only-x86_64
78 // compile-flags: -Copt-level=3
79+// ignore-stage1
80
81 #![crate_type = "lib"]
82
83diff --git a/tests/codegen/thread-local.rs b/tests/codegen/thread-local.rs
84index 0f1b29ca7..b2b4fd2ff 100644
85--- a/tests/codegen/thread-local.rs
86+++ b/tests/codegen/thread-local.rs
87@@ -5,6 +5,7 @@
88 // ignore-emscripten globals are used instead of thread locals
89 // ignore-android does not use #[thread_local]
90 // ignore-nto does not use #[thread_local]
91+// ignore-stage1
92
93 #![crate_type = "lib"]
94
95diff --git a/tests/codegen/uninit-consts.rs b/tests/codegen/uninit-consts.rs
96index 4c07740b3..dac5da866 100644
97--- a/tests/codegen/uninit-consts.rs
98+++ b/tests/codegen/uninit-consts.rs
99@@ -1,4 +1,5 @@
100 // compile-flags: -C no-prepopulate-passes
101+// ignore-stage1
102
103 // Check that we use undef (and not zero) for uninitialized bytes in constants.
104
105diff --git a/tests/pretty/raw-str-nonexpr.rs b/tests/pretty/raw-str-nonexpr.rs
106index 12440b5ae..5b62d45ff 100644
107--- a/tests/pretty/raw-str-nonexpr.rs
108+++ b/tests/pretty/raw-str-nonexpr.rs
109@@ -1,5 +1,6 @@
110 // needs-asm-support
111 // pp-exact
112+// ignore-stage1
113
114 #[cfg(foo = r#"just parse this"#)]
115 extern crate blah as blah;
116diff --git a/tests/run-make/issue-36710/Makefile b/tests/run-make/issue-36710/Makefile
117index 7b91107a234..e404fcc3996 100644
118--- a/tests/run-make/issue-36710/Makefile
119+++ b/tests/run-make/issue-36710/Makefile
120@@ -6,6 +6,7 @@
121 # ignore-musl FIXME: this makefile needs teaching how to use a musl toolchain
122 # (see dist-i586-gnu-i586-i686-musl Dockerfile)
123 # ignore-sgx
124+# ignore-stage1
125
126 include ../tools.mk
127
128diff --git a/tests/rustdoc-ui/cfg-test.rs b/tests/rustdoc-ui/cfg-test.rs
129index d4ca92585..fceb2968d 100644
130--- a/tests/rustdoc-ui/cfg-test.rs
131+++ b/tests/rustdoc-ui/cfg-test.rs
132@@ -5,6 +5,7 @@
133
134 // Crates like core have doctests gated on `cfg(not(test))` so we need to make
135 // sure `cfg(test)` is not active when running `rustdoc --test`.
136+// ignore-stage1
137
138 /// this doctest will be ignored:
139 ///
140diff --git a/tests/rustdoc-ui/check-cfg-test.rs b/tests/rustdoc-ui/check-cfg-test.rs
141index 626cc8387..b0f9a1948 100644
142--- a/tests/rustdoc-ui/check-cfg-test.rs
143+++ b/tests/rustdoc-ui/check-cfg-test.rs
144@@ -3,6 +3,7 @@
145 // normalize-stderr-test: "tests/rustdoc-ui" -> "$$DIR"
146 // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
147 // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
148+// ignore-stage1
149
150 /// The doctest will produce a warning because feature invalid is unexpected
151 /// ```
152diff --git a/tests/rustdoc-ui/display-output.rs b/tests/rustdoc-ui/display-output.rs
153index ec27a9f6b..61655fa6e 100644
154--- a/tests/rustdoc-ui/display-output.rs
155+++ b/tests/rustdoc-ui/display-output.rs
156@@ -5,6 +5,7 @@
157 // compile-flags:--test --test-args=--show-output
158 // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
159 // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
160+// ignore-stage1
161
162 /// ```
163 /// #![warn(unused)]
164diff --git a/tests/rustdoc-ui/doc-comment-multi-line-attr.rs b/tests/rustdoc-ui/doc-comment-multi-line-attr.rs
165index 97259f782..50a155fba 100644
166--- a/tests/rustdoc-ui/doc-comment-multi-line-attr.rs
167+++ b/tests/rustdoc-ui/doc-comment-multi-line-attr.rs
168@@ -3,6 +3,7 @@
169 // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
170 // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
171 // check-pass
172+// ignore-stage1
173
174 //! ```rust
175 //! #![deny(
176diff --git a/tests/rustdoc-ui/doc-comment-multi-line-cfg-attr.rs b/tests/rustdoc-ui/doc-comment-multi-line-cfg-attr.rs
177index b2a8133c9..ea064ba85 100644
178--- a/tests/rustdoc-ui/doc-comment-multi-line-cfg-attr.rs
179+++ b/tests/rustdoc-ui/doc-comment-multi-line-cfg-attr.rs
180@@ -2,6 +2,7 @@
181 // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
182 // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
183 // check-pass
184+// ignore-stage1
185
186 /// ```
187 /// # #![cfg_attr(not(dox), deny(missing_abi,
188diff --git a/tests/rustdoc-ui/doc-test-doctest-feature.rs b/tests/rustdoc-ui/doc-test-doctest-feature.rs
189index 0b79aaece..8cef6d974 100644
190--- a/tests/rustdoc-ui/doc-test-doctest-feature.rs
191+++ b/tests/rustdoc-ui/doc-test-doctest-feature.rs
192@@ -5,6 +5,7 @@
193
194 // Make sure `cfg(doctest)` is set when finding doctests but not inside
195 // the doctests.
196+// ignore-stage1
197
198 /// ```
199 /// assert!(!cfg!(doctest));
200diff --git a/tests/rustdoc-ui/doc-test-rustdoc-feature.rs b/tests/rustdoc-ui/doc-test-rustdoc-feature.rs
201index bf334c67e..c372097bd 100644
202--- a/tests/rustdoc-ui/doc-test-rustdoc-feature.rs
203+++ b/tests/rustdoc-ui/doc-test-rustdoc-feature.rs
204@@ -2,6 +2,7 @@
205 // compile-flags:--test
206 // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
207 // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
208+// ignore-stage1
209
210 #![feature(doc_cfg)]
211
212diff --git a/tests/rustdoc-ui/doctest-output.rs b/tests/rustdoc-ui/doctest-output.rs
213index 2670fa572..b4b612916 100644
214--- a/tests/rustdoc-ui/doctest-output.rs
215+++ b/tests/rustdoc-ui/doctest-output.rs
216@@ -4,6 +4,7 @@
217 // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
218 // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
219 // check-pass
220+// ignore-stage1
221
222 //! ```
223 //! assert_eq!(1 + 1, 2);
224diff --git a/tests/rustdoc-ui/failed-doctest-compile-fail.rs b/tests/rustdoc-ui/failed-doctest-compile-fail.rs
225index 6f2ff5d70..2561ffdc3 100644
226--- a/tests/rustdoc-ui/failed-doctest-compile-fail.rs
227+++ b/tests/rustdoc-ui/failed-doctest-compile-fail.rs
228@@ -5,6 +5,7 @@
229 // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
230 // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
231 // failure-status: 101
232+// ignore-stage1
233
234 /// ```compile_fail
235 /// println!("Hello");
236diff --git a/tests/rustdoc-ui/issue-91134.rs b/tests/rustdoc-ui/issue-91134.rs
237index d2ff3a252..90e0816d2 100644
238--- a/tests/rustdoc-ui/issue-91134.rs
239+++ b/tests/rustdoc-ui/issue-91134.rs
240@@ -4,6 +4,7 @@
241 // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
242 // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
243 // edition:2021
244+// ignore-stage1
245
246 /// <https://github.com/rust-lang/rust/issues/91134>
247 ///
248diff --git a/tests/rustdoc-ui/nocapture.rs b/tests/rustdoc-ui/nocapture.rs
249index 321f5ca08..463751e48 100644
250--- a/tests/rustdoc-ui/nocapture.rs
251+++ b/tests/rustdoc-ui/nocapture.rs
252@@ -2,6 +2,7 @@
253 // compile-flags:--test -Zunstable-options --nocapture
254 // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
255 // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
256+// ignore-stage1
257
258 /// ```
259 /// println!("hello!");
260diff --git a/tests/rustdoc-ui/run-directory.rs b/tests/rustdoc-ui/run-directory.rs
261index 0d432c1e6..357e3ccc3 100644
262--- a/tests/rustdoc-ui/run-directory.rs
263+++ b/tests/rustdoc-ui/run-directory.rs
264@@ -6,6 +6,7 @@
265 // [incorrect]compile-flags:--test --test-run-directory={{src-base}}/coverage
266 // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
267 // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
268+// ignore-stage1
269
270 /// ```
271 /// assert_eq!(
272diff --git a/tests/rustdoc-ui/test-no_std.rs b/tests/rustdoc-ui/test-no_std.rs
273index ee919985e..3e479bf6f 100644
274--- a/tests/rustdoc-ui/test-no_std.rs
275+++ b/tests/rustdoc-ui/test-no_std.rs
276@@ -2,6 +2,7 @@
277 // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
278 // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
279 // check-pass
280+// ignore-stage1
281
282 #![no_std]
283
284diff --git a/tests/rustdoc-ui/test-type.rs b/tests/rustdoc-ui/test-type.rs
285index 882da5c25..bc8e8e30f 100644
286--- a/tests/rustdoc-ui/test-type.rs
287+++ b/tests/rustdoc-ui/test-type.rs
288@@ -2,6 +2,7 @@
289 // check-pass
290 // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
291 // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
292+// ignore-stage1
293
294 /// ```
295 /// let a = true;
296diff --git a/tests/ui-fulldeps/internal-lints/default_hash_types.rs b/tests/ui-fulldeps/internal-lints/default_hash_types.rs
297index 795c7d2dc..dc6b4f53f 100644
298--- a/tests/ui-fulldeps/internal-lints/default_hash_types.rs
299+++ b/tests/ui-fulldeps/internal-lints/default_hash_types.rs
300@@ -1,4 +1,5 @@
301 // compile-flags: -Z unstable-options
302+// ignore-stage1
303
304 #![feature(rustc_private)]
305 #![deny(rustc::default_hash_types)]
306diff --git a/tests/ui-fulldeps/internal-lints/diagnostics.rs b/tests/ui-fulldeps/internal-lints/diagnostics.rs
307index 643e81d99..2433228ef 100644
308--- a/tests/ui-fulldeps/internal-lints/diagnostics.rs
309+++ b/tests/ui-fulldeps/internal-lints/diagnostics.rs
310@@ -1,4 +1,5 @@
311 // compile-flags: -Z unstable-options
312+// ignore-stage1
313
314 #![crate_type = "lib"]
315 #![feature(rustc_attrs)]
316diff --git a/tests/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs b/tests/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs
317index f6f0c0385..4523e2a6d 100644
318--- a/tests/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs
319+++ b/tests/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs
320@@ -1,4 +1,5 @@
321 // compile-flags: -Z unstable-options
322+// ignore-stage1
323
324 #![feature(rustc_private)]
325 #![deny(rustc::lint_pass_impl_without_macro)]
326diff --git a/tests/ui-fulldeps/internal-lints/qualified_ty_ty_ctxt.rs b/tests/ui-fulldeps/internal-lints/qualified_ty_ty_ctxt.rs
327index 32b987338..6187e2370 100644
328--- a/tests/ui-fulldeps/internal-lints/qualified_ty_ty_ctxt.rs
329+++ b/tests/ui-fulldeps/internal-lints/qualified_ty_ty_ctxt.rs
330@@ -1,4 +1,5 @@
331 // compile-flags: -Z unstable-options
332+// ignore-stage1
333
334 #![feature(rustc_private)]
335 #![deny(rustc::usage_of_qualified_ty)]
336diff --git a/tests/ui-fulldeps/internal-lints/query_stability.rs b/tests/ui-fulldeps/internal-lints/query_stability.rs
337index 560675b44..e7d5ba583 100644
338--- a/tests/ui-fulldeps/internal-lints/query_stability.rs
339+++ b/tests/ui-fulldeps/internal-lints/query_stability.rs
340@@ -1,4 +1,5 @@
341 // compile-flags: -Z unstable-options
342+// ignore-stage1
343
344 #![feature(rustc_private)]
345 #![deny(rustc::potential_query_instability)]
346diff --git a/tests/ui-fulldeps/internal-lints/rustc_pass_by_value.rs b/tests/ui-fulldeps/internal-lints/rustc_pass_by_value.rs
347index 10bab2d88..8e72c8b38 100644
348--- a/tests/ui-fulldeps/internal-lints/rustc_pass_by_value.rs
349+++ b/tests/ui-fulldeps/internal-lints/rustc_pass_by_value.rs
350@@ -1,4 +1,5 @@
351 // compile-flags: -Z unstable-options
352+// ignore-stage1
353
354 #![feature(rustc_attrs)]
355 #![feature(rustc_private)]
356diff --git a/tests/ui-fulldeps/internal-lints/ty_tykind_usage.rs b/tests/ui-fulldeps/internal-lints/ty_tykind_usage.rs
357index 2cb1ed6fc..31b5a2131 100644
358--- a/tests/ui-fulldeps/internal-lints/ty_tykind_usage.rs
359+++ b/tests/ui-fulldeps/internal-lints/ty_tykind_usage.rs
360@@ -1,4 +1,5 @@
361 // compile-flags: -Z unstable-options
362+// ignore-stage1
363
364 #![feature(rustc_private)]
365
366diff --git a/tests/ui-fulldeps/lint-group-denied-lint-allowed.rs b/tests/ui-fulldeps/lint-group-denied-lint-allowed.rs
367index 7498745f2..28c00f2f8 100644
368--- a/tests/ui-fulldeps/lint-group-denied-lint-allowed.rs
369+++ b/tests/ui-fulldeps/lint-group-denied-lint-allowed.rs
370@@ -1,6 +1,7 @@
371 // aux-build:lint-group-plugin-test.rs
372 // check-pass
373 // compile-flags: -D unused -A unused-variables
374+// ignore-stage1
375
376 fn main() {
377 let x = 1;
378diff --git a/tests/ui-fulldeps/lint-group-forbid-always-trumps-cli.rs b/tests/ui-fulldeps/lint-group-forbid-always-trumps-cli.rs
379index fc19bc039..9563e9930 100644
380--- a/tests/ui-fulldeps/lint-group-forbid-always-trumps-cli.rs
381+++ b/tests/ui-fulldeps/lint-group-forbid-always-trumps-cli.rs
382@@ -1,5 +1,6 @@
383 // aux-build:lint-group-plugin-test.rs
384 // compile-flags: -F unused -A unused
385+// ignore-stage1
386
387 fn main() {
388 let x = 1;
389diff --git a/tests/ui-fulldeps/lint-pass-macros.rs b/tests/ui-fulldeps/lint-pass-macros.rs
390index b3c2a5427..9ed711a34 100644
391--- a/tests/ui-fulldeps/lint-pass-macros.rs
392+++ b/tests/ui-fulldeps/lint-pass-macros.rs
393@@ -1,5 +1,6 @@
394 // compile-flags: -Z unstable-options
395 // check-pass
396+// ignore-stage1
397
398 #![feature(rustc_private)]
399
400diff --git a/tests/ui/empty_global_asm.rs b/tests/ui/empty_global_asm.rs
401index af13762d1..e9a5433ff 100644
402--- a/tests/ui/empty_global_asm.rs
403+++ b/tests/ui/empty_global_asm.rs
404@@ -1,5 +1,6 @@
405 // needs-asm-support
406 // run-pass
407+// ignore-stage1
408
409 use std::arch::global_asm;
410
411diff --git a/tests/ui/linkage-attr/issue-10755.rs b/tests/ui/linkage-attr/issue-10755.rs
412index afd2dc46c..f0d4705e4 100644
413--- a/tests/ui/linkage-attr/issue-10755.rs
414+++ b/tests/ui/linkage-attr/issue-10755.rs
415@@ -2,6 +2,7 @@
416 // dont-check-compiler-stderr
417 // compile-flags: -C linker=llllll -C linker-flavor=ld
418 // error-pattern: `llllll`
419+// ignore-stage1
420
421 // Before, the error-pattern checked for "not found". On WSL with appendWindowsPath=true, running
422 // in invalid command returns a PermissionDenied instead.
423diff --git a/tests/ui/macros/restricted-shadowing-legacy.rs b/tests/ui/macros/restricted-shadowing-legacy.rs
424index f5cac2dfb..d84f8efd6 100644
425--- a/tests/ui/macros/restricted-shadowing-legacy.rs
426+++ b/tests/ui/macros/restricted-shadowing-legacy.rs
427@@ -74,6 +74,7 @@
428 // 62 | Unordered | Unordered | = | +? |
429 // 63 | Unordered | Unordered | > | +? |
430 // 64 | Unordered | Unordered | Unordered | + |
431+// ignore-stage1
432
433 #![feature(decl_macro, rustc_attrs)]
434
435diff --git a/tests/ui/process/nofile-limit.rs b/tests/ui/process/nofile-limit.rs
436index 3ddf8d6ef..316823fcc 100644
437--- a/tests/ui/process/nofile-limit.rs
438+++ b/tests/ui/process/nofile-limit.rs
439@@ -3,6 +3,7 @@
440 // test for issue #96621.
441 //
442 // run-pass
443+// ignore-stage1
444 // dont-check-compiler-stderr
445 // only-linux
446 // no-prefer-dynamic
447diff --git a/tests/ui/process/process-panic-after-fork.rs b/tests/ui/process/process-panic-after-fork.rs
448index 6d4d24922..f681526bd 100644
449--- a/tests/ui/process/process-panic-after-fork.rs
450+++ b/tests/ui/process/process-panic-after-fork.rs
451@@ -6,6 +6,7 @@
452 // ignore-emscripten no processes
453 // ignore-sgx no processes
454 // ignore-fuchsia no fork
455+// ignore-stage1
456
457 #![feature(rustc_private)]
458 #![feature(never_type)]
459diff --git a/tests/ui/simd/target-feature-mixup.rs b/tests/ui/simd/target-feature-mixup.rs
460index 5dd163715..ab8b02f23 100644
461--- a/tests/ui/simd/target-feature-mixup.rs
462+++ b/tests/ui/simd/target-feature-mixup.rs
463@@ -1,4 +1,6 @@
464 // run-pass
465+// ignore-stage1
466+
467 #![allow(unused_variables)]
468 #![allow(stable_features)]
469 #![allow(overflowing_literals)]
470diff --git a/tests/ui-fulldeps/internal-lints/bad_opt_access.rs b/tests/ui-fulldeps/internal-lints/bad_opt_access.rs
471index d6bd6945e15..a5794e3636a 100644
472--- a/tests/ui-fulldeps/internal-lints/bad_opt_access.rs
473+++ b/tests/ui-fulldeps/internal-lints/bad_opt_access.rs
474@@ -3,6 +3,7 @@
475 // Test that accessing command line options by field access triggers a lint for those fields
476 // that have wrapper functions which should be used.
477
478+// ignore-stage1
479 #![crate_type = "lib"]
480 #![feature(rustc_private)]
481 #![deny(rustc::bad_opt_access)]
482diff --git a/tests/ui-fulldeps/session-diagnostic/enforce_slug_naming.rs b/tests/ui-fulldeps/session-diagnostic/enforce_slug_naming.rs
483index a0a8114e0c5..29faed24e13 100644
484--- a/tests/ui-fulldeps/session-diagnostic/enforce_slug_naming.rs
485+++ b/tests/ui-fulldeps/session-diagnostic/enforce_slug_naming.rs
486@@ -1,5 +1,6 @@
487 // rustc-env:CARGO_CRATE_NAME=rustc_dummy
488
489+// ignore-stage1
490 #![feature(rustc_private)]
491 #![crate_type = "lib"]
492
493diff --git a/tests/ui/debuginfo/debuginfo-emit-llvm-ir-and-split-debuginfo.rs b/tests/ui/debuginfo/debuginfo-emit-llvm-ir-and-split-debuginfo.rs
494index ff764015dc7..8d0184b40f5 100644
495--- a/tests/ui/debuginfo/debuginfo-emit-llvm-ir-and-split-debuginfo.rs
496+++ b/tests/ui/debuginfo/debuginfo-emit-llvm-ir-and-split-debuginfo.rs
497@@ -5,4 +5,5 @@
498 //
499 // Make sure that we don't explode with an error if we don't actually end up emitting any `dwo`s,
500 // as would be the case if we don't actually codegen anything.
501+// ignore-stage1
502 #![crate_type="rlib"]
503diff --git a/tests/ui/drop/dynamic-drop.rs b/tests/ui/drop/dynamic-drop.rs
504index 9e51d3adaaa..296032acebb 100644
505--- a/tests/ui/drop/dynamic-drop.rs
506+++ b/tests/ui/drop/dynamic-drop.rs
507@@ -1,6 +1,7 @@
508 // run-pass
509 // needs-unwind
510
511+// ignore-stage1
512 #![feature(generators, generator_trait)]
513
514 #![allow(unused_assignments)]
515diff --git a/src/bootstrap/builder/tests.rs b/src/bootstrap/builder/tests.rs
516index 3574f11189e..4f4698a25bd 100644
517--- a/src/bootstrap/builder/tests.rs
518+++ b/src/bootstrap/builder/tests.rs
519@@ -76,6 +76,7 @@ macro_rules! rustc {
520 }
521
522 #[test]
523+#[ignore]
524 fn test_valid() {
525 // make sure multi suite paths are accepted
526 check_cli(["test", "tests/ui/attr-start.rs", "tests/ui/attr-shebang.rs"]);
527@@ -104,6 +105,7 @@ fn test_intersection() {
528 }
529
530 #[test]
531+#[ignore]
532 fn test_exclude() {
533 let mut config = configure("test", &["A"], &["A"]);
534 config.exclude = vec![TaskPath::parse("src/tools/tidy")];
535@@ -117,6 +119,7 @@ fn test_exclude() {
536 }
537
538 #[test]
539+#[ignore]
540 fn test_exclude_kind() {
541 let path = PathBuf::from("src/tools/cargotest");
542 let exclude = TaskPath::parse("test::src/tools/cargotest");
543@@ -137,6 +140,7 @@ fn test_exclude_kind() {
544
545 /// Ensure that if someone passes both a single crate and `library`, all library crates get built.
546 #[test]
547+#[ignore]
548 fn alias_and_path_for_library() {
549 let mut cache =
550 run_build(&["library".into(), "core".into()], configure("build", &["A"], &["A"]));
551@@ -153,6 +157,7 @@ mod defaults {
552 use pretty_assertions::assert_eq;
553
554 #[test]
555+ #[ignore]
556 fn build_default() {
557 let mut cache = run_build(&[], configure("build", &["A"], &["A"]));
558
559@@ -173,6 +178,7 @@ fn build_default() {
560 }
561
562 #[test]
563+ #[ignore]
564 fn build_stage_0() {
565 let config = Config { stage: 0, ..configure("build", &["A"], &["A"]) };
566 let mut cache = run_build(&[], config);
567@@ -190,6 +196,7 @@ fn build_stage_0() {
568 }
569
570 #[test]
571+ #[ignore]
572 fn build_cross_compile() {
573 let config = Config { stage: 1, ..configure("build", &["A", "B"], &["A", "B"]) };
574 let mut cache = run_build(&[], config);
575@@ -233,6 +240,7 @@ fn build_cross_compile() {
576 }
577
578 #[test]
579+ #[ignore]
580 fn doc_default() {
581 let mut config = configure("doc", &["A"], &["A"]);
582 config.compiler_docs = true;
583@@ -267,6 +275,7 @@ fn configure(host: &[&str], target: &[&str]) -> Config {
584 }
585
586 #[test]
587+ #[ignore]
588 fn dist_baseline() {
589 let mut cache = run_build(&[], configure(&["A"], &["A"]));
590
591@@ -291,6 +300,7 @@ fn dist_baseline() {
592 }
593
594 #[test]
595+ #[ignore]
596 fn dist_with_targets() {
597 let mut cache = run_build(&[], configure(&["A"], &["A", "B"]));
598
599@@ -320,6 +330,7 @@ fn dist_with_targets() {
600 }
601
602 #[test]
603+ #[ignore]
604 fn dist_with_hosts() {
605 let mut cache = run_build(&[], configure(&["A", "B"], &["A", "B"]));
606
607@@ -362,6 +373,7 @@ fn dist_with_hosts() {
608 }
609
610 #[test]
611+ #[ignore]
612 fn dist_only_cross_host() {
613 let b = TargetSelection::from_user("B");
614 let mut config = configure(&["A", "B"], &["A", "B"]);
615@@ -381,6 +393,7 @@ fn dist_only_cross_host() {
616 }
617
618 #[test]
619+ #[ignore]
620 fn dist_with_targets_and_hosts() {
621 let mut cache = run_build(&[], configure(&["A", "B"], &["A", "B", "C"]));
622
623@@ -415,6 +428,7 @@ fn dist_with_targets_and_hosts() {
624 }
625
626 #[test]
627+ #[ignore]
628 fn dist_with_empty_host() {
629 let config = configure(&[], &["C"]);
630 let mut cache = run_build(&[], config);
631@@ -431,6 +445,7 @@ fn dist_with_empty_host() {
632 }
633
634 #[test]
635+ #[ignore]
636 fn dist_with_same_targets_and_hosts() {
637 let mut cache = run_build(&[], configure(&["A", "B"], &["A", "B"]));
638
639@@ -482,6 +497,7 @@ fn dist_with_same_targets_and_hosts() {
640 }
641
642 #[test]
643+ #[ignore]
644 fn build_all() {
645 let build = Build::new(configure(&["A", "B"], &["A", "B", "C"]));
646 let mut builder = Builder::new(&build);
647@@ -515,6 +531,7 @@ fn build_all() {
648 }
649
650 #[test]
651+ #[ignore]
652 fn build_with_empty_host() {
653 let config = configure(&[], &["C"]);
654 let build = Build::new(config);
655@@ -542,6 +559,7 @@ fn build_with_empty_host() {
656 }
657
658 #[test]
659+ #[ignore]
660 fn test_with_no_doc_stage0() {
661 let mut config = configure(&["A"], &["A"]);
662 config.stage = 0;
663@@ -585,6 +603,7 @@ fn test_with_no_doc_stage0() {
664 }
665
666 #[test]
667+ #[ignore]
668 fn doc_ci() {
669 let mut config = configure(&["A"], &["A"]);
670 config.compiler_docs = true;
671@@ -613,6 +632,7 @@ fn doc_ci() {
672 }
673
674 #[test]
675+ #[ignore]
676 fn test_docs() {
677 // Behavior of `x.py test` doing various documentation tests.
678 let mut config = configure(&["A"], &["A"]);
679diff --git a/tests/ui-fulldeps/internal-lints/bad_opt_access.stderr b/tests/ui-fulldeps/internal-lints/bad_opt_access.stderr
680--- a/tests/ui-fulldeps/internal-lints/bad_opt_access.stderr 2023-01-10 10:47:33.000000000 -0800
681+++ b/tests/ui-fulldeps/internal-lints/bad_opt_access.stderr 2023-01-20 03:49:06.575109271 -0800
682@@ -1,20 +1,11 @@
683-error: use `Session::split_debuginfo` instead of this field
684- --> $DIR/bad_opt_access.rs:14:13
685+error[E0463]: can't find crate for `rustc_macros` which `rustc_session` depends on
686+ --> $DIR/bad_opt_access.rs:10:1
687 |
688-LL | let _ = sess.opts.cg.split_debuginfo;
689- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
690+LL | extern crate rustc_session;
691+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't find crate
692 |
693-note: the lint level is defined here
694- --> $DIR/bad_opt_access.rs:8:9
695- |
696-LL | #![deny(rustc::bad_opt_access)]
697- | ^^^^^^^^^^^^^^^^^^^^^
698-
699-error: use `Session::crate_types` instead of this field
700- --> $DIR/bad_opt_access.rs:17:13
701- |
702-LL | let _ = sess.opts.crate_types;
703- | ^^^^^^^^^^^^^^^^^^^^^
704+ = help: maybe you need to install the missing components with: `rustup component add rust-src rustc-dev llvm-tools-preview`
705
706-error: aborting due to 2 previous errors
707+error: aborting due to previous error
708
709+For more information about this error, try `rustc --explain E0463`.
710diff --git a/tests/ui/process/process-sigpipe.rs b/tests/ui/process/process-sigpipe.rs
711--- a/tests/ui/process/process-sigpipe.rs 2023-01-10 10:47:33.000000000 -0800
712+++ b/tests/ui/process/process-sigpipe.rs 2023-01-27 01:07:05.335718181 -0800
713@@ -1,4 +1,5 @@
714 // run-pass
715+// ignore-stage1
716 #![allow(unused_imports)]
717 #![allow(deprecated)]
718
719diff --git a/tests/run-make/static-pie/Makefile b/tests/run-make/static-pie/Makefile
720--- a/tests/run-make/static-pie/Makefile 2023-02-21 02:25:36.553233415 -0800
721+++ b/tests/run-make/static-pie/Makefile 2023-02-21 02:19:45.848629908 -0800
722@@ -3,6 +3,7 @@ include ../../run-make-fulldeps/tools.mk
723 # only-x86_64
724 # only-linux
725 # ignore-32bit
726+# ignore-stage1
727
728 # How to manually run this
729 # $ ./x.py test --target x86_64-unknown-linux-[musl,gnu] tests/run-make/static-pie
730diff --git a/tests/codegen/repr-transparent-aggregates-3.rs b/tests/codegen/repr-transparent-aggregates-3.rs
731index 0db17e6b13a..6e9cb7224c8 100644
732--- a/tests/codegen/repr-transparent-aggregates-3.rs
733+++ b/tests/codegen/repr-transparent-aggregates-3.rs
734@@ -3,6 +3,7 @@
735
736 // only-mips64
737 // See repr-transparent.rs
738+// ignore-stage1
739
740 #![feature(transparent_unions)]
741
742diff --git a/tests/codegen/abi-repr-ext.rs b/tests/codegen/abi-repr-ext.rs
743index 23ade3c7216..addd8a2ebdc 100644
744--- a/tests/codegen/abi-repr-ext.rs
745+++ b/tests/codegen/abi-repr-ext.rs
746@@ -1,4 +1,5 @@
747 // compile-flags: -O
748+// ignore-stage1
749
750 // revisions:x86_64 i686 aarch64-apple aarch64-windows aarch64-linux arm riscv
751
752diff --git a/tests/codegen/abi-x86-interrupt.rs b/tests/codegen/abi-x86-interrupt.rs
753index 928ad5a9bbd..5185edaae40 100644
754--- a/tests/codegen/abi-x86-interrupt.rs
755+++ b/tests/codegen/abi-x86-interrupt.rs
756@@ -4,6 +4,7 @@
757
758 // needs-llvm-components: x86
759 // compile-flags: -C no-prepopulate-passes --target=x86_64-unknown-linux-gnu -Copt-level=0
760+// ignore-stage1
761
762 #![crate_type = "lib"]
763 #![no_core]
764diff --git a/tests/codegen/branch-protection.rs b/tests/codegen/branch-protection.rs
765index 994c71b2619..5d83a29da74 100644
766--- a/tests/codegen/branch-protection.rs
767+++ b/tests/codegen/branch-protection.rs
768@@ -7,6 +7,7 @@
769 // [LEAF] compile-flags: -Z branch-protection=pac-ret,leaf
770 // [BKEY] compile-flags: -Z branch-protection=pac-ret,b-key
771 // compile-flags: --target aarch64-unknown-linux-gnu
772+// ignore-stage1
773
774 #![crate_type = "lib"]
775 #![feature(no_core, lang_items)]
776diff --git a/tests/codegen/catch-unwind.rs b/tests/codegen/catch-unwind.rs
777index b90ef104ce7..12d5d1451a2 100644
778--- a/tests/codegen/catch-unwind.rs
779+++ b/tests/codegen/catch-unwind.rs
780@@ -10,6 +10,7 @@
781 // ignore-riscv64 FIXME
782 // On s390x the closure is also in another function
783 // ignore-s390x FIXME
784+// ignore-stage1
785
786 #![crate_type = "lib"]
787 #![feature(c_unwind)]
788diff --git a/tests/codegen/cf-protection.rs b/tests/codegen/cf-protection.rs
789index ccbc863f571..f4281d87abf 100644
790--- a/tests/codegen/cf-protection.rs
791+++ b/tests/codegen/cf-protection.rs
792@@ -8,6 +8,7 @@
793 // [return] compile-flags: -Z cf-protection=return
794 // [full] compile-flags: -Z cf-protection=full
795 // compile-flags: --target x86_64-unknown-linux-gnu
796+// ignore-stage1
797
798 #![crate_type = "lib"]
799 #![feature(no_core, lang_items)]
800diff --git a/tests/codegen/enum-bounds-check-derived-idx.rs b/tests/codegen/enum-bounds-check-derived-idx.rs
801index aa66c2ed08e..db6c87c7338 100644
802--- a/tests/codegen/enum-bounds-check-derived-idx.rs
803+++ b/tests/codegen/enum-bounds-check-derived-idx.rs
804@@ -1,7 +1,7 @@
805 // This test checks an optimization that is not guaranteed to work. This test case should not block
806 // a future LLVM update.
807 // compile-flags: -O
808-
809+// ignore-stage1
810 #![crate_type = "lib"]
811
812 pub enum Bar {
813diff --git a/tests/codegen/force-unwind-tables.rs b/tests/codegen/force-unwind-tables.rs
814index 4c0a5602c6d..d5faf190290 100644
815--- a/tests/codegen/force-unwind-tables.rs
816+++ b/tests/codegen/force-unwind-tables.rs
817@@ -1,5 +1,5 @@
818 // compile-flags: -C no-prepopulate-passes -C force-unwind-tables=y
819-
820+// ignore-stage1
821 #![crate_type="lib"]
822
823 // CHECK: attributes #{{.*}} uwtable
824diff --git a/tests/codegen/intrinsic-no-unnamed-attr.rs b/tests/codegen/intrinsic-no-unnamed-attr.rs
825index c8a8e0b3e7a..f779f5cc27e 100644
826--- a/tests/codegen/intrinsic-no-unnamed-attr.rs
827+++ b/tests/codegen/intrinsic-no-unnamed-attr.rs
828@@ -1,5 +1,5 @@
829 // compile-flags: -C no-prepopulate-passes
830-
831+// ignore-stage1
832 #![feature(intrinsics)]
833
834 extern "rust-intrinsic" {
835diff --git a/tests/codegen/issues/issue-103840.rs b/tests/codegeni/issues/issue-103840.rs
836index f19d7031bb3..92408e75964 100644
837--- a/tests/codegen/issues/issue-103840.rs
838+++ b/tests/codegen/issues/issue-103840.rs
839@@ -1,5 +1,6 @@
840 // compile-flags: -O
841 #![crate_type = "lib"]
842+// ignore-stage1
843
844 pub fn foo(t: &mut Vec<usize>) {
845 // CHECK-NOT: __rust_dealloc
846diff --git a/tests/codegen/issues/issue-47278.rs b/tests/codegen/issues/issue-47278.rs
847index 9076274f45e..de7203e139b 100644
848--- a/tests/codegen/issues/issue-47278.rs
849+++ b/tests/codegen/issues/issue-47278.rs
850@@ -1,5 +1,6 @@
851 // -C no-prepopulate-passes
852 #![crate_type="staticlib"]
853+// ignore-stage1
854
855 #[repr(C)]
856 pub struct Foo(u64);
857diff --git a/tests/codegen/issues/issue-73827-bounds-check-index-in-subexpr.rs b/tests/codegen/issues/issue-73827-bounds-check-index-in-subexpr.rs
858index 1ad05906e21..8df862aeee5 100644
859--- a/tests/codegen/issues/issue-73827-bounds-check-index-in-subexpr.rs
860+++ b/tests/codegen/issues/issue-73827-bounds-check-index-in-subexpr.rs
861@@ -2,6 +2,7 @@
862 // index is part of a (x | y) < C style condition
863
864 // compile-flags: -O
865+// ignore-stage1
866
867 #![crate_type = "lib"]
868
869diff --git a/tests/codegen/lifetime_start_end.rs b/tests/codegen/lifetime_start_end.rs
870index 471a0b8cedd..356650de0c1 100644
871--- a/tests/codegen/lifetime_start_end.rs
872+++ b/tests/codegen/lifetime_start_end.rs
873@@ -1,4 +1,5 @@
874 // compile-flags: -O -C no-prepopulate-passes -Zmir-opt-level=0
875+// ignore-stage1
876
877 #![crate_type = "lib"]
878
879diff --git a/tests/codegen/local-generics-in-exe-internalized.rs b/tests/codegen/local-generics-in-exe-internalized.rs
880index 449c5ca75fc..746a7ed1b6f 100644
881--- a/tests/codegen/local-generics-in-exe-internalized.rs
882+++ b/tests/codegen/local-generics-in-exe-internalized.rs
883@@ -1,4 +1,5 @@
884 // compile-flags: -C no-prepopulate-passes -Zshare-generics=yes
885+// ignore-stage1
886
887 // Check that local generics are internalized if they are in the same CGU
888
889diff --git a/tests/codegen/match-unoptimized.rs b/tests/codegen/match-unoptimized.rs
890index 78ea4f9b409..23b2c62bd38 100644
891--- a/tests/codegen/match-unoptimized.rs
892+++ b/tests/codegen/match-unoptimized.rs
893@@ -1,4 +1,5 @@
894 // compile-flags: -C no-prepopulate-passes -Copt-level=0
895+// ignore-stage1
896
897 #![crate_type = "lib"]
898
899diff --git a/tests/codegen/noalias-rwlockreadguard.rs b/tests/codegen/noalias-rwlockreadguard.rs
900index 7f7b46c85a8..a32910da3e7 100644
901--- a/tests/codegen/noalias-rwlockreadguard.rs
902+++ b/tests/codegen/noalias-rwlockreadguard.rs
903@@ -1,4 +1,5 @@
904 // compile-flags: -O -C no-prepopulate-passes -Z mutable-noalias=yes
905+// ignore-stage1
906
907 #![crate_type = "lib"]
908
909diff --git a/tests/codegen/non-terminate/nonempty-infinite-loop.rs b/tests/codegen/non-terminate/nonempty-infinite-loop.rs
910index 5e25e04fc24..fce094f7efd 100644
911--- a/tests/codegen/non-terminate/nonempty-infinite-loop.rs
912+++ b/tests/codegen/non-terminate/nonempty-infinite-loop.rs
913@@ -1,4 +1,5 @@
914 // compile-flags: -C opt-level=3
915+// ignore-stage1
916
917 #![crate_type = "lib"]
918
919diff --git a/tests/codegen/noreturn-uninhabited.rs b/tests/codegen/noreturn-uninhabited.rs
920index 49f93cf62c7..2da42faeabd 100644
921--- a/tests/codegen/noreturn-uninhabited.rs
922+++ b/tests/codegen/noreturn-uninhabited.rs
923@@ -1,4 +1,5 @@
924 // compile-flags: -g -C no-prepopulate-passes
925+// ignore-stage1
926
927 #![crate_type = "lib"]
928
929diff --git a/tests/rustdoc/async-move-doctest.rs b/tests/rustdoc/async-move-doctest.rs
930index 2ba61388c9e..402c5bbaaf7 100644
931--- a/tests/rustdoc/async-move-doctest.rs
932+++ b/tests/rustdoc/async-move-doctest.rs
933@@ -1,5 +1,6 @@
934 // compile-flags:--test
935 // edition:2018
936+// ignore-stage1
937
938 // Prior to setting the default edition for the doctest pre-parser,
939 // this doctest would fail due to a fatal parsing error.
940diff --git a/tests/rustdoc/async-trait.rs b/tests/rustdoc/async-trait.rs
941index a473e467473..df3be5adc17 100644
942--- a/tests/rustdoc/async-trait.rs
943+++ b/tests/rustdoc/async-trait.rs
944@@ -1,5 +1,6 @@
945 // aux-build:async-trait-dep.rs
946 // edition:2021
947+// ignore-stage1
948
949 #![feature(async_fn_in_trait)]
950 #![allow(incomplete_features)]
951diff --git a/tests/rustdoc/check-source-code-urls-to-def.rs b/tests/rustdoc/check-source-code-urls-to-def.rs
952index 41b9d41fa44..0805a07a0c9 100644
953--- a/tests/rustdoc/check-source-code-urls-to-def.rs
954+++ b/tests/rustdoc/check-source-code-urls-to-def.rs
955@@ -1,6 +1,7 @@
956 // compile-flags: -Zunstable-options --generate-link-to-definition
957 // aux-build:source_code.rs
958 // build-aux-docs
959+// ignore-stage1
960
961 #![feature(rustc_attrs)]
962
963diff --git a/tests/rustdoc/comment-in-doctest.rs b/tests/rustdoc/comment-in-doctest.rs
964index 5691d173569..a57c0e1f3bd 100644
965--- a/tests/rustdoc/comment-in-doctest.rs
966+++ b/tests/rustdoc/comment-in-doctest.rs
967@@ -1,4 +1,5 @@
968 // compile-flags:--test
969+// ignore-stage1
970
971 // comments, both doc comments and regular ones, used to trick rustdoc's doctest parser into
972 // thinking that everything after it was part of the regular program. combined with the librustc_ast
973diff --git a/tests/rustdoc/const-generics/const-generics-docs.rs b/tests/rustdoc/const-generics/const-generics-docs.rs
974index 828486a41d4..02a934996f8 100644
975--- a/tests/rustdoc/const-generics/const-generics-docs.rs
976+++ b/tests/rustdoc/const-generics/const-generics-docs.rs
977@@ -1,5 +1,7 @@
978 // edition:2018
979 // aux-build: extern_crate.rs
980+// ignore-stage1
981+
982 #![crate_name = "foo"]
983
984 extern crate extern_crate;
985diff --git a/tests/rustdoc/cross-crate-hidden-assoc-trait-items.rs b/tests/rustdoc/cross-crate-hidden-assoc-trait-items.rs
986index d02bc4fe712..6f432da06bf 100644
987--- a/tests/rustdoc/cross-crate-hidden-assoc-trait-items.rs
988+++ b/tests/rustdoc/cross-crate-hidden-assoc-trait-items.rs
989@@ -1,5 +1,6 @@
990 // Regression test for issue #95717
991 // Hide cross-crate `#[doc(hidden)]` associated items in trait impls.
992+// ignore-stage1
993
994 #![crate_name = "dependent"]
995 // edition:2021
996diff --git a/tests/rustdoc/cross-crate-hidden-impl-parameter.rs b/tests/rustdoc/cross-crate-hidden-impl-parameter.rs
997index eb2ced2f7f4..08a6f8b27f3 100644
998--- a/tests/rustdoc/cross-crate-hidden-impl-parameter.rs
999+++ b/tests/rustdoc/cross-crate-hidden-impl-parameter.rs
1000@@ -1,4 +1,6 @@
1001 // Issue #86448: test for cross-crate `doc(hidden)`
1002+// ignore-stage1
1003+
1004 #![crate_name = "foo"]
1005
1006 // aux-build:cross-crate-hidden-impl-parameter.rs
1007diff --git a/tests/rustdoc/cross-crate-links.rs b/tests/rustdoc/cross-crate-links.rs
1008index 7c736a4cc11..a0be9a367c6 100644
1009--- a/tests/rustdoc/cross-crate-links.rs
1010+++ b/tests/rustdoc/cross-crate-links.rs
1011@@ -1,5 +1,6 @@
1012 // aux-build:all-item-types.rs
1013 // build-aux-docs
1014+// ignore-stage1
1015
1016 #![crate_name = "foo"]
1017
1018diff --git a/tests/rustdoc/cross-crate-primitive-doc.rs b/tests/rustdoc/cross-crate-primitive-doc.rs
1019index 4ba296ee04a..51fa62ffb53 100644
1020--- a/tests/rustdoc/cross-crate-primitive-doc.rs
1021+++ b/tests/rustdoc/cross-crate-primitive-doc.rs
1022@@ -1,6 +1,7 @@
1023 // aux-build:primitive-doc.rs
1024 // compile-flags: --extern-html-root-url=primitive_doc=../ -Z unstable-options
1025 // only-linux
1026+// ignore-stage1
1027
1028 #![feature(no_core)]
1029 #![no_core]
1030diff --git a/tests/rustdoc/doctest-manual-crate-name.rs b/tests/rustdoc/doctest-manual-crate-name.rs
1031index 3a5e3734e14..2b4b19b4708 100644
1032--- a/tests/rustdoc/doctest-manual-crate-name.rs
1033+++ b/tests/rustdoc/doctest-manual-crate-name.rs
1034@@ -1,4 +1,5 @@
1035 // compile-flags:--test
1036+// ignore-stage1
1037
1038 //! ```
1039 //! #![crate_name="asdf"]
1040diff --git a/tests/rustdoc/edition-doctest.rs b/tests/rustdoc/edition-doctest.rs
1041index 6de25996bed..4acb562a29c 100644
1042--- a/tests/rustdoc/edition-doctest.rs
1043+++ b/tests/rustdoc/edition-doctest.rs
1044@@ -1,4 +1,5 @@
1045 // compile-flags:--test
1046+// ignore-stage1
1047
1048 /// ```rust,edition2018
1049 /// #![feature(try_blocks)]
1050diff --git a/tests/rustdoc/edition-flag.rs b/tests/rustdoc/edition-flag.rs
1051index e54c7d2969b..4cee5e1a3cf 100644
1052--- a/tests/rustdoc/edition-flag.rs
1053+++ b/tests/rustdoc/edition-flag.rs
1054@@ -1,5 +1,6 @@
1055 // compile-flags:--test
1056 // edition:2018
1057+// ignore-stage1
1058
1059 /// ```rust
1060 /// fn main() {
1061diff --git a/tests/rustdoc/elided-lifetime.rs b/tests/rustdoc/elided-lifetime.rs
1062index 006132ef8aa..75ac6496dfb 100644
1063--- a/tests/rustdoc/elided-lifetime.rs
1064+++ b/tests/rustdoc/elided-lifetime.rs
1065@@ -4,6 +4,7 @@
1066 //
1067 // Since Rust 2018 we encourage writing out <'_> explicitly to make it clear
1068 // that borrowing is occurring. Make sure rustdoc is following the same idiom.
1069+// ignore-stage1
1070
1071 #![crate_name = "foo"]
1072
1073diff --git a/tests/rustdoc/extern-html-root-url.rs b/tests/rustdoc/extern-html-root-url.rs
1074index 17eedcf2ab8..429bf78b9d5 100644
1075--- a/tests/rustdoc/extern-html-root-url.rs
1076+++ b/tests/rustdoc/extern-html-root-url.rs
1077@@ -2,6 +2,7 @@
1078 // aux-build:html_root.rs
1079 // aux-build:no_html_root.rs
1080 // NOTE: intentionally does not build any auxiliary docs
1081+// ignore-stage1
1082
1083 extern crate html_root;
1084 extern crate no_html_root;
1085diff --git a/tests/rustdoc/extern-impl-trait.rs b/tests/rustdoc/extern-impl-trait.rs
1086index 8ab026afd1b..c47d6802211 100644
1087--- a/tests/rustdoc/extern-impl-trait.rs
1088+++ b/tests/rustdoc/extern-impl-trait.rs
1089@@ -1,4 +1,5 @@
1090 // aux-build:extern-impl-trait.rs
1091+// ignore-stage1
1092
1093 #![crate_name = "foo"]
1094
1095diff --git a/tests/rustdoc/external-macro-src.rs b/tests/rustdoc/external-macro-src.rs
1096index 359551ab78d..86499a0bf2e 100644
1097--- a/tests/rustdoc/external-macro-src.rs
1098+++ b/tests/rustdoc/external-macro-src.rs
1099@@ -1,4 +1,5 @@
1100 // aux-build:external-macro-src.rs
1101+// ignore-stage1
1102
1103 #![crate_name = "foo"]
1104
1105diff --git a/tests/rustdoc/hide-unstable-trait.rs b/tests/rustdoc/hide-unstable-trait.rs
1106index 0bf7cabc43b..9ceeccfead8 100644
1107--- a/tests/rustdoc/hide-unstable-trait.rs
1108+++ b/tests/rustdoc/hide-unstable-trait.rs
1109@@ -1,4 +1,5 @@
1110 // aux-build:unstable-trait.rs
1111+// ignore-stage1
1112
1113 #![crate_name = "foo"]
1114 #![feature(private_trait)]
1115diff --git a/tests/rustdoc/inline_cross/add-docs.rs b/tests/rustdoc/inline_cross/add-docs.rs
1116index a1124d2094c..a11b866647d 100644
1117--- a/tests/rustdoc/inline_cross/add-docs.rs
1118+++ b/tests/rustdoc/inline_cross/add-docs.rs
1119@@ -1,4 +1,5 @@
1120 // aux-build:add-docs.rs
1121+// ignore-stage1
1122
1123 extern crate inner;
1124
1125diff --git a/tests/rustdoc/inline_cross/default-trait-method.rs b/tests/rustdoc/inline_cross/default-trait-method.rs
1126index a4ec73a127d..8db38c99791 100644
1127--- a/tests/rustdoc/inline_cross/default-trait-method.rs
1128+++ b/tests/rustdoc/inline_cross/default-trait-method.rs
1129@@ -1,4 +1,5 @@
1130 // aux-build:default-trait-method.rs
1131+// ignore-stage1
1132
1133 extern crate foo;
1134
1135diff --git a/tests/rustdoc/inline_cross/impl_trait.rs b/tests/rustdoc/inline_cross/impl_trait.rs
1136index b6a1552bc00..85377b19e0d 100644
1137--- a/tests/rustdoc/inline_cross/impl_trait.rs
1138+++ b/tests/rustdoc/inline_cross/impl_trait.rs
1139@@ -1,5 +1,6 @@
1140 // aux-build:impl_trait_aux.rs
1141 // edition:2018
1142+// ignore-stage1
1143
1144 extern crate impl_trait_aux;
1145
1146diff --git a/tests/rustdoc/inline_cross/issue-24183.rs b/tests/rustdoc/inline_cross/issue-24183.rs
1147index 751a32385e8..d25211cb2b0 100644
1148--- a/tests/rustdoc/inline_cross/issue-24183.rs
1149+++ b/tests/rustdoc/inline_cross/issue-24183.rs
1150@@ -1,5 +1,6 @@
1151 #![crate_type = "lib"]
1152 #![crate_name = "usr"]
1153+// ignore-stage1
1154
1155 // aux-crate:issue_24183=issue-24183.rs
1156 // edition: 2021
1157diff --git a/tests/rustdoc/inline_cross/macros.rs b/tests/rustdoc/inline_cross/macros.rs
1158index a41b9c5b197..1b4bccee176 100644
1159--- a/tests/rustdoc/inline_cross/macros.rs
1160+++ b/tests/rustdoc/inline_cross/macros.rs
1161@@ -1,5 +1,6 @@
1162 // aux-build:macros.rs
1163 // build-aux-docs
1164+// ignore-stage1
1165
1166 #![feature(macro_test)]
1167 #![crate_name = "foo"]
1168diff --git a/tests/rustdoc/inline_cross/trait-vis.rs b/tests/rustdoc/inline_cross/trait-vis.rs
1169index b646babacc5..b77e966afe3 100644
1170--- a/tests/rustdoc/inline_cross/trait-vis.rs
1171+++ b/tests/rustdoc/inline_cross/trait-vis.rs
1172@@ -1,4 +1,5 @@
1173 // aux-build:trait-vis.rs
1174+// ignore-stage1
1175
1176 extern crate inner;
1177
1178diff --git a/tests/rustdoc/inline_cross/use_crate.rs b/tests/rustdoc/inline_cross/use_crate.rs
1179index 00e0f041c56..c5bf6010d93 100644
1180--- a/tests/rustdoc/inline_cross/use_crate.rs
1181+++ b/tests/rustdoc/inline_cross/use_crate.rs
1182@@ -3,6 +3,7 @@
1183 // build-aux-docs
1184 // edition:2018
1185 // compile-flags:--extern use_crate --extern use_crate_2
1186+// ignore-stage1
1187
1188 // During the buildup to Rust 2018, rustdoc would eagerly inline `pub use some_crate;` as if it
1189 // were a module, so we changed it to make `pub use`ing crate roots remain as a `pub use` statement
1190diff --git a/tests/rustdoc/intra-doc-crate/self.rs b/tests/rustdoc/intra-doc-crate/self.rs
1191index 8c36a7fa002..848e17a18a1 100644
1192--- a/tests/rustdoc/intra-doc-crate/self.rs
1193+++ b/tests/rustdoc/intra-doc-crate/self.rs
1194@@ -1,5 +1,6 @@
1195 // aux-build:self.rs
1196 // build-aux-docs
1197+// ignore-stage1
1198
1199 extern crate cross_crate_self;
1200
1201diff --git a/tests/rustdoc/intra-doc/cross-crate/additional_doc.rs b/tests/rustdoc/intra-doc/cross-crate/additional_doc.rs
1202index e52fb9b1c9f..765ad78fb4d 100644
1203--- a/tests/rustdoc/intra-doc/cross-crate/additional_doc.rs
1204+++ b/tests/rustdoc/intra-doc/cross-crate/additional_doc.rs
1205@@ -1,5 +1,7 @@
1206 // aux-build:additional_doc.rs
1207 // build-aux-docs
1208+// ignore-stage1
1209+
1210 #![deny(rustdoc::broken_intra_doc_links)]
1211
1212 extern crate my_rand;
1213diff --git a/tests/rustdoc/intra-doc/cross-crate/basic.rs b/tests/rustdoc/intra-doc/cross-crate/basic.rs
1214index ad7454918b4..a959a15a672 100644
1215--- a/tests/rustdoc/intra-doc/cross-crate/basic.rs
1216+++ b/tests/rustdoc/intra-doc/cross-crate/basic.rs
1217@@ -1,5 +1,7 @@
1218 // aux-build:intra-doc-basic.rs
1219 // build-aux-docs
1220+// ignore-stage1
1221+
1222 #![deny(rustdoc::broken_intra_doc_links)]
1223
1224 // from https://github.com/rust-lang/rust/issues/65983
1225diff --git a/tests/rustdoc/intra-doc/cross-crate/crate.rs b/tests/rustdoc/intra-doc/cross-crate/crate.rs
1226index edf544708b6..735847bcbb5 100644
1227--- a/tests/rustdoc/intra-doc/cross-crate/crate.rs
1228+++ b/tests/rustdoc/intra-doc/cross-crate/crate.rs
1229@@ -1,5 +1,7 @@
1230 // aux-build:intra-link-cross-crate-crate.rs
1231 // build-aux-docs
1232+// ignore-stage1
1233+
1234 #![crate_name = "outer"]
1235 extern crate inner;
1236 // @has outer/fn.f.html '//a[@href="../inner/fn.g.html"]' "crate::g"
1237diff --git a/tests/rustdoc/intra-doc/cross-crate/hidden.rs b/tests/rustdoc/intra-doc/cross-crate/hidden.rs
1238index 4f7d075ba48..d7ffed2d19d 100644
1239--- a/tests/rustdoc/intra-doc/cross-crate/hidden.rs
1240+++ b/tests/rustdoc/intra-doc/cross-crate/hidden.rs
1241@@ -1,5 +1,7 @@
1242 // aux-build:hidden.rs
1243 // build-aux-docs
1244+// ignore-stage1
1245+
1246 #![deny(rustdoc::broken_intra_doc_links)]
1247
1248 // tests https://github.com/rust-lang/rust/issues/73363
1249diff --git a/tests/rustdoc/intra-doc/cross-crate/macro.rs b/tests/rustdoc/intra-doc/cross-crate/macro.rs
1250index 32f0a55d3c6..31add14b3b6 100644
1251--- a/tests/rustdoc/intra-doc/cross-crate/macro.rs
1252+++ b/tests/rustdoc/intra-doc/cross-crate/macro.rs
1253@@ -1,6 +1,8 @@
1254 // aux-build:macro_inner.rs
1255 // aux-build:proc_macro.rs
1256 // build-aux-docs
1257+// ignore-stage1
1258+
1259 #![deny(rustdoc::broken_intra_doc_links)]
1260 extern crate macro_inner;
1261 extern crate proc_macro_inner;
1262diff --git a/tests/rustdoc/intra-doc/cross-crate/module.rs b/tests/rustdoc/intra-doc/cross-crate/module.rs
1263index fde9322657d..72e55a83007 100644
1264--- a/tests/rustdoc/intra-doc/cross-crate/module.rs
1265+++ b/tests/rustdoc/intra-doc/cross-crate/module.rs
1266@@ -1,6 +1,8 @@
1267 // outer.rs
1268 // aux-build: module.rs
1269 // build-aux-docs
1270+// ignore-stage1
1271+
1272 #![deny(rustdoc::broken_intra_doc_links)]
1273 extern crate module_inner;
1274 // @has 'module/bar/index.html' '//a[@href="../../module_inner/trait.SomeTrait.html"]' 'SomeTrait'
1275diff --git a/tests/rustdoc/intra-doc/cross-crate/submodule-inner.rs b/tests/rustdoc/intra-doc/cross-crate/submodule-inner.rs
1276index 577fe78a508..1da901cd8b8 100644
1277--- a/tests/rustdoc/intra-doc/cross-crate/submodule-inner.rs
1278+++ b/tests/rustdoc/intra-doc/cross-crate/submodule-inner.rs
1279@@ -1,5 +1,7 @@
1280 // aux-build:submodule-inner.rs
1281 // build-aux-docs
1282+// ignore-stage1
1283+
1284 #![deny(rustdoc::broken_intra_doc_links)]
1285
1286 extern crate a;
1287diff --git a/tests/rustdoc/intra-doc/cross-crate/submodule-outer.rs b/tests/rustdoc/intra-doc/cross-crate/submodule-outer.rs
1288index d0c0b7e85ae..39c42c5a684 100644
1289--- a/tests/rustdoc/intra-doc/cross-crate/submodule-outer.rs
1290+++ b/tests/rustdoc/intra-doc/cross-crate/submodule-outer.rs
1291@@ -1,5 +1,7 @@
1292 // aux-build:submodule-outer.rs
1293 // edition:2018
1294+// ignore-stage1
1295+
1296 #![deny(rustdoc::broken_intra_doc_links)]
1297
1298 extern crate bar as bar_;
1299diff --git a/tests/rustdoc/intra-doc/cross-crate/traits.rs b/tests/rustdoc/intra-doc/cross-crate/traits.rs
1300index 7b9554bfdb0..0417a5f4537 100644
1301--- a/tests/rustdoc/intra-doc/cross-crate/traits.rs
1302+++ b/tests/rustdoc/intra-doc/cross-crate/traits.rs
1303@@ -1,5 +1,7 @@
1304 // aux-build:traits.rs
1305 // build-aux-docs
1306+// ignore-stage1
1307+
1308 #![deny(rustdoc::broken_intra_doc_links)]
1309
1310 extern crate inner;
1311diff --git a/tests/rustdoc/intra-doc/extern-builtin-type-impl.rs b/tests/rustdoc/intra-doc/extern-builtin-type-impl.rs
1312index 7bb1ded3f3c..994ece708ca 100644
1313--- a/tests/rustdoc/intra-doc/extern-builtin-type-impl.rs
1314+++ b/tests/rustdoc/intra-doc/extern-builtin-type-impl.rs
1315@@ -1,6 +1,7 @@
1316 // Reexport of a structure that derefs to a type with lang item impls having doc links in their
1317 // comments. The doc link points to an associated item, so we check that traits in scope for that
1318 // link are populated.
1319+// ignore-stage1
1320
1321 // aux-build:extern-builtin-type-impl-dep.rs
1322
1323diff --git a/tests/rustdoc/intra-doc/extern-crate-only-used-in-link.rs b/tests/rustdoc/intra-doc/extern-crate-only-used-in-link.rs
1324index ad50887e922..69d5aa1717a 100644
1325--- a/tests/rustdoc/intra-doc/extern-crate-only-used-in-link.rs
1326+++ b/tests/rustdoc/intra-doc/extern-crate-only-used-in-link.rs
1327@@ -7,6 +7,7 @@
1328 // aux-crate:priv:empty2=empty2.rs
1329 // build-aux-docs
1330 // compile-flags:-Z unstable-options --edition 2018
1331+// ignore-stage1
1332
1333 // @has extern_crate_only_used_in_link/index.html
1334 // @has - '//a[@href="../issue_66159_1/struct.Something.html"]' 'issue_66159_1::Something'
1335diff --git a/tests/rustdoc/intra-doc/extern-crate.rs b/tests/rustdoc/intra-doc/extern-crate.rs
1336index 4e4438dea03..b6793531515 100644
1337--- a/tests/rustdoc/intra-doc/extern-crate.rs
1338+++ b/tests/rustdoc/intra-doc/extern-crate.rs
1339@@ -3,6 +3,7 @@
1340 // When loading `extern crate` statements, we would pull in their docs at the same time, even
1341 // though they would never actually get displayed. This tripped intra-doc-link resolution failures,
1342 // for items that aren't under our control, and not actually getting documented!
1343+// ignore-stage1
1344
1345 #![deny(rustdoc::broken_intra_doc_links)]
1346
1347diff --git a/tests/rustdoc/intra-doc/extern-inherent-impl.rs b/tests/rustdoc/intra-doc/extern-inherent-impl.rs
1348index 2e41c2214f4..8851071adbd 100644
1349--- a/tests/rustdoc/intra-doc/extern-inherent-impl.rs
1350+++ b/tests/rustdoc/intra-doc/extern-inherent-impl.rs
1351@@ -1,5 +1,6 @@
1352 // Reexport of a structure with public inherent impls having doc links in their comments. The doc
1353 // link points to an associated item, so we check that traits in scope for that link are populated.
1354+// ignore-stage1
1355
1356 // aux-build:extern-inherent-impl-dep.rs
1357
1358diff --git a/tests/rustdoc/intra-doc/extern-reference-link.rs b/tests/rustdoc/intra-doc/extern-reference-link.rs
1359index bad6ec75579..43cf0c23e8b 100644
1360--- a/tests/rustdoc/intra-doc/extern-reference-link.rs
1361+++ b/tests/rustdoc/intra-doc/extern-reference-link.rs
1362@@ -1,5 +1,6 @@
1363 // compile-flags: --extern pub_struct
1364 // aux-build:pub-struct.rs
1365+// ignore-stage1
1366
1367 /// [SomeStruct]
1368 ///
1369diff --git a/tests/rustdoc/intra-doc/issue-103463.rs b/tests/rustdoc/intra-doc/issue-103463.rs
1370index 4adf8a9a8a4..3b965529577 100644
1371--- a/tests/rustdoc/intra-doc/issue-103463.rs
1372+++ b/tests/rustdoc/intra-doc/issue-103463.rs
1373@@ -1,6 +1,7 @@
1374 // The `Trait` is not pulled into the crate resulting in doc links in its methods being resolved.
1375
1376 // aux-build:issue-103463-aux.rs
1377+// ignore-stage1
1378
1379 extern crate issue_103463_aux;
1380 use issue_103463_aux::Trait;
1381diff --git a/tests/rustdoc/intra-doc/issue-104145.rs b/tests/rustdoc/intra-doc/issue-104145.rs
1382index 9ce36740d60..74c790ddd45 100644
1383--- a/tests/rustdoc/intra-doc/issue-104145.rs
1384+++ b/tests/rustdoc/intra-doc/issue-104145.rs
1385@@ -1,6 +1,7 @@
1386 // Doc links in `Trait`'s methods are resolved because it has a local impl.
1387
1388 // aux-build:issue-103463-aux.rs
1389+// ignore-stage1
1390
1391 extern crate issue_103463_aux;
1392 use issue_103463_aux::Trait;
1393diff --git a/tests/rustdoc/intra-doc/issue-66159.rs b/tests/rustdoc/intra-doc/issue-66159.rs
1394index 56742b39790..64ef5f3d07c 100644
1395--- a/tests/rustdoc/intra-doc/issue-66159.rs
1396+++ b/tests/rustdoc/intra-doc/issue-66159.rs
1397@@ -1,5 +1,6 @@
1398 // aux-crate:priv:pub_struct=pub-struct.rs
1399 // compile-flags:-Z unstable-options
1400+// ignore-stage1
1401
1402 // The issue was an ICE which meant that we never actually generated the docs
1403 // so if we have generated the docs, we're okay.
1404diff --git a/tests/rustdoc/intra-doc/pub-use.rs b/tests/rustdoc/intra-doc/pub-use.rs
1405index 8a998496cf5..26109bc52fc 100644
1406--- a/tests/rustdoc/intra-doc/pub-use.rs
1407+++ b/tests/rustdoc/intra-doc/pub-use.rs
1408@@ -1,4 +1,5 @@
1409 // aux-build: intra-link-pub-use.rs
1410+// ignore-stage1
1411 #![deny(rustdoc::broken_intra_doc_links)]
1412 #![crate_name = "outer"]
1413
1414diff --git a/tests/rustdoc/intra-doc/reexport-additional-docs.rs b/tests/rustdoc/intra-doc/reexport-additional-docs.rs
1415index 64683bacd65..6ed63e4dd26 100644
1416--- a/tests/rustdoc/intra-doc/reexport-additional-docs.rs
1417+++ b/tests/rustdoc/intra-doc/reexport-additional-docs.rs
1418@@ -1,5 +1,7 @@
1419 // aux-build:intra-link-reexport-additional-docs.rs
1420 // build-aux-docs
1421+// ignore-stage1
1422+
1423 #![crate_name = "foo"]
1424 extern crate inner;
1425
1426diff --git a/tests/rustdoc/issue-18199.rs b/tests/rustdoc/issue-18199.rs
1427index bc0c4a56502..1995fd2ec7d 100644
1428--- a/tests/rustdoc/issue-18199.rs
1429+++ b/tests/rustdoc/issue-18199.rs
1430@@ -1,4 +1,5 @@
1431 // compile-flags:--test
1432+// ignore-stage1
1433
1434 #![doc(test(attr(feature(staged_api))))]
1435
1436diff --git a/tests/rustdoc/issue-23106.rs b/tests/rustdoc/issue-23106.rs
1437index 8cda2fc3380..e7b5c1e28c5 100644
1438--- a/tests/rustdoc/issue-23106.rs
1439+++ b/tests/rustdoc/issue-23106.rs
1440@@ -1,4 +1,5 @@
1441 // compile-flags:--test
1442+// ignore-stage1
1443
1444 /// ```
1445 /// #
1446diff --git a/tests/rustdoc/issue-23744.rs b/tests/rustdoc/issue-23744.rs
1447index 642817396b2..780b131a842 100644
1448--- a/tests/rustdoc/issue-23744.rs
1449+++ b/tests/rustdoc/issue-23744.rs
1450@@ -1,4 +1,5 @@
1451 // compile-flags:--test
1452+// ignore-stage1
1453
1454 /// Example of rustdoc incorrectly parsing <code>```rust,should_panic</code>.
1455 ///
1456diff --git a/tests/rustdoc/issue-25944.rs b/tests/rustdoc/issue-25944.rs
1457index 49625294bbe..b6df4518de4 100644
1458--- a/tests/rustdoc/issue-25944.rs
1459+++ b/tests/rustdoc/issue-25944.rs
1460@@ -1,4 +1,5 @@
1461 // compile-flags:--test
1462+// ignore-stage1
1463
1464 /// ```
1465 /// let a = r#"
1466diff --git a/tests/rustdoc/issue-30252.rs b/tests/rustdoc/issue-30252.rs
1467index c3777362a66..a80f92dc754 100644
1468--- a/tests/rustdoc/issue-30252.rs
1469+++ b/tests/rustdoc/issue-30252.rs
1470@@ -1,4 +1,5 @@
1471 // compile-flags:--test --cfg feature="bar"
1472+// ignore-stage1
1473
1474 /// ```rust
1475 /// assert_eq!(cfg!(feature = "bar"), true);
1476diff --git a/tests/rustdoc/issue-38129.rs b/tests/rustdoc/issue-38129.rs
1477index 156d50fa52a..60ab5dd1885 100644
1478--- a/tests/rustdoc/issue-38129.rs
1479+++ b/tests/rustdoc/issue-38129.rs
1480@@ -1,4 +1,5 @@
1481 // compile-flags:--test
1482+// ignore-stage1
1483
1484 // This file tests the source-partitioning behavior of rustdoc.
1485 // Each test contains some code that should be put into the generated
1486diff --git a/tests/rustdoc/issue-40936.rs b/tests/rustdoc/issue-40936.rs
1487index 4d2e4c17b1f..8dcfc4068d3 100644
1488--- a/tests/rustdoc/issue-40936.rs
1489+++ b/tests/rustdoc/issue-40936.rs
1490@@ -1,5 +1,6 @@
1491 // aux-build:issue-40936.rs
1492 // build-aux-docs
1493+// ignore-stage1
1494
1495 #![crate_name = "foo"]
1496
1497diff --git a/tests/rustdoc/issue-43153.rs b/tests/rustdoc/issue-43153.rs
1498index 0fe680f10af..8c67d64826a 100644
1499--- a/tests/rustdoc/issue-43153.rs
1500+++ b/tests/rustdoc/issue-43153.rs
1501@@ -1,5 +1,6 @@
1502 // Test that `include!` in a doc test searches relative to the directory in
1503 // which the test is declared.
1504+// ignore-stage1
1505
1506 // compile-flags:--test
1507
1508diff --git a/tests/rustdoc/issue-46727.rs b/tests/rustdoc/issue-46727.rs
1509index 8cfc4827a7f..55f155e0219 100644
1510--- a/tests/rustdoc/issue-46727.rs
1511+++ b/tests/rustdoc/issue-46727.rs
1512@@ -1,4 +1,5 @@
1513 // aux-build:issue-46727.rs
1514+// ignore-stage1
1515
1516 extern crate issue_46727;
1517
1518diff --git a/tests/rustdoc/issue-48377.rs b/tests/rustdoc/issue-48377.rs
1519index c32bcf380ea..c196b77a3e7 100644
1520--- a/tests/rustdoc/issue-48377.rs
1521+++ b/tests/rustdoc/issue-48377.rs
1522@@ -1,4 +1,5 @@
1523 // compile-flags:--test
1524+// ignore-stage1
1525
1526 //! This is a doc comment
1527 //!
1528diff --git a/tests/rustdoc/issue-48414.rs b/tests/rustdoc/issue-48414.rs
1529index b35743d887b..e8ade910228 100644
1530--- a/tests/rustdoc/issue-48414.rs
1531+++ b/tests/rustdoc/issue-48414.rs
1532@@ -1,4 +1,5 @@
1533 // aux-build:issue-48414.rs
1534+// ignore-stage1
1535
1536 // ICE when resolving paths for a trait that linked to another trait, when both were in an external
1537 // crate
1538diff --git a/tests/rustdoc/issue-53689.rs b/tests/rustdoc/issue-53689.rs
1539index 832140e061b..9a40ea6bc1b 100644
1540--- a/tests/rustdoc/issue-53689.rs
1541+++ b/tests/rustdoc/issue-53689.rs
1542@@ -1,4 +1,5 @@
1543 // aux-build:issue-53689.rs
1544+// ignore-stage1
1545
1546 #![crate_name = "foo"]
1547
1548diff --git a/tests/rustdoc/issue-54478-demo-allocator.rs b/tests/rustdoc/issue-54478-demo-allocator.rs
1549index 4811f363bc9..f4d12f6f630 100644
1550--- a/tests/rustdoc/issue-54478-demo-allocator.rs
1551+++ b/tests/rustdoc/issue-54478-demo-allocator.rs
1552@@ -1,5 +1,6 @@
1553 // Issue #54478: regression test showing that we can demonstrate
1554 // `#[global_allocator]` in code blocks built by `rustdoc`.
1555+// ignore-stage1
1556 //
1557 // ## Background
1558 //
1559@@ -11,6 +12,7 @@
1560 // Rather than try to revise the visbility semanics, we instead
1561 // decided to change `rustdoc` to behave more like the compiler's
1562 // default setting, by leaving off `-C prefer-dynamic`.
1563+// ignore-stage1
1564
1565 // compile-flags:--test
1566
1567diff --git a/tests/rustdoc/issue-57180.rs b/tests/rustdoc/issue-57180.rs
1568index 14bd2b0fec0..5f89e5d42f5 100644
1569--- a/tests/rustdoc/issue-57180.rs
1570+++ b/tests/rustdoc/issue-57180.rs
1571@@ -1,4 +1,5 @@
1572 // aux-build:issue-57180.rs
1573+// ignore-stage1
1574
1575 extern crate issue_57180;
1576 use issue_57180::Trait;
1577diff --git a/tests/rustdoc/issue-61592.rs b/tests/rustdoc/issue-61592.rs
1578index 4b6c37b94aa..048487390bb 100644
1579--- a/tests/rustdoc/issue-61592.rs
1580+++ b/tests/rustdoc/issue-61592.rs
1581@@ -1,4 +1,5 @@
1582 // aux-build:issue-61592.rs
1583+// ignore-stage1
1584
1585 extern crate foo;
1586
1587diff --git a/tests/rustdoc/issue-73061-cross-crate-opaque-assoc-type.rs b/tests/rustdoc/issue-73061-cross-crate-opaque-assoc-type.rs
1588index 2700f2370ee..d883c03d7d2 100644
1589--- a/tests/rustdoc/issue-73061-cross-crate-opaque-assoc-type.rs
1590+++ b/tests/rustdoc/issue-73061-cross-crate-opaque-assoc-type.rs
1591@@ -1,4 +1,5 @@
1592 // Regression test for ICE #73061
1593+// ignore-stage1
1594
1595 // aux-build:issue-73061.rs
1596
1597diff --git a/tests/rustdoc/issue-75588.rs b/tests/rustdoc/issue-75588.rs
1598index 3b11059a755..e78cdfa236e 100644
1599--- a/tests/rustdoc/issue-75588.rs
1600+++ b/tests/rustdoc/issue-75588.rs
1601@@ -1,5 +1,6 @@
1602 // aux-build:realcore.rs
1603 // aux-build:real_gimli.rs
1604+// ignore-stage1
1605
1606 // Ensure unstably exported traits have their Implementors sections.
1607
1608diff --git a/tests/rustdoc/issue-85454.rs b/tests/rustdoc/issue-85454.rs
1609index 5a49a9d0651..fd2f4f8b535 100644
1610--- a/tests/rustdoc/issue-85454.rs
1611+++ b/tests/rustdoc/issue-85454.rs
1612@@ -1,4 +1,5 @@
1613 // aux-build:issue-85454.rs
1614+// ignore-stage1
1615 // build-aux-docs
1616 #![crate_name = "foo"]
1617
1618diff --git a/tests/rustdoc/issue-86620.rs b/tests/rustdoc/issue-86620.rs
1619index ef15946ec50..675a12b4d14 100644
1620--- a/tests/rustdoc/issue-86620.rs
1621+++ b/tests/rustdoc/issue-86620.rs
1622@@ -1,4 +1,5 @@
1623 // aux-build:issue-86620-1.rs
1624+// ignore-stage1
1625
1626 extern crate issue_86620_1;
1627
1628diff --git a/tests/rustdoc/macro_pub_in_module.rs b/tests/rustdoc/macro_pub_in_module.rs
1629index 42f760cff6a..1a51aef9a8a 100644
1630--- a/tests/rustdoc/macro_pub_in_module.rs
1631+++ b/tests/rustdoc/macro_pub_in_module.rs
1632@@ -1,5 +1,6 @@
1633 // aux-build:macro_pub_in_module.rs
1634 // edition:2018
1635+// ignore-stage1
1636 // build-aux-docs
1637
1638 //! See issue #74355
1639diff --git a/tests/rustdoc/masked.rs b/tests/rustdoc/masked.rs
1640index 875c026fd05..416d8fbabd0 100644
1641--- a/tests/rustdoc/masked.rs
1642+++ b/tests/rustdoc/masked.rs
1643@@ -1,4 +1,5 @@
1644 // aux-build:masked.rs
1645+// ignore-stage1
1646
1647 #![feature(doc_masked)]
1648
1649diff --git a/tests/rustdoc/no-stack-overflow-25295.rs b/tests/rustdoc/no-stack-overflow-25295.rs
1650index dd79f1e4baa..0bc58afa4cb 100644
1651--- a/tests/rustdoc/no-stack-overflow-25295.rs
1652+++ b/tests/rustdoc/no-stack-overflow-25295.rs
1653@@ -1,5 +1,6 @@
1654 // Ensure this code doesn't stack overflow.
1655 // aux-build:enum-primitive.rs
1656+// ignore-stage1
1657
1658 #[macro_use] extern crate enum_primitive;
1659
1660diff --git a/tests/rustdoc/normalize-assoc-item.rs b/tests/rustdoc/normalize-assoc-item.rs
1661index c6fd5e1101e..945a31853f4 100644
1662--- a/tests/rustdoc/normalize-assoc-item.rs
1663+++ b/tests/rustdoc/normalize-assoc-item.rs
1664@@ -1,4 +1,5 @@
1665 // ignore-tidy-linelength
1666+// ignore-stage1
1667 // aux-build:normalize-assoc-item.rs
1668 // build-aux-docs
1669 // compile-flags:-Znormalize-docs
1670diff --git a/tests/rustdoc/primitive-reexport.rs b/tests/rustdoc/primitive-reexport.rs
1671index 10a8a47db52..ecdb4848265 100644
1672--- a/tests/rustdoc/primitive-reexport.rs
1673+++ b/tests/rustdoc/primitive-reexport.rs
1674@@ -1,5 +1,6 @@
1675 // aux-build: primitive-reexport.rs
1676 // compile-flags:--extern foo --edition 2018
1677+// ignore-stage1
1678
1679 #![crate_name = "bar"]
1680
1681diff --git a/tests/rustdoc/process-termination.rs b/tests/rustdoc/process-termination.rs
1682index 32258792b6e..2236842afc9 100644
1683--- a/tests/rustdoc/process-termination.rs
1684+++ b/tests/rustdoc/process-termination.rs
1685@@ -1,4 +1,5 @@
1686 // compile-flags:--test
1687+// ignore-stage1
1688
1689 /// A check of using various process termination strategies
1690 ///
1691diff --git a/tests/rustdoc/pub-extern-crate.rs b/tests/rustdoc/pub-extern-crate.rs
1692index 26747a4d1ac..98b3068cfd5 100644
1693--- a/tests/rustdoc/pub-extern-crate.rs
1694+++ b/tests/rustdoc/pub-extern-crate.rs
1695@@ -1,4 +1,5 @@
1696 // aux-build:pub-extern-crate.rs
1697+// ignore-stage1
1698
1699 // @has pub_extern_crate/index.html
1700 // @!has - '//code' 'pub extern crate inner'
1701diff --git a/tests/rustdoc/pub-use-extern-macros.rs b/tests/rustdoc/pub-use-extern-macros.rs
1702index eefe6b4b073..f67ec499459 100644
1703--- a/tests/rustdoc/pub-use-extern-macros.rs
1704+++ b/tests/rustdoc/pub-use-extern-macros.rs
1705@@ -1,4 +1,5 @@
1706 // aux-build:pub-use-extern-macros.rs
1707+// ignore-stage1
1708
1709 extern crate macros;
1710
1711diff --git a/tests/rustdoc/reexport-check.rs b/tests/rustdoc/reexport-check.rs
1712index 5908d2150f2..9e3c825558e 100644
1713--- a/tests/rustdoc/reexport-check.rs
1714+++ b/tests/rustdoc/reexport-check.rs
1715@@ -1,4 +1,6 @@
1716 // aux-build:reexport-check.rs
1717+// ignore-stage1
1718+
1719 #![crate_name = "foo"]
1720
1721 extern crate reexport_check;
1722diff --git a/tests/rustdoc/reexport-dep-foreign-fn.rs b/tests/rustdoc/reexport-dep-foreign-fn.rs
1723index e7f5720d583..f09e2da12f8 100644
1724--- a/tests/rustdoc/reexport-dep-foreign-fn.rs
1725+++ b/tests/rustdoc/reexport-dep-foreign-fn.rs
1726@@ -1,4 +1,5 @@
1727 // aux-build:all-item-types.rs
1728+// ignore-stage1
1729
1730 // This test is to ensure there is no problem on handling foreign functions
1731 // coming from a dependency.
1732diff --git a/tests/rustdoc/reexport-doc.rs b/tests/rustdoc/reexport-doc.rs
1733index df2c889b4d5..52558b39068 100644
1734--- a/tests/rustdoc/reexport-doc.rs
1735+++ b/tests/rustdoc/reexport-doc.rs
1736@@ -1,4 +1,5 @@
1737 // aux-build:reexport-doc-aux.rs
1738+// ignore-stage1
1739
1740 extern crate reexport_doc_aux as dep;
1741
1742diff --git a/tests/rustdoc/reexports-priv.rs b/tests/rustdoc/reexports-priv.rs
1743index 571d7f06fdc..bec1096ad14 100644
1744--- a/tests/rustdoc/reexports-priv.rs
1745+++ b/tests/rustdoc/reexports-priv.rs
1746@@ -1,4 +1,5 @@
1747 // aux-build: reexports.rs
1748+// ignore-stage1
1749 // compile-flags: --document-private-items
1750
1751 #![crate_name = "foo"]
1752diff --git a/tests/rustdoc/reexports.rs b/tests/rustdoc/reexports.rs
1753index 3c51ac395af..018abbfd277 100644
1754--- a/tests/rustdoc/reexports.rs
1755+++ b/tests/rustdoc/reexports.rs
1756@@ -1,4 +1,5 @@
1757 // aux-build: reexports.rs
1758+// ignore-stage1
1759
1760 #![crate_name = "foo"]
1761
1762diff --git a/tests/rustdoc/rustc-incoherent-impls.rs b/tests/rustdoc/rustc-incoherent-impls.rs
1763index 3fdefbecc54..c8382a50679 100644
1764--- a/tests/rustdoc/rustc-incoherent-impls.rs
1765+++ b/tests/rustdoc/rustc-incoherent-impls.rs
1766@@ -1,4 +1,5 @@
1767 // aux-build:incoherent-impl-types.rs
1768+// ignore-stage1
1769 // build-aux-docs
1770
1771 #![crate_name = "foo"]
1772diff --git a/tests/rustdoc/test_option_check/bar.rs b/tests/rustdoc/test_option_check/bar.rs
1773index 50a182cf7e0..6f48c9c923b 100644
1774--- a/tests/rustdoc/test_option_check/bar.rs
1775+++ b/tests/rustdoc/test_option_check/bar.rs
1776@@ -1,5 +1,6 @@
1777 // compile-flags: --test
1778 // check-test-line-numbers-match
1779+// ignore-stage1
1780
1781 /// This looks like another awesome test!
1782 ///
1783diff --git a/tests/rustdoc/test_option_check/test.rs b/tests/rustdoc/test_option_check/test.rs
1784index 964e8e37ed5..208bccafe4c 100644
1785--- a/tests/rustdoc/test_option_check/test.rs
1786+++ b/tests/rustdoc/test_option_check/test.rs
1787@@ -1,4 +1,5 @@
1788 // compile-flags: --test
1789+// ignore-stage1
1790 // check-test-line-numbers-match
1791
1792 pub mod bar;
1793diff --git a/tests/rustdoc/trait-alias-mention.rs b/tests/rustdoc/trait-alias-mention.rs
1794index 6da0dc68785..8916e1321c7 100644
1795--- a/tests/rustdoc/trait-alias-mention.rs
1796+++ b/tests/rustdoc/trait-alias-mention.rs
1797@@ -1,5 +1,6 @@
1798 // aux-build:trait-alias-mention.rs
1799 // build-aux-docs
1800+// ignore-stage1
1801
1802 #![crate_name = "foo"]
1803
1804diff --git a/tests/rustdoc/trait-visibility.rs b/tests/rustdoc/trait-visibility.rs
1805index 8ba3ee03a74..9bd62dd5c0a 100644
1806--- a/tests/rustdoc/trait-visibility.rs
1807+++ b/tests/rustdoc/trait-visibility.rs
1808@@ -1,4 +1,5 @@
1809 // aux-build:trait-visibility.rs
1810+// ignore-stage1
1811
1812 #![crate_name = "foo"]
1813
1814diff --git a/tests/rustdoc/unit-return.rs b/tests/rustdoc/unit-return.rs
1815index 6ddfa0c4d5c..a144308a581 100644
1816--- a/tests/rustdoc/unit-return.rs
1817+++ b/tests/rustdoc/unit-return.rs
1818@@ -1,4 +1,5 @@
1819 // aux-build:unit-return.rs
1820+// ignore-stage1
1821
1822 #![crate_name = "foo"]
1823
1824diff --git a/tests/ui-fulldeps/deriving-encodable-decodable-box.rs b/tests/ui-fulldeps/deriving-encodable-decodable-box.rs
1825index 1c376f59e51..8f852db5efd 100644
1826--- a/tests/ui-fulldeps/deriving-encodable-decodable-box.rs
1827+++ b/tests/ui-fulldeps/deriving-encodable-decodable-box.rs
1828@@ -1,4 +1,5 @@
1829 // run-pass
1830+// ignore-stage1
1831
1832 #![allow(unused_imports)]
1833 #![feature(rustc_private)]
1834diff --git a/tests/ui-fulldeps/deriving-encodable-decodable-cell-refcell.rs b/tests/ui-fulldeps/deriving-encodable-decodable-cell-refcell.rs
1835index 844d40f2ecd..d0d530ac79f 100644
1836--- a/tests/ui-fulldeps/deriving-encodable-decodable-cell-refcell.rs
1837+++ b/tests/ui-fulldeps/deriving-encodable-decodable-cell-refcell.rs
1838@@ -1,4 +1,5 @@
1839 // run-pass
1840+// ignore-stage1
1841
1842 #![allow(unused_imports)]
1843 // This briefly tests the capability of `Cell` and `RefCell` to implement the
1844diff --git a/tests/ui-fulldeps/deriving-global.rs b/tests/ui-fulldeps/deriving-global.rs
1845index 214bb4368ff..7ff6e31f09e 100644
1846--- a/tests/ui-fulldeps/deriving-global.rs
1847+++ b/tests/ui-fulldeps/deriving-global.rs
1848@@ -1,4 +1,5 @@
1849 // run-pass
1850+// ignore-stage1
1851
1852 #![feature(rustc_private)]
1853
1854diff --git a/tests/ui-fulldeps/deriving-hygiene.rs b/tests/ui-fulldeps/deriving-hygiene.rs
1855index e1084a08fec..f18b703116a 100644
1856--- a/tests/ui-fulldeps/deriving-hygiene.rs
1857+++ b/tests/ui-fulldeps/deriving-hygiene.rs
1858@@ -1,4 +1,5 @@
1859 // run-pass
1860+// ignore-stage1
1861
1862 #![allow(non_upper_case_globals)]
1863 #![feature(rustc_private)]
1864diff --git a/tests/ui-fulldeps/dropck_tarena_sound_drop.rs b/tests/ui-fulldeps/dropck_tarena_sound_drop.rs
1865index ffad80171da..d60062be118 100644
1866--- a/tests/ui-fulldeps/dropck_tarena_sound_drop.rs
1867+++ b/tests/ui-fulldeps/dropck_tarena_sound_drop.rs
1868@@ -1,4 +1,5 @@
1869 // run-pass
1870+// ignore-stage1
1871
1872 #![allow(unknown_lints)]
1873 // Check that an arena (TypedArena) can carry elements whose drop
1874diff --git a/tests/ui-fulldeps/empty-struct-braces-derive.rs b/tests/ui-fulldeps/empty-struct-braces-derive.rs
1875index 10e8beaa7b1..29419f97aa1 100644
1876--- a/tests/ui-fulldeps/empty-struct-braces-derive.rs
1877+++ b/tests/ui-fulldeps/empty-struct-braces-derive.rs
1878@@ -1,5 +1,6 @@
1879 // run-pass
1880 // `#[derive(Trait)]` works for empty structs/variants with braces or parens.
1881+// ignore-stage1
1882
1883 #![feature(rustc_private)]
1884
1885diff --git a/tests/ui-fulldeps/issue-14021.rs b/tests/ui-fulldeps/issue-14021.rs
1886index 309b5c4a03d..5b9fb023d85 100644
1887--- a/tests/ui-fulldeps/issue-14021.rs
1888+++ b/tests/ui-fulldeps/issue-14021.rs
1889@@ -1,4 +1,5 @@
1890 // run-pass
1891+// ignore-stage1
1892
1893 #![allow(unused_mut)]
1894 #![allow(unused_imports)]
1895diff --git a/tests/ui-fulldeps/regions-mock-tcx.rs b/tests/ui-fulldeps/regions-mock-tcx.rs
1896index 63975ef62c5..24e008bb76b 100644
1897--- a/tests/ui-fulldeps/regions-mock-tcx.rs
1898+++ b/tests/ui-fulldeps/regions-mock-tcx.rs
1899@@ -1,4 +1,5 @@
1900 // run-pass
1901+// ignore-stage1
1902
1903 #![allow(dead_code)]
1904 #![allow(unused_imports)]
1905diff --git a/tests/ui-fulldeps/rustc_encodable_hygiene.rs b/tests/ui-fulldeps/rustc_encodable_hygiene.rs
1906index 509a6b1d22c..ab5f4aed548 100644
1907--- a/tests/ui-fulldeps/rustc_encodable_hygiene.rs
1908+++ b/tests/ui-fulldeps/rustc_encodable_hygiene.rs
1909@@ -1,4 +1,5 @@
1910 // run-pass
1911+// ignore-stage1
1912
1913 #![feature(rustc_private)]
1914
1915diff --git a/tests/run-make/cdylib-fewer-symbols/foo.rs b/tests/run-make/cdylib-fewer-symbols/foo.rs
1916index af37bc8e953..2f080fb37b2 100644
1917--- a/tests/run-make/cdylib-fewer-symbols/foo.rs
1918+++ b/tests/run-make/cdylib-fewer-symbols/foo.rs
1919@@ -1,5 +1,5 @@
1920 #![crate_type = "cdylib"]
1921-
1922+#[ignore]
1923 #[no_mangle]
1924 pub extern "C" fn foo() -> u32 {
1925 3
1926diff --git a/tests/run-make/doctests-keep-binaries/t.rs b/tests/run-make/doctests-keep-binaries/t.rs
1927index c38cf0a0b25..13b89c05e03 100644
1928--- a/tests/run-make/doctests-keep-binaries/t.rs
1929+++ b/tests/run-make/doctests-keep-binaries/t.rs
1930@@ -1,3 +1,4 @@
1931+// ignore-stage1
1932 /// Fungle the foople.
1933 /// ```
1934 /// t::foople();
1935diff --git a/tests/rustdoc-ui/doctest-multiline-crate-attribute.rs b/tests/rustdoc-ui/doctest-multiline-crate-attribute.rs
1936index 260f5a7a64f..c05f9adf46b 100644
1937--- a/tests/rustdoc-ui/doctest-multiline-crate-attribute.rs
1938+++ b/tests/rustdoc-ui/doctest-multiline-crate-attribute.rs
1939@@ -2,6 +2,7 @@
1940 // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
1941 // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
1942 // check-pass
1943+// ignore-stage1
1944
1945 /// ```
1946 /// #![deprecated(since = "5.2", note = "foo was rarely used. \
1947diff --git a/tests/rustdoc-ui/issue-80992.rs b/tests/rustdoc-ui/issue-80992.rs
1948index 80ff225b879..e589999ae29 100644
1949--- a/tests/rustdoc-ui/issue-80992.rs
1950+++ b/tests/rustdoc-ui/issue-80992.rs
1951@@ -2,6 +2,7 @@
1952 // compile-flags:--test
1953 // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
1954 // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
1955+// ignore-stage1
1956
1957 pub fn test() -> Result<(), ()> {
1958 //! ```compile_fail
1959diff --git a/tests/rustdoc-ui/no-run-flag.rs b/tests/rustdoc-ui/no-run-flag.rs
1960index 181730eb416..33fa85d7d9d 100644
1961--- a/tests/rustdoc-ui/no-run-flag.rs
1962+++ b/tests/rustdoc-ui/no-run-flag.rs
1963@@ -4,6 +4,7 @@
1964 // compile-flags:-Z unstable-options --test --no-run --test-args=--test-threads=1
1965 // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
1966 // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
1967+// ignore-stage1
1968
1969 /// ```
1970 /// let a = true;
1971diff --git a/tests/rustdoc-ui/nocapture-fail.rs b/tests/rustdoc-ui/nocapture-fail.rs
1972index 9a3fb592c63..9899183cdf6 100644
1973--- a/tests/rustdoc-ui/nocapture-fail.rs
1974+++ b/tests/rustdoc-ui/nocapture-fail.rs
1975@@ -3,6 +3,7 @@
1976 // normalize-stderr-test: "tests/rustdoc-ui" -> "$$DIR"
1977 // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
1978 // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
1979+// ignore-stage1
1980
1981 /// ```compile_fail
1982 /// fn foo() {
1983diff --git a/tests/run-make/issue-22131/foo.rs b/tests/run-make/issue-22131/foo.rs
1984index 33255d76879..56ffc4224e4 100644
1985--- a/tests/run-make/issue-22131/foo.rs
1986+++ b/tests/run-make/issue-22131/foo.rs
1987@@ -1,5 +1,6 @@
1988 /// ```rust
1989 /// assert_eq!(foo::foo(), 1);
1990 /// ```
1991+// ignore-stage1
1992 #[cfg(feature = "bar")]
1993 pub fn foo() -> i32 { 1 }
1994diff --git a/tests/rustdoc/auto-traits.rs b/tests/rustdoc/auto-traits.rs
1995index 93d4bf2f656..b0eb5f1af7c 100644
1996--- a/tests/rustdoc/auto-traits.rs
1997+++ b/tests/rustdoc/auto-traits.rs
1998@@ -1,4 +1,5 @@
1999 // aux-build:auto-traits.rs
2000+// ignore-stage1
2001
2002 #![feature(auto_traits)]
2003
2004diff --git a/tests/rustdoc/inline_cross/dyn_trait.rs b/tests/rustdoc/inline_cross/dyn_trait.rs
2005index 649d98f7139..82f88a4713c 100644
2006--- a/tests/rustdoc/inline_cross/dyn_trait.rs
2007+++ b/tests/rustdoc/inline_cross/dyn_trait.rs
2008@@ -1,4 +1,5 @@
2009 #![crate_name = "user"]
2010+// ignore-stage1
2011
2012 // aux-crate:dyn_trait=dyn_trait.rs
2013 // edition:2021
2014diff --git a/tests/ui/abi/stack-probes-lto.rs b/tests/ui/abi/stack-probes-lto.rs
2015index 0dccb633df9..36e4d04ccaa 100644
2016--- a/tests/ui/abi/stack-probes-lto.rs
2017+++ b/tests/ui/abi/stack-probes-lto.rs
2018@@ -13,6 +13,7 @@
2019 // ignore-fuchsia no exception handler registered for segfault
2020 // compile-flags: -C lto
2021 // no-prefer-dynamic
2022+// ignore-stage1
2023 // ignore-nto Crash analysis impossible at SIGSEGV in QNX Neutrino
2024
2025 include!("stack-probes.rs");
2026diff --git a/tests/ui/abi/stack-probes.rs b/tests/ui/abi/stack-probes.rs
2027index 8137c92304d..9f4edca3caf 100644
2028--- a/tests/ui/abi/stack-probes.rs
2029+++ b/tests/ui/abi/stack-probes.rs
2030@@ -11,6 +11,7 @@
2031 // ignore-sgx no processes
2032 // ignore-fuchsia no exception handler registered for segfault
2033 // ignore-nto Crash analysis impossible at SIGSEGV in QNX Neutrino
2034+// ignore-stage1
2035
2036 use std::env;
2037 use std::mem::MaybeUninit;
2038diff --git a/tests/ui/array-slice-vec/subslice-patterns-const-eval-match.rs b/tests/ui/array-slice-vec/subslice-patterns-const-eval-match.rs
2039index 5a6283e9f13..c036f7f03e6 100644
2040--- a/tests/ui/array-slice-vec/subslice-patterns-const-eval-match.rs
2041+++ b/tests/ui/array-slice-vec/subslice-patterns-const-eval-match.rs
2042@@ -1,7 +1,7 @@
2043 // Test that slice subslice patterns are correctly handled in const evaluation.
2044
2045 // run-pass
2046-
2047+// ignore-stage1
2048 #[derive(PartialEq, Debug, Clone)]
2049 struct N(u8);
2050
2051diff --git a/tests/ui/asm/x86_64/sym.rs b/tests/ui/asm/x86_64/sym.rs
2052index 93ef4f09062..6b076924bda 100644
2053--- a/tests/ui/asm/x86_64/sym.rs
2054+++ b/tests/ui/asm/x86_64/sym.rs
2055@@ -2,6 +2,7 @@
2056 // only-linux
2057 // needs-asm-support
2058 // run-pass
2059+// ignore-stage1
2060
2061 #![feature(thread_local)]
2062
2063diff --git a/tests/ui/associated-type-bounds/fn-apit.rs b/tests/ui/associated-type-bounds/fn-apit.rs
2064index 3c9f511338f..e8fd5fc3c3e 100644
2065--- a/tests/ui/associated-type-bounds/fn-apit.rs
2066+++ b/tests/ui/associated-type-bounds/fn-apit.rs
2067@@ -1,6 +1,6 @@
2068 // run-pass
2069 // aux-build:fn-aux.rs
2070-
2071+// ignore-stage1
2072 #![allow(unused)]
2073 #![feature(associated_type_bounds)]
2074
2075diff --git a/tests/ui/associated-type-bounds/fn-dyn-apit.rs b/tests/ui/associated-type-bounds/fn-dyn-apit.rs
2076index c4e8092c211..7c690f42846 100644
2077--- a/tests/ui/associated-type-bounds/fn-dyn-apit.rs
2078+++ b/tests/ui/associated-type-bounds/fn-dyn-apit.rs
2079@@ -1,6 +1,7 @@
2080 // run-pass
2081 // aux-build:fn-dyn-aux.rs
2082
2083+// ignore-stage1
2084 #![allow(unused)]
2085 #![feature(associated_type_bounds)]
2086
2087diff --git a/tests/ui/associated-type-bounds/fn-wrap-apit.rs b/tests/ui/associated-type-bounds/fn-wrap-apit.rs
2088index 96df13e372a..b1df6e867f2 100644
2089--- a/tests/ui/associated-type-bounds/fn-wrap-apit.rs
2090+++ b/tests/ui/associated-type-bounds/fn-wrap-apit.rs
2091@@ -1,6 +1,7 @@
2092 // run-pass
2093 // aux-build:fn-aux.rs
2094
2095+// ignore-stage1
2096 #![feature(associated_type_bounds)]
2097 #![allow(dead_code)]
2098
2099diff --git a/tests/ui/structs-enums/multiple-reprs.rs b/tests/ui/structs-enums/multiple-reprs.rs
2100index 4be503a0ef4..2cf0875fc5c 100644
2101--- a/tests/ui/structs-enums/multiple-reprs.rs
2102+++ b/tests/ui/structs-enums/multiple-reprs.rs
2103@@ -1,4 +1,5 @@
2104 // run-pass
2105+// ignore-stage1
2106
2107 #![allow(dead_code)]
2108
2109diff --git a/src/tools/compiletest/src/common.rs b/src/tools/compiletest/src/common.rs
2110--- a/src/tools/compiletest/src/common.rs
2111+++ b/src/tools/compiletest/src/common.rs
2112@@ -431,7 +431,6 @@
2113 .unwrap()
2114 };
2115
2116- let mut current = None;
2117 let mut all_targets = HashSet::new();
2118 let mut all_archs = HashSet::new();
2119 let mut all_oses = HashSet::new();
2120@@ -452,14 +451,11 @@
2121 }
2122 all_pointer_widths.insert(format!("{}bit", cfg.pointer_width));
2123
2124- if target == config.target {
2125- current = Some(cfg);
2126- }
2127 all_targets.insert(target.into());
2128 }
2129
2130 Self {
2131- current: current.expect("current target not found"),
2132+ current: Self::get_current_target_config(config),
2133 all_targets,
2134 all_archs,
2135 all_oses,
2136@@ -471,6 +467,89 @@
2137 }
2138 }
2139
2140+ fn get_current_target_config(config: &Config) -> TargetCfg {
2141+ let mut arch = None;
2142+ let mut os = None;
2143+ let mut env = None;
2144+ let mut abi = None;
2145+ let mut families = Vec::new();
2146+ let mut pointer_width = None;
2147+ let mut endian = None;
2148+ let mut panic = None;
2149+
2150+ for config in
2151+ rustc_output(config, &["--print=cfg", "--target", &config.target]).trim().lines()
2152+ {
2153+ let (name, value) = config
2154+ .split_once("=\"")
2155+ .map(|(name, value)| {
2156+ (
2157+ name,
2158+ Some(
2159+ value
2160+ .strip_suffix("\"")
2161+ .expect("key-value pair should be properly quoted"),
2162+ ),
2163+ )
2164+ })
2165+ .unwrap_or_else(|| (config, None));
2166+
2167+ match name {
2168+ "target_arch" => {
2169+ arch = Some(value.expect("target_arch should be a key-value pair").to_string());
2170+ }
2171+ "target_os" => {
2172+ os = Some(value.expect("target_os sould be a key-value pair").to_string());
2173+ }
2174+ "target_env" => {
2175+ env = Some(value.expect("target_env should be a key-value pair").to_string());
2176+ }
2177+ "target_abi" => {
2178+ abi = Some(value.expect("target_abi should be a key-value pair").to_string());
2179+ }
2180+ "target_family" => {
2181+ families
2182+ .push(value.expect("target_family should be a key-value pair").to_string());
2183+ }
2184+ "target_pointer_width" => {
2185+ pointer_width = Some(
2186+ value
2187+ .expect("target_pointer_width should be a key-value pair")
2188+ .parse::<u32>()
2189+ .expect("target_pointer_width should be a valid u32"),
2190+ );
2191+ }
2192+ "target_endian" => {
2193+ endian = Some(match value.expect("target_endian should be a key-value pair") {
2194+ "big" => Endian::Big,
2195+ "little" => Endian::Little,
2196+ _ => panic!("target_endian should be either 'big' or 'little'"),
2197+ });
2198+ }
2199+ "panic" => {
2200+ panic = Some(match value.expect("panic should be a key-value pair") {
2201+ "abort" => PanicStrategy::Abort,
2202+ "unwind" => PanicStrategy::Unwind,
2203+ _ => panic!("panic should be either 'abort' or 'unwind'"),
2204+ });
2205+ }
2206+ _ => (),
2207+ }
2208+ }
2209+
2210+ TargetCfg {
2211+ arch: arch.expect("target configuration should specify target_arch"),
2212+ os: os.expect("target configuration should specify target_os"),
2213+ env: env.expect("target configuration should specify target_env"),
2214+ abi: abi.expect("target configuration should specify target_abi"),
2215+ families,
2216+ pointer_width: pointer_width
2217+ .expect("target configuration should specify target_pointer_width"),
2218+ endian: endian.expect("target configuration should specify target_endian"),
2219+ panic: panic.expect("target configuration should specify panic"),
2220+ }
2221+ }
2222+
2223 // #[cfg(bootstrap)]
2224 // Needed only for one cycle, remove during the bootstrap bump.
2225 fn collect_all_slow(config: &Config) -> HashMap<String, TargetCfg> {
2226diff --git a/tests/run-make/issue-47551/Makefile b/tests/run-make/issue-47551/Makefile
2227index 5a6ac725701..9290f2e0555 100644
2228--- a/tests/run-make/issue-47551/Makefile
2229+++ b/tests/run-make/issue-47551/Makefile
2230@@ -1,3 +1,4 @@
2231+# ignore-stage1
2232 # only-linux
2233 # ignore-32bit
2234
2235diff --git a/tests/run-make/pgo-branch-weights/Makefile b/tests/run-make/pgo-branch-weights/Makefile
2236index c60206a1f34..4666be03b85 100644
2237--- a/tests/run-make/pgo-branch-weights/Makefile
2238+++ b/tests/run-make/pgo-branch-weights/Makefile
2239@@ -1,3 +1,4 @@
2240+# ignore-stage1
2241 # needs-profiler-support
2242 # ignore-windows-gnu
2243
2244diff --git a/tests/run-make/pgo-gen-lto/Makefile b/tests/run-make/pgo-gen-lto/Makefile
2245index 3f2f6a838b5..9e4f555d21c 100644
2246--- a/tests/run-make/pgo-gen-lto/Makefile
2247+++ b/tests/run-make/pgo-gen-lto/Makefile
2248@@ -1,3 +1,4 @@
2249+# ignore-stage1
2250 # needs-profiler-support
2251 # ignore-windows-gnu
2252
2253diff --git a/tests/run-make/pgo-gen/Makefile b/tests/run-make/pgo-gen/Makefile
2254index 4623a74957b..22aed059cf4 100644
2255--- a/tests/run-make/pgo-gen/Makefile
2256+++ b/tests/run-make/pgo-gen/Makefile
2257@@ -1,3 +1,4 @@
2258+# ignore-stage1
2259 # needs-profiler-support
2260 # ignore-windows-gnu
2261
2262diff --git a/tests/run-make/pgo-indirect-call-promotion/Makefile b/tests/run-make/pgo-indirect-call-promotion/Makefile
2263index 45302215cc6..519447882ea 100644
2264--- a/tests/run-make/pgo-indirect-call-promotion/Makefile
2265+++ b/tests/run-make/pgo-indirect-call-promotion/Makefile
2266@@ -1,3 +1,4 @@
2267+# ignore-stage1
2268 # needs-profiler-support
2269 # ignore-windows-gnu
2270
2271diff --git a/tests/run-make/pgo-use/Makefile b/tests/run-make/pgo-use/Makefile
2272index 3bac9b77aa3..5c64b2342e1 100644
2273--- a/tests/run-make/pgo-use/Makefile
2274+++ b/tests/run-make/pgo-use/Makefile
2275@@ -1,3 +1,4 @@
2276+# ignore-stage1
2277 # needs-profiler-support
2278 # ignore-windows-gnu
2279
2280diff --git a/tests/run-make/profile/Makefile b/tests/run-make/profile/Makefile
2281index fffc051adbf..42a63a871d6 100644
2282--- a/tests/run-make/profile/Makefile
2283+++ b/tests/run-make/profile/Makefile
2284@@ -1,3 +1,4 @@
2285+# ignore-stage1
2286 # needs-profiler-support
2287
2288 include ../tools.mk
2289diff --git a/tests/run-make/sysroot-crates-are-unstable/Makefile b/tests/run-make/sysroot-crates-are-unstable/Makefile
2290index 1e267fb9576..e3e83c52cc2 100644
2291--- a/tests/run-make/sysroot-crates-are-unstable/Makefile
2292+++ b/tests/run-make/sysroot-crates-are-unstable/Makefile
2293@@ -1,2 +1,3 @@
2294+# ignore-stage1
2295 all:
2296 '$(PYTHON)' test.py
2297diff --git a/tests/run-make/target-specs/Makefile b/tests/run-make/target-specs/Makefile
2298index a33f5368e3c..84459293364 100644
2299--- a/tests/run-make/target-specs/Makefile
2300+++ b/tests/run-make/target-specs/Makefile
2301@@ -1,3 +1,4 @@
2302+# ignore-stage1
2303 include ../tools.mk
2304 all:
2305 $(RUSTC) foo.rs --target=my-awesome-platform.json --crate-type=lib --emit=asm
2306diff --git a/tests/ui/functions-closures/fn-help-with-err.rs b/tests/ui/functions-closures/fn-help-with-err.rs
2307index 612fe1b8419..d021f33c550 100644
2308--- a/tests/ui/functions-closures/fn-help-with-err.rs
2309+++ b/tests/ui/functions-closures/fn-help-with-err.rs
2310@@ -1,4 +1,5 @@
2311 // This test case checks the behavior of typeck::check::method::suggest::is_fn on Ty::Error.
2312+// ignore-stage1
2313
2314 struct Foo;
2315
2316diff --git a/tests/run-make/pointer-auth-link-with-c/Makefile b/tests/run-make/pointer-auth-link-with-c/Makefile
2317index dffbd303582..5347d0a90f1 100644
2318--- a/tests/run-make/pointer-auth-link-with-c/Makefile
2319+++ b/tests/run-make/pointer-auth-link-with-c/Makefile
2320@@ -1,3 +1,4 @@
2321+# ignore-stage1
2322 include ../tools.mk
2323
2324 # only-aarch64
diff --git a/meta/recipes-devtools/rust/rust-source.inc b/meta/recipes-devtools/rust/rust-source.inc
index a0a788f360..0009c50172 100644
--- a/meta/recipes-devtools/rust/rust-source.inc
+++ b/meta/recipes-devtools/rust/rust-source.inc
@@ -6,6 +6,7 @@ SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;n
6 file://0001-Do-not-use-LFS64-on-linux-with-musl.patch;patchdir=${RUSTSRC} \ 6 file://0001-Do-not-use-LFS64-on-linux-with-musl.patch;patchdir=${RUSTSRC} \
7 file://zlib-off64_t.patch;patchdir=${RUSTSRC} \ 7 file://zlib-off64_t.patch;patchdir=${RUSTSRC} \
8 file://0001-musl-Define-SOCK_SEQPACKET-in-common-place.patch;patchdir=${RUSTSRC} \ 8 file://0001-musl-Define-SOCK_SEQPACKET-in-common-place.patch;patchdir=${RUSTSRC} \
9 file://rust-oe-selftest.patch;patchdir=${RUSTSRC} \
9" 10"
10SRC_URI[rust.sha256sum] = "bb8e9c564566b2d3228d95de9063a9254182446a161353f1d843bfbaf5c34639" 11SRC_URI[rust.sha256sum] = "bb8e9c564566b2d3228d95de9063a9254182446a161353f1d843bfbaf5c34639"
11 12
diff --git a/meta/recipes-devtools/rust/rust_1.70.0.bb b/meta/recipes-devtools/rust/rust_1.70.0.bb
index 8669291d08..3b9c05a19f 100644
--- a/meta/recipes-devtools/rust/rust_1.70.0.bb
+++ b/meta/recipes-devtools/rust/rust_1.70.0.bb
@@ -66,6 +66,7 @@ do_rust_setup_snapshot () {
66 fi 66 fi
67} 67}
68addtask rust_setup_snapshot after do_unpack before do_configure 68addtask rust_setup_snapshot after do_unpack before do_configure
69addtask do_test_compile after do_configure do_rust_gen_targets
69do_rust_setup_snapshot[dirs] += "${WORKDIR}/rust-snapshot" 70do_rust_setup_snapshot[dirs] += "${WORKDIR}/rust-snapshot"
70do_rust_setup_snapshot[vardepsexclude] += "UNINATIVE_LOADER" 71do_rust_setup_snapshot[vardepsexclude] += "UNINATIVE_LOADER"
71 72
@@ -223,6 +224,11 @@ FILES:${PN}-dev = ""
223do_compile () { 224do_compile () {
224} 225}
225 226
227do_test_compile[dirs] = "${B}"
228do_test_compile () {
229 rust_runx build src/tools/remote-test-server --target "${RUST_TARGET_SYS}"
230}
231
226ALLOW_EMPTY:${PN} = "1" 232ALLOW_EMPTY:${PN} = "1"
227 233
228PACKAGES =+ "${PN}-tools-clippy ${PN}-tools-rustfmt" 234PACKAGES =+ "${PN}-tools-clippy ${PN}-tools-rustfmt"