1*4882a593SmuzhiyunFix missing PTHREAD_MUTEX_RECURSIVE_NP 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunThe musl C library does not provide the non portable 4*4882a593SmuzhiyunPTHREAD_MUTEX_RECURSIVE_NP. In addition, uClibc does not define it as 5*4882a593Smuzhiyuna #define, but as an enum value, so doing a #if defined() check 6*4882a593Smuzhiyundoesn't work properly. Instead, add a AC_CHECK_DECL() autoconf check. 7*4882a593Smuzhiyun 8*4882a593SmuzhiyunSigned-off-by: Baruch Siach <baruch@tkos.co.il> 9*4882a593Smuzhiyun[Thomas: switch to an autoconf check.] 10*4882a593SmuzhiyunSigned-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 11*4882a593Smuzhiyun 12*4882a593SmuzhiyunIndex: b/configure.in 13*4882a593Smuzhiyun=================================================================== 14*4882a593Smuzhiyun--- a/configure.in 15*4882a593Smuzhiyun+++ b/configure.in 16*4882a593Smuzhiyun@@ -294,6 +294,10 @@ 17*4882a593Smuzhiyun AC_DEFINE([HAVE_LIBPTHREAD], [], [Define if pthread library is there (-lpthread)]) 18*4882a593Smuzhiyun AC_DEFINE([HAVE_PTHREAD_H], [], [Define if <pthread.h> is there]) 19*4882a593Smuzhiyun WITH_THREADS="1"])) 20*4882a593Smuzhiyun+ 21*4882a593Smuzhiyun+ AC_CHECK_DECL([PTHREAD_MUTEX_RECURSIVE_NP], 22*4882a593Smuzhiyun+ [AC_DEFINE([HAVE_PTHREAD_MUTEX_RECURSIVE_NP], [], [whether HAVE_PTHREAD_MUTEX_RECURSIVE_NP is defined])], 23*4882a593Smuzhiyun+ [], [#include <pthread.h>]) 24*4882a593Smuzhiyun fi 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun dnl Use weak symbols on linux/gcc to avoid imposing libpthreads to apps 27*4882a593SmuzhiyunIndex: b/libgamin/gam_data.c 28*4882a593Smuzhiyun=================================================================== 29*4882a593Smuzhiyun--- a/libgamin/gam_data.c 30*4882a593Smuzhiyun+++ b/libgamin/gam_data.c 31*4882a593Smuzhiyun@@ -470,7 +470,7 @@ 32*4882a593Smuzhiyun } 33*4882a593Smuzhiyun if (is_threaded > 0) { 34*4882a593Smuzhiyun pthread_mutexattr_init(&attr); 35*4882a593Smuzhiyun-#if defined(linux) || defined(PTHREAD_MUTEX_RECURSIVE_NP) 36*4882a593Smuzhiyun+#if defined(HAVE_PTHREAD_MUTEX_RECURSIVE_NP) 37*4882a593Smuzhiyun pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE_NP); 38*4882a593Smuzhiyun #else 39*4882a593Smuzhiyun pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); 40