mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-18 11:05:48 +08:00
Fix pthreads version detection
This commit is contained in:
parent
dfa8bdec60
commit
97b98783c3
@ -629,48 +629,43 @@ dnl or that pthreads.h does exist. Existence of pthreads.h
|
|||||||
dnl should be tested separately.
|
dnl should be tested separately.
|
||||||
dnl
|
dnl
|
||||||
dnl tests:
|
dnl tests:
|
||||||
dnl pthread_yield() was renamed to sched_yield() in Draft 10, so
|
dnl pthread_yield() was dropped in Draft 9, so
|
||||||
dnl only a Draft 10 library will define this
|
dnl only a Draft <= 8 library will define this
|
||||||
dnl PTHREAD_INTR_ENABLE was introduced in Draft 6, and renamed to
|
dnl pthread_detach() was dropped in Draft 8, it is present
|
||||||
dnl PTHREAD_CANCEL_ENABLE in Draft 7. Draft 7-10 has _CANCEL_,
|
dnl in every other version
|
||||||
dnl only Draft 6 has _INTR_
|
dnl PTHREAD_CREATE_UNDETACHED is only in Draft 7, it was called
|
||||||
|
dnl PTHREAD_CREATE_JOINABLE after that
|
||||||
|
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 PTHREAD_MUTEX_INITIALIZER was introduced in Draft 5. It's not
|
||||||
dnl interesting to us because we don't try to statically
|
dnl interesting to us because we don't try to statically
|
||||||
dnl initialize mutexes. 5-10 has it.
|
dnl initialize mutexes. 5-10 has it.
|
||||||
dnl pthread_attr_create was renamed to pthread_attr_init after Draft 4.
|
dnl pthread_attr_create was renamed to pthread_attr_init after Draft 4.
|
||||||
dnl Draft 6-10 has _init, Draft 4 has _create. (dunno about 5)
|
dnl Draft 6-10 has _init, Draft 4 has _create. (dunno about 5)
|
||||||
dnl
|
dnl
|
||||||
dnl Besides the use of sched_yield vs pthread_yield, differences from
|
dnl Draft 9 and 10 are equivalent for our purposes.
|
||||||
dnl Draft 7 thru Draft 10 don't appear significant for our purposes.
|
|
||||||
dnl
|
dnl
|
||||||
AC_DEFUN([OL_POSIX_THREAD_VERSION],
|
AC_DEFUN([OL_POSIX_THREAD_VERSION],
|
||||||
[AC_CACHE_CHECK([POSIX thread version],[ol_cv_pthread_version],[
|
[AC_CACHE_CHECK([POSIX thread version],[ol_cv_pthread_version],[
|
||||||
AC_EGREP_HEADER(sched_yield,pthread.h,
|
AC_EGREP_HEADER(pthread_yield,pthread.h,[
|
||||||
ol_cv_pthread_version=10, [
|
AC_EGREP_HEADER(pthread_detach,pthread.h,[
|
||||||
|
|
||||||
AC_EGREP_CPP(draft7,[
|
AC_EGREP_CPP(draft7,[
|
||||||
# include <pthread.h>
|
# include <pthread.h>
|
||||||
# ifdef PTHREAD_CANCEL_ENABLE
|
# ifdef PTHREAD_CREATE_JOINABLE
|
||||||
draft7
|
draft7
|
||||||
# endif
|
# endif
|
||||||
], ol_cv_pthread_version=7, [
|
], ol_cv_pthread_version=7, [
|
||||||
|
AC_EGREP_HEADER(pthread_attr_default,pthread.h,[
|
||||||
AC_EGREP_CPP(draft6,[
|
|
||||||
# include <pthread.h>
|
|
||||||
#ifdef PTHREAD_INTR_ENABLE
|
|
||||||
draft6
|
|
||||||
#endif
|
|
||||||
], ol_cv_pthread_version=6, [
|
|
||||||
|
|
||||||
AC_EGREP_CPP(draft5,[
|
AC_EGREP_CPP(draft5,[
|
||||||
# include <pthread.h>
|
# include <pthread.h>
|
||||||
#ifdef PTHREAD_MUTEX_INITIALIZER
|
#ifdef PTHREAD_MUTEX_INITIALIZER
|
||||||
draft5
|
draft5
|
||||||
#endif
|
#endif
|
||||||
], ol_cv_pthread_version=5, [
|
], ol_cv_pthread_version=5, [
|
||||||
|
|
||||||
AC_EGREP_HEADER(pthread_attr_create,pthread.h,
|
AC_EGREP_HEADER(pthread_attr_create,pthread.h,
|
||||||
ol_cv_pthread_version=4, ol_cv_pthread_version=0) ]) ]) ]) ])
|
ol_cv_pthread_version=4, ol_cv_pthread_version=0) ]) ],
|
||||||
|
ol_cv_pthread_version=6) ]) ],
|
||||||
|
ol_cv_pthread_version=8) ],
|
||||||
|
ol_cv_pthread_version=10)
|
||||||
])
|
])
|
||||||
])dnl
|
])dnl
|
||||||
dnl
|
dnl
|
||||||
|
Loading…
Reference in New Issue
Block a user