Rollup merge of #150070 - Kobzol:enzyme-error, r=ZuseZ4

Partially revert #147888 and print warning if LLVM CMake dir is missing when building Enzyme

Partially reverts https://github.com/rust-lang/rust/pull/147888, Enzyme cannot be build with `download-ci-llvm = true`.

r? ``@ZuseZ4``
This commit is contained in:
Jacob Pratt 2025-12-16 23:10:11 -05:00 committed by GitHub
commit 1a7df03f58
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 12 additions and 6 deletions

View file

@ -925,7 +925,7 @@ impl Step for Enzyme {
}
let target = self.target;
let LlvmResult { host_llvm_config, .. } = builder.ensure(Llvm { target: self.target });
let LlvmResult { host_llvm_config, llvm_cmake_dir } = builder.ensure(Llvm { target });
static STAMP_HASH_MEMO: OnceLock<String> = OnceLock::new();
let smart_stamp_hash = STAMP_HASH_MEMO.get_or_init(|| {
@ -955,15 +955,20 @@ impl Step for Enzyme {
return out_dir;
}
if !builder.config.dry_run() && !llvm_cmake_dir.is_dir() {
builder.info(&format!(
"WARNING: {} does not exist, Enzyme build will likely fail",
llvm_cmake_dir.display()
));
}
trace!(?target, "(re)building enzyme artifacts");
builder.info(&format!("Building Enzyme for {target}"));
t!(stamp.remove());
let _time = helpers::timeit(builder);
t!(fs::create_dir_all(&out_dir));
builder
.config
.update_submodule(Path::new("src").join("tools").join("enzyme").to_str().unwrap());
builder.config.update_submodule("src/tools/enzyme");
let mut cfg = cmake::Config::new(builder.src.join("src/tools/enzyme/enzyme/"));
configure_cmake(builder, target, &mut cfg, true, LdFlags::default(), &[]);
@ -983,7 +988,7 @@ impl Step for Enzyme {
.define("LLVM_ENABLE_ASSERTIONS", "ON")
.define("ENZYME_EXTERNAL_SHARED_LIB", "ON")
.define("ENZYME_BC_LOADER", "OFF")
.define("LLVM_DIR", builder.llvm_out(target));
.define("LLVM_DIR", llvm_cmake_dir);
cfg.build();

View file

@ -117,7 +117,7 @@ pub fn check_incompatible_options_for_ci_llvm(
enable_warnings,
download_ci_llvm: _,
build_config,
enzyme: _,
enzyme,
} = ci_llvm_config;
err!(current_llvm_config.optimize, optimize);
@ -139,6 +139,7 @@ pub fn check_incompatible_options_for_ci_llvm(
err!(current_llvm_config.clang, clang);
err!(current_llvm_config.build_config, build_config);
err!(current_llvm_config.plugins, plugins);
err!(current_llvm_config.enzyme, enzyme);
warn!(current_llvm_config.enable_warnings, enable_warnings);