From 459c213b8d6c51f10a9f7cb37b5b0707205a78b0 Mon Sep 17 00:00:00 2001 From: Leandro Lupori Date: Wed, 24 Sep 2025 18:23:25 +0000 Subject: [PATCH 1/2] Build and ship OpenMP with LLVM releases Fixes #135021 Suggested-by: Kawashima Takahiro --- clang/cmake/caches/Release.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang/cmake/caches/Release.cmake b/clang/cmake/caches/Release.cmake index a523cc561b3f9..af8e341ab5f07 100644 --- a/clang/cmake/caches/Release.cmake +++ b/clang/cmake/caches/Release.cmake @@ -36,7 +36,7 @@ if (${CMAKE_HOST_SYSTEM_NAME} MATCHES "Linux") list(APPEND DEFAULT_PROJECTS "bolt") endif() -set (DEFAULT_RUNTIMES "compiler-rt;libcxx") +set (DEFAULT_RUNTIMES "compiler-rt;libcxx;openmp;flang-rt") if (NOT WIN32) list(APPEND DEFAULT_RUNTIMES "libcxxabi" "libunwind") endif() From d94e8547c7218787096fcedeee7a21ec3419ab6b Mon Sep 17 00:00:00 2001 From: Leandro Lupori Date: Thu, 2 Oct 2025 19:57:29 +0000 Subject: [PATCH 2/2] Use LLVM_ENABLE_LIBCXX=ON to build the runtimes too - also add a missing dependency in libompd --- clang/cmake/caches/Release.cmake | 1 + openmp/libompd/src/CMakeLists.txt | 13 +++++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/clang/cmake/caches/Release.cmake b/clang/cmake/caches/Release.cmake index af8e341ab5f07..947a3e63dbbef 100644 --- a/clang/cmake/caches/Release.cmake +++ b/clang/cmake/caches/Release.cmake @@ -119,6 +119,7 @@ if (LLVM_RELEASE_ENABLE_LTO) set_instrument_and_final_stage_var(LLVM_ENABLE_LLD "ON" BOOL) endif() set_instrument_and_final_stage_var(LLVM_ENABLE_LIBCXX "ON" BOOL) +set_instrument_and_final_stage_var(RUNTIMES_CMAKE_ARGS "-DLLVM_ENABLE_LIBCXX=ON" STRING) set_instrument_and_final_stage_var(LLVM_STATIC_LINK_CXX_STDLIB "ON" BOOL) set(RELEASE_LINKER_FLAGS "-rtlib=compiler-rt --unwindlib=libunwind") if(NOT ${CMAKE_HOST_SYSTEM_NAME} MATCHES "Darwin") diff --git a/openmp/libompd/src/CMakeLists.txt b/openmp/libompd/src/CMakeLists.txt index ba228d5181048..410f486220e84 100644 --- a/openmp/libompd/src/CMakeLists.txt +++ b/openmp/libompd/src/CMakeLists.txt @@ -11,16 +11,21 @@ project (libompd) cmake_minimum_required(VERSION 3.20.0) +set(LIBOMPD_LD_STD_FLAGS FALSE CACHE BOOL + "Use -stdlibc++ instead of -libc++ library for C++ ") + +set(LIBCXX_DEP) +if("libcxx" IN_LIST LLVM_ENABLE_RUNTIMES AND NOT ${LIBOMPD_LD_STD_FLAGS}) + set(LIBCXX_DEP cxx) +endif() + add_library (ompd SHARED TargetValue.cpp omp-debug.cpp omp-state.cpp omp-icv.cpp) # libompd must not link against libomp, there is no code dependency. -add_dependencies(ompd omp) # ensure generated import library is created first +add_dependencies(ompd omp ${LIBCXX_DEP}) # ensure generated import library is created first set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") -set(LIBOMPD_LD_STD_FLAGS FALSE CACHE BOOL - "Use -stdlibc++ instead of -libc++ library for C++ ") - if(${LIBOMPD_LD_STD_FLAGS}) # Find and replace/add libstdc++ to compile flags STRING( FIND "${CMAKE_CXX_FLAGS}" "-stdlib=libc++" OUT )