]> git.sur5r.net Git - openldap/commitdiff
New pthreads detection (for 2.1.6)
authorKurt Zeilenga <kurt@openldap.org>
Fri, 20 Sep 2002 01:04:38 +0000 (01:04 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Fri, 20 Sep 2002 01:04:38 +0000 (01:04 +0000)
CHANGES
build/openldap.m4
build/version.sh
configure
configure.in
include/portable.h.in
libraries/libldap_r/thr_posix.c

diff --git a/CHANGES b/CHANGES
index 7631490797c7b51a330a6628d070335bca9fb458..8ff734a5f2257b747f638ab7cbfac3e1a263ebff 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,9 @@
 OpenLDAP 2.1 Change Log
 
+OpenLDAP 2.1.6 Release
+       Build Environment
+               Updated pthreads detection
+
 OpenLDAP 2.1.5 Release
        Fixed back-ldbm indirect IDL bug (ITS#2039)
        Fixed back-bdb locker_id bugs (ITS#2040)
index c50acd4a96a65e3b50aabac3c009be72dd876f77..e49cebf15d49cb184117e6fb4e5c3ffaad88d3ce 100644 (file)
@@ -621,36 +621,48 @@ dnl
 dnl ====================================================================
 dnl Check POSIX Thread version 
 dnl
-dnl defines ol_cv_posix_version to 'final' or 'draft' or 'unknown'
-dnl    'unknown' implies that the version could not be detected
-dnl            or that pthreads.h does exist.  Existance of pthreads.h
-dnl            should be tested separately.
+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 pthread.h should be tested separately.
+dnl
+dnl tests:
+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
+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_CPP(pthread_version_final,[
+       AC_TRY_COMPILE([
 #              include <pthread.h>
-               /* this check could be improved */
-#              ifdef PTHREAD_ONCE_INIT
-                       pthread_version_final;
-#              endif
-       ], ol_pthread_final=yes, ol_pthread_final=no)
-
-       AC_EGREP_CPP(pthread_version_draft4,[
+       ],[
+               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>
-               /* this check could be improved */
-#              ifdef pthread_once_init
-                       pthread_version_draft4;
+#              ifdef PTHREAD_CREATE_UNDETACHED
+               draft7
 #              endif
-       ], ol_pthread_draft4=yes, ol_pthread_draft4=no)
-
-       if test $ol_pthread_final = yes -a $ol_pthread_draft4 = no; then
-               ol_cv_pthread_version=final
-       elif test $ol_pthread_final = no -a $ol_pthread_draft4 = yes; then
-               ol_cv_pthread_version=draft4
-       else
-               ol_cv_pthread_version=unknown
-       fi
+       ], ol_cv_pthread_version=7, [
+       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) ]) ]) ])
 ])
 ])dnl
 dnl
