mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-18 11:05:48 +08:00
Fix pthread version check again
This commit is contained in:
parent
043e5c5a13
commit
9c80832e08
@ -621,47 +621,48 @@ dnl
|
||||
dnl ====================================================================
|
||||
dnl Check POSIX Thread version
|
||||
dnl
|
||||
dnl defines ol_cv_pthread_version to 4, 5, 6, 7, 10, depending on the
|
||||
dnl defines ol_cv_pthread_version to 4, 5, 6, 7, 8, 10, depending on the
|
||||
dnl version of the POSIX.4a Draft that is implemented.
|
||||
dnl 10 == POSIX.4a Final == POSIX.1c-1996 for our purposes.
|
||||
dnl Existence of pthreads.h should be tested separately.
|
||||
dnl Existence of pthread.h should be tested separately.
|
||||
dnl
|
||||
dnl tests:
|
||||
dnl pthread_yield() was dropped in Draft 9, so
|
||||
dnl only a Draft <= 8 library will define this
|
||||
dnl pthread_detach() was dropped in Draft 8, it is present
|
||||
dnl in every other version
|
||||
dnl PTHREAD_CREATE_UNDETACHED is only in Draft 7, it was called
|
||||
dnl PTHREAD_CREATE_JOINABLE after that
|
||||
dnl pthread_attr_create was renamed to pthread_attr_init in Draft 6.
|
||||
dnl Draft 6-10 has _init, Draft 4-5 has _create.
|
||||
dnl pthread_attr_default was dropped in Draft 6, only 4 and 5 have it
|
||||
dnl PTHREAD_MUTEX_INITIALIZER was introduced in Draft 5. It's not
|
||||
dnl interesting to us because we don't try to statically
|
||||
dnl initialize mutexes. 5-10 has it.
|
||||
dnl pthread_attr_create was renamed to pthread_attr_init in Draft 6.
|
||||
dnl Draft 6-10 has _init, Draft 4-5 has _create.
|
||||
dnl
|
||||
dnl Draft 9 and 10 are equivalent for our purposes.
|
||||
dnl
|
||||
AC_DEFUN([OL_POSIX_THREAD_VERSION],
|
||||
[AC_CACHE_CHECK([POSIX thread version],[ol_cv_pthread_version],[
|
||||
AC_EGREP_HEADER(pthread_yield,pthread.h,[
|
||||
AC_EGREP_HEADER(pthread_detach,pthread.h,[
|
||||
AC_TRY_COMPILE([
|
||||
# include <pthread.h>
|
||||
],[
|
||||
int i = PTHREAD_CREATE_JOINABLE;
|
||||
],[
|
||||
AC_EGREP_HEADER(pthread_detach,pthread.h,
|
||||
ol_cv_pthread_version=10, ol_cv_pthread_version=8)],[
|
||||
AC_EGREP_CPP(draft7,[
|
||||
# include <pthread.h>
|
||||
# ifdef PTHREAD_CREATE_UNDETACHED
|
||||
draft7
|
||||
# endif
|
||||
], ol_cv_pthread_version=7, [
|
||||
AC_EGREP_HEADER(pthread_attr_default,pthread.h,[
|
||||
AC_EGREP_HEADER(pthread_attr_init,pthread.h,
|
||||
ol_cv_pthread_version=6, [
|
||||
AC_EGREP_CPP(draft5,[
|
||||
# include <pthread.h>
|
||||
#ifdef PTHREAD_MUTEX_INITIALIZER
|
||||
draft5
|
||||
#endif
|
||||
], ol_cv_pthread_version=5, ol_cv_pthread_version=4) ],
|
||||
ol_cv_pthread_version=6) ]) ],
|
||||
ol_cv_pthread_version=8) ],
|
||||
ol_cv_pthread_version=10)
|
||||
], ol_cv_pthread_version=5, ol_cv_pthread_version=4) ]) ]) ])
|
||||
])
|
||||
])dnl
|
||||
dnl
|
||||
|
Loading…
Reference in New Issue
Block a user