From 12190e5dd2f97a17d597eee23fb3f03b4b052d89 Mon Sep 17 00:00:00 2001 From: onur-ozkan <work@onurozkan.dev> Date: Thu, 28 Dec 2023 17:27:59 +0300 Subject: [PATCH] utilize the unused `llvm-tools` option This field was not functioning as described in its comment in `config.example.toml`. Also, updated the default value to `true` to keep the bootstrapping behavior as it was before. Signed-off-by: onur-ozkan <work@onurozkan.dev> --- config.example.toml | 2 +- src/bootstrap/src/core/build_steps/compile.rs | 2 +- src/bootstrap/src/core/build_steps/dist.rs | 14 ++++++++------ src/bootstrap/src/core/config/config.rs | 2 +- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/config.example.toml b/config.example.toml index dacc61a3e4c..f1ea6bac3ca 100644 --- a/config.example.toml +++ b/config.example.toml @@ -661,7 +661,7 @@ # Indicates whether some LLVM tools, like llvm-objdump, will be made available in the # sysroot. -#llvm-tools = false +#llvm-tools = true # Whether to deny warnings in crates #deny-warnings = true diff --git a/src/bootstrap/src/core/build_steps/compile.rs b/src/bootstrap/src/core/build_steps/compile.rs index df4d1a43dab..dbb64583d56 100644 --- a/src/bootstrap/src/core/build_steps/compile.rs +++ b/src/bootstrap/src/core/build_steps/compile.rs @@ -1738,7 +1738,7 @@ impl Step for Assemble { if builder.config.rust_codegen_backends.contains(&INTERNER.intern_str("llvm")) { let llvm::LlvmResult { llvm_config, .. } = builder.ensure(llvm::Llvm { target: target_compiler.host }); - if !builder.config.dry_run() { + if !builder.config.dry_run() && builder.config.llvm_tools_enabled { let llvm_bin_dir = output(Command::new(llvm_config).arg("--bindir")); let llvm_bin_dir = Path::new(llvm_bin_dir.trim()); diff --git a/src/bootstrap/src/core/build_steps/dist.rs b/src/bootstrap/src/core/build_steps/dist.rs index 98e267713da..dd89f9ee4e2 100644 --- a/src/bootstrap/src/core/build_steps/dist.rs +++ b/src/bootstrap/src/core/build_steps/dist.rs @@ -2157,12 +2157,14 @@ impl Step for LlvmTools { tarball.set_overlay(OverlayKind::LLVM); tarball.is_preview(true); - // Prepare the image directory - let src_bindir = builder.llvm_out(target).join("bin"); - let dst_bindir = format!("lib/rustlib/{}/bin", target.triple); - for tool in LLVM_TOOLS { - let exe = src_bindir.join(exe(tool, target)); - tarball.add_file(&exe, &dst_bindir, 0o755); + if builder.config.llvm_tools_enabled { + // Prepare the image directory + let src_bindir = builder.llvm_out(target).join("bin"); + let dst_bindir = format!("lib/rustlib/{}/bin", target.triple); + for tool in LLVM_TOOLS { + let exe = src_bindir.join(exe(tool, target)); + tarball.add_file(&exe, &dst_bindir, 0o755); + } } // Copy libLLVM.so to the target lib dir as well, so the RPATH like diff --git a/src/bootstrap/src/core/config/config.rs b/src/bootstrap/src/core/config/config.rs index f1e1b89d9ba..8e51af8ff18 100644 --- a/src/bootstrap/src/core/config/config.rs +++ b/src/bootstrap/src/core/config/config.rs @@ -1630,7 +1630,7 @@ impl Config { ); } - set(&mut config.llvm_tools_enabled, llvm_tools); + config.llvm_tools_enabled = llvm_tools.unwrap_or(true); config.rustc_parallel = parallel_compiler.unwrap_or(config.channel == "dev" || config.channel == "nightly"); config.rustc_default_linker = default_linker;