@@ -2216,6 +2216,42 @@ impl Step for Assemble {
22162216 }
22172217 }
22182218
2219+ if builder. config . llvm_offload && !builder. config . dry_run ( ) {
2220+ let offload_install = builder. ensure ( llvm:: OmpOffload { target : build_compiler. host } ) ;
2221+ if let Some ( llvm_config) = builder. llvm_config ( builder. config . host_target ) {
2222+ let src_dir = offload_install. join ( "lib" ) ;
2223+ let target_libdir =
2224+ builder. sysroot_target_libdir ( target_compiler, target_compiler. host ) ;
2225+ let llvm = llvm:: get_llvm_version ( builder, & llvm_config) ;
2226+ let llvm_version = llvm. split ( '.' ) . take ( 2 ) . collect :: < Vec < _ > > ( ) . join ( "." ) ;
2227+ let rust_version = builder. rust_version ( ) ;
2228+ // e.g. libLLVMOffload.so.21.1
2229+ let lib_ext = std:: env:: consts:: DLL_EXTENSION ;
2230+ let libenzyme = format ! ( "libLLVMOffload.{lib_ext}.{llvm_version}" ) ;
2231+ dbg ! ( & libenzyme) ;
2232+ let dst_lib = libdir. join ( & libenzyme) . with_extension ( lib_ext) ;
2233+ let target_dst_lib = target_libdir. join ( & libenzyme) . with_extension ( lib_ext) ;
2234+ let src_lib = src_dir. join ( & libenzyme) ;
2235+ builder. copy_link ( & src_lib, & dst_lib, FileType :: NativeLibrary ) ;
2236+ builder. copy_link ( & src_lib, & target_dst_lib, FileType :: NativeLibrary ) ;
2237+
2238+ // libomp.so, libomptarget.so
2239+ let omp = src_dir. join ( "libomp" ) . with_extension ( lib_ext) ;
2240+ let tgt = src_dir. join ( "libomptarget" ) . with_extension ( lib_ext) ;
2241+ builder. copy_link ( & omp, & dst_lib, FileType :: NativeLibrary ) ;
2242+ builder. copy_link ( & omp, & dst_lib, FileType :: NativeLibrary ) ;
2243+ builder. copy_link ( & tgt, & dst_lib, FileType :: NativeLibrary ) ;
2244+ builder. copy_link ( & tgt, & dst_lib, FileType :: NativeLibrary ) ;
2245+ //[\u@\h:\W]$ ls ../offload-outdir/lib
2246+ // amdgcn-amd-amdhsa libarcher.so libgomp.so libiomp5.so libLLVMOffload.so.21.1 libomp.so libomptarget.so.21.1
2247+ // cmake libarcher_static.a libgomp.so.1 libLLVMOffload.so libompd.so libomptarget.so nvptx64-nvidia-cuda
2248+ // [\u@\h:\W]$ ls ../offload-outdir/lib/amdgcn-amd-amdhsa
2249+ // libompdevice.a libomptarget-amdgpu.bc
2250+ // [\u@\h:\W]$ ls nv
2251+ // [\u@\h:\W]$ ls ../offload-outdir/lib/nvptx64-nvidia-cuda
2252+ }
2253+ }
2254+
22192255 // Build the libraries for this compiler to link to (i.e., the libraries
22202256 // it uses at runtime).
22212257 debug ! (
0 commit comments