gnunet-fuse

GNUnet file-sharing directory mounting via FUSE
Log | Files | Refs | Submodules | README | LICENSE

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:
Msrc/fuse/mutex.c | 20--------------------
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));