]> git.sur5r.net Git - openldap/blobdiff - build/openldap.m4
Add acc_rights detection (needs testing)
[openldap] / build / openldap.m4
index 8369493b66bb59f8ab4ef0e352fd1d52ab167e9b..a660b02550e8572d66dedc421dc9419a6dc8faaf 100644 (file)
@@ -1,6 +1,6 @@
 dnl $OpenLDAP$
 dnl
-dnl Copyright 1998-2002 The OpenLDAP Foundation, Redwood City, California, USA
+dnl Copyright 1998-2003 The OpenLDAP Foundation, Redwood City, California, USA
 dnl All rights reserved.
 dnl 
 dnl Redistribution and use in source and binary forms, with or without
@@ -254,7 +254,7 @@ AC_DEFUN([OL_BERKELEY_DB_TRY],
 [
        ol_DB_LIB=ifelse($2,,,$2)
        ol_LIBS=$LIBS
-       LIBS="$ol_DB_LIB $LIBS"
+       LIBS="$ol_DB_LIB $LTHREAD_LIBS $LIBS"
 
        AC_TRY_LINK([
 #ifdef HAVE_DB_185_H
@@ -312,8 +312,12 @@ dnl Try to locate appropriate library
 AC_DEFUN([OL_BERKELEY_DB_LINK],
 [ol_cv_lib_db=no
 OL_BERKELEY_DB_TRY(ol_cv_db_none)
-OL_BERKELEY_DB_TRY(ol_cv_db_db4,[-ldb4])
+OL_BERKELEY_DB_TRY(ol_cv_db_db41,[-ldb41])
+OL_BERKELEY_DB_TRY(ol_cv_db_db_41,[-ldb-41])
+OL_BERKELEY_DB_TRY(ol_cv_db_db_4_dot_1,[-ldb-4.1])
+OL_BERKELEY_DB_TRY(ol_cv_db_db_4_1,[-ldb-4-1])
 OL_BERKELEY_DB_TRY(ol_cv_db_db_4,[-ldb-4])
+OL_BERKELEY_DB_TRY(ol_cv_db_db4,[-ldb4])
 OL_BERKELEY_DB_TRY(ol_cv_db_db,[-ldb])
 OL_BERKELEY_DB_TRY(ol_cv_db_db3,[-ldb3])
 OL_BERKELEY_DB_TRY(ol_cv_db_db_3,[-ldb-3])
@@ -328,8 +332,9 @@ dnl Check if Berkeley DB supports DB_THREAD
 AC_DEFUN([OL_BERKELEY_DB_THREAD],
 [AC_CACHE_CHECK([for Berkeley DB thread support], [ol_cv_berkeley_db_thread], [
        ol_LIBS="$LIBS"
+       LIBS="$LTHREAD_LIBS $LIBS"
        if test $ol_cv_lib_db != yes ; then
-               LIBS="$ol_cv_lib_db"
+               LIBS="$ol_cv_lib_db $LIBS"
        fi
 
        AC_TRY_RUN([
@@ -401,12 +406,13 @@ main()
        [ol_cv_berkeley_db_thread=cross])
 
        LIBS="$ol_LIBS"
+])
 
        if test $ol_cv_berkeley_db_thread != no ; then
                AC_DEFINE(HAVE_BERKELEY_DB_THREAD, 1,
                        [define if Berkeley DB has DB_THREAD support])
        fi
-])])dnl
+])dnl
 dnl
 dnl --------------------------------------------------------------------
 dnl Find any DB
@@ -432,12 +438,15 @@ AC_DEFUN([OL_BDB_COMPAT],
 #ifndef DB_VERSION_MAJOR
 #      define DB_VERSION_MAJOR 1
 #endif
+#ifndef DB_VERSION_MINOR
+#      define DB_VERSION_MINOR 0
+#endif
 
 /* require 4.0 or later */
-#if DB_VERSION_MAJOR >= 4 
+#if (DB_VERSION_MAJOR >= 4) && (DB_VERSION_MINOR >= 1)
        __db_version_compat
 #endif
-       ],      [ol_cv_bdb_compat=yes], [ol_cv_bdb_compat=no])])
+       ], [ol_cv_bdb_compat=yes], [ol_cv_bdb_compat=no])])
 ])
 
 dnl --------------------------------------------------------------------
