From df74220c4a9559866233669b87106ce8041c8238 Mon Sep 17 00:00:00 2001 From: Manuel Drehwald Date: Wed, 4 Feb 2026 00:39:07 -0500 Subject: [PATCH 1/2] cp pr 151795 and enable enzyme --- src/bootstrap/src/core/build_steps/dist.rs | 7 ++++--- src/ci/github-actions/jobs.yml | 4 ++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/bootstrap/src/core/build_steps/dist.rs b/src/bootstrap/src/core/build_steps/dist.rs index eee960027a9f9..621d4cf2639f0 100644 --- a/src/bootstrap/src/core/build_steps/dist.rs +++ b/src/bootstrap/src/core/build_steps/dist.rs @@ -35,7 +35,7 @@ use crate::utils::build_stamp::{self, BuildStamp}; use crate::utils::channel::{self, Info}; use crate::utils::exec::{BootstrapCommand, command}; use crate::utils::helpers::{ - exe, is_dylib, move_file, t, target_supports_cranelift_backend, timeit, + exe, is_dylib, libdir, move_file, t, target_supports_cranelift_backend, timeit, }; use crate::utils::tarball::{GeneratedTarball, OverlayKind, Tarball}; use crate::{CodegenBackendKind, Compiler, DependencyType, FileType, LLVM_TOOLS, Mode, trace}; @@ -2533,7 +2533,7 @@ fn maybe_install_llvm( ), )] pub fn maybe_install_llvm_target(builder: &Builder<'_>, target: TargetSelection, sysroot: &Path) { - let dst_libdir = sysroot.join("lib/rustlib").join(target).join("lib"); + let dst_libdir = sysroot.join("lib/rustlib").join(target).join(libdir(target)); // We do not need to copy LLVM files into the sysroot if it is not // dynamically linked; it is already included into librustc_llvm // statically. @@ -2558,11 +2558,12 @@ pub fn maybe_install_llvm_target(builder: &Builder<'_>, target: TargetSelection, )] pub fn maybe_install_llvm_runtime(builder: &Builder<'_>, target: TargetSelection, sysroot: &Path) { let dst_libdir = sysroot.join(builder.sysroot_libdir_relative(Compiler::new(1, target))); + let dst_runtime_libdir = dst_libdir.parent().unwrap().join(libdir(target)); // We do not need to copy LLVM files into the sysroot if it is not // dynamically linked; it is already included into librustc_llvm // statically. if builder.llvm_link_shared() { - maybe_install_llvm(builder, target, &dst_libdir, false); + maybe_install_llvm(builder, target, &dst_runtime_libdir, false); } } diff --git a/src/ci/github-actions/jobs.yml b/src/ci/github-actions/jobs.yml index 6e07ffc43bc21..08847ca30a5ac 100644 --- a/src/ci/github-actions/jobs.yml +++ b/src/ci/github-actions/jobs.yml @@ -691,6 +691,8 @@ auto: --target=aarch64-pc-windows-gnullvm,i686-pc-windows-gnullvm --enable-full-tools --enable-profiler + --enable-llvm-link-shared + --enable-llvm-enzyme DIST_REQUIRE_ALL_TOOLS: 1 CODEGEN_BACKENDS: llvm,cranelift CC_i686_pc_windows_gnullvm: i686-w64-mingw32-clang @@ -703,6 +705,8 @@ auto: --build=x86_64-pc-windows-gnullvm --enable-full-tools --enable-profiler + --enable-llvm-link-shared + --enable-llvm-enzyme DIST_REQUIRE_ALL_TOOLS: 1 CODEGEN_BACKENDS: llvm,cranelift <<: *job-windows From 1d1eef1ae980d3ba481f5fbca3269b3a129951fa Mon Sep 17 00:00:00 2001 From: Manuel Drehwald Date: Wed, 4 Feb 2026 10:12:47 -0500 Subject: [PATCH 2/2] fix --- src/bootstrap/src/core/build_steps/llvm.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bootstrap/src/core/build_steps/llvm.rs b/src/bootstrap/src/core/build_steps/llvm.rs index dbd4f1c814055..54391162fe44f 100644 --- a/src/bootstrap/src/core/build_steps/llvm.rs +++ b/src/bootstrap/src/core/build_steps/llvm.rs @@ -1140,7 +1140,7 @@ impl Step for Enzyme { let llvm_version_major = llvm::get_llvm_version_major(builder, &host_llvm_config); let lib_ext = std::env::consts::DLL_EXTENSION; let libenzyme = format!("libEnzyme-{llvm_version_major}"); - let build_dir = out_dir.join("lib"); + let build_dir = out_dir.join("bin"); let dylib = build_dir.join(&libenzyme).with_extension(lib_ext); trace!("checking build stamp to see if we need to rebuild enzyme artifacts"); @@ -1203,6 +1203,7 @@ impl Step for Enzyme { // At this point, `out_dir` should contain the built libEnzyme-. // file. if !dylib.exists() { + eprintln!("{} does not exist", dylib.display()); eprintln!( "`{libenzyme}` not found in `{}`. Either the build has failed or Enzyme was built with a wrong version of LLVM", build_dir.display()