From fa783768c51796407a8885d35fc5a960e4c63cf0 Mon Sep 17 00:00:00 2001 From: Daniel Chen Date: Wed, 5 Mar 2025 18:31:22 -0500 Subject: [PATCH 1/4] [Flang] explicitly link the pthread library when building shared flang-rt. --- flang-rt/cmake/modules/AddFlangRT.cmake | 2 ++ 1 file changed, 2 insertions(+) diff --git a/flang-rt/cmake/modules/AddFlangRT.cmake b/flang-rt/cmake/modules/AddFlangRT.cmake index a43f1c332187a..59c011b87b131 100644 --- a/flang-rt/cmake/modules/AddFlangRT.cmake +++ b/flang-rt/cmake/modules/AddFlangRT.cmake @@ -142,6 +142,8 @@ function (add_flangrt_library name) endif () if (build_shared) add_library("${name_shared}" SHARED ${extra_args} ${ARG_ADDITIONAL_HEADERS} ${ARG_UNPARSED_ARGUMENTS}) + find_package(Threads REQUIRED) + target_link_libraries(${name_shared} PUBLIC Threads::Threads) endif () if (libtargets) From 31c8a850f55cb735296199b5c22b000cb15fabd1 Mon Sep 17 00:00:00 2001 From: Daniel Chen Date: Thu, 6 Mar 2025 11:14:06 -0500 Subject: [PATCH 2/4] To move the find_package requirment to the top leverl cmake file. --- flang-rt/CMakeLists.txt | 2 ++ flang-rt/cmake/modules/AddFlangRT.cmake | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/flang-rt/CMakeLists.txt b/flang-rt/CMakeLists.txt index 9f890a015621a..fb93b043db2ad 100644 --- a/flang-rt/CMakeLists.txt +++ b/flang-rt/CMakeLists.txt @@ -245,6 +245,8 @@ check_cxx_compiler_flag("-UTESTFLAG" FLANG_RT_SUPPORTS_UNDEFINE_FLAG) # Check whether -fno-lto is supported. check_cxx_compiler_flag(-fno-lto FLANG_RT_HAS_FNO_LTO_FLAG) +# Search for pthread library +find_package(Threads REQUIRED) # function checks find_package(Backtrace) diff --git a/flang-rt/cmake/modules/AddFlangRT.cmake b/flang-rt/cmake/modules/AddFlangRT.cmake index 59c011b87b131..68e53369e129d 100644 --- a/flang-rt/cmake/modules/AddFlangRT.cmake +++ b/flang-rt/cmake/modules/AddFlangRT.cmake @@ -142,7 +142,6 @@ function (add_flangrt_library name) endif () if (build_shared) add_library("${name_shared}" SHARED ${extra_args} ${ARG_ADDITIONAL_HEADERS} ${ARG_UNPARSED_ARGUMENTS}) - find_package(Threads REQUIRED) target_link_libraries(${name_shared} PUBLIC Threads::Threads) endif () From dff3b33cacb7a1955bf5156a2327444056de3011 Mon Sep 17 00:00:00 2001 From: Daniel Chen Date: Thu, 6 Mar 2025 15:50:55 -0500 Subject: [PATCH 3/4] [Flang] Improve the comments to state the reason why needing Thread. --- flang-rt/CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/flang-rt/CMakeLists.txt b/flang-rt/CMakeLists.txt index fb93b043db2ad..90484965f1213 100644 --- a/flang-rt/CMakeLists.txt +++ b/flang-rt/CMakeLists.txt @@ -245,7 +245,9 @@ check_cxx_compiler_flag("-UTESTFLAG" FLANG_RT_SUPPORTS_UNDEFINE_FLAG) # Check whether -fno-lto is supported. check_cxx_compiler_flag(-fno-lto FLANG_RT_HAS_FNO_LTO_FLAG) -# Search for pthread library +# Different platform may have different name for the POSIX thread library. +# For example, libpthread.a on AIX. Search for it as it is needed when +# building the shared flang_rt.runtime.so. find_package(Threads REQUIRED) # function checks From 707a4cfa460036615309bbdd9884bb1adbdff3d0 Mon Sep 17 00:00:00 2001 From: Daniel Chen Date: Thu, 6 Mar 2025 17:24:24 -0500 Subject: [PATCH 4/4] Remove REQUIRED as not all the platform has pthread library. --- flang-rt/CMakeLists.txt | 2 +- flang-rt/cmake/modules/AddFlangRT.cmake | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/flang-rt/CMakeLists.txt b/flang-rt/CMakeLists.txt index 90484965f1213..b516a5a1d0131 100644 --- a/flang-rt/CMakeLists.txt +++ b/flang-rt/CMakeLists.txt @@ -248,7 +248,7 @@ check_cxx_compiler_flag(-fno-lto FLANG_RT_HAS_FNO_LTO_FLAG) # Different platform may have different name for the POSIX thread library. # For example, libpthread.a on AIX. Search for it as it is needed when # building the shared flang_rt.runtime.so. -find_package(Threads REQUIRED) +find_package(Threads) # function checks find_package(Backtrace) diff --git a/flang-rt/cmake/modules/AddFlangRT.cmake b/flang-rt/cmake/modules/AddFlangRT.cmake index 68e53369e129d..c9a180e16163a 100644 --- a/flang-rt/cmake/modules/AddFlangRT.cmake +++ b/flang-rt/cmake/modules/AddFlangRT.cmake @@ -142,7 +142,9 @@ function (add_flangrt_library name) endif () if (build_shared) add_library("${name_shared}" SHARED ${extra_args} ${ARG_ADDITIONAL_HEADERS} ${ARG_UNPARSED_ARGUMENTS}) - target_link_libraries(${name_shared} PUBLIC Threads::Threads) + if (Threads_FOUND) + target_link_libraries(${name_shared} PUBLIC Threads::Threads) + endif () endif () if (libtargets)