@@ -621,47 +630,48 @@ dnl
 dnl ====================================================================
 dnl Check POSIX Thread version 
 dnl
-dnl defines ol_cv_pthread_version to 4, 5, 6, 7, 10, depending on the
+dnl defines ol_cv_pthread_version to 4, 5, 6, 7, 8, 10, depending on the
 dnl    version of the POSIX.4a Draft that is implemented.
 dnl    10 == POSIX.4a Final == POSIX.1c-1996 for our purposes.
-dnl    Existence of pthreads.h should be tested separately.
+dnl    Existence of pthread.h should be tested separately.
 dnl
 dnl tests:
-dnl    pthread_yield() was dropped in Draft 9, so
-dnl            only a Draft <= 8 library will define this
 dnl    pthread_detach() was dropped in Draft 8, it is present
 dnl            in every other version
 dnl    PTHREAD_CREATE_UNDETACHED is only in Draft 7, it was called
 dnl            PTHREAD_CREATE_JOINABLE after that
+dnl    pthread_attr_create was renamed to pthread_attr_init in Draft 6.
+dnl            Draft 6-10 has _init, Draft 4-5 has _create.
 dnl    pthread_attr_default was dropped in Draft 6, only 4 and 5 have it
 dnl    PTHREAD_MUTEX_INITIALIZER was introduced in Draft 5. It's not
 dnl            interesting to us because we don't try to statically
 dnl            initialize mutexes. 5-10 has it.
-dnl    pthread_attr_create was renamed to pthread_attr_init in Draft 6.
-dnl            Draft 6-10 has _init, Draft 4-5 has _create.
 dnl
 dnl Draft 9 and 10 are equivalent for our purposes.
 dnl
 AC_DEFUN([OL_POSIX_THREAD_VERSION],
 [AC_CACHE_CHECK([POSIX thread version],[ol_cv_pthread_version],[
-       AC_EGREP_HEADER(pthread_yield,pthread.h,[
-       AC_EGREP_HEADER(pthread_detach,pthread.h,[
+       AC_TRY_COMPILE([
+#              include <pthread.h>
+       ],[
+               int i = PTHREAD_CREATE_JOINABLE;
+       ],[
+       AC_EGREP_HEADER(pthread_detach,pthread.h,
+       ol_cv_pthread_version=10, ol_cv_pthread_version=8)],[
        AC_EGREP_CPP(draft7,[
 #              include <pthread.h>
 #              ifdef PTHREAD_CREATE_UNDETACHED
                draft7
 #              endif
        ], ol_cv_pthread_version=7, [
-       AC_EGREP_HEADER(pthread_attr_default,pthread.h,[
+       AC_EGREP_HEADER(pthread_attr_init,pthread.h,
+       ol_cv_pthread_version=6, [
        AC_EGREP_CPP(draft5,[
 #              include <pthread.h>
 #ifdef         PTHREAD_MUTEX_INITIALIZER
                draft5
 #endif
-       ], ol_cv_pthread_version=5, ol_cv_pthread_version=4) ],
-       ol_cv_pthread_version=6) ]) ],
-       ol_cv_pthread_version=8) ],
-       ol_cv_pthread_version=10)
+       ], ol_cv_pthread_version=5, ol_cv_pthread_version=4) ]) ]) ])
 ])
 ])dnl
 dnl
@@ -1206,3 +1216,16 @@ AC_DEFUN([OL_SASL_COMPAT],
 #endif
        ],      [ol_cv_sasl_compat=yes], [ol_cv_sasl_compat=no])])
 ])
+dnl ====================================================================
+dnl check for msg_accrights in msghdr
+AC_DEFUN(OL_MSGHDR_MSG_ACCRIGHTS,
+ [AC_CACHE_CHECK(msg_accrights in msghdr, ol_cv_msg_accrights,
+   [AC_TRY_COMPILE([#include <socket.h>],
+               [struct msghdr m; m.msg_accrightslen=0],
+               ol_cv_msghdr_msg_accrights=yes, ol_cv_msghdr_msg_accrights=no)
+       ])
+  if test $ol_cv_func_ctime_r_type = "int" ; then
+       AC_DEFINE(HAVE_MSGHDR_MSG_ACCRIGHTS,1,
+               [define if struct msghdr has msg_accrights])
+  fi
+])dnl