diff options
Diffstat (limited to 'src/pal/src/configure.cmake')
-rw-r--r-- | src/pal/src/configure.cmake | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/src/pal/src/configure.cmake b/src/pal/src/configure.cmake index a53e0db51e..4f2bc5739b 100644 --- a/src/pal/src/configure.cmake +++ b/src/pal/src/configure.cmake @@ -33,6 +33,7 @@ check_include_files(sys/lwp.h HAVE_SYS_LWP_H) check_include_files(lwp.h HAVE_LWP_H) check_include_files(libunwind.h HAVE_LIBUNWIND_H) check_include_files(runetype.h HAVE_RUNETYPE_H) +check_include_files(semaphore.h HAVE_SEMAPHORE_H) if(NOT CMAKE_SYSTEM_NAME STREQUAL FreeBSD AND NOT CMAKE_SYSTEM_NAME STREQUAL NetBSD) set(CMAKE_REQUIRED_FLAGS "-ldl") @@ -48,15 +49,26 @@ check_include_files(gnu/lib-names.h HAVE_GNU_LIBNAMES_H) check_function_exists(kqueue HAVE_KQUEUE) check_function_exists(getpwuid_r HAVE_GETPWUID_R) -check_library_exists(pthread pthread_suspend "" HAVE_PTHREAD_SUSPEND) -check_library_exists(pthread pthread_suspend_np "" HAVE_PTHREAD_SUSPEND_NP) -check_library_exists(pthread pthread_continue "" HAVE_PTHREAD_CONTINUE) -check_library_exists(pthread pthread_continue_np "" HAVE_PTHREAD_CONTINUE_NP) -check_library_exists(pthread pthread_resume_np "" HAVE_PTHREAD_RESUME_NP) -check_library_exists(pthread pthread_attr_get_np "" HAVE_PTHREAD_ATTR_GET_NP) -check_library_exists(pthread pthread_getattr_np "" HAVE_PTHREAD_GETATTR_NP) -check_library_exists(pthread pthread_getcpuclockid "" HAVE_PTHREAD_GETCPUCLOCKID) -check_library_exists(pthread pthread_sigqueue "" HAVE_PTHREAD_SIGQUEUE) + +check_library_exists(pthread pthread_create "" HAVE_LIBPTHREAD) +check_library_exists(c pthread_create "" HAVE_PTHREAD_IN_LIBC) + +if (HAVE_LIBPTHREAD) + set(PTHREAD_LIBRARY pthread) +elseif (HAVE_PTHREAD_IN_LIBC) + set(PTHREAD_LIBRARY c) +endif() + +check_library_exists(${PTHREAD_LIBRARY} pthread_suspend "" HAVE_PTHREAD_SUSPEND) +check_library_exists(${PTHREAD_LIBRARY} pthread_suspend_np "" HAVE_PTHREAD_SUSPEND_NP) +check_library_exists(${PTHREAD_LIBRARY} pthread_continue "" HAVE_PTHREAD_CONTINUE) +check_library_exists(${PTHREAD_LIBRARY} pthread_continue_np "" HAVE_PTHREAD_CONTINUE_NP) +check_library_exists(${PTHREAD_LIBRARY} pthread_resume_np "" HAVE_PTHREAD_RESUME_NP) +check_library_exists(${PTHREAD_LIBRARY} pthread_attr_get_np "" HAVE_PTHREAD_ATTR_GET_NP) +check_library_exists(${PTHREAD_LIBRARY} pthread_getattr_np "" HAVE_PTHREAD_GETATTR_NP) +check_library_exists(${PTHREAD_LIBRARY} pthread_getcpuclockid "" HAVE_PTHREAD_GETCPUCLOCKID) +check_library_exists(${PTHREAD_LIBRARY} pthread_sigqueue "" HAVE_PTHREAD_SIGQUEUE) + check_function_exists(sigreturn HAVE_SIGRETURN) check_function_exists(_thread_sys_sigreturn HAVE__THREAD_SYS_SIGRETURN) set(CMAKE_REQUIRED_LIBRARIES m) @@ -874,7 +886,8 @@ int main(void) unlink(szFileName); exit(ret); }" UNGETC_NOT_RETURN_EOF) -set(CMAKE_REQUIRED_LIBRARIES pthread) + +set(CMAKE_REQUIRED_LIBRARIES ${PTHREAD_LIBRARY}) check_cxx_source_runs(" #include <stdlib.h> #include <errno.h> |