test for pthread_setaffinity_np

Only enable setting threads per core when available
This commit is contained in:
Matthew Barr
2017-05-12 11:29:58 +10:00
parent 4976f019f4
commit b0a5bd8940
3 changed files with 28 additions and 1 deletions

View File

@@ -11,6 +11,18 @@ else()
set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -isystem ${SQLITE3_INCLUDE_DIRS}")
endif()
# BSD has the _np funcs in a _np header
CHECK_INCLUDE_FILE(pthread_np.h HAVE_PTHREAD_NP_H)
if (HAVE_PTHREAD_NP_H)
set (PTHREAD_NP_INC pthread_np.h)
else ()
set (PTHREAD_NP_INC pthread.h)
endif ()
set (CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -D_GNU_SOURCE")
set (CMAKE_REQUIRED_LIBRARIES pthread)
CHECK_CXX_SYMBOL_EXISTS(pthread_setaffinity_np ${PTHREAD_NP_INC} HAVE_DECL_PTHREAD_SETAFFINITY_NP)
CHECK_FUNCTION_EXISTS(malloc_info HAVE_MALLOC_INFO)
CHECK_FUNCTION_EXISTS(shmget HAVE_SHMGET)
set(HAVE_SHMGET ${HAVE_SHMGET} CACHE BOOL "shmget()")