diff options
author | Brad King <brad.king@kitware.com> | 2022-05-04 15:08:31 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2022-05-04 15:08:38 (GMT) |
commit | 8aff3e41a81efc84f6d50ab0936125e464ed324c (patch) | |
tree | aba55c528f34440334458e4a47f02b2078abeca3 | |
parent | 9a49a93d9860ac8a7d2e0d310824fa44b44bf152 (diff) | |
parent | 3257c34073e53b09ed1bf83b012eb026b9897d07 (diff) | |
download | CMake-8aff3e41a81efc84f6d50ab0936125e464ed324c.zip CMake-8aff3e41a81efc84f6d50ab0936125e464ed324c.tar.gz CMake-8aff3e41a81efc84f6d50ab0936125e464ed324c.tar.bz2 |
Merge topic 'FindThreads-aix'
3257c34073 FindThreads: avoid failing in AIX when using -D_XOPEN_SOURCE=500
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7230
-rw-r--r-- | Modules/FindThreads.cmake | 52 |
1 files changed, 19 insertions, 33 deletions
diff --git a/Modules/FindThreads.cmake b/Modules/FindThreads.cmake index c1531a4..a2304c2 100644 --- a/Modules/FindThreads.cmake +++ b/Modules/FindThreads.cmake @@ -156,41 +156,27 @@ macro(_threads_check_flag_pthread) endif() endmacro() -# Do we have pthreads? -if(CMAKE_C_COMPILER_LOADED) - CHECK_INCLUDE_FILE("pthread.h" CMAKE_HAVE_PTHREAD_H) -else() - CHECK_INCLUDE_FILE_CXX("pthread.h" CMAKE_HAVE_PTHREAD_H) +# Check if pthread functions are in normal C library. +# We list some pthread functions in PTHREAD_C_CXX_TEST_SOURCE test code. +# If the pthread functions already exist in C library, we could just use +# them instead of linking to the additional pthread library. +_threads_check_libc() + +# Check for -pthread first if enabled. This is the recommended +# way, but not backwards compatible as one must also pass -pthread +# as compiler flag then. +if (THREADS_PREFER_PTHREAD_FLAG) + _threads_check_flag_pthread() +endif () + +if(CMAKE_SYSTEM MATCHES "GHS-MULTI") + _threads_check_lib(posix pthread_create CMAKE_HAVE_PTHREADS_CREATE) endif() +_threads_check_lib(pthreads pthread_create CMAKE_HAVE_PTHREADS_CREATE) +_threads_check_lib(pthread pthread_create CMAKE_HAVE_PTHREAD_CREATE) -if(CMAKE_HAVE_PTHREAD_H) - # - # We have pthread.h - # Let's check for the library now. - # - - # Check if pthread functions are in normal C library. - # We list some pthread functions in PTHREAD_C_CXX_TEST_SOURCE test code. - # If the pthread functions already exist in C library, we could just use - # them instead of linking to the additional pthread library. - _threads_check_libc() - - # Check for -pthread first if enabled. This is the recommended - # way, but not backwards compatible as one must also pass -pthread - # as compiler flag then. - if (THREADS_PREFER_PTHREAD_FLAG) - _threads_check_flag_pthread() - endif () - - if(CMAKE_SYSTEM MATCHES "GHS-MULTI") - _threads_check_lib(posix pthread_create CMAKE_HAVE_PTHREADS_CREATE) - endif() - _threads_check_lib(pthreads pthread_create CMAKE_HAVE_PTHREADS_CREATE) - _threads_check_lib(pthread pthread_create CMAKE_HAVE_PTHREAD_CREATE) - - if (NOT THREADS_PREFER_PTHREAD_FLAG) - _threads_check_flag_pthread() - endif() +if (NOT THREADS_PREFER_PTHREAD_FLAG) + _threads_check_flag_pthread() endif() if(CMAKE_THREAD_LIBS_INIT OR CMAKE_HAVE_LIBC_PTHREAD) |