diff options
author | Ivan Maidanski <ivmai@mail.ru> | 2022-08-13 23:05:55 +0300 |
---|---|---|
committer | Ivan Maidanski <ivmai@mail.ru> | 2022-08-13 23:05:55 +0300 |
commit | 454e8410e03b8a141296ec4c3c2bf876d78b4ea8 (patch) | |
tree | c5179af5f6cbaa45d61b3db5d18d68a8f91b88e1 /CMakeLists.txt | |
parent | bef6d76ae8e63605ea59da03974dc2db9c81c543 (diff) | |
download | bdwgc-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.txt | 13 |
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() |