about summary refs log tree commit diff
path: root/src/bootstrap/doc.rs
diff options
context:
space:
mode:
authorAliƩnore Bouttefeux <77335613+ABouttefeux@users.noreply.github.com>2021-04-05 21:13:29 +0200
committerGitHub <noreply@github.com>2021-04-05 21:13:29 +0200
commitb08b4848c3653818b47fa8cc0a613455c8b4d255 (patch)
treea9162fd1698833dc8cf9ef55af102be906df22d5 /src/bootstrap/doc.rs
parent72f534aae1c6cca58b97957d6c225885fcdb4d1b (diff)
parent5a7a0ac51eefbdacc5b1763f8d49a787407afb34 (diff)
Merge branch 'master' into master
Diffstat (limited to 'src/bootstrap/doc.rs')
-rw-r--r--src/bootstrap/doc.rs11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/bootstrap/doc.rs b/src/bootstrap/doc.rs
index 1168d54b55e..fc79fc10fb4 100644
--- a/src/bootstrap/doc.rs
+++ b/src/bootstrap/doc.rs
@@ -461,7 +461,16 @@ impl Step for Std {
         // create correct links between crates because rustdoc depends on the
         // existence of the output directories to know if it should be a local
         // or remote link.
-        let krates = ["core", "alloc", "std", "proc_macro", "test"];
+        //
+        // There's also a mild hack here where we build the first crate in this
+        // list, core, twice. This is currently necessary to make sure that
+        // cargo's cached rustc/rustdoc versions are up to date which means
+        // cargo won't delete the out_dir we create for the stampfile.
+        // Essentially any crate could go into the first slot here as it's
+        // output directory will be deleted by us (as cargo will purge the stamp
+        // file during the first slot's run), and core is relatively fast to
+        // build so works OK to fill this 'dummy' slot.
+        let krates = ["core", "core", "alloc", "std", "proc_macro", "test"];
         for krate in &krates {
             run_cargo_rustdoc_for(krate);
         }