gamin: improve PTHREAD_MUTEX_RECURSIVE_NP patch to fix build issue
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Wed, 20 Jul 2016 19:47:11 +0000 (21:47 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thu, 21 Jul 2016 11:53:07 +0000 (13:53 +0200)
commit06db98682fb62aeec3c74d38cb64f0b170f91a7c
treedc00fc9d7b84d8f60fbe39bc453fe50a677da8e7
parentdf60d486c630ada7c6a7af63ade8767e6a7985b1
gamin: improve PTHREAD_MUTEX_RECURSIVE_NP patch to fix build issue

In the gamin package, patch
0003-fix-missing-PTHREAD_MUTEX_RECURSIVE_NP.patch was introduced to fix
the build with musl. Indeed, while musl defines "linux", it does not
define PTHREAD_MUTEX_RECURSIVE_NP, but only PTHREAD_MUTEX_RECURSIVE. So
the check was simplified to only verify if PTHREAD_MUTEX_RECURSIVE_NP is
defined.

However, this doesn't work well with uClibc linuxthreads. In uClibc,
PTHREAD_MUTEX_RECURSIVE_NP and PTHREAD_MUTEX_RECURSIVE are not
pre-processor defines, but enum values. For this reason, even if
PTHREAD_MUTEX_RECURSIVE_NP actually exists, #if
defined(PTHREAD_MUTEX_RECURSIVE_NP) is false. So, the gamin code falls
back to using PTHREAD_MUTEX_RECURSIVE.

Except that for uClibc linuxthreads, PTHREAD_MUTEX_RECURSIVE is defined
only if __USE_UNIX98 is defined. For the NPTL implementation,
PTHREAD_MUTEX_RECURSIVE is defined either if __USE_UNIX98 or
__USE_XOPEN2K8 are defined. This strange difference has been reported to
uClibc-ng upstream [1].

However, regardless of this uClibc behavior, using #if defined to check
for the availability of PTHREAD_MUTEX_RECURSIVE_NP is not good. This
commit therefore switches to using a proper AC_CHECK_DECL() autoconf
test, which works regardless of whether the value is #define'd or
defined as an enum value.

This fixes the build of gamin on linuxthreads platforms, such as
Microblaze or m68k.

Fixes:

  http://autobuild.buildroot.net/results/887df97196d7777efbf18a7bee91aa45c1a98700/ (Microblaze)
  http://autobuild.buildroot.net/results/eb4389474e1b30b5c395a07a857da13a66763bdb/ (m68k)

[1] http://mailman.uclibc-ng.org/pipermail/devel/2016-July/001087.html

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/gamin/0003-fix-missing-PTHREAD_MUTEX_RECURSIVE_NP.patch