@@ -1174,9 +1174,15 @@ pub fn rustc_cargo(
1174
1174
// We want to link against registerEnzyme and in the future we want to use additional
1175
1175
// functionality from Enzyme core. For that we need to link against Enzyme.
1176
1176
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
+ }
1180
1186
}
1181
1187
1182
1188
// Building with protected visibility reduces the number of dynamic relocations needed, giving
@@ -2028,16 +2034,20 @@ impl Step for Assemble {
2028
2034
let mut build_compiler = builder. compiler ( target_compiler. stage - 1 , builder. config . build ) ;
2029
2035
2030
2036
// Build enzyme
2031
- if builder. config . llvm_enzyme {
2037
+ if builder. config . llvm_enzyme && !builder . config . dry_run ( ) {
2032
2038
debug ! ( "`llvm_enzyme` requested" ) ;
2033
2039
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) ;
2034
2042
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) ;
2036
2046
let libdir = builder. sysroot_target_libdir ( build_compiler, build_compiler. host ) ;
2037
2047
let target_libdir =
2038
2048
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) ;
2041
2051
builder. copy_link ( & src_lib, & dst_lib) ;
2042
2052
builder. copy_link ( & src_lib, & target_dst_lib) ;
2043
2053
}
0 commit comments