summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2022-08-13 23:05:55 +0300
committerIvan Maidanski <ivmai@mail.ru>2022-08-13 23:05:55 +0300
commit454e8410e03b8a141296ec4c3c2bf876d78b4ea8 (patch)
treec5179af5f6cbaa45d61b3db5d18d68a8f91b88e1 /CMakeLists.txt
parentbef6d76ae8e63605ea59da03974dc2db9c81c543 (diff)
downloadbdwgc-454e8410e03b8a141296ec4c3c2bf876d78b4ea8.tar.gz
Pass -lrt linker option in CMake script on HP/UX, NetBSD and SunOS
(fix of commit 54769e69e) This is to match the relevant logic of configure. * CMakeLists.txt (NEED_LIB_RT): New variable. * CMakeLists.txt [CMAKE_USE_PTHREADS_INIT && ($host==.*-.*-hpux11.* || $host==.*-.*-netbsd.* || $CMAKE_C_COMPILER_ID STREQUAL==SunPro)] (NEED_LIB_RT): Set to ON (true). * CMakeLists.txt [NEED_LIB_RT] (LIBRT): Find library "rt". * CMakeLists.txt [NEED_LIB_RT && LIBRT] (THREADDLLIBS_LIST): Append $LIBRT.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt13
1 files changed, 13 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 24fd0098..6cefb561 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -145,6 +145,7 @@ set(NODIST_SRC)
set(ATOMIC_OPS_LIBS)
set(ATOMIC_OPS_LIBS_CMAKE)
set(THREADDLLIBS_LIST)
+set(NEED_LIB_RT)
set(_HOST ${CMAKE_SYSTEM_PROCESSOR}-unknown-${CMAKE_SYSTEM})
string(TOLOWER ${_HOST} HOST)
@@ -224,9 +225,13 @@ if (CMAKE_USE_PTHREADS_INIT)
if (HOST MATCHES .*-.*-hpux11.*)
message("Only HP/UX 11 POSIX threads are supported.")
add_definitions("-D_POSIX_C_SOURCE=199506L")
+ set(NEED_LIB_RT ON)
elseif (HOST MATCHES .*-.*-netbsd.*)
message("Only on NetBSD 2.0 or later.")
add_definitions("-D_PTHREADS")
+ set(NEED_LIB_RT ON)
+ elseif (CMAKE_C_COMPILER_ID STREQUAL "SunPro")
+ set(NEED_LIB_RT ON)
endif()
if (MSYS)
# Does not provide process fork functionality.
@@ -255,6 +260,14 @@ elseif (CMAKE_HP_PTHREADS_INIT OR CMAKE_USE_SPROC_INIT)
message(FATAL_ERROR "Unsupported thread package")
endif()
+# Some targets need -lrt linker option.
+if (NEED_LIB_RT)
+ find_library(LIBRT rt)
+ if (LIBRT)
+ set(THREADDLLIBS_LIST ${THREADDLLIBS_LIST} ${LIBRT})
+ endif()
+endif(NEED_LIB_RT)
+
if (disable_handle_fork)
add_definitions("-DNO_HANDLE_FORK")
endif()