0003-fix-missing-PTHREAD_MUTEX_RECURSIVE_NP.patch 1.5 KB

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