@@ -1045,6 +1045,9 @@ impl Step for OmpOffload {
10451045 let inc_dir = base. display ( ) ;
10461046 cflags. push_all ( format ! ( " -I {inc_dir}" ) ) ;
10471047 }
1048+ cflags. push_all (
1049+ " -ULIBC_NAMESPACE -DLIBC_NAMESPACE=__llvm_libc_22_1_0_rust1_95_0nightly" ,
1050+ ) ;
10481051
10491052 configure_cmake ( builder, target, & mut cfg, true , LdFlags :: default ( ) , cflags, & [ ] ) ;
10501053
@@ -1068,6 +1071,10 @@ impl Step for OmpOffload {
10681071 . define ( "OFFLOAD_INCLUDE_TESTS" , "OFF" )
10691072 . define ( "LLVM_ROOT" , builder. llvm_out ( target) . join ( "build" ) )
10701073 . define ( "LLVM_DIR" , llvm_cmake_dir. clone ( ) )
1074+ // FIXME(offload): re-evaluate with LLVM23 if we can drop these three lines
1075+ //.define("LLVM_ENABLE_PER_TARGET_RUNTIME_DIR", "ON")
1076+ . define ( "CMAKE_CXX_COMPILER_WORKS" , "TRUE" )
1077+ . define ( "CMAKE_C_COMPILER_WORKS" , "TRUE" )
10711078 . define ( "LLVM_DEFAULT_TARGET_TRIPLE" , omp_target) ;
10721079 if let Some ( p) = clang_dir. clone ( ) {
10731080 cfg. define ( "Clang_DIR" , p) ;
@@ -1081,7 +1088,10 @@ impl Step for OmpOffload {
10811088 } else {
10821089 // OpenMP provides some device libraries, so we also compile it for all gpu targets.
10831090 cfg. define ( "LLVM_USE_LINKER" , "lld" ) ;
1084- cfg. define ( "LLVM_ENABLE_RUNTIMES" , "openmp" ) ;
1091+ cfg. define ( "LIBC_INCLUDE_BENCHMARKS" , "OFF" ) ;
1092+ cfg. define ( "LIBC_TARGET_TRIPLE" , omp_target) ;
1093+ cfg. define ( "LLVM_LIBC_FULL_BUILD" , "ON" ) ;
1094+ cfg. define ( "LLVM_ENABLE_RUNTIMES" , "openmp;libc" ) ;
10851095 cfg. define ( "CMAKE_C_COMPILER_TARGET" , omp_target) ;
10861096 cfg. define ( "CMAKE_CXX_COMPILER_TARGET" , omp_target) ;
10871097 }
0 commit comments