]> git.sur5r.net Git - openldap/commitdiff
Fix pthread version check again
authorHoward Chu <hyc@openldap.org>
Wed, 18 Sep 2002 00:11:53 +0000 (00:11 +0000)
committerHoward Chu <hyc@openldap.org>
Wed, 18 Sep 2002 00:11:53 +0000 (00:11 +0000)
build/openldap.m4

index 8369493b66bb59f8ab4ef0e352fd1d52ab167e9b..e49cebf15d49cb184117e6fb4e5c3ffaad88d3ce 100644 (file)
@@ -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