diff --git a/CMakeLists.txt b/CMakeLists.txt index 6b2e33fa0..569f75ac3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -598,18 +598,9 @@ else () target_link_libraries(iio PRIVATE ${PTHREAD_LIBRARIES}) endif() - include(CheckSymbolExists) - set(CMAKE_REQUIRED_LIBRARIES ${PTHREAD_LIBRARIES}) - set(CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE) - set(TMP_FLAGS "${CMAKE_C_FLAGS}") - set(CMAKE_C_FLAGS "") - check_symbol_exists(pthread_setname_np "pthread.h" HAS_PTHREAD_SETNAME_NP) - set(CMAKE_C_FLAGS "${TMP_FLAGS}") - set(CMAKE_REQUIRED_LIBRARIES) - set(CMAKE_REQUIRED_DEFINITIONS) - if (HAS_PTHREAD_SETNAME_NP) - message("pthread_setname_np is available") - # still need to define _GNU_SOURCE for pthread_setname_np + include(${CMAKE_SOURCE_DIR}/cmake/Utilities.cmake) + CHECK_PTHREAD_SET_NAME(HAS_PTHREAD_SETNAME_NP) + if (HAS_PTHREAD_SETNAME_NP AND ${CMAKE_SYSTEM_NAME} MATCHES "Linux") set_source_files_properties(lock.c PROPERTIES COMPILE_FLAGS -D_GNU_SOURCE) endif() target_sources(iio PRIVATE lock.c) diff --git a/iio-config.h.cmakein b/iio-config.h.cmakein index 2216dfb86..e3ea030a0 100644 --- a/iio-config.h.cmakein +++ b/iio-config.h.cmakein @@ -52,7 +52,6 @@ #cmakedefine HAS_NEWLOCALE #cmakedefine HAS_PTHREAD_SETNAME_NP #cmakedefine HAVE_IPV6 -#cmakedefine HAS_PTHREAD_SETNAME_NP #define IF_ENABLED(cfg, ptr) ((cfg) ? (ptr) : NULL) diff --git a/iiod/CMakeLists.txt b/iiod/CMakeLists.txt index 7d7dfee43..cbae9a1c4 100644 --- a/iiod/CMakeLists.txt +++ b/iiod/CMakeLists.txt @@ -1,15 +1,8 @@ cmake_minimum_required(VERSION 3.10) project(iiod C) -include(CheckSymbolExists) -set(CMAKE_REQUIRED_LIBRARIES ${PTHREAD_LIBRARIES}) -set(CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE) -set(TMP_FLAGS "${CMAKE_C_FLAGS}") -set(CMAKE_C_FLAGS "") -check_symbol_exists(pthread_setname_np "pthread.h" HAS_PTHREAD_SETNAME_NP) -set(CMAKE_C_FLAGS "${TMP_FLAGS}") -set(CMAKE_REQUIRED_LIBRARIES) -set(CMAKE_REQUIRED_DEFINITIONS) +include(${CMAKE_SOURCE_DIR}/cmake/Utilities.cmake) +CHECK_PTHREAD_SET_NAME(HAS_PTHREAD_SETNAME_NP) add_executable(iiod iiod.c interpreter.c responder.c rw.c thread-pool.c diff --git a/lock.c b/lock.c index 2bb6b5ffa..92d742e4f 100644 --- a/lock.c +++ b/lock.c @@ -36,10 +36,10 @@ struct iio_thrd { }; #if defined(HAS_PTHREAD_SETNAME_NP) -#if defined(__linux__) -#define iio_thrd_create_set_name(thid, name) pthread_setname_np(thid, name) -#elif defined(__APPLE__) +#if defined(__APPLE__) #define iio_thrd_create_set_name(thid, name) pthread_setname_np(name) +#else +#define iio_thrd_create_set_name(thid, name) pthread_setname_np(thid, name) #endif #else #define iio_thrd_create_set_name(thid, name) 0