Hello,

While investigating a build failure of the "gamin" package in Buildroot
on the Microblaze architecture
(http://autobuild.buildroot.net/results/887/887df97196d7777efbf18a7bee91aa45c1a98700/build-end.log)
regarding PTHREAD_MUTEX_RECURSIVE being undefined, I noticed a
discrepancy between the definition of PTHREAD_MUTEX_RECURSIVE  in the
linuxthreads variant of pthread.h and the NPTL variant of pthread.h.
Indeed, libpthread/nptl/sysdeps/pthread/pthread.h contains:

#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
  ,
  PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP,
  PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
  PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
  PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
#endif

while the corresponding linuxthreads version, in
libpthread/linuxthreads/sysdeps/pthread/pthread.h contains:

#ifdef __USE_UNIX98
  ,
  PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_ADAPTIVE_NP,
  PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
  PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
  PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
#endif

Notice how the NPTL code defines all the non-NP variants if
__USE_XOPEN2K8 is defined, but not the linuxthreads version?

Maybe this difference is normal, I am not familiar enough with all the
standards and conformance issues, but I thought it would be good to
point it out.

Thanks,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
_______________________________________________
devel mailing list
devel@uclibc-ng.org
http://mailman.uclibc-ng.org/cgi-bin/mailman/listinfo/devel

Reply via email to