summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMitya Selivanov <automainint@guattari.tech>2023-01-01 18:03:59 +0100
committerMitya Selivanov <automainint@guattari.tech>2023-01-01 18:03:59 +0100
commitd73b3ebf3b914fc1ebc32025626a50786e99438b (patch)
tree5e5bd9267695d8915a27edf48e46cc9d19a16eed
parent804c7139c2bb2cbc3053008703c86f9bf9f01aa6 (diff)
downloadkit-d73b3ebf3b914fc1ebc32025626a50786e99438b.zip
Fix mutexattr checks
-rw-r--r--CMakeLists.txt15
-rw-r--r--source/kit/thread.posix.c2
2 files changed, 16 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6dacbc3..302b692 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -36,6 +36,16 @@ include(CheckCSourceRuns)
check_c_source_runs(
"
+ __attribute__((weak)) int foo();
+ int main() { return 0; }
+ "
+ KIT_HAVE_FUNC_ATTRIBUTE_WEAK
+)
+
+set(CMAKE_REQUIRED_LIBRARIES "pthread")
+check_c_source_runs(
+ "
+ #define _GNU_SOURCE
#include <pthread.h>
int main() {
pthread_mutexattr_t attr;
@@ -46,6 +56,7 @@ check_c_source_runs(
"
KIT_HAVE_PTHREAD_MUTEXATTR_SETTYPE
)
+set(CMAKE_REQUIRED_LIBRARIES "")
check_c_source_runs(
"
@@ -87,6 +98,10 @@ if(NOT KIT_HAVE_MALLOC)
set(KIT_DISABLE_SYSTEM_MALLOC ON)
endif()
+if(KIT_HAVE_FUNC_ATTRIBUTE_WEAK)
+ target_compile_definitions(kit PUBLIC KIT_HAVE_FUNC_ATTRIBUTE_WEAK)
+endif()
+
if(KIT_HAVE_PTHREAD_MUTEXATTR_SETTYPE)
target_compile_definitions(kit PUBLIC KIT_HAVE_PTHREAD_MUTEXATTR_SETTYPE)
endif()
diff --git a/source/kit/thread.posix.c b/source/kit/thread.posix.c
index 4d21abb..52f52ad 100644
--- a/source/kit/thread.posix.c
+++ b/source/kit/thread.posix.c
@@ -114,7 +114,7 @@ void mtx_destroy(mtx_t *mtx) {
* Thus the linker will be happy and things don't clash when building
* with -O1 or greater.
*/
-# if defined(HAVE_FUNC_ATTRIBUTE_WEAK) && !defined(__CYGWIN__)
+# if defined(KIT_HAVE_FUNC_ATTRIBUTE_WEAK) && !defined(__CYGWIN__)
__attribute__((weak)) int pthread_mutexattr_init(
pthread_mutexattr_t *attr);