Skip to content

Commit c462c5b

Browse files
committed
add libc-for-gpu now that llvm-22 rc3 landed
1 parent fd0c901 commit c462c5b

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

  • src/bootstrap/src/core/build_steps

src/bootstrap/src/core/build_steps/llvm.rs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)