[clang] [openmp] Build and ship OpenMP with LLVM releases (PR #160581)
Leandro Lupori via cfe-commits
cfe-commits at lists.llvm.org
Thu Oct 2 13:04:02 PDT 2025
https://github.com/luporl updated https://github.com/llvm/llvm-project/pull/160581
>From 459c213b8d6c51f10a9f7cb37b5b0707205a78b0 Mon Sep 17 00:00:00 2001
From: Leandro Lupori <leandro.lupori at linaro.org>
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 <t-kawashima at fujitsu.com>
---
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 <leandro.lupori at linaro.org>
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 )
More information about the cfe-commits
mailing list