@@ -1174,9 +1174,15 @@ pub fn rustc_cargo(
11741174 // We want to link against registerEnzyme and in the future we want to use additional
11751175 // functionality from Enzyme core. For that we need to link against Enzyme.
11761176 if builder. config . llvm_enzyme {
1177- let llvm_config = builder. llvm_config ( builder. config . build ) . unwrap ( ) ;
1178- let llvm_version_major = llvm:: get_llvm_version_major ( builder, & llvm_config) ;
1179- cargo. rustflag ( "-l" ) . rustflag ( & format ! ( "Enzyme-{llvm_version_major}" ) ) ;
1177+ let arch = builder. build . build ;
1178+ let enzyme_dir = builder. build . out . join ( arch) . join ( "enzyme" ) . join ( "lib" ) ;
1179+ cargo. rustflag ( "-L" ) . rustflag ( enzyme_dir. to_str ( ) . expect ( "Invalid path" ) ) ;
1180+
1181+ if !builder. config . dry_run ( ) {
1182+ let llvm_config = builder. llvm_config ( builder. config . build ) . unwrap ( ) ;
1183+ let llvm_version_major = llvm:: get_llvm_version_major ( builder, & llvm_config) ;
1184+ cargo. rustflag ( "-l" ) . rustflag ( & format ! ( "Enzyme-{llvm_version_major}" ) ) ;
1185+ }
11801186 }
11811187
11821188 // Building with protected visibility reduces the number of dynamic relocations needed, giving
@@ -2028,16 +2034,20 @@ impl Step for Assemble {
20282034 let mut build_compiler = builder. compiler ( target_compiler. stage - 1 , builder. config . build ) ;
20292035
20302036 // Build enzyme
2031- if builder. config . llvm_enzyme {
2037+ if builder. config . llvm_enzyme && !builder . config . dry_run ( ) {
20322038 debug ! ( "`llvm_enzyme` requested" ) ;
20332039 let enzyme_install = builder. ensure ( llvm:: Enzyme { target : build_compiler. host } ) ;
2040+ let llvm_config = builder. llvm_config ( builder. config . build ) . unwrap ( ) ;
2041+ let llvm_version_major = llvm:: get_llvm_version_major ( builder, & llvm_config) ;
20342042 let lib_ext = std:: env:: consts:: DLL_EXTENSION ;
2035- let src_lib = enzyme_install. join ( "build/Enzyme/libEnzyme-19" ) . with_extension ( lib_ext) ;
2043+ let libenzyme = format ! ( "libEnzyme-{llvm_version_major}" ) ;
2044+ let src_lib =
2045+ enzyme_install. join ( "build/Enzyme" ) . join ( & libenzyme) . with_extension ( lib_ext) ;
20362046 let libdir = builder. sysroot_target_libdir ( build_compiler, build_compiler. host ) ;
20372047 let target_libdir =
20382048 builder. sysroot_target_libdir ( target_compiler, target_compiler. host ) ;
2039- let dst_lib = libdir. join ( "libEnzyme-19" ) . with_extension ( lib_ext) ;
2040- let target_dst_lib = target_libdir. join ( "libEnzyme-19" ) . with_extension ( lib_ext) ;
2049+ let dst_lib = libdir. join ( & libenzyme ) . with_extension ( lib_ext) ;
2050+ let target_dst_lib = target_libdir. join ( & libenzyme ) . with_extension ( lib_ext) ;
20412051 builder. copy_link ( & src_lib, & dst_lib) ;
20422052 builder. copy_link ( & src_lib, & target_dst_lib) ;
20432053 }
0 commit comments