summaryrefslogtreecommitdiffstats
path: root/package/gamin/0003-fix-missing-PTHREAD_MUTEX_RECURSIVE_NP.patch
blob: b5f2e6c521e1c6ba61cfa70c49e43a596b8326ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Fix missing PTHREAD_MUTEX_RECURSIVE_NP

The musl C library does not provide the non portable
PTHREAD_MUTEX_RECURSIVE_NP. In addition, uClibc does not define it as
a #define, but as an enum value, so doing a #if defined() check
doesn't work properly. Instead, add a AC_CHECK_DECL() autoconf check.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
[Thomas: switch to an autoconf check.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

Index: b/configure.in
===================================================================
--- a/configure.in
+++ b/configure.in
@@ -294,6 +294,10 @@
 	   AC_DEFINE([HAVE_LIBPTHREAD], [], [Define if pthread library is there (-lpthread)])
 	   AC_DEFINE([HAVE_PTHREAD_H], [], [Define if <pthread.h> is there])
 	   WITH_THREADS="1"]))
+
+    AC_CHECK_DECL([PTHREAD_MUTEX_RECURSIVE_NP],
+		[AC_DEFINE([HAVE_PTHREAD_MUTEX_RECURSIVE_NP], [], [whether HAVE_PTHREAD_MUTEX_RECURSIVE_NP is defined])],
+		[], [#include <pthread.h>])
 fi
 
 dnl Use weak symbols on linux/gcc to avoid imposing libpthreads to apps
Index: b/libgamin/gam_data.c
===================================================================
--- a/libgamin/gam_data.c
+++ b/libgamin/gam_data.c
@@ -470,7 +470,7 @@
     }
     if (is_threaded > 0) {
 	pthread_mutexattr_init(&attr);
-#if defined(linux) || defined(PTHREAD_MUTEX_RECURSIVE_NP)
+#if defined(HAVE_PTHREAD_MUTEX_RECURSIVE_NP)
 	pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE_NP);
 #else
 	pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
OpenPOWER on IntegriCloud