@@ -658,6 +670,9 @@ dnl --------------------------------------------------------------------
 AC_DEFUN([OL_PTHREAD_TEST_INCLUDES],
 [/* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -670,60 +685,43 @@ static void *task(p)
 ])
 AC_DEFUN([OL_PTHREAD_TEST_FUNCTION],[
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
-#endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
index 3724867d795c7cc5072e2190f5ab1a75dd0f300b..d66f61895fab0d4135050619427dda2bc5cee546 100755 (executable)
@@ -7,7 +7,7 @@
 ol_package=OpenLDAP
 ol_major=2
 ol_minor=1
-ol_patch=5
+ol_patch=X
 ol_api_inc=20105
 ol_api_lib=2:105:0
 
index b44edb36e9cab2d044ef1d96c48d9cafbef5533a..fbb183a848bc3f8e1e9ed3cc16bb616f68666088 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # $OpenLDAP$
-# from OpenLDAP: pkg/ldap/configure.in,v 1.408.2.13 2002/09/17 02:45:05 kurt Exp  
+# from OpenLDAP: pkg/ldap/configure.in,v 1.408.2.14 2002/09/17 18:51:04 kurt Exp  
 
 # Copyright 1998-2002 The OpenLDAP Foundation.  All Rights Reserved.
 # 
@@ -11674,66 +11674,102 @@ else
 #include "confdefs.h"
 
 #              include <pthread.h>
-               /* this check could be improved */
-#              ifdef PTHREAD_ONCE_INIT
-                       pthread_version_final;
-#              endif
        
+int main() {
+
+               int i = PTHREAD_CREATE_JOINABLE;
+       
+; return 0; }
+EOF
+if { (eval echo configure:11685: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  
+       cat > conftest.$ac_ext <<EOF
+#line 11689 "configure"
+#include "confdefs.h"
+#include <pthread.h>
 EOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "pthread_version_final" >/dev/null 2>&1; then
+  egrep "pthread_detach" >/dev/null 2>&1; then
   rm -rf conftest*
-  ol_pthread_final=yes
+  ol_cv_pthread_version=10
 else
   rm -rf conftest*
-  ol_pthread_final=no
+  ol_cv_pthread_version=8
 fi
 rm -f conftest*
 
-
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  
        cat > conftest.$ac_ext <<EOF
-#line 11696 "configure"
+#line 11709 "configure"
 #include "confdefs.h"
 
 #              include <pthread.h>
-               /* this check could be improved */
-#              ifdef pthread_once_init
-                       pthread_version_draft4;
+#              ifdef PTHREAD_CREATE_UNDETACHED
+               draft7
 #              endif
        
 EOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "pthread_version_draft4" >/dev/null 2>&1; then
+  egrep "draft7" >/dev/null 2>&1; then
   rm -rf conftest*
-  ol_pthread_draft4=yes
+  ol_cv_pthread_version=7
 else
   rm -rf conftest*
-  ol_pthread_draft4=no
+  
+       cat > conftest.$ac_ext <<EOF
+#line 11726 "configure"
+#include "confdefs.h"
+#include <pthread.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "pthread_attr_init" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ol_cv_pthread_version=6
+else
+  rm -rf conftest*
+  
+       cat > conftest.$ac_ext <<EOF
+#line 11738 "configure"
+#include "confdefs.h"
+
+#              include <pthread.h>
+#ifdef         PTHREAD_MUTEX_INITIALIZER
+               draft5
+#endif
+       
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "draft5" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ol_cv_pthread_version=5
+else
+  rm -rf conftest*
+  ol_cv_pthread_version=4
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+fi
+rm -f conftest*
 fi
 rm -f conftest*
-
-
-       if test $ol_pthread_final = yes -a $ol_pthread_draft4 = no; then
-               ol_cv_pthread_version=final
-       elif test $ol_pthread_final = no -a $ol_pthread_draft4 = yes; then
-               ol_cv_pthread_version=draft4
-       else
-               ol_cv_pthread_version=unknown
-       fi
 
 fi
 
 echo "$ac_t""$ol_cv_pthread_version" 1>&6
 
 
-               if test $ol_cv_pthread_version = final ; then
-                       cat >> confdefs.h <<\EOF
-#define HAVE_PTHREADS_FINAL 1
-EOF
-
-               elif test $ol_cv_pthread_version = draft4 ; then
-                       cat >> confdefs.h <<\EOF
-#define HAVE_PTHREADS_D4 1
+               if test $ol_cv_pthread_version != 0 ; then
+                       cat >> confdefs.h <<EOF
+#define HAVE_PTHREADS $ol_cv_pthread_version
 EOF
 
                else
@@ -11745,12 +11781,12 @@ EOF
 
                
        echo $ac_n "checking for LinuxThreads pthread.h""... $ac_c" 1>&6
-echo "configure:11749: checking for LinuxThreads pthread.h" >&5
+echo "configure:11785: checking for LinuxThreads pthread.h" >&5
 if eval "test \"\${ol_cv_header_linux_threads+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 11754 "configure"
+#line 11790 "configure"
 #include "confdefs.h"
 #include <pthread.h>
 EOF
@@ -11777,12 +11813,12 @@ EOF
 
                
        echo $ac_n "checking for GNU Pth pthread.h""... $ac_c" 1>&6
-echo "configure:11781: checking for GNU Pth pthread.h" >&5
+echo "configure:11817: checking for GNU Pth pthread.h" >&5
 if eval "test \"\${ol_cv_header_gnu_pth_pthread_h+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 11786 "configure"
+#line 11822 "configure"
 #include "confdefs.h"
 #include <pthread.h>
 #ifdef _POSIX_THREAD_IS_GNU_PTH
@@ -11811,17 +11847,17 @@ echo "$ac_t""$ol_cv_header_gnu_pth_pthread_h" 1>&6
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:11815: checking for $ac_hdr" >&5
+echo "configure:11851: checking for $ac_hdr" >&5
 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 11820 "configure"
+#line 11856 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11825: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11861: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -11851,17 +11887,20 @@ done
 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                echo $ac_n "checking for pthread_create in default libraries""... $ac_c" 1>&6
-echo "configure:11855: checking for pthread_create in default libraries" >&5
+echo "configure:11891: checking for pthread_create in default libraries" >&5
 if eval "test \"\${ol_cv_pthread_create+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
                if test "$cross_compiling" = yes; then
   cat > conftest.$ac_ext <<EOF
-#line 11862 "configure"
+#line 11898 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -11875,60 +11914,43 @@ static void *task(p)
 int main() {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -11939,7 +11961,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:11943: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11965: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_pthread_create=yes
 else
 rm -f conftest*
 else
   cat > conftest.$ac_ext <<EOF
-#line 11955 "configure"
+#line 11977 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -11972,60 +11997,43 @@ int main(argc, argv)
 {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -12037,7 +12045,7 @@ int main(argc, argv)
 }
 
 EOF
-if { (eval echo configure:12041: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:12049: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ol_cv_pthread_create=yes
 else
@@ -12062,7 +12070,7 @@ echo "$ac_t""$ol_cv_pthread_create" 1>&6
 if test "$ol_link_threads" = no ; then
        # try -kthread
        echo $ac_n "checking for pthread link with -kthread""... $ac_c" 1>&6
-echo "configure:12066: checking for pthread link with -kthread" >&5
+echo "configure:12074: checking for pthread link with -kthread" >&5
 if eval "test \"\${ol_cv_pthread_kthread+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -12073,10 +12081,13 @@ else
 
                if test "$cross_compiling" = yes; then
   cat > conftest.$ac_ext <<EOF
-#line 12077 "configure"
+#line 12085 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -12090,60 +12101,43 @@ static void *task(p)
 int main() {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -12154,7 +12148,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:12158: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12152: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_pthread_kthread=yes
 else
 rm -f conftest*
 else
   cat > conftest.$ac_ext <<EOF
-#line 12170 "configure"
+#line 12164 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -12187,60 +12184,43 @@ int main(argc, argv)
 {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -12252,7 +12232,7 @@ int main(argc, argv)
 }
 
 EOF
-if { (eval echo configure:12256: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:12236: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ol_cv_pthread_kthread=yes
 else
@@ -12282,7 +12262,7 @@ fi
 if test "$ol_link_threads" = no ; then
        # try -pthread
        echo $ac_n "checking for pthread link with -pthread""... $ac_c" 1>&6
-echo "configure:12286: checking for pthread link with -pthread" >&5
+echo "configure:12266: checking for pthread link with -pthread" >&5
 if eval "test \"\${ol_cv_pthread_pthread+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -12293,10 +12273,13 @@ else
 
                if test "$cross_compiling" = yes; then
   cat > conftest.$ac_ext <<EOF
-#line 12297 "configure"
+#line 12277 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -12310,60 +12293,43 @@ static void *task(p)
 int main() {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -12374,7 +12340,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:12378: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12344: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_pthread_pthread=yes
 else
 rm -f conftest*
 else
   cat > conftest.$ac_ext <<EOF
-#line 12390 "configure"
+#line 12356 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -12407,60 +12376,43 @@ int main(argc, argv)
 {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -12472,7 +12424,7 @@ int main(argc, argv)
 }
 
 EOF
-if { (eval echo configure:12476: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:12428: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ol_cv_pthread_pthread=yes
 else
@@ -12502,7 +12454,7 @@ fi
 if test "$ol_link_threads" = no ; then
        # try -pthreads
        echo $ac_n "checking for pthread link with -pthreads""... $ac_c" 1>&6
-echo "configure:12506: checking for pthread link with -pthreads" >&5
+echo "configure:12458: checking for pthread link with -pthreads" >&5
 if eval "test \"\${ol_cv_pthread_pthreads+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -12513,10 +12465,13 @@ else
 
                if test "$cross_compiling" = yes; then
   cat > conftest.$ac_ext <<EOF
-#line 12517 "configure"
+#line 12469 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -12530,60 +12485,43 @@ static void *task(p)
 int main() {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -12594,7 +12532,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:12598: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12536: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_pthread_pthreads=yes
 else
 rm -f conftest*
 else
   cat > conftest.$ac_ext <<EOF
-#line 12610 "configure"
+#line 12548 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -12627,60 +12568,43 @@ int main(argc, argv)
 {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
-#endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -12692,7 +12616,7 @@ int main(argc, argv)
 }
 
 EOF
-if { (eval echo configure:12696: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:12620: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ol_cv_pthread_pthreads=yes
 else
@@ -12722,7 +12646,7 @@ fi
 if test "$ol_link_threads" = no ; then
        # try -mthreads
        echo $ac_n "checking for pthread link with -mthreads""... $ac_c" 1>&6
-echo "configure:12726: checking for pthread link with -mthreads" >&5
+echo "configure:12650: checking for pthread link with -mthreads" >&5
 if eval "test \"\${ol_cv_pthread_mthreads+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -12733,10 +12657,13 @@ else
 
                if test "$cross_compiling" = yes; then
   cat > conftest.$ac_ext <<EOF
-#line 12737 "configure"
+#line 12661 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -12750,60 +12677,43 @@ static void *task(p)
 int main() {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -12814,7 +12724,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:12818: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12728: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_pthread_mthreads=yes
 else
 rm -f conftest*
 else
   cat > conftest.$ac_ext <<EOF
-#line 12830 "configure"
+#line 12740 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -12847,60 +12760,43 @@ int main(argc, argv)
 {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -12912,7 +12808,7 @@ int main(argc, argv)
 }
 
 EOF
-if { (eval echo configure:12916: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:12812: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ol_cv_pthread_mthreads=yes
 else
@@ -12942,7 +12838,7 @@ fi
 if test "$ol_link_threads" = no ; then
        # try -thread
        echo $ac_n "checking for pthread link with -thread""... $ac_c" 1>&6
-echo "configure:12946: checking for pthread link with -thread" >&5
+echo "configure:12842: checking for pthread link with -thread" >&5
 if eval "test \"\${ol_cv_pthread_thread+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -12953,10 +12849,13 @@ else
 
                if test "$cross_compiling" = yes; then
   cat > conftest.$ac_ext <<EOF
-#line 12957 "configure"
+#line 12853 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -12970,60 +12869,43 @@ static void *task(p)
 int main() {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -13034,7 +12916,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:13038: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12920: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_pthread_thread=yes
 else
 rm -f conftest*
 else
   cat > conftest.$ac_ext <<EOF
-#line 13050 "configure"
+#line 12932 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -13067,60 +12952,43 @@ int main(argc, argv)
 {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -13132,7 +13000,7 @@ int main(argc, argv)
 }
 
 EOF
-if { (eval echo configure:13136: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:13004: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ol_cv_pthread_thread=yes
 else
@@ -13163,7 +13031,7 @@ fi
 if test "$ol_link_threads" = no ; then
        # try -lpthread -lmach -lexc -lc_r
        echo $ac_n "checking for pthread link with -lpthread -lmach -lexc -lc_r""... $ac_c" 1>&6
-echo "configure:13167: checking for pthread link with -lpthread -lmach -lexc -lc_r" >&5
+echo "configure:13035: checking for pthread link with -lpthread -lmach -lexc -lc_r" >&5
 if eval "test \"\${ol_cv_pthread_lpthread_lmach_lexc_lc_r+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -13174,10 +13042,13 @@ else
 
                if test "$cross_compiling" = yes; then
   cat > conftest.$ac_ext <<EOF
-#line 13178 "configure"
+#line 13046 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -13191,60 +13062,43 @@ static void *task(p)
 int main() {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -13255,7 +13109,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:13259: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13113: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_pthread_lpthread_lmach_lexc_lc_r=yes
 else
 rm -f conftest*
 else
   cat > conftest.$ac_ext <<EOF
-#line 13271 "configure"
+#line 13125 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -13288,60 +13145,43 @@ int main(argc, argv)
 {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -13353,7 +13193,7 @@ int main(argc, argv)
 }
 
 EOF
-if { (eval echo configure:13357: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:13197: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ol_cv_pthread_lpthread_lmach_lexc_lc_r=yes
 else
@@ -13383,7 +13223,7 @@ fi
 if test "$ol_link_threads" = no ; then
        # try -lpthread -lmach -lexc
        echo $ac_n "checking for pthread link with -lpthread -lmach -lexc""... $ac_c" 1>&6
-echo "configure:13387: checking for pthread link with -lpthread -lmach -lexc" >&5
+echo "configure:13227: checking for pthread link with -lpthread -lmach -lexc" >&5
 if eval "test \"\${ol_cv_pthread_lpthread_lmach_lexc+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -13394,10 +13234,13 @@ else
 
                if test "$cross_compiling" = yes; then
   cat > conftest.$ac_ext <<EOF
-#line 13398 "configure"
+#line 13238 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -13411,60 +13254,43 @@ static void *task(p)
 int main() {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -13475,7 +13301,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:13479: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13305: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_pthread_lpthread_lmach_lexc=yes
 else
 rm -f conftest*
 else
   cat > conftest.$ac_ext <<EOF
-#line 13491 "configure"
+#line 13317 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -13508,60 +13337,43 @@ int main(argc, argv)
 {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
-#endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -13573,7 +13385,7 @@ int main(argc, argv)
 }
 
 EOF
-if { (eval echo configure:13577: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:13389: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ol_cv_pthread_lpthread_lmach_lexc=yes
 else
@@ -13604,7 +13416,7 @@ fi
 if test "$ol_link_threads" = no ; then
        # try -lpthread -Wl,-woff,85
        echo $ac_n "checking for pthread link with -lpthread -Wl,-woff,85""... $ac_c" 1>&6
-echo "configure:13608: checking for pthread link with -lpthread -Wl,-woff,85" >&5
+echo "configure:13420: checking for pthread link with -lpthread -Wl,-woff,85" >&5
 if eval "test \"\${ol_cv_pthread_lib_lpthread_woff+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -13615,10 +13427,13 @@ else
 
                if test "$cross_compiling" = yes; then
   cat > conftest.$ac_ext <<EOF
-#line 13619 "configure"
+#line 13431 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -13632,60 +13447,43 @@ static void *task(p)
 int main() {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -13696,7 +13494,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:13700: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13498: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_pthread_lib_lpthread_woff=yes
 else
 rm -f conftest*
 else
   cat > conftest.$ac_ext <<EOF
-#line 13712 "configure"
+#line 13510 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -13729,60 +13530,43 @@ int main(argc, argv)
 {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
-#else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
-#endif
-       }
-       if( status ) return status;
-#endif
-
-       status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
+#else
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-
+       if( status ) return status;
+       status = pthread_create( &t, &attr, task, NULL );
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
+#endif
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -13794,7 +13578,7 @@ int main(argc, argv)
 }
 
 EOF
-if { (eval echo configure:13798: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:13582: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ol_cv_pthread_lib_lpthread_woff=yes
 else
@@ -13825,7 +13609,7 @@ fi
 if test "$ol_link_threads" = no ; then
        # try -lpthread
        echo $ac_n "checking for pthread link with -lpthread""... $ac_c" 1>&6
-echo "configure:13829: checking for pthread link with -lpthread" >&5
+echo "configure:13613: checking for pthread link with -lpthread" >&5
 if eval "test \"\${ol_cv_pthread_lpthread+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -13836,10 +13620,13 @@ else
 
                if test "$cross_compiling" = yes; then
   cat > conftest.$ac_ext <<EOF
-#line 13840 "configure"
+#line 13624 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -13853,60 +13640,43 @@ static void *task(p)
 int main() {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -13917,7 +13687,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:13921: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13691: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_pthread_lpthread=yes
 else
 rm -f conftest*
 else
   cat > conftest.$ac_ext <<EOF
-#line 13933 "configure"
+#line 13703 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -13950,60 +13723,43 @@ int main(argc, argv)
 {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -14015,7 +13771,7 @@ int main(argc, argv)
 }
 
 EOF
-if { (eval echo configure:14019: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:13775: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ol_cv_pthread_lpthread=yes
 else
@@ -14045,7 +13801,7 @@ fi
 if test "$ol_link_threads" = no ; then
        # try -lc_r
        echo $ac_n "checking for pthread link with -lc_r""... $ac_c" 1>&6
-echo "configure:14049: checking for pthread link with -lc_r" >&5
+echo "configure:13805: checking for pthread link with -lc_r" >&5
 if eval "test \"\${ol_cv_pthread_lc_r+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -14056,10 +13812,13 @@ else
 
                if test "$cross_compiling" = yes; then
   cat > conftest.$ac_ext <<EOF
-#line 14060 "configure"
+#line 13816 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -14073,60 +13832,43 @@ static void *task(p)
 int main() {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -14137,7 +13879,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:14141: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13883: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_pthread_lc_r=yes
 else
 rm -f conftest*
 else
   cat > conftest.$ac_ext <<EOF
-#line 14153 "configure"
+#line 13895 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -14170,60 +13915,43 @@ int main(argc, argv)
 {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -14235,7 +13963,7 @@ int main(argc, argv)
 }
 
 EOF
-if { (eval echo configure:14239: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:13967: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ol_cv_pthread_lc_r=yes
 else
@@ -14266,7 +13994,7 @@ fi
 if test "$ol_link_threads" = no ; then
        # try -threads
        echo $ac_n "checking for pthread link with -threads""... $ac_c" 1>&6
-echo "configure:14270: checking for pthread link with -threads" >&5
+echo "configure:13998: checking for pthread link with -threads" >&5
 if eval "test \"\${ol_cv_pthread_threads+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -14277,10 +14005,13 @@ else
 
                if test "$cross_compiling" = yes; then
   cat > conftest.$ac_ext <<EOF
-#line 14281 "configure"
+#line 14009 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -14294,60 +14025,43 @@ static void *task(p)
 int main() {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -14358,7 +14072,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:14362: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14076: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_pthread_threads=yes
 else
 rm -f conftest*
 else
   cat > conftest.$ac_ext <<EOF
-#line 14374 "configure"
+#line 14088 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -14391,60 +14108,43 @@ int main(argc, argv)
 {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -14456,7 +14156,7 @@ int main(argc, argv)
 }
 
 EOF
-if { (eval echo configure:14460: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:14160: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ol_cv_pthread_threads=yes
 else
@@ -14487,7 +14187,7 @@ fi
 if test "$ol_link_threads" = no ; then
        # try -lpthreads -lmach -lexc -lc_r
        echo $ac_n "checking for pthread link with -lpthreads -lmach -lexc -lc_r""... $ac_c" 1>&6
-echo "configure:14491: checking for pthread link with -lpthreads -lmach -lexc -lc_r" >&5
+echo "configure:14191: checking for pthread link with -lpthreads -lmach -lexc -lc_r" >&5
 if eval "test \"\${ol_cv_pthread_lpthreads_lmach_lexc_lc_r+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -14498,10 +14198,13 @@ else
 
                if test "$cross_compiling" = yes; then
   cat > conftest.$ac_ext <<EOF
-#line 14502 "configure"
+#line 14202 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -14515,60 +14218,43 @@ static void *task(p)
 int main() {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -14579,7 +14265,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:14583: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14269: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_pthread_lpthreads_lmach_lexc_lc_r=yes
 else
 rm -f conftest*
 else
   cat > conftest.$ac_ext <<EOF
-#line 14595 "configure"
+#line 14281 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -14612,60 +14301,43 @@ int main(argc, argv)
 {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -14677,7 +14349,7 @@ int main(argc, argv)
 }
 
 EOF
-if { (eval echo configure:14681: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:14353: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ol_cv_pthread_lpthreads_lmach_lexc_lc_r=yes
 else
@@ -14707,7 +14379,7 @@ fi
 if test "$ol_link_threads" = no ; then
        # try -lpthreads -lmach -lexc
        echo $ac_n "checking for pthread link with -lpthreads -lmach -lexc""... $ac_c" 1>&6
-echo "configure:14711: checking for pthread link with -lpthreads -lmach -lexc" >&5
+echo "configure:14383: checking for pthread link with -lpthreads -lmach -lexc" >&5
 if eval "test \"\${ol_cv_pthread_lpthreads_lmach_lexc+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -14718,10 +14390,13 @@ else
 
                if test "$cross_compiling" = yes; then
   cat > conftest.$ac_ext <<EOF
-#line 14722 "configure"
+#line 14394 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -14735,60 +14410,43 @@ static void *task(p)
 int main() {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -14799,7 +14457,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:14803: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14461: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_pthread_lpthreads_lmach_lexc=yes
 else
 rm -f conftest*
 else
   cat > conftest.$ac_ext <<EOF
-#line 14815 "configure"
+#line 14473 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -14832,60 +14493,43 @@ int main(argc, argv)
 {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -14897,7 +14541,7 @@ int main(argc, argv)
 }
 
 EOF
-if { (eval echo configure:14901: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:14545: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ol_cv_pthread_lpthreads_lmach_lexc=yes
 else
@@ -14927,7 +14571,7 @@ fi
 if test "$ol_link_threads" = no ; then
        # try -lpthreads -lexc
        echo $ac_n "checking for pthread link with -lpthreads -lexc""... $ac_c" 1>&6
-echo "configure:14931: checking for pthread link with -lpthreads -lexc" >&5
+echo "configure:14575: checking for pthread link with -lpthreads -lexc" >&5
 if eval "test \"\${ol_cv_pthread_lpthreads_lexc+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -14938,10 +14582,13 @@ else
 
                if test "$cross_compiling" = yes; then
   cat > conftest.$ac_ext <<EOF
-#line 14942 "configure"
+#line 14586 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -14955,60 +14602,43 @@ static void *task(p)
 int main() {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -15019,7 +14649,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:15023: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14653: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_pthread_lpthreads_lexc=yes
 else
 rm -f conftest*
 else
   cat > conftest.$ac_ext <<EOF
-#line 15035 "configure"
+#line 14665 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -15052,60 +14685,43 @@ int main(argc, argv)
 {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -15117,7 +14733,7 @@ int main(argc, argv)
 }
 
 EOF
-if { (eval echo configure:15121: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:14737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ol_cv_pthread_lpthreads_lexc=yes
 else
@@ -15148,7 +14764,7 @@ fi
 if test "$ol_link_threads" = no ; then
        # try -lpthreads
        echo $ac_n "checking for pthread link with -lpthreads""... $ac_c" 1>&6
-echo "configure:15152: checking for pthread link with -lpthreads" >&5
+echo "configure:14768: checking for pthread link with -lpthreads" >&5
 if eval "test \"\${ol_cv_pthread_lib_lpthreads+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -15159,10 +14775,13 @@ else
 
                if test "$cross_compiling" = yes; then
   cat > conftest.$ac_ext <<EOF
-#line 15163 "configure"
+#line 14779 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -15176,60 +14795,43 @@ static void *task(p)
 int main() {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -15240,7 +14842,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:15244: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14846: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_pthread_lib_lpthreads=yes
 else
 rm -f conftest*
 else
   cat > conftest.$ac_ext <<EOF
-#line 15256 "configure"
+#line 14858 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -15273,60 +14878,43 @@ int main(argc, argv)
 {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -15338,7 +14926,7 @@ int main(argc, argv)
 }
 
 EOF
-if { (eval echo configure:15342: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:14930: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ol_cv_pthread_lib_lpthreads=yes
 else
 
 
                if test $ol_link_threads != no ; then
-                       cat >> confdefs.h <<\EOF
-#define HAVE_PTHREADS 1
-EOF
-
-
                        LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads"
 
                                                save_CPPFLAGS="$CPPFLAGS"
@@ -15380,12 +14963,12 @@ EOF
                                                                                                for ac_func in sched_yield pthread_yield
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15384: checking for $ac_func" >&5
+echo "configure:14967: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 15389 "configure"
+#line 14972 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -15409,7 +14992,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:15413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14996: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -15437,7 +15020,7 @@ done
                        if test $ac_cv_func_sched_yield = no -a \
                                $ac_cv_func_pthread_yield = no ; then
                                                                echo $ac_n "checking for sched_yield in -lrt""... $ac_c" 1>&6
-echo "configure:15441: checking for sched_yield in -lrt" >&5
+echo "configure:15024: checking for sched_yield in -lrt" >&5
 ac_lib_var=`echo rt'_'sched_yield | sed 'y%./+-:%__p__%'`
 if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -15445,7 +15028,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lrt  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 15449 "configure"
+#line 15032 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -15456,7 +15039,7 @@ int main() {
 sched_yield()
 ; return 0; }
 EOF
-if { (eval echo configure:15460: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15043: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
                                                                                                for ac_func in thr_yield
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15492: checking for $ac_func" >&5
+echo "configure:15075: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 15497 "configure"
+#line 15080 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -15517,7 +15100,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:15521: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15104: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -15551,12 +15134,12 @@ done
                                                for ac_func in pthread_kill pthread_rwlock_destroy
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15555: checking for $ac_func" >&5
+echo "configure:15138: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 15560 "configure"
+#line 15143 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -15580,7 +15163,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:15584: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15167: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -15606,13 +15189,13 @@ done
 
 
                                                                        echo $ac_n "checking for pthread_detach with <pthread.h>""... $ac_c" 1>&6
-echo "configure:15610: checking for pthread_detach with <pthread.h>" >&5
+echo "configure:15193: checking for pthread_detach with <pthread.h>" >&5
 if eval "test \"\${ol_cv_func_pthread_detach+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
                                                                cat > conftest.$ac_ext <<EOF
-#line 15616 "configure"
+#line 15199 "configure"
 #include "confdefs.h"
 
 #include <pthread.h>
@@ -15624,7 +15207,7 @@ int main() {
 pthread_detach(NULL);
 ; return 0; }
 EOF
-if { (eval echo configure:15628: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15211: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_func_pthread_detach=yes
 else
@@ -15656,12 +15239,12 @@ EOF
                        
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15660: checking for $ac_func" >&5
+echo "configure:15243: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 15665 "configure"
+#line 15248 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -15685,7 +15268,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:15689: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15272: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -15714,12 +15297,12 @@ done
        for ac_func in pthread_kill_other_threads_np
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15718: checking for $ac_func" >&5
+echo "configure:15301: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 15723 "configure"
+#line 15306 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -15743,7 +15326,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:15747: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15330: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -15768,7 +15351,7 @@ fi
 done
 
        echo $ac_n "checking for LinuxThreads implementation""... $ac_c" 1>&6
-echo "configure:15772: checking for LinuxThreads implementation" >&5
+echo "configure:15355: checking for LinuxThreads implementation" >&5
 if eval "test \"\${ol_cv_sys_linux_threads+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -15781,7 +15364,7 @@ echo "$ac_t""$ol_cv_sys_linux_threads" 1>&6
        
        
        echo $ac_n "checking for LinuxThreads consistency""... $ac_c" 1>&6
-echo "configure:15785: checking for LinuxThreads consistency" >&5
+echo "configure:15368: checking for LinuxThreads consistency" >&5
 if eval "test \"\${ol_cv_linux_threads+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -15806,7 +15389,7 @@ echo "$ac_t""$ol_cv_linux_threads" 1>&6
                        fi
 
                        echo $ac_n "checking if pthread_create() works""... $ac_c" 1>&6
-echo "configure:15810: checking if pthread_create() works" >&5
+echo "configure:15393: checking if pthread_create() works" >&5
 if eval "test \"\${ol_cv_pthread_create_works+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -15815,10 +15398,13 @@ else
                                ol_cv_pthread_create_works=yes
 else
   cat > conftest.$ac_ext <<EOF
-#line 15819 "configure"
+#line 15402 "configure"
 #include "confdefs.h"
 /* pthread test headers */
 #include <pthread.h>
+#if HAVE_PTHREADS < 7
+#include <errno.h>
+#endif
 #ifndef NULL
 #define NULL (void*)0
 #endif
@@ -15836,60 +15422,43 @@ int main(argc, argv)
 {
 
        /* pthread test function */
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
        pthread_t t;
        int status;
-       int detach = 1;
+       int detach = PTHREAD_CREATE_DETACHED;
 
-#ifdef HAVE_PTHREADS_FINAL
+#if HAVE_PTHREADS > 4
        /* Final pthreads */
        pthread_attr_t attr;
 
        status = pthread_attr_init(&attr);
        if( status ) return status;
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if( !detach ) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+#if HAVE_PTHREADS < 7
+       status = pthread_attr_setdetachstate(&attr, &detach);
+       if( status < 0 ) status = errno;
 #else
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               status = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+       status = pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
        if( status ) return status;
-#endif
-
        status = pthread_create( &t, &attr, task, NULL );
-       if( status ) return status;
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
-
-               status = pthread_detach( t );
-               if( status ) return status;
-       }
+#if HAVE_PTHREADS < 7
+       if( status < 0 ) status = errno;
 #endif
-
+       if( status ) return status;
 #else
        /* Draft 4 pthreads */
        status = pthread_create( &t, pthread_attr_default, task, NULL );
-       if( status ) return status;
+       if( status ) return errno;
 
-       if( detach ) {
-               /* give thread a chance to complete */
-               /* it should remain joinable and hence detachable */
-               sleep( 1 );
+       /* give thread a chance to complete */
+       /* it should remain joinable and hence detachable */
+       sleep( 1 );
 
-               status = pthread_detach( &t );
-               if( status ) return status;
-       }
+       status = pthread_detach( &t );
+       if( status ) return errno;
 #endif
 
 #ifdef HAVE_LINUX_THREADS
@@ -15901,7 +15470,7 @@ int main(argc, argv)
 }
 
 EOF
-if { (eval echo configure:15905: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:15474: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ol_cv_pthread_create_works=yes
 else
@@ -15923,7 +15492,7 @@ echo "$ac_t""$ol_cv_pthread_create_works" 1>&6
 
                                                if test $ol_with_yielding_select = auto ; then
                                echo $ac_n "checking if select yields when using pthreads""... $ac_c" 1>&6
-echo "configure:15927: checking if select yields when using pthreads" >&5
+echo "configure:15496: checking if select yields when using pthreads" >&5
 if eval "test \"\${ol_cv_pthread_select_yields+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -15932,7 +15501,7 @@ else
   ol_cv_pthread_select_yields=cross
 else
   cat > conftest.$ac_ext <<EOF
-#line 15936 "configure"
+#line 15505 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -15991,7 +15560,7 @@ int main(argc, argv)
 #endif
 #endif
 
-#if HAVE_PTHREADS_D4
+#if HAVE_PTHREADS < 6
        pthread_create(&t, pthread_attr_default, task, NULL);
 #else
        pthread_create(&t, NULL, task, NULL);
@@ -16008,7 +15577,7 @@ int main(argc, argv)
        exit(2);
 }
 EOF
-if { (eval echo configure:16012: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:15581: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ol_cv_pthread_select_yields=no
 else
@@ -16052,17 +15621,17 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:16056: checking for $ac_hdr" >&5
+echo "configure:15625: checking for $ac_hdr" >&5
 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16061 "configure"
+#line 15630 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:16066: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:15635: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -16092,12 +15661,12 @@ done
                ol_with_threads=found
 
                                echo $ac_n "checking for cthread_fork""... $ac_c" 1>&6
-echo "configure:16096: checking for cthread_fork" >&5
+echo "configure:15665: checking for cthread_fork" >&5
 if eval "test \"\${ac_cv_func_cthread_fork+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16101 "configure"
+#line 15670 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char cthread_fork(); below.  */
@@ -16121,7 +15690,7 @@ f = cthread_fork;
 
 ; return 0; }
 EOF
-if { (eval echo configure:16125: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15694: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_cthread_fork=yes"
 else
@@ -16143,7 +15712,7 @@ fi
 
                if test $ol_link_threads = no ; then
                                                                        echo $ac_n "checking for cthread_fork with -all_load""... $ac_c" 1>&6
-echo "configure:16147: checking for cthread_fork with -all_load" >&5
+echo "configure:15716: checking for cthread_fork with -all_load" >&5
 if eval "test \"\${ol_cv_cthread_all_load+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -16151,7 +15720,7 @@ else
                                                                save_LIBS="$LIBS"
                                LIBS="-all_load $LIBS"
                                cat > conftest.$ac_ext <<EOF
-#line 16155 "configure"
+#line 15724 "configure"
 #include "confdefs.h"
 #include <mach/cthreads.h>
 int main() {
@@ -16160,7 +15729,7 @@ int main() {
                                        
 ; return 0; }
 EOF
-if { (eval echo configure:16164: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15733: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_cthread_all_load=yes
 else
@@ -16190,12 +15759,12 @@ echo "$ac_t""$ol_cv_cthread_all_load" 1>&6
                                save_LIBS="$LIBS"
                LIBS="$LIBS -lthreads"
                echo $ac_n "checking for cthread_fork""... $ac_c" 1>&6
-echo "configure:16194: checking for cthread_fork" >&5
+echo "configure:15763: checking for cthread_fork" >&5
 if eval "test \"\${ac_cv_func_cthread_fork+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16199 "configure"
+#line 15768 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char cthread_fork(); below.  */
@@ -16219,7 +15788,7 @@ f = cthread_fork;
 
 ; return 0; }
 EOF
-if { (eval echo configure:16223: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15792: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_cthread_fork=yes"
 else
@@ -16269,17 +15838,17 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:16273: checking for $ac_hdr" >&5
+echo "configure:15842: checking for $ac_hdr" >&5
 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16278 "configure"
+#line 15847 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:16283: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:15852: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -16308,7 +15877,7 @@ done
 
        if test $ac_cv_header_pth_h = yes ; then
                echo $ac_n "checking for pth_version in -lpth""... $ac_c" 1>&6
-echo "configure:16312: checking for pth_version in -lpth" >&5
+echo "configure:15881: checking for pth_version in -lpth" >&5
 ac_lib_var=`echo pth'_'pth_version | sed 'y%./+-:%__p__%'`
 if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -16316,7 +15885,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lpth  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 16320 "configure"
+#line 15889 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -16327,7 +15896,7 @@ int main() {
 pth_version()
 ; return 0; }
 EOF
-if { (eval echo configure:16331: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -16372,17 +15941,17 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:16376: checking for $ac_hdr" >&5
+echo "configure:15945: checking for $ac_hdr" >&5
 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16381 "configure"
+#line 15950 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:16386: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:15955: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -16410,7 +15979,7 @@ done
 
        if test $ac_cv_header_thread_h = yes -a $ac_cv_header_synch_h = yes ; then
                echo $ac_n "checking for thr_create in -lthread""... $ac_c" 1>&6
-echo "configure:16414: checking for thr_create in -lthread" >&5
+echo "configure:15983: checking for thr_create in -lthread" >&5
 ac_lib_var=`echo thread'_'thr_create | sed 'y%./+-:%__p__%'`
 if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -16418,7 +15987,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lthread  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 16422 "configure"
+#line 15991 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -16429,7 +15998,7 @@ int main() {
 thr_create()
 ; return 0; }
 EOF
-if { (eval echo configure:16433: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16002: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -16469,12 +16038,12 @@ EOF
                        
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16473: checking for $ac_func" >&5
+echo "configure:16042: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16478 "configure"
+#line 16047 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -16498,7 +16067,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:16502: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16071: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -16529,17 +16098,17 @@ done
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:16533: checking for $ac_hdr" >&5
+echo "configure:16102: checking for $ac_hdr" >&5
 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16538 "configure"
+#line 16107 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:16543: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:16112: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -16567,7 +16136,7 @@ done
 
        if test $ac_cv_header_lwp_lwp_h = yes ; then
                echo $ac_n "checking for lwp_create in -llwp""... $ac_c" 1>&6
-echo "configure:16571: checking for lwp_create in -llwp" >&5
+echo "configure:16140: checking for lwp_create in -llwp" >&5
 ac_lib_var=`echo lwp'_'lwp_create | sed 'y%./+-:%__p__%'`
 if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -16575,7 +16144,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-llwp  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 16579 "configure"
+#line 16148 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -16586,7 +16155,7 @@ int main() {
 lwp_create()
 ; return 0; }
 EOF
-if { (eval echo configure:16590: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16159: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -16639,17 +16208,17 @@ if test $ol_with_threads = manual ; then
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:16643: checking for $ac_hdr" >&5
+echo "configure:16212: checking for $ac_hdr" >&5
 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16648 "configure"
+#line 16217 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:16653: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:16222: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -16678,12 +16247,12 @@ done
        for ac_func in sched_yield pthread_yield
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16682: checking for $ac_func" >&5
+echo "configure:16251: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16687 "configure"
+#line 16256 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -16707,7 +16276,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:16711: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16280: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -16733,12 +16302,12 @@ done
 
        
        echo $ac_n "checking for LinuxThreads pthread.h""... $ac_c" 1>&6
-echo "configure:16737: checking for LinuxThreads pthread.h" >&5
+echo "configure:16306: checking for LinuxThreads pthread.h" >&5
 if eval "test \"\${ol_cv_header_linux_threads+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16742 "configure"
+#line 16311 "configure"
 #include "confdefs.h"
 #include <pthread.h>
 EOF
@@ -16768,17 +16337,17 @@ EOF
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:16772: checking for $ac_hdr" >&5
+echo "configure:16341: checking for $ac_hdr" >&5
 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16777 "configure"
+#line 16346 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:16782: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:16351: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -16808,17 +16377,17 @@ done
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:16812: checking for $ac_hdr" >&5
+echo "configure:16381: checking for $ac_hdr" >&5
 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16817 "configure"
+#line 16386 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:16822: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:16391: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -16848,17 +16417,17 @@ done
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:16852: checking for $ac_hdr" >&5
+echo "configure:16421: checking for $ac_hdr" >&5
 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16857 "configure"
+#line 16426 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:16862: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:16431: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -16917,20 +16486,20 @@ EOF
 
 
                        echo $ac_n "checking for thread specific errno""... $ac_c" 1>&6
-echo "configure:16921: checking for thread specific errno" >&5
+echo "configure:16490: checking for thread specific errno" >&5
 if eval "test \"\${ol_cv_errno_thread_specific+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
                cat > conftest.$ac_ext <<EOF
-#line 16927 "configure"
+#line 16496 "configure"
 #include "confdefs.h"
 #include <errno.h>
 int main() {
 errno = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:16934: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16503: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_errno_thread_specific=yes
 else
 echo "$ac_t""$ol_cv_errno_thread_specific" 1>&6
 
                        echo $ac_n "checking for thread specific h_errno""... $ac_c" 1>&6
-echo "configure:16950: checking for thread specific h_errno" >&5
+echo "configure:16519: checking for thread specific h_errno" >&5
 if eval "test \"\${ol_cv_h_errno_thread_specific+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
                cat > conftest.$ac_ext <<EOF
-#line 16956 "configure"
+#line 16525 "configure"
 #include "confdefs.h"
 #include <netdb.h>
 int main() {
 h_errno = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:16963: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16532: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_h_errno_thread_specific=yes
 else
@@ -17017,17 +16586,17 @@ if test $ol_with_ldbm_api = auto \
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:17021: checking for $ac_hdr" >&5
+echo "configure:16590: checking for $ac_hdr" >&5
 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 17026 "configure"
+#line 16595 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:17031: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:16600: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -17055,13 +16624,13 @@ done
 
 if test $ac_cv_header_db_185_h = yes -o $ac_cv_header_db_h = yes; then
        echo $ac_n "checking if Berkeley DB header compatibility""... $ac_c" 1>&6
-echo "configure:17059: checking if Berkeley DB header compatibility" >&5
+echo "configure:16628: checking if Berkeley DB header compatibility" >&5
 if eval "test \"\${ol_cv_header_db1+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
                cat > conftest.$ac_ext <<EOF
-#line 17065 "configure"
+#line 16634 "configure"
 #include "confdefs.h"
 
 #if HAVE_DB_185_H
@@ -17098,7 +16667,7 @@ echo "$ac_t""$ol_cv_header_db1" 1>&6
                ol_cv_lib_db=no
 if test $ol_cv_lib_db = no ; then
        echo $ac_n "checking for Berkeley DB link (default)""... $ac_c" 1>&6
-echo "configure:17102: checking for Berkeley DB link (default)" >&5
+echo "configure:16671: checking for Berkeley DB link (default)" >&5
 if eval "test \"\${ol_cv_db_none+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -17108,7 +16677,7 @@ else
        LIBS="$ol_DB_LIB $LIBS"
 
        cat > conftest.$ac_ext <<EOF
-#line 17112 "configure"
+#line 16681 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_DB_185_H
@@ -17155,7 +16724,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:17159: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16728: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_db_none=yes
 else
@@ -17179,7 +16748,7 @@ fi
 
 if test $ol_cv_lib_db = no ; then
        echo $ac_n "checking for Berkeley DB link (-ldb4)""... $ac_c" 1>&6
-echo "configure:17183: checking for Berkeley DB link (-ldb4)" >&5
+echo "configure:16752: checking for Berkeley DB link (-ldb4)" >&5
 if eval "test \"\${ol_cv_db_db4+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -17189,7 +16758,7 @@ else
        LIBS="$ol_DB_LIB $LIBS"
 
        cat > conftest.$ac_ext <<EOF
-#line 17193 "configure"
+#line 16762 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_DB_185_H
@@ -17236,7 +16805,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:17240: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16809: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_db_db4=yes
 else
@@ -17260,7 +16829,7 @@ fi
 
 if test $ol_cv_lib_db = no ; then
        echo $ac_n "checking for Berkeley DB link (-ldb-4)""... $ac_c" 1>&6
-echo "configure:17264: checking for Berkeley DB link (-ldb-4)" >&5
+echo "configure:16833: checking for Berkeley DB link (-ldb-4)" >&5
 if eval "test \"\${ol_cv_db_db_4+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -17270,7 +16839,7 @@ else
        LIBS="$ol_DB_LIB $LIBS"
 
        cat > conftest.$ac_ext <<EOF
-#line 17274 "configure"
+#line 16843 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_DB_185_H
@@ -17317,7 +16886,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:17321: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16890: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_db_db_4=yes
 else
@@ -17341,7 +16910,7 @@ fi
 
 if test $ol_cv_lib_db = no ; then
        echo $ac_n "checking for Berkeley DB link (-ldb)""... $ac_c" 1>&6
-echo "configure:17345: checking for Berkeley DB link (-ldb)" >&5
+echo "configure:16914: checking for Berkeley DB link (-ldb)" >&5
 if eval "test \"\${ol_cv_db_db+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -17351,7 +16920,7 @@ else
        LIBS="$ol_DB_LIB $LIBS"
 
        cat > conftest.$ac_ext <<EOF
-#line 17355 "configure"
+#line 16924 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_DB_185_H
@@ -17398,7 +16967,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:17402: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16971: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_db_db=yes
 else
@@ -17422,7 +16991,7 @@ fi
 
 if test $ol_cv_lib_db = no ; then
        echo $ac_n "checking for Berkeley DB link (-ldb3)""... $ac_c" 1>&6
-echo "configure:17426: checking for Berkeley DB link (-ldb3)" >&5
+echo "configure:16995: checking for Berkeley DB link (-ldb3)" >&5
 if eval "test \"\${ol_cv_db_db3+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -17432,7 +17001,7 @@ else
        LIBS="$ol_DB_LIB $LIBS"
 
        cat > conftest.$ac_ext <<EOF
-#line 17436 "configure"
+#line 17005 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_DB_185_H
@@ -17479,7 +17048,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:17483: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17052: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_db_db3=yes
 else
@@ -17503,7 +17072,7 @@ fi
 
 if test $ol_cv_lib_db = no ; then
        echo $ac_n "checking for Berkeley DB link (-ldb-3)""... $ac_c" 1>&6
-echo "configure:17507: checking for Berkeley DB link (-ldb-3)" >&5
+echo "configure:17076: checking for Berkeley DB link (-ldb-3)" >&5
 if eval "test \"\${ol_cv_db_db_3+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -17513,7 +17082,7 @@ else
        LIBS="$ol_DB_LIB $LIBS"
 
        cat > conftest.$ac_ext <<EOF
-#line 17517 "configure"
+#line 17086 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_DB_185_H
@@ -17560,7 +17129,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:17564: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17133: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_db_db_3=yes
 else
@@ -17584,7 +17153,7 @@ fi
 
 if test $ol_cv_lib_db = no ; then
        echo $ac_n "checking for Berkeley DB link (-ldb2)""... $ac_c" 1>&6
-echo "configure:17588: checking for Berkeley DB link (-ldb2)" >&5
+echo "configure:17157: checking for Berkeley DB link (-ldb2)" >&5
 if eval "test \"\${ol_cv_db_db2+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -17594,7 +17163,7 @@ else
        LIBS="$ol_DB_LIB $LIBS"
 
        cat > conftest.$ac_ext <<EOF
-#line 17598 "configure"
+#line 17167 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_DB_185_H
@@ -17641,7 +17210,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:17645: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17214: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_db_db2=yes
 else
@@ -17665,7 +17234,7 @@ fi
 
 if test $ol_cv_lib_db = no ; then
        echo $ac_n "checking for Berkeley DB link (-ldb-2)""... $ac_c" 1>&6
-echo "configure:17669: checking for Berkeley DB link (-ldb-2)" >&5
+echo "configure:17238: checking for Berkeley DB link (-ldb-2)" >&5
 if eval "test \"\${ol_cv_db_db_2+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -17675,7 +17244,7 @@ else
        LIBS="$ol_DB_LIB $LIBS"
 
        cat > conftest.$ac_ext <<EOF
-#line 17679 "configure"
+#line 17248 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_DB_185_H
@@ -17722,7 +17291,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:17726: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17295: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_db_db_2=yes
 else
@@ -17746,7 +17315,7 @@ fi
 
 if test $ol_cv_lib_db = no ; then
        echo $ac_n "checking for Berkeley DB link (-ldb1)""... $ac_c" 1>&6
-echo "configure:17750: checking for Berkeley DB link (-ldb1)" >&5
+echo "configure:17319: checking for Berkeley DB link (-ldb1)" >&5
 if eval "test \"\${ol_cv_db_db1+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -17756,7 +17325,7 @@ else
        LIBS="$ol_DB_LIB $LIBS"
 
        cat > conftest.$ac_ext <<EOF
-#line 17760 "configure"
+#line 17329 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_DB_185_H
@@ -17803,7 +17372,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:17807: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17376: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_db_db1=yes
 else
@@ -17827,7 +17396,7 @@ fi
 
 if test $ol_cv_lib_db = no ; then
        echo $ac_n "checking for Berkeley DB link (-ldb-1)""... $ac_c" 1>&6
-echo "configure:17831: checking for Berkeley DB link (-ldb-1)" >&5
+echo "configure:17400: checking for Berkeley DB link (-ldb-1)" >&5
 if eval "test \"\${ol_cv_db_db_1+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -17837,7 +17406,7 @@ else
        LIBS="$ol_DB_LIB $LIBS"
 
        cat > conftest.$ac_ext <<EOF
-#line 17841 "configure"
+#line 17410 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_DB_185_H
@@ -17884,7 +17453,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:17888: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17457: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_db_db_1=yes
 else
@@ -17919,17 +17488,17 @@ for ac_hdr in db.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:17923: checking for $ac_hdr" >&5
+echo "configure:17492: checking for $ac_hdr" >&5
 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 17928 "configure"
+#line 17497 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:17933: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:17502: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -17959,7 +17528,7 @@ if test $ac_cv_header_db_h = yes; then
        ol_cv_lib_db=no
 if test $ol_cv_lib_db = no ; then
        echo $ac_n "checking for Berkeley DB link (default)""... $ac_c" 1>&6
-echo "configure:17963: checking for Berkeley DB link (default)" >&5
+echo "configure:17532: checking for Berkeley DB link (default)" >&5
 if eval "test \"\${ol_cv_db_none+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -17969,7 +17538,7 @@ else
        LIBS="$ol_DB_LIB $LIBS"
 
        cat > conftest.$ac_ext <<EOF
-#line 17973 "configure"
+#line 17542 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_DB_185_H
@@ -18016,7 +17585,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:18020: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17589: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_db_none=yes
 else
@@ -18040,7 +17609,7 @@ fi
 
 if test $ol_cv_lib_db = no ; then
        echo $ac_n "checking for Berkeley DB link (-ldb4)""... $ac_c" 1>&6
-echo "configure:18044: checking for Berkeley DB link (-ldb4)" >&5
+echo "configure:17613: checking for Berkeley DB link (-ldb4)" >&5
 if eval "test \"\${ol_cv_db_db4+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -18050,7 +17619,7 @@ else
        LIBS="$ol_DB_LIB $LIBS"
 
        cat > conftest.$ac_ext <<EOF
-#line 18054 "configure"
+#line 17623 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_DB_185_H
@@ -18097,7 +17666,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:18101: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17670: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_db_db4=yes
 else
@@ -18121,7 +17690,7 @@ fi
 
 if test $ol_cv_lib_db = no ; then
        echo $ac_n "checking for Berkeley DB link (-ldb-4)""... $ac_c" 1>&6
-echo "configure:18125: checking for Berkeley DB link (-ldb-4)" >&5
+echo "configure:17694: checking for Berkeley DB link (-ldb-4)" >&5
 if eval "test \"\${ol_cv_db_db_4+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -18131,7 +17700,7 @@ else
        LIBS="$ol_DB_LIB $LIBS"
 
        cat > conftest.$ac_ext <<EOF
-#line 18135 "configure"
+#line 17704 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_DB_185_H
@@ -18178,7 +17747,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:18182: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17751: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_db_db_4=yes
 else
@@ -18202,7 +17771,7 @@ fi
 
 if test $ol_cv_lib_db = no ; then
        echo $ac_n "checking for Berkeley DB link (-ldb)""... $ac_c" 1>&6
-echo "configure:18206: checking for Berkeley DB link (-ldb)" >&5
+echo "configure:17775: checking for Berkeley DB link (-ldb)" >&5
 if eval "test \"\${ol_cv_db_db+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -18212,7 +17781,7 @@ else
        LIBS="$ol_DB_LIB $LIBS"
 
        cat > conftest.$ac_ext <<EOF
-#line 18216 "configure"
+#line 17785 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_DB_185_H
@@ -18259,7 +17828,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:18263: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17832: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_db_db=yes
 else
@@ -18283,7 +17852,7 @@ fi
 
 if test $ol_cv_lib_db = no ; then
        echo $ac_n "checking for Berkeley DB link (-ldb3)""... $ac_c" 1>&6
-echo "configure:18287: checking for Berkeley DB link (-ldb3)" >&5
+echo "configure:17856: checking for Berkeley DB link (-ldb3)" >&5
 if eval "test \"\${ol_cv_db_db3+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -18293,7 +17862,7 @@ else
        LIBS="$ol_DB_LIB $LIBS"
 
        cat > conftest.$ac_ext <<EOF
-#line 18297 "configure"
+#line 17866 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_DB_185_H
@@ -18340,7 +17909,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:18344: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17913: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_db_db3=yes
 else
@@ -18364,7 +17933,7 @@ fi
 
 if test $ol_cv_lib_db = no ; then
        echo $ac_n "checking for Berkeley DB link (-ldb-3)""... $ac_c" 1>&6
-echo "configure:18368: checking for Berkeley DB link (-ldb-3)" >&5
+echo "configure:17937: checking for Berkeley DB link (-ldb-3)" >&5
 if eval "test \"\${ol_cv_db_db_3+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -18374,7 +17943,7 @@ else
        LIBS="$ol_DB_LIB $LIBS"
 
        cat > conftest.$ac_ext <<EOF
-#line 18378 "configure"
+#line 17947 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_DB_185_H
@@ -18421,7 +17990,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:18425: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17994: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_db_db_3=yes
 else
@@ -18445,7 +18014,7 @@ fi
 
 if test $ol_cv_lib_db = no ; then
        echo $ac_n "checking for Berkeley DB link (-ldb2)""... $ac_c" 1>&6
-echo "configure:18449: checking for Berkeley DB link (-ldb2)" >&5
+echo "configure:18018: checking for Berkeley DB link (-ldb2)" >&5
 if eval "test \"\${ol_cv_db_db2+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -18455,7 +18024,7 @@ else
        LIBS="$ol_DB_LIB $LIBS"
 
        cat > conftest.$ac_ext <<EOF
-#line 18459 "configure"
+#line 18028 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_DB_185_H
@@ -18502,7 +18071,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:18506: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18075: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_db_db2=yes
 else
@@ -18526,7 +18095,7 @@ fi
 
 if test $ol_cv_lib_db = no ; then
        echo $ac_n "checking for Berkeley DB link (-ldb-2)""... $ac_c" 1>&6
-echo "configure:18530: checking for Berkeley DB link (-ldb-2)" >&5
+echo "configure:18099: checking for Berkeley DB link (-ldb-2)" >&5
 if eval "test \"\${ol_cv_db_db_2+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -18536,7 +18105,7 @@ else
        LIBS="$ol_DB_LIB $LIBS"
 
        cat > conftest.$ac_ext <<EOF
-#line 18540 "configure"
+#line 18109 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_DB_185_H
@@ -18583,7 +18152,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:18587: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18156: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_db_db_2=yes
 else
@@ -18607,7 +18176,7 @@ fi
 
 if test $ol_cv_lib_db = no ; then
        echo $ac_n "checking for Berkeley DB link (-ldb1)""... $ac_c" 1>&6
-echo "configure:18611: checking for Berkeley DB link (-ldb1)" >&5
+echo "configure:18180: checking for Berkeley DB link (-ldb1)" >&5
 if eval "test \"\${ol_cv_db_db1+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -18617,7 +18186,7 @@ else
        LIBS="$ol_DB_LIB $LIBS"
 
        cat > conftest.$ac_ext <<EOF
-#line 18621 "configure"
+#line 18190 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_DB_185_H
@@ -18664,7 +18233,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:18668: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18237: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_db_db1=yes
 else
@@ -18688,7 +18257,7 @@ fi
 
 if test $ol_cv_lib_db = no ; then
        echo $ac_n "checking for Berkeley DB link (-ldb-1)""... $ac_c" 1>&6
-echo "configure:18692: checking for Berkeley DB link (-ldb-1)" >&5
+echo "configure:18261: checking for Berkeley DB link (-ldb-1)" >&5
 if eval "test \"\${ol_cv_db_db_1+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -18698,7 +18267,7 @@ else
        LIBS="$ol_DB_LIB $LIBS"
 
        cat > conftest.$ac_ext <<EOF
-#line 18702 "configure"
+#line 18271 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_DB_185_H
@@ -18745,7 +18314,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:18749: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18318: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_db_db_1=yes
 else
@@ -18771,7 +18340,7 @@ fi
        if test "$ol_cv_lib_db" != no ; then
                ol_cv_berkeley_db=yes
                echo $ac_n "checking for Berkeley DB thread support""... $ac_c" 1>&6
-echo "configure:18775: checking for Berkeley DB thread support" >&5
+echo "configure:18344: checking for Berkeley DB thread support" >&5
 if eval "test \"\${ol_cv_berkeley_db_thread+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -18785,7 +18354,7 @@ else
   ol_cv_berkeley_db_thread=cross
 else
   cat > conftest.$ac_ext <<EOF
-#line 18789 "configure"
+#line 18358 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_DB_185_H
@@ -18852,7 +18421,7 @@ main()
        return rc;
 }
 EOF
-if { (eval echo configure:18856: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:18425: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ol_cv_berkeley_db_thread=yes
 else
@@ -18913,13 +18482,13 @@ if test $ol_enable_bdb = yes -a $ol_link_ldbm != berkeley ; then
        { echo "configure: error: BDB: BerkeleyDB not available" 1>&2; exit 1; }
 elif test $ol_enable_bdb != no -a $ol_link_ldbm = berkeley ; then
        echo $ac_n "checking Berkeley DB version for BDB backend""... $ac_c" 1>&6
-echo "configure:18917: checking Berkeley DB version for BDB backend" >&5
+echo "configure:18486: checking Berkeley DB version for BDB backend" >&5
 if eval "test \"\${ol_cv_bdb_compat+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
        cat > conftest.$ac_ext <<EOF
-#line 18923 "configure"
+#line 18492 "configure"
 #include "confdefs.h"
 
 #include <db.h>
 
 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = mdbm ; then
        echo $ac_n "checking for MDBM library""... $ac_c" 1>&6
-echo "configure:18970: checking for MDBM library" >&5
+echo "configure:18539: checking for MDBM library" >&5
 if eval "test \"\${ol_cv_lib_mdbm+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
        ol_LIBS="$LIBS"
        echo $ac_n "checking for mdbm_set_chain""... $ac_c" 1>&6
-echo "configure:18976: checking for mdbm_set_chain" >&5
+echo "configure:18545: checking for mdbm_set_chain" >&5
 if eval "test \"\${ac_cv_func_mdbm_set_chain+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 18981 "configure"
+#line 18550 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char mdbm_set_chain(); below.  */
@@ -19001,7 +18570,7 @@ f = mdbm_set_chain;
 
 ; return 0; }
 EOF
-if { (eval echo configure:19005: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_mdbm_set_chain=yes"
 else
@@ -19020,7 +18589,7 @@ else
   echo "$ac_t""no" 1>&6
 
                echo $ac_n "checking for mdbm_set_chain in -lmdbm""... $ac_c" 1>&6
-echo "configure:19024: checking for mdbm_set_chain in -lmdbm" >&5
+echo "configure:18593: checking for mdbm_set_chain in -lmdbm" >&5
 ac_lib_var=`echo mdbm'_'mdbm_set_chain | sed 'y%./+-:%__p__%'`
 if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -19028,7 +18597,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lmdbm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 19032 "configure"
+#line 18601 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -19039,7 +18608,7 @@ int main() {
 mdbm_set_chain()
 ; return 0; }
 EOF
-if { (eval echo configure:19043: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18612: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -19074,17 +18643,17 @@ echo "$ac_t""$ol_cv_lib_mdbm" 1>&6
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:19078: checking for $ac_hdr" >&5
+echo "configure:18647: checking for $ac_hdr" >&5
 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 19083 "configure"
+#line 18652 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:19088: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:18657: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -19111,7 +18680,7 @@ fi
 done
 
  echo $ac_n "checking for db""... $ac_c" 1>&6
-echo "configure:19115: checking for db" >&5
+echo "configure:18684: checking for db" >&5
 if eval "test \"\${ol_cv_mdbm+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 
 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = gdbm ; then
        echo $ac_n "checking for GDBM library""... $ac_c" 1>&6
-echo "configure:19148: checking for GDBM library" >&5
+echo "configure:18717: checking for GDBM library" >&5
 if eval "test \"\${ol_cv_lib_gdbm+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
        ol_LIBS="$LIBS"
        echo $ac_n "checking for gdbm_open""... $ac_c" 1>&6
-echo "configure:19154: checking for gdbm_open" >&5
+echo "configure:18723: checking for gdbm_open" >&5
 if eval "test \"\${ac_cv_func_gdbm_open+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 19159 "configure"
+#line 18728 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char gdbm_open(); below.  */
@@ -19179,7 +18748,7 @@ f = gdbm_open;
 
 ; return 0; }
 EOF
-if { (eval echo configure:19183: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18752: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_gdbm_open=yes"
 else
@@ -19198,7 +18767,7 @@ else
   echo "$ac_t""no" 1>&6
 
                echo $ac_n "checking for gdbm_open in -lgdbm""... $ac_c" 1>&6
-echo "configure:19202: checking for gdbm_open in -lgdbm" >&5
+echo "configure:18771: checking for gdbm_open in -lgdbm" >&5
 ac_lib_var=`echo gdbm'_'gdbm_open | sed 'y%./+-:%__p__%'`
 if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -19206,7 +18775,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lgdbm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 19210 "configure"
+#line 18779 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -19217,7 +18786,7 @@ int main() {
 gdbm_open()
 ; return 0; }
 EOF
-if { (eval echo configure:19221: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18790: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -19252,17 +18821,17 @@ echo "$ac_t""$ol_cv_lib_gdbm" 1>&6
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:19256: checking for $ac_hdr" >&5
+echo "configure:18825: checking for $ac_hdr" >&5
 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 19261 "configure"
+#line 18830 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:19266: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:18835: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -19289,7 +18858,7 @@ fi
 done
 
  echo $ac_n "checking for db""... $ac_c" 1>&6
-echo "configure:19293: checking for db" >&5
+echo "configure:18862: checking for db" >&5
 if eval "test \"\${ol_cv_gdbm+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 
 if test $ol_with_ldbm_api = ndbm ; then
        echo $ac_n "checking for NDBM library""... $ac_c" 1>&6
-echo "configure:19327: checking for NDBM library" >&5
+echo "configure:18896: checking for NDBM library" >&5
 if eval "test \"\${ol_cv_lib_ndbm+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
        ol_LIBS="$LIBS"
        echo $ac_n "checking for dbm_open""... $ac_c" 1>&6
-echo "configure:19333: checking for dbm_open" >&5
+echo "configure:18902: checking for dbm_open" >&5
 if eval "test \"\${ac_cv_func_dbm_open+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 19338 "configure"
+#line 18907 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char dbm_open(); below.  */
@@ -19358,7 +18927,7 @@ f = dbm_open;
 
 ; return 0; }
 EOF
-if { (eval echo configure:19362: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18931: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_dbm_open=yes"
 else
@@ -19377,7 +18946,7 @@ else
   echo "$ac_t""no" 1>&6
 
                echo $ac_n "checking for dbm_open in -lndbm""... $ac_c" 1>&6
-echo "configure:19381: checking for dbm_open in -lndbm" >&5
+echo "configure:18950: checking for dbm_open in -lndbm" >&5
 ac_lib_var=`echo ndbm'_'dbm_open | sed 'y%./+-:%__p__%'`
 if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -19385,7 +18954,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lndbm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 19389 "configure"
+#line 18958 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -19396,7 +18965,7 @@ int main() {
 dbm_open()
 ; return 0; }
 EOF
-if { (eval echo configure:19400: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18969: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -19416,7 +18985,7 @@ else
   echo "$ac_t""no" 1>&6
 
                        echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6
-echo "configure:19420: checking for dbm_open in -ldbm" >&5
+echo "configure:18989: checking for dbm_open in -ldbm" >&5
 ac_lib_var=`echo dbm'_'dbm_open | sed 'y%./+-:%__p__%'`
 if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -19424,7 +18993,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldbm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 19428 "configure"
+#line 18997 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -19435,7 +19004,7 @@ int main() {
 dbm_open()
 ; return 0; }
 EOF
-if { (eval echo configure:19439: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19008: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -19472,17 +19041,17 @@ echo "$ac_t""$ol_cv_lib_ndbm" 1>&6
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:19476: checking for $ac_hdr" >&5
+echo "configure:19045: checking for $ac_hdr" >&5
 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 19481 "configure"
+#line 19050 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:19486: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:19055: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -19509,7 +19078,7 @@ fi
 done
 
  echo $ac_n "checking for db""... $ac_c" 1>&6
-echo "configure:19513: checking for db" >&5
+echo "configure:19082: checking for db" >&5
 if eval "test \"\${ol_cv_ndbm+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -19566,17 +19135,17 @@ if test $ol_enable_wrappers != no ; then
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:19570: checking for $ac_hdr" >&5
+echo "configure:19139: checking for $ac_hdr" >&5
 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 19575 "configure"
+#line 19144 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:19580: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:19149: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -19598,11 +19167,11 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
 EOF
  
                echo $ac_n "checking for TCP wrappers library""... $ac_c" 1>&6
-echo "configure:19602: checking for TCP wrappers library" >&5
+echo "configure:19171: checking for TCP wrappers library" >&5
                save_LIBS="$LIBS"
                LIBS="$LIBS -lwrap"
                cat > conftest.$ac_ext <<EOF
-#line 19606 "configure"
+#line 19175 "configure"
 #include "confdefs.h"
 
 #include <tcpd.h>
@@ -19617,7 +19186,7 @@ hosts_access(req)
                
 ; return 0; }
 EOF
-if { (eval echo configure:19621: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19190: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""-lwrap" 1>&6
                have_wrappers=yes
@@ -19629,7 +19198,7 @@ else
   
                                LIBS="$LIBS -lnsl"
                cat > conftest.$ac_ext <<EOF
-#line 19633 "configure"
+#line 19202 "configure"
 #include "confdefs.h"
 
 #include <tcpd.h>
@@ -19644,7 +19213,7 @@ hosts_access(req)
                
 ; return 0; }
 EOF
-if { (eval echo configure:19648: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19217: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""-lwrap -lnsl" 1>&6
                have_wrappers=yes
 
 if test $ol_enable_syslog != no ; then
        echo $ac_n "checking for openlog""... $ac_c" 1>&6
-echo "configure:19688: checking for openlog" >&5
+echo "configure:19257: checking for openlog" >&5
 if eval "test \"\${ac_cv_func_openlog+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 19693 "configure"
+#line 19262 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char openlog(); below.  */
@@ -19713,7 +19282,7 @@ f = openlog;
 
 ; return 0; }
 EOF
-if { (eval echo configure:19717: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19286: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_openlog=yes"
 else
@@ -19742,7 +19311,7 @@ fi
 ol_link_sql=no
 if test $ol_enable_sql != no ; then
        echo $ac_n "checking for SQLDriverConnect in -liodbc""... $ac_c" 1>&6
-echo "configure:19746: checking for SQLDriverConnect in -liodbc" >&5
+echo "configure:19315: checking for SQLDriverConnect in -liodbc" >&5
 ac_lib_var=`echo iodbc'_'SQLDriverConnect | sed 'y%./+-:%__p__%'`
 if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -19750,7 +19319,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-liodbc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 19754 "configure"
+#line 19323 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -19761,7 +19330,7 @@ int main() {
 SQLDriverConnect()
 ; return 0; }
 EOF
-if { (eval echo configure:19765: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19334: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -19786,7 +19355,7 @@ fi
                ol_link_sql="-liodbc"
        else
                echo $ac_n "checking for SQLDriverConnect in -lodbc""... $ac_c" 1>&6
-echo "configure:19790: checking for SQLDriverConnect in -lodbc" >&5
+echo "configure:19359: checking for SQLDriverConnect in -lodbc" >&5
 ac_lib_var=`echo odbc'_'SQLDriverConnect | sed 'y%./+-:%__p__%'`
 if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -19794,7 +19363,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lodbc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 19798 "configure"
+#line 19367 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -19805,7 +19374,7 @@ int main() {
 SQLDriverConnect()
 ; return 0; }
 EOF
-if { (eval echo configure:19809: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19378: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -19844,17 +19413,17 @@ for ac_hdr in termcap.h ncurses.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:19848: checking for $ac_hdr" >&5
+echo "configure:19417: checking for $ac_hdr" >&5
 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 19853 "configure"
+#line 19422 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:19858: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:19427: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -19883,7 +19452,7 @@ done
 
 if test $ol_link_termcap = no ; then
        echo $ac_n "checking for tputs in -ltermcap""... $ac_c" 1>&6
-echo "configure:19887: checking for tputs in -ltermcap" >&5
+echo "configure:19456: checking for tputs in -ltermcap" >&5
 ac_lib_var=`echo termcap'_'tputs | sed 'y%./+-:%__p__%'`
 if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -19891,7 +19460,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ltermcap  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 19895 "configure"
+#line 19464 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -19902,7 +19471,7 @@ int main() {
 tputs()
 ; return 0; }
 EOF
-if { (eval echo configure:19906: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19475: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -19935,7 +19504,7 @@ fi
 
 if test $ol_link_termcap = no ; then
        echo $ac_n "checking for initscr in -lncurses""... $ac_c" 1>&6
-echo "configure:19939: checking for initscr in -lncurses" >&5
+echo "configure:19508: checking for initscr in -lncurses" >&5
 ac_lib_var=`echo ncurses'_'initscr | sed 'y%./+-:%__p__%'`
 if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -19943,7 +19512,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lncurses  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 19947 "configure"
+#line 19516 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -19954,7 +19523,7 @@ int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:19958: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19527: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -20000,17 +19569,17 @@ if test $ol_with_cyrus_sasl != no ; then
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:20004: checking for $ac_hdr" >&5
+echo "configure:19573: checking for $ac_hdr" >&5
 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 20009 "configure"
+#line 19578 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:20014: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:19583: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -20039,7 +19608,7 @@ done
 
        if test $ac_cv_header_sasl_sasl_h = yes -o $ac_cv_header_sasl_h = yes; then
                echo $ac_n "checking for sasl_client_init in -lsasl2""... $ac_c" 1>&6
-echo "configure:20043: checking for sasl_client_init in -lsasl2" >&5
+echo "configure:19612: checking for sasl_client_init in -lsasl2" >&5
 ac_lib_var=`echo sasl2'_'sasl_client_init | sed 'y%./+-:%__p__%'`
 if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -20047,7 +19616,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsasl2  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 20051 "configure"
+#line 19620 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -20058,7 +19627,7 @@ int main() {
 sasl_client_init()
 ; return 0; }
 EOF
-if { (eval echo configure:20062: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19631: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -20077,7 +19646,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for sasl_client_init in -lsasl""... $ac_c" 1>&6
-echo "configure:20081: checking for sasl_client_init in -lsasl" >&5
+echo "configure:19650: checking for sasl_client_init in -lsasl" >&5
 ac_lib_var=`echo sasl'_'sasl_client_init | sed 'y%./+-:%__p__%'`
 if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -20085,7 +19654,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsasl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 20089 "configure"
+#line 19658 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -20096,7 +19665,7 @@ int main() {
 sasl_client_init()
 ; return 0; }
 EOF
-if { (eval echo configure:20100: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19669: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
                fi
        else
                echo $ac_n "checking Cyrus SASL library version""... $ac_c" 1>&6
-echo "configure:20136: checking Cyrus SASL library version" >&5
+echo "configure:19705: checking Cyrus SASL library version" >&5
 if eval "test \"\${ol_cv_sasl_compat+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
        cat > conftest.$ac_ext <<EOF
-#line 20142 "configure"
+#line 19711 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_SASL_SASL_H
@@ -20189,12 +19758,12 @@ EOF
                ac_save_LIBS="$LIBS"
                LIBS="$LIBS $ol_link_sasl"
                echo $ac_n "checking for sasl_version""... $ac_c" 1>&6
-echo "configure:20193: checking for sasl_version" >&5
+echo "configure:19762: checking for sasl_version" >&5
 if eval "test \"\${ac_cv_func_sasl_version+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 20198 "configure"
+#line 19767 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char sasl_version(); below.  */
@@ -20218,7 +19787,7 @@ f = sasl_version;
 
 ; return 0; }
 EOF
-if { (eval echo configure:20222: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19791: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_sasl_version=yes"
 else
@@ -20277,13 +19846,13 @@ if test $ol_with_fetch != no ; then
        ol_LIBS=$LIBS
 LIBS="-lfetch -lcom_err $LIBS"
 echo $ac_n "checking fetch(3) library""... $ac_c" 1>&6
-echo "configure:20281: checking fetch(3) library" >&5
+echo "configure:19850: checking fetch(3) library" >&5
 if eval "test \"\${ol_cv_lib_fetch+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
        cat > conftest.$ac_ext <<EOF
-#line 20287 "configure"
+#line 19856 "configure"
 #include "confdefs.h"
 
 #include <sys/param.h>
@@ -20293,7 +19862,7 @@ int main() {
 struct url *u = fetchParseURL("file:///"); 
 ; return 0; }
 EOF
-if { (eval echo configure:20297: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19866: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_lib_fetch=yes
 else
@@ -20331,17 +19900,17 @@ if test $ol_with_readline != no ; then
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:20335: checking for $ac_hdr" >&5
+echo "configure:19904: checking for $ac_hdr" >&5
 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 20340 "configure"
+#line 19909 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:20345: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:19914: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -20372,7 +19941,7 @@ done
                save_LIBS="$LIBS"
                LIBS="$TERMCAP_LIBS $LIBS"
                echo $ac_n "checking for readline in -lreadline""... $ac_c" 1>&6
-echo "configure:20376: checking for readline in -lreadline" >&5
+echo "configure:19945: checking for readline in -lreadline" >&5
 ac_lib_var=`echo readline'_'readline | sed 'y%./+-:%__p__%'`
 if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -20380,7 +19949,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lreadline  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 20384 "configure"
+#line 19953 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -20391,7 +19960,7 @@ int main() {
 readline()
 ; return 0; }
 EOF
-if { (eval echo configure:20395: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19964: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
 
 if test $ol_enable_crypt != no ; then
        echo $ac_n "checking for crypt""... $ac_c" 1>&6
-echo "configure:20437: checking for crypt" >&5
+echo "configure:20006: checking for crypt" >&5
 if eval "test \"\${ac_cv_func_crypt+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 20442 "configure"
+#line 20011 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char crypt(); below.  */
@@ -20462,7 +20031,7 @@ f = crypt;
 
 ; return 0; }
 EOF
-if { (eval echo configure:20466: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20035: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_crypt=yes"
 else
@@ -20481,7 +20050,7 @@ else
   echo "$ac_t""no" 1>&6
 
                echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
-echo "configure:20485: checking for crypt in -lcrypt" >&5
+echo "configure:20054: checking for crypt in -lcrypt" >&5
 ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-:%__p__%'`
 if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -20489,7 +20058,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lcrypt  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 20493 "configure"
+#line 20062 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -20500,7 +20069,7 @@ int main() {
 crypt()
 ; return 0; }
 EOF
-if { (eval echo configure:20504: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20073: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
 
 if test $ol_enable_proctitle != no ; then
        echo $ac_n "checking for setproctitle""... $ac_c" 1>&6
-echo "configure:20547: checking for setproctitle" >&5
+echo "configure:20116: checking for setproctitle" >&5
 if eval "test \"\${ac_cv_func_setproctitle+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 20552 "configure"
+#line 20121 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char setproctitle(); below.  */
@@ -20572,7 +20141,7 @@ f = setproctitle;
 
 ; return 0; }
 EOF
-if { (eval echo configure:20576: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20145: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_setproctitle=yes"
 else
@@ -20591,7 +20160,7 @@ else
   echo "$ac_t""no" 1>&6
 
                echo $ac_n "checking for setproctitle in -lutil""... $ac_c" 1>&6
-echo "configure:20595: checking for setproctitle in -lutil" >&5
+echo "configure:20164: checking for setproctitle in -lutil" >&5
 ac_lib_var=`echo util'_'setproctitle | sed 'y%./+-:%__p__%'`
 if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -20599,7 +20168,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lutil  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 20603 "configure"
+#line 20172 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -20610,7 +20179,7 @@ int main() {
 setproctitle()
 ; return 0; }
 EOF
-if { (eval echo configure:20614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20183: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -20650,17 +20219,17 @@ if test $ol_enable_slp != no ; then
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:20654: checking for $ac_hdr" >&5
+echo "configure:20223: checking for $ac_hdr" >&5
 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 20659 "configure"
+#line 20228 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:20664: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:20233: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -20689,7 +20258,7 @@ done
 
        if test $ac_cv_header_slp_h = yes ; then
                echo $ac_n "checking for SLPOpen in -lslp""... $ac_c" 1>&6
-echo "configure:20693: checking for SLPOpen in -lslp" >&5
+echo "configure:20262: checking for SLPOpen in -lslp" >&5
 ac_lib_var=`echo slp'_'SLPOpen | sed 'y%./+-:%__p__%'`
 if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -20697,7 +20266,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lslp  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 20701 "configure"
+#line 20270 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -20708,7 +20277,7 @@ int main() {
 SLPOpen()
 ; return 0; }
 EOF
-if { (eval echo configure:20712: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20281: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -20743,12 +20312,12 @@ EOF
 fi
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:20747: checking for ANSI C header files" >&5
+echo "configure:20316: checking for ANSI C header files" >&5
 if eval "test \"\${ac_cv_header_stdc+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 20752 "configure"
+#line 20321 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -20756,7 +20325,7 @@ else
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:20760: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:20329: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -20773,7 +20342,7 @@ rm -f conftest*
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 20777 "configure"
+#line 20346 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -20791,7 +20360,7 @@ fi
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 20795 "configure"
+#line 20364 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -20812,7 +20381,7 @@ if test "$cross_compiling" = yes; then
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 20816 "configure"
+#line 20385 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #if ((' ' & 0x0FF) == 0x020)
@@ -20830,7 +20399,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
 exit (0); }
 
 EOF
-if { (eval echo configure:20834: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:20403: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -20854,12 +20423,12 @@ EOF
 fi
 
 echo $ac_n "checking for mode_t""... $ac_c" 1>&6
-echo "configure:20858: checking for mode_t" >&5
+echo "configure:20427: checking for mode_t" >&5
 if eval "test \"\${ac_cv_type_mode_t+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 20863 "configure"
+#line 20432 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -20890,12 +20459,12 @@ EOF
 fi
 
 echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:20894: checking for off_t" >&5
+echo "configure:20463: checking for off_t" >&5
 if eval "test \"\${ac_cv_type_off_t+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 20899 "configure"
+#line 20468 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -20926,12 +20495,12 @@ EOF
 fi
 
 echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:20930: checking for pid_t" >&5
+echo "configure:20499: checking for pid_t" >&5
 if eval "test \"\${ac_cv_type_pid_t+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 20935 "configure"
+#line 20504 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -20962,19 +20531,19 @@ EOF
 fi
 
 echo $ac_n "checking for ptrdiff_t""... $ac_c" 1>&6
-echo "configure:20966: checking for ptrdiff_t" >&5
+echo "configure:20535: checking for ptrdiff_t" >&5
 if eval "test \"\${am_cv_type_ptrdiff_t+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 20971 "configure"
+#line 20540 "configure"
 #include "confdefs.h"
 #include <stddef.h>
 int main() {
 ptrdiff_t p
 ; return 0; }
 EOF
-if { (eval echo configure:20978: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20547: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   am_cv_type_ptrdiff_t=yes
 else
@@ -20995,12 +20564,12 @@ EOF
    fi
 
 echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:20999: checking return type of signal handlers" >&5
+echo "configure:20568: checking return type of signal handlers" >&5
 if eval "test \"\${ac_cv_type_signal+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 21004 "configure"
+#line 20573 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -21017,7 +20586,7 @@ int main() {
 int i;
 ; return 0; }
 EOF
-if { (eval echo configure:21021: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20590: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_type_signal=void
 else
@@ -21036,12 +20605,12 @@ EOF
 
 
 echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:21040: checking for size_t" >&5
+echo "configure:20609: checking for size_t" >&5
 if eval "test \"\${ac_cv_type_size_t+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 21045 "configure"
+#line 20614 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
 
 
 echo $ac_n "checking for ssize_t""... $ac_c" 1>&6
-echo "configure:21077: checking for ssize_t" >&5
+echo "configure:20646: checking for ssize_t" >&5
 if eval "test \"\${ac_cv_type_ssize_t+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 21082 "configure"
+#line 20651 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -21109,12 +20678,12 @@ EOF
 fi
 
 echo $ac_n "checking for caddr_t""... $ac_c" 1>&6
-echo "configure:21113: checking for caddr_t" >&5
+echo "configure:20682: checking for caddr_t" >&5
 if eval "test \"\${ac_cv_type_caddr_t+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 21118 "configure"
+#line 20687 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
 
 
 echo $ac_n "checking for socklen_t""... $ac_c" 1>&6
-echo "configure:21150: checking for socklen_t" >&5
+echo "configure:20719: checking for socklen_t" >&5
 if eval "test \"\${ol_cv_type_socklen_t+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 21155 "configure"
+#line 20724 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_SYS_TYPES_H
@@ -21165,7 +20734,7 @@ int main() {
 socklen_t len;
 ; return 0; }
 EOF
-if { (eval echo configure:21169: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20738: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ol_cv_type_socklen_t=yes
 else
@@ -21186,12 +20755,12 @@ EOF
   fi
  
 echo $ac_n "checking for member st_blksize in aggregate type struct stat""... $ac_c" 1>&6
-echo "configure:21190: checking for member st_blksize in aggregate type struct stat" >&5
+echo "configure:20759: checking for member st_blksize in aggregate type struct stat" >&5
 if eval "test \"\${ac_cv_c_struct_member_st_blksize+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 21195 "configure"
+#line 20764 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -21199,7 +20768,7 @@ int main() {
 struct stat foo; foo.st_blksize;
 ; return 0; }
 EOF
-if { (eval echo configure:21203: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20772: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_struct_member_st_blksize=yes
 else
@@ -21221,12 +20790,12 @@ EOF
 fi
 
 echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:21225: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:20794: checking whether time.h and sys/time.h may both be included" >&5
 if eval "test \"\${ac_cv_header_time+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 21230 "configure"
+#line 20799 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
@@ -21235,7 +20804,7 @@ int main() {
 struct tm *tp;
 ; return 0; }
 EOF
-if { (eval echo configure:21239: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20808: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_time=yes
 else
@@ -21256,12 +20825,12 @@ EOF
 fi
 
 echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6
-echo "configure:21260: checking whether struct tm is in sys/time.h or time.h" >&5
+echo "configure:20829: checking whether struct tm is in sys/time.h or time.h" >&5
 if eval "test \"\${ac_cv_struct_tm+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 21265 "configure"
+#line 20834 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <time.h>
@@ -21269,7 +20838,7 @@ int main() {
 struct tm *tp; tp->tm_sec;
 ; return 0; }
 EOF
-if { (eval echo configure:21273: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20842: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_struct_tm=time.h
 else
@@ -21290,12 +20859,12 @@ EOF
 fi
 
 echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:21294: checking for uid_t in sys/types.h" >&5
+echo "configure:20863: checking for uid_t in sys/types.h" >&5
 if eval "test \"\${ac_cv_type_uid_t+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 21299 "configure"
+#line 20868 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 EOF
@@ -21324,19 +20893,19 @@ EOF
 fi
 
 echo $ac_n "checking for sig_atomic_t""... $ac_c" 1>&6
-echo "configure:21328: checking for sig_atomic_t" >&5
+echo "configure:20897: checking for sig_atomic_t" >&5
 if eval "test \"\${ol_cv_type_sig_atomic_t+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 21333 "configure"
+#line 20902 "configure"
 #include "confdefs.h"
 #include <signal.h>
 int main() {
 sig_atomic_t atomic;
 ; return 0; }
 EOF
-if { (eval echo configure:21340: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20909: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ol_cv_type_sig_atomic_t=yes
 else
@@ -21360,13 +20929,13 @@ EOF
 
 # test for pw_gecos in struct passwd
 echo $ac_n "checking struct passwd for pw_gecos""... $ac_c" 1>&6
-echo "configure:21364: checking struct passwd for pw_gecos" >&5
+echo "configure:20933: checking struct passwd for pw_gecos" >&5
 if eval "test \"\${ol_cv_struct_passwd_pw_gecos+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
        cat > conftest.$ac_ext <<EOF
-#line 21370 "configure"
+#line 20939 "configure"
 #include "confdefs.h"
 #include <pwd.h>
 int main() {
@@ -21376,7 +20945,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:21380: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20949: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ol_cv_struct_passwd_pw_gecos=yes
 else
 
 # test for pw_passwd in struct passwd
 echo $ac_n "checking struct passwd for pw_passwd""... $ac_c" 1>&6
-echo "configure:21402: checking struct passwd for pw_passwd" >&5
+echo "configure:20971: checking struct passwd for pw_passwd" >&5
 if eval "test \"\${ol_cv_struct_passwd_pw_passwd+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
        cat > conftest.$ac_ext <<EOF
-#line 21408 "configure"
+#line 20977 "configure"
 #include "confdefs.h"
 #include <pwd.h>
 int main() {
@@ -21414,7 +20983,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:21418: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20987: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ol_cv_struct_passwd_pw_passwd=yes
 else
@@ -21436,7 +21005,7 @@ fi
 
 
 echo $ac_n "checking if toupper() requires islower()""... $ac_c" 1>&6
-echo "configure:21440: checking if toupper() requires islower()" >&5
+echo "configure:21009: checking if toupper() requires islower()" >&5
 if eval "test \"\${ol_cv_c_upper_lower+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -21445,7 +21014,7 @@ else
   ol_cv_c_upper_lower=safe
 else
   cat > conftest.$ac_ext <<EOF
-#line 21449 "configure"
+#line 21018 "configure"
 #include "confdefs.h"
 
 #include <ctype.h>
@@ -21457,7 +21026,7 @@ main()
                exit(1);
 }
 EOF
-if { (eval echo configure:21461: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:21030: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ol_cv_c_upper_lower=no
 else
@@ -21480,12 +21049,12 @@ EOF
 fi
 
 echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:21484: checking for working const" >&5
+echo "configure:21053: checking for working const" >&5
 if eval "test \"\${ac_cv_c_const+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 21489 "configure"
+#line 21058 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -21534,7 +21103,7 @@ ccp = (char const *const *) p;
 
 ; return 0; }
 EOF
-if { (eval echo configure:21538: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:21107: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_const=yes
 else
@@ -21555,12 +21124,12 @@ EOF
 fi
 
 echo $ac_n "checking if compiler understands volatile""... $ac_c" 1>&6
-echo "configure:21559: checking if compiler understands volatile" >&5
+echo "configure:21128: checking if compiler understands volatile" >&5
 if eval "test \"\${ol_cv_c_volatile+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 21564 "configure"
+#line 21133 "configure"
 #include "confdefs.h"
 int x, y, z;
 int main() {
@@ -21569,7 +21138,7 @@ volatile int a; int * volatile b = x ? &y : &z;
       *b = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:21573: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:21142: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ol_cv_c_volatile=yes
 else
@@ -21599,14 +21168,14 @@ EOF
 
 else
        echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
-echo "configure:21603: checking whether byte ordering is bigendian" >&5
+echo "configure:21172: checking whether byte ordering is bigendian" >&5
 if eval "test \"\${ac_cv_c_bigendian+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_cv_c_bigendian=unknown
 # See if sys/param.h defines the BYTE_ORDER macro.
 cat > conftest.$ac_ext <<EOF
-#line 21610 "configure"
+#line 21179 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -21617,11 +21186,11 @@ int main() {
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:21621: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:21190: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   # It does; now see whether it defined to BIG_ENDIAN or not.
 cat > conftest.$ac_ext <<EOF
-#line 21625 "configure"
+#line 21194 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -21632,7 +21201,7 @@ int main() {
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:21636: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:21205: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_bigendian=yes
 else
@@ -21652,7 +21221,7 @@ if test "$cross_compiling" = yes; then
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 21656 "configure"
+#line 21225 "configure"
 #include "confdefs.h"
 main () {
   /* Are we little or big endian?  From Harbison&Steele.  */
@@ -21665,7 +21234,7 @@ main () {
   exit (u.c[sizeof (long) - 1] == 1);
 }
 EOF
-if { (eval echo configure:21669: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:21238: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_c_bigendian=no
 else
 fi
 
 echo $ac_n "checking size of short""... $ac_c" 1>&6
-echo "configure:21695: checking size of short" >&5 
+echo "configure:21264: checking size of short" >&5 
 if eval "test \"\${ac_cv_sizeof_short+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   for ac_size in 4 8 1 2 16  ; do # List sizes in rough order of prevalence. 
   cat > conftest.$ac_ext <<EOF
-#line 21701 "configure"
+#line 21270 "configure"
 #include "confdefs.h"
 #include "confdefs.h" 
 #include <sys/types.h> 
@@ -21707,7 +21276,7 @@ int main() {
 switch (0) case 0: case (sizeof (short) == $ac_size):;
 ; return 0; }
 EOF
-if { (eval echo configure:21711: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:21280: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_sizeof_short=$ac_size
 else
@@ -21730,13 +21299,13 @@ EOF
  
  
 echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:21734: checking size of int" >&5 
+echo "configure:21303: checking size of int" >&5 
 if eval "test \"\${ac_cv_sizeof_int+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   for ac_size in 4 8 1 2 16  ; do # List sizes in rough order of prevalence. 
   cat > conftest.$ac_ext <<EOF
-#line 21740 "configure"
+#line 21309 "configure"
 #include "confdefs.h"
 #include "confdefs.h" 
 #include <sys/types.h> 
@@ -21746,7 +21315,7 @@ int main() {
 switch (0) case 0: case (sizeof (int) == $ac_size):;
 ; return 0; }
 EOF
-if { (eval echo configure:21750: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:21319: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_sizeof_int=$ac_size
 else
@@ -21769,13 +21338,13 @@ EOF
  
  
 echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:21773: checking size of long" >&5 
+echo "configure:21342: checking size of long" >&5 
 if eval "test \"\${ac_cv_sizeof_long+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   for ac_size in 4 8 1 2 16  ; do # List sizes in rough order of prevalence. 
   cat > conftest.$ac_ext <<EOF
-#line 21779 "configure"
+#line 21348 "configure"
 #include "confdefs.h"
 #include "confdefs.h" 
 #include <sys/types.h> 
@@ -21785,7 +21354,7 @@ int main() {
 switch (0) case 0: case (sizeof (long) == $ac_size):;
 ; return 0; }
 EOF
-if { (eval echo configure:21789: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:21358: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_sizeof_long=$ac_size
 else
@@ -21836,7 +21405,7 @@ EOF
 
 
 echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
-echo "configure:21840: checking for 8-bit clean memcmp" >&5
+echo "configure:21409: checking for 8-bit clean memcmp" >&5
 if eval "test \"\${ac_cv_func_memcmp_clean+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -21844,7 +21413,7 @@ else
   ac_cv_func_memcmp_clean=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 21848 "configure"
+#line 21417 "configure"
 #include "confdefs.h"
 
 main()
@@ -21854,7 +21423,7 @@ main()
 }
 
 EOF
-if { (eval echo configure:21858: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:21427: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_memcmp_clean=yes
 else
@@ -21872,12 +21441,12 @@ echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6
 test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}"
 
 echo $ac_n "checking for strftime""... $ac_c" 1>&6
-echo "configure:21876: checking for strftime" >&5
+echo "configure:21445: checking for strftime" >&5
 if eval "test \"\${ac_cv_func_strftime+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 21881 "configure"
+#line 21450 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char strftime(); below.  */
@@ -21901,7 +21470,7 @@ f = strftime;
 
 ; return 0; }
 EOF
-if { (eval echo configure:21905: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21474: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_strftime=yes"
 else
@@ -21923,7 +21492,7 @@ else
   echo "$ac_t""no" 1>&6
 # strftime is in -lintl on SCO UNIX.
 echo $ac_n "checking for strftime in -lintl""... $ac_c" 1>&6
-echo "configure:21927: checking for strftime in -lintl" >&5
+echo "configure:21496: checking for strftime in -lintl" >&5
 ac_lib_var=`echo intl'_'strftime | sed 'y%./+-:%__p__%'`
 if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -21931,7 +21500,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lintl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 21935 "configure"
+#line 21504 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -21942,7 +21511,7 @@ int main() {
 strftime()
 ; return 0; }
 EOF
-if { (eval echo configure:21946: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21515: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
 
 
 echo $ac_n "checking for inet_aton()""... $ac_c" 1>&6
-echo "configure:21974: checking for inet_aton()" >&5
+echo "configure:21543: checking for inet_aton()" >&5
 if eval "test \"\${ol_cv_func_inet_aton+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 21979 "configure"
+#line 21548 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_SYS_TYPES_H
@@ -21997,7 +21566,7 @@ struct in_addr in;
 int rc = inet_aton( "255.255.255.255", &in );
 ; return 0; }
 EOF
-if { (eval echo configure:22001: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21570: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_func_inet_aton=yes
 else
@@ -22019,12 +21588,12 @@ EOF
  
 
 echo $ac_n "checking for _spawnlp""... $ac_c" 1>&6
-echo "configure:22023: checking for _spawnlp" >&5
+echo "configure:21592: checking for _spawnlp" >&5
 if eval "test \"\${ac_cv_func__spawnlp+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 22028 "configure"
+#line 21597 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char _spawnlp(); below.  */
@@ -22048,7 +21617,7 @@ f = _spawnlp;
 
 ; return 0; }
 EOF
-if { (eval echo configure:22052: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21621: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func__spawnlp=yes"
 else
 
 
 echo $ac_n "checking for _snprintf""... $ac_c" 1>&6
-echo "configure:22076: checking for _snprintf" >&5
+echo "configure:21645: checking for _snprintf" >&5
 if eval "test \"\${ac_cv_func__snprintf+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 22081 "configure"
+#line 21650 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char _snprintf(); below.  */
@@ -22101,7 +21670,7 @@ f = _snprintf;
 
 ; return 0; }
 EOF
-if { (eval echo configure:22105: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21674: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func__snprintf=yes"
 else
 
 
 echo $ac_n "checking for _vsnprintf""... $ac_c" 1>&6
-echo "configure:22131: checking for _vsnprintf" >&5
+echo "configure:21700: checking for _vsnprintf" >&5
 if eval "test \"\${ac_cv_func__vsnprintf+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 22136 "configure"
+#line 21705 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char _vsnprintf(); below.  */
@@ -22156,7 +21725,7 @@ f = _vsnprintf;
 
 ; return 0; }
 EOF
-if { (eval echo configure:22160: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21729: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func__vsnprintf=yes"
 else
 
 
 echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-echo "configure:22186: checking for vprintf" >&5
+echo "configure:21755: checking for vprintf" >&5
 if eval "test \"\${ac_cv_func_vprintf+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 22191 "configure"
+#line 21760 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char vprintf(); below.  */
@@ -22211,7 +21780,7 @@ f = vprintf;
 
 ; return 0; }
 EOF
-if { (eval echo configure:22215: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21784: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_vprintf=yes"
 else
 
 if test "$ac_cv_func_vprintf" != yes; then
 echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-echo "configure:22239: checking for _doprnt" >&5
+echo "configure:21808: checking for _doprnt" >&5
 if eval "test \"\${ac_cv_func__doprnt+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 22244 "configure"
+#line 21813 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char _doprnt(); below.  */
@@ -22264,7 +21833,7 @@ f = _doprnt;
 
 ; return 0; }
 EOF
-if { (eval echo configure:22268: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21837: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func__doprnt=yes"
 else
@@ -22293,12 +21862,12 @@ if test $ac_cv_func_vprintf = yes ; then
                for ac_func in snprintf vsnprintf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:22297: checking for $ac_func" >&5
+echo "configure:21866: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 22302 "configure"
+#line 21871 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -22322,7 +21891,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:22326: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21895: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -22405,12 +21974,12 @@ for ac_func in \
 
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:22409: checking for $ac_func" >&5
+echo "configure:21978: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 22414 "configure"
+#line 21983 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -22434,7 +22003,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:22438: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:22007: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -22462,12 +22031,12 @@ done
 for ac_func in getopt
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:22466: checking for $ac_func" >&5
+echo "configure:22035: checking for $ac_func" >&5
 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 22471 "configure"
+#line 22040 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -22491,7 +22060,7 @@ f = $ac_func;
 
 ; return 0; }
 EOF
-if { (eval echo configure:22495: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:22064: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
 
 # Check Configuration
 echo $ac_n "checking declaration of sys_errlist""... $ac_c" 1>&6
-echo "configure:22542: checking declaration of sys_errlist" >&5
+echo "configure:22111: checking declaration of sys_errlist" >&5
 if eval "test \"\${ol_cv_dcl_sys_errlist+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
        cat > conftest.$ac_ext <<EOF
-#line 22548 "configure"
+#line 22117 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -22557,7 +22126,7 @@ int main() {
 char *c = (char *) *sys_errlist
 ; return 0; }
 EOF
-if { (eval echo configure:22561: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:22130: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ol_cv_dcl_sys_errlist=yes
        ol_cv_have_sys_errlist=yes
@@ -22580,20 +22149,20 @@ EOF
 
 
        echo $ac_n "checking existence of sys_errlist""... $ac_c" 1>&6
-echo "configure:22584: checking existence of sys_errlist" >&5
+echo "configure:22153: checking existence of sys_errlist" >&5
 if eval "test \"\${ol_cv_have_sys_errlist+set}\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
                cat > conftest.$ac_ext <<EOF
-#line 22590 "configure"
+#line 22159 "configure"
 #include "confdefs.h"
 #include <errno.h>
 int main() {
 char *c = (char *) *sys_errlist
 ; return 0; }
 EOF
-if { (eval echo configure:22597: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:22166: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ol_cv_have_sys_errlist=yes
 else
index e780b00902307044b4c44f7fb5e176cdcde83726..735dd66e96e1040874385ef0da615d406b5406b6 100644 (file)
@@ -1361,12 +1361,9 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \
        if test $ac_cv_header_pthread_h = yes ; then
                OL_POSIX_THREAD_VERSION
 
-               if test $ol_cv_pthread_version = final ; then
-                       AC_DEFINE(HAVE_PTHREADS_FINAL,1,
-                               [define if pthreads API compatible with final spec])
-               elif test $ol_cv_pthread_version = draft4 ; then
-                       AC_DEFINE(HAVE_PTHREADS_D4,1,
-                               [define if pthreads API compatible with draft4 spec])
+               if test $ol_cv_pthread_version != 0 ; then
+                       AC_DEFINE_UNQUOTED(HAVE_PTHREADS,$ol_cv_pthread_version,
+                               [define to pthreads API spec revision])
                else
                        AC_MSG_ERROR([unknown pthread version])
                fi
@@ -1461,9 +1458,6 @@ dnl                       [ol_cv_pthread_lpthread_lexc])
                OL_PTHREAD_TRY([-lpthreads],[ol_cv_pthread_lib_lpthreads])
 
                if test $ol_link_threads != no ; then
-                       AC_DEFINE(HAVE_PTHREADS,1,
-                               [define if you have POSIX Threads])
-
                        LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads"
 
                        dnl save flags
@@ -1612,7 +1606,7 @@ int main(argc, argv)
 #endif
 #endif
 
-#if HAVE_PTHREADS_D4
+#if HAVE_PTHREADS < 6
        pthread_create(&t, pthread_attr_default, task, NULL);
 #else
        pthread_create(&t, NULL, task, NULL);
index 7d31df9aead85a40abb0b6f73213f2902af684b5..f0ccb4da61d1c5903c7be51921a8b9a895fde4bb 100644 (file)
 /* if you have NT Event Log */
 #undef HAVE_NT_EVENT_LOG
 
-/* define if pthreads API compatible with final spec */
-#undef HAVE_PTHREADS_FINAL
-
-/* define if pthreads API compatible with draft4 spec */
-#undef HAVE_PTHREADS_D4
+/* define to pthreads API spec revision */
+#undef HAVE_PTHREADS
 
 /* if you have LinuxThreads */
 #undef HAVE_LINUX_THREADS
 
-/* define if you have POSIX Threads */
-#undef HAVE_PTHREADS
-
 /* Define if you have the sched_yield function. */
 #undef HAVE_SCHED_YIELD
 
index fef18fe9cafc76bcf7c370a6df77d4b657568f7f..a328c1f33e3b618347290da20c57ce1e93908827 100644 (file)
@@ -21,7 +21,7 @@
 #include "ldap_pvt_thread.h"
 
 
-#if HAVE_PTHREADS_D4
+#if HAVE_PTHREADS < 6
 #  define LDAP_INT_THREAD_ATTR_DEFAULT         pthread_attr_default
 #  define LDAP_INT_THREAD_CONDATTR_DEFAULT     pthread_condattr_default
 #  define LDAP_INT_THREAD_MUTEXATTR_DEFAULT    pthread_mutexattr_default
@@ -76,6 +76,22 @@ ldap_pvt_thread_get_concurrency(void)
 }
 #endif
 
+/* detachstate appeared in Draft 6, but without manifest constants.
+ * in Draft 7 they were called PTHREAD_CREATE_UNDETACHED and ...DETACHED.
+ * in Draft 8 on, ...UNDETACHED became ...JOINABLE.
+ */
+#ifndef PTHREAD_CREATE_JOINABLE
+#ifdef PTHREAD_CREATE_UNDETACHED
+#define        PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED
+#else
+#define        PTHREAD_CREATE_JOINABLE 0
+#endif
+#endif
+
+#ifndef PTHREAD_CREATE_DETACHED
+#define        PTHREAD_CREATE_DETACHED 1
+#endif
+
 int 
 ldap_pvt_thread_create( ldap_pvt_thread_t * thread,
        int detach,
@@ -83,26 +99,13 @@ ldap_pvt_thread_create( ldap_pvt_thread_t * thread,
        void *arg)
 {
        int rtn;
-#if defined( HAVE_PTHREADS_FINAL )
        pthread_attr_t attr;
-       pthread_attr_init(&attr);
 
-#if defined( PTHREAD_CREATE_JOINABLE ) || defined( PTHREAD_UNDETACHED )
-       if (!detach) {
-#if defined( PTHREAD_CREATE_JOINABLE )
-               pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+/* Always create the thread attrs, so we can set stacksize if we need to */
+#if HAVE_PTHREADS > 5
+       pthread_attr_init(&attr);
 #else
-               pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_UNDETACHED);
-#endif
-#ifdef PTHREAD_CREATE_DETACHED
-       } else {
-               pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
-#elif HAVE_PTHREADS_OS390
-       } else {
-               int st = __DETACHED;
-               pthread_attr_setdetachstate(&attr, &st);
-#endif
-       }
+       pthread_attr_create(&attr);
 #endif
 
 #if defined(LDAP_PVT_THREAD_STACK_SIZE) && LDAP_PVT_THREAD_STACK_SIZE > 0
@@ -110,31 +113,27 @@ ldap_pvt_thread_create( ldap_pvt_thread_t * thread,
        pthread_attr_setstacksize( &attr, LDAP_PVT_THREAD_STACK_SIZE );
 #endif
 
-       rtn = pthread_create( thread, &attr, start_routine, arg );
-#ifdef HAVE_PTHREADS_OS390
-       if ( rtn == -1 ) rtn = errno;
-#endif
-
-#if !defined( PTHREAD_CREATE_JOINABLE ) && !defined( PTHREAD_UNDETACHED )
-       if( detach ) {
-#ifdef HAVE_PTHREADS_OS390
-               (void) pthread_detach( thread );
+#if HAVE_PTHREADS > 5
+       detach = detach ? PTHREAD_CREATE_DETACHED : PTHREAD_CREATE_JOINABLE;
+#if HAVE_PTHREADS == 6
+       pthread_attr_setdetachstate(&attr, &detach);
 #else
-               (void) pthread_detach( *thread );
+       pthread_attr_setdetachstate(&attr, detach);
 #endif
-       }
 #endif
+       rtn = pthread_create( thread, &attr, start_routine, arg );
+#if HAVE_PTHREADS > 5
        pthread_attr_destroy(&attr);
-
 #else
-       rtn = pthread_create( thread, LDAP_INT_THREAD_ATTR_DEFAULT,
-               start_routine, arg );
-
+       pthread_attr_delete(&attr);
        if( detach ) {
                pthread_detach( thread );
        }
 #endif
 
+#if HAVE_PTHREADS < 7
+       if ( rtn < 0 ) rtn = errno;
+#endif
        return rtn;
 }
 
@@ -147,15 +146,14 @@ ldap_pvt_thread_exit( void *retval )
 int 
 ldap_pvt_thread_join( ldap_pvt_thread_t thread, void **thread_return )
 {
-#if !defined( HAVE_PTHREADS_FINAL )
+#if HAVE_PTHREADS < 7
        void *dummy;
+
        if (thread_return==NULL)
          thread_return=&dummy;
-#endif 
-#ifdef HAVE_PTHREADS_OS390
-       int st = pthread_join( thread, thread_return ); 
-       if ( st == -1 ) st = errno;
-       return st;
+
+       if ( pthread_join( thread, thread_return ) < 0 ) return errno;
+       return 0;
 #else
        return pthread_join( thread, thread_return );
 #endif
@@ -164,14 +162,11 @@ ldap_pvt_thread_join( ldap_pvt_thread_t thread, void **thread_return )
 int 
 ldap_pvt_thread_kill( ldap_pvt_thread_t thread, int signo )
 {
-#ifdef HAVE_PTHREAD_KILL
-#ifdef HAVE_PTHREADS_OS390
-       int st = pthread_kill( thread, signo );
-       if ( st == -1 ) st = errno;
-       return st;
-#else
+#if HAVE_PTHREADS > 6
        return pthread_kill( thread, signo );
-#endif
+#elif HAVE_PTHREADS > 4
+       if ( pthread_kill( thread, signo ) < 0 ) return errno;
+       return 0;
 #else
        /* pthread package with DCE */
        if (kill( getpid(), signo )<0)
@@ -183,88 +178,136 @@ ldap_pvt_thread_kill( ldap_pvt_thread_t thread, int signo )
 int 
 ldap_pvt_thread_yield( void )
 {
-#ifdef _POSIX_THREAD_IS_GNU_PTH
-       sched_yield();
-       return 0;
-
-#elif HAVE_SCHED_YIELD
+#if HAVE_PTHREADS == 10
        return sched_yield();
 
-#elif HAVE_PTHREAD_YIELD
-#if HAVE_PTHREADS_OS390
-       pthread_yield(NULL);
-#else
-       pthread_yield();
-#endif
+#elif defined(_POSIX_THREAD_IS_GNU_PTH)
+       sched_yield();
        return 0;
 
 #elif HAVE_THR_YIELD
        return thr_yield();
 
+#elif HAVE_PTHREADS == 6
+       pthread_yield(NULL);
+       return 0;
 #else
+       pthread_yield();
        return 0;
-#endif   
+#endif
 }
 
 int 
 ldap_pvt_thread_cond_init( ldap_pvt_thread_cond_t *cond )
 {
+#if HAVE_PTHREADS < 7
+       if ( pthread_cond_init( cond, LDAP_INT_THREAD_CONDATTR_DEFAULT ) < 0 )
+               return errno;
+       return 0;
+#else
        return pthread_cond_init( cond, LDAP_INT_THREAD_CONDATTR_DEFAULT );
+#endif
 }
 
 int 
 ldap_pvt_thread_cond_destroy( ldap_pvt_thread_cond_t *cond )
 {
+#if HAVE_PTHREADS < 7
+       if ( pthread_cond_destroy( cond ) < 0 ) return errno;
+       return 0;
+#else
        return pthread_cond_destroy( cond );
+#endif
 }
        
 int 
 ldap_pvt_thread_cond_signal( ldap_pvt_thread_cond_t *cond )
 {
+#if HAVE_PTHREADS < 7
+       if ( pthread_cond_signal( cond ) < 0 ) return errno;
+       return 0;
+#else
        return pthread_cond_signal( cond );
+#endif
 }
 
 int
 ldap_pvt_thread_cond_broadcast( ldap_pvt_thread_cond_t *cond )
 {
+#if HAVE_PTHREADS < 7
+       if ( pthread_cond_broadcast( cond ) < 0 ) return errno;
+       return 0;
+#else
        return pthread_cond_broadcast( cond );
+#endif
 }
 
 int 
 ldap_pvt_thread_cond_wait( ldap_pvt_thread_cond_t *cond, 
                      ldap_pvt_thread_mutex_t *mutex )
 {
+#if HAVE_PTHREADS < 7
+       if ( pthread_cond_wait( cond, mutex ) < 0 ) return errno;
+       return 0;
+#else
        return pthread_cond_wait( cond, mutex );
+#endif
 }
 
 int 
 ldap_pvt_thread_mutex_init( ldap_pvt_thread_mutex_t *mutex )
 {
+#if HAVE_PTHREADS < 7
+       if ( pthread_mutex_init( mutex, LDAP_INT_THREAD_MUTEXATTR_DEFAULT )<0)
+               return errno;
+       return 0;
+#else
        return pthread_mutex_init( mutex, LDAP_INT_THREAD_MUTEXATTR_DEFAULT );
+#endif
 }
 
 int 
 ldap_pvt_thread_mutex_destroy( ldap_pvt_thread_mutex_t *mutex )
 {
+#if HAVE_PTHREADS < 7
+       if ( pthread_mutex_destroy( mutex ) < 0 ) return errno;
+       return 0;
+#else
        return pthread_mutex_destroy( mutex );
+#endif
 }
 
 int 
 ldap_pvt_thread_mutex_lock( ldap_pvt_thread_mutex_t *mutex )
 {
+#if HAVE_PTHREADS < 7
+       if ( pthread_mutex_lock( mutex ) < 0 ) return errno;
+       return 0;
+#else
        return pthread_mutex_lock( mutex );
+#endif
 }
 
 int 
 ldap_pvt_thread_mutex_trylock( ldap_pvt_thread_mutex_t *mutex )
 {
+#if HAVE_PTHREADS < 7
+       if ( pthread_mutex_trylock( mutex ) < 0 ) return errno;
+       return 0;
+#else
        return pthread_mutex_trylock( mutex );
+#endif
 }
 
 int 
 ldap_pvt_thread_mutex_unlock( ldap_pvt_thread_mutex_t *mutex )
 {
+#if HAVE_PTHREADS < 7
+       if ( pthread_mutex_unlock( mutex ) < 0 ) return errno;
+       return 0;
+#else
        return pthread_mutex_unlock( mutex );
+#endif
 }
 
 #ifdef LDAP_THREAD_HAVE_RDWR
@@ -272,43 +315,83 @@ ldap_pvt_thread_mutex_unlock( ldap_pvt_thread_mutex_t *mutex )
 int 
 ldap_pvt_thread_rdwr_init( ldap_pvt_thread_rdwr_t *rw )
 {
+#if HAVE_PTHREADS < 7
+       if ( pthread_rwlock_init( rw, NULL ) < 0 ) return errno;
+       return 0;
+#else
        return pthread_rwlock_init( rw, NULL );
+#endif
 }
 
 int 
 ldap_pvt_thread_rdwr_destroy( ldap_pvt_thread_rdwr_t *rw )
 {
+#if HAVE_PTHREADS < 7
+       if ( pthread_rwlock_destroy( rw ) < 0 ) return errno;
+       return 0;
+#else
        return pthread_rwlock_destroy( rw );
+#endif
 }
 
 int ldap_pvt_thread_rdwr_rlock( ldap_pvt_thread_rdwr_t *rw )
 {
+#if HAVE_PTHREADS < 7
+       if ( pthread_rwlock_rdlock( rw ) < 0 ) return errno;
+       return 0;
+#else
        return pthread_rwlock_rdlock( rw );
+#endif
 }
 
 int ldap_pvt_thread_rdwr_rtrylock( ldap_pvt_thread_rdwr_t *rw )
 {
+#if HAVE_PTHREADS < 7
+       if ( pthread_rwlock_tryrdlock( rw ) < 0 ) return errno;
+       return 0;
+#else
        return pthread_rwlock_tryrdlock( rw );
+#endif
 }
 
 int ldap_pvt_thread_rdwr_runlock( ldap_pvt_thread_rdwr_t *rw )
 {
+#if HAVE_PTHREADS < 7
+       if ( pthread_rwlock_unlock( rw ) < 0 ) return errno;
+       return 0;
+#else
        return pthread_rwlock_unlock( rw );
+#endif
 }
 
 int ldap_pvt_thread_rdwr_wlock( ldap_pvt_thread_rdwr_t *rw )
 {
+#if HAVE_PTHREADS < 7
+       if ( pthread_rwlock_wrlock( rw ) < 0 ) return errno;
+       return 0;
+#else
        return pthread_rwlock_wrlock( rw );
+#endif
 }
 
 int ldap_pvt_thread_rdwr_wtrylock( ldap_pvt_thread_rdwr_t *rw )
 {
+#if HAVE_PTHREADS < 7
+       if ( pthread_rwlock_trywrlock( rw ) < 0 ) return errno;
+       return 0;
+#else
        return pthread_rwlock_trywrlock( rw );
+#endif
 }
 
 int ldap_pvt_thread_rdwr_wunlock( ldap_pvt_thread_rdwr_t *rw )
 {
+#if HAVE_PTHREADS < 7
+       if ( pthread_rwlock_unlock( rw ) < 0 ) return errno;
+       return 0;
+#else
        return pthread_rwlock_unlock( rw );
+#endif
 }
 
 #endif /* HAVE_PTHREAD_RDLOCK_DESTROY */