commit 5e3ae1e8d8b6bf440b36ea2a6f553d4d365a8110
parent 2c710f58079a5eaffc260b4270f831e31a827b03
Author: Christian Grothoff <christian@grothoff.org>
Date: Tue, 1 Mar 2022 12:52:05 +0100
Compiling gnunet-fuse fails on Arch due to
undefined reference to `pthread_mutexattr_setkind_np'
In the file that provokes the error there is this comment:
This prototype is somehow missing in various Linux pthread include files. But we need it and it seems to be available on all pthread-systems so far. Odd.
The reason is that pthread_mutexattr_setkind_np() is deprecated and non-standard. The standard version is called pthread_mutexattr_settype().
Diffstat:
1 file changed, 0 insertions(+), 20 deletions(-)
diff --git a/src/fuse/mutex.c b/src/fuse/mutex.c
@@ -35,16 +35,6 @@
#endif
#endif
-/**
- * This prototype is somehow missing in various Linux pthread
- * include files. But we need it and it seems to be available
- * on all pthread-systems so far. Odd.
- */
-#ifndef _MSC_VER
-extern int pthread_mutexattr_setkind_np (pthread_mutexattr_t * attr,
- int kind);
-#endif
-
/**
* @brief Structure for MUTual EXclusion (Mutex).
@@ -67,23 +57,13 @@ GNUNET_mutex_create (int isRecursive)
pthread_mutexattr_init (&attr);
if (isRecursive)
{
-#ifdef __linux__
- GNUNET_assert (0 == pthread_mutexattr_setkind_np
- (&attr, PTHREAD_MUTEX_RECURSIVE_NP));
-#elif BSD || SOLARIS || OSX || WINDOWS
GNUNET_assert (0 == pthread_mutexattr_settype
(&attr, PTHREAD_MUTEX_RECURSIVE));
-#endif
}
else
{
-#ifdef __linux__
- GNUNET_assert (0 == pthread_mutexattr_setkind_np
- (&attr, PTHREAD_MUTEX_ERRORCHECK_NP));
-#else
GNUNET_assert (0 == pthread_mutexattr_settype
(&attr, PTHREAD_MUTEX_ERRORCHECK));
-#endif
}
mut = GNUNET_new (struct GNUNET_Mutex);
GNUNET_assert (0 == pthread_mutex_init (&mut->pt, &attr));