about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJakub Beránek <berykubik@gmail.com>2025-06-24 15:51:08 +0200
committerJakub Beránek <berykubik@gmail.com>2025-06-25 16:05:26 +0200
commite0f8e865dbf9f1dc9d1d917efc04320e2eb123f5 (patch)
tree78603f48a9782c47f2d02e4a1514ebc6aaa5158e
parent2801f9aaf9b7580d9b230b532b0700709857cc88 (diff)
downloadrust-e0f8e865dbf9f1dc9d1d917efc04320e2eb123f5.tar.gz
rust-e0f8e865dbf9f1dc9d1d917efc04320e2eb123f5.zip
Skip unnecessary components in x64 try builds
-rw-r--r--src/tools/opt-dist/src/exec.rs26
1 files changed, 22 insertions, 4 deletions
diff --git a/src/tools/opt-dist/src/exec.rs b/src/tools/opt-dist/src/exec.rs
index 64ce5cc3775..75569eacacd 100644
--- a/src/tools/opt-dist/src/exec.rs
+++ b/src/tools/opt-dist/src/exec.rs
@@ -113,7 +113,7 @@ impl Bootstrap {
             "library/std",
         ])
         .env("RUST_BACKTRACE", "full");
-        let cmd = add_shared_x_flags(env, cmd);
+        let mut cmd = add_shared_x_flags(env, cmd);
 
         Self { cmd, metrics_path }
     }
@@ -122,7 +122,12 @@ impl Bootstrap {
         let metrics_path = env.build_root().join("build").join("metrics.json");
         let args = dist_args.iter().map(|arg| arg.as_str()).collect::<Vec<_>>();
         let cmd = cmd(&args).env("RUST_BACKTRACE", "full");
-        let cmd = add_shared_x_flags(env, cmd);
+        let mut cmd = add_shared_x_flags(env, cmd);
+        if env.is_fast_try_build() {
+            // We set build.extended=false for fast try builds, but we still need Cargo
+            cmd = cmd.arg("cargo");
+        }
+
         Self { cmd, metrics_path }
     }
 
@@ -188,6 +193,19 @@ impl Bootstrap {
     }
 }
 
-fn add_shared_x_flags(env: &Environment, cmd: CmdBuilder) -> CmdBuilder {
-    if env.is_fast_try_build() { cmd.arg("--set").arg("rust.deny-warnings=false") } else { cmd }
+fn add_shared_x_flags(env: &Environment, mut cmd: CmdBuilder) -> CmdBuilder {
+    if env.is_fast_try_build() {
+        // Skip things that cannot be skipped through `x ... --skip`
+        cmd.arg("--set")
+            .arg("rust.llvm-bitcode-linker=false")
+            // Skip wasm-component-ld. This also skips cargo, which we need to re-enable for dist
+            .arg("--set")
+            .arg("build.extended=false")
+            .arg("--set")
+            .arg("rust.codegen-backends=['llvm']")
+            .arg("--set")
+            .arg("rust.deny-warnings=false")
+    } else {
+        cmd
+    }
 }