Add detection of LWP threads (untested).

This commit is contained in:
Kurt Zeilenga 1998-09-22 20:15:20 +00:00
parent 63e7569fa5
commit 2614a4095f
4 changed files with 580 additions and 481 deletions

661
configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -34,7 +34,7 @@ dnl General "with" options
OL_ARG_WITH(kerberos,[ --with-kerberos use Kerberos],
auto, [auto k5 k4 afs yes no])
OL_ARG_WITH(threads,[ --with-threads use threads],
auto, [auto posix dce mach yes no manual] )
auto, [auto posix mach lwp yes no manual] )
dnl Server options
@ -344,13 +344,13 @@ dnl AC_DEFINE(HAVE_LINUX_THREADS,1)
fi
if test $ol_link_threads != no ; then
save_LIBS="$LIBS"
LIBS="$LTHREAD_LIBS $LIBS"
dnl All POSIX Thread (final) implementations should have
dnl sched_yield instead of pthread yield.
dnl check for both
save_LIBS="$LIBS"
LIBS="$LTHREAD_LIBS $LIBS"
AC_CHECK_FUNCS(sched_yield pthread_yield)
LIBS="$save_LIBS"
if test $ac_cv_func_sched_yield = no -a \
$ac_cv_func_pthread_yield = no ; then
@ -358,6 +358,15 @@ dnl AC_DEFINE(HAVE_LINUX_THREADS,1)
AC_MSG_WARN([could not locate sched_yield() or pthread_yield()])
AC_MSG_ERROR([POSIX Threads are not usable])
fi
dnl Check functions for compatibility
AC_CHECK_FUNCS(pthread_kill \
pthread_attr_init pthread_attr_create \
pthread_attr_destroy pthread_attr_delete \
pthread_attr_setdetachstate pthread_attr_setdetach_np \
)
LIBS="$save_LIBS"
else
AC_MSG_ERROR([could not link with POSIX Threads])
fi
@ -368,6 +377,43 @@ dnl AC_DEFINE(HAVE_LINUX_THREADS,1)
fi
fi
if test $ol_with_threads = auto -o $ol_with_threads = cthreads ; then
dnl check for Mach CThreads
AC_CHECK_HEADERS(mach/cthreads.h)
if test $ac_cv_header_lwp_lwp_h = yes ; then
AC_CHECK_LIB(lwp, cthread_fork, [have_cthreads=yes], [have_cthreads=no])
if test $have_cthreads = yes ; then
LTHREAD_DEFS="$LTHREAD_DEFS -DTHREAD_NEXT_CTHREADS"
LTHREAD_LIBS="$LTHREAD_LIBS -llwp"
fi
fi
fi
if test $ol_with_threads = auto -o $ol_with_threads = lwp ; then
dnl check for SunOS5 LWP
AC_CHECK_HEADERS(lwp/lwp.h)
if test $ac_cv_header_lwp_lwp_h = yes ; then
AC_CHECK_LIB(thread, thr_create, [have_lwp=yes], [have_lwp=no])
if test $have_lwp = yes ; then
LTHREAD_DEFS="$LTHREAD_DEFS -DTHREAD_SUNOS5_LWP"
LTHREAD_LIBS="$LTHREAD_LIBS -llwp"
fi
fi
dnl check for SunOS4 LWP
AC_CHECK_HEADERS(thread.h synch.h)
if test $ac_cv_header_thread_h = yes -a $ac_cv_header_synch_h = yes ; then
AC_CHECK_LIB(lwp, lwp_create, [have_lwp=yes], [have_lwp=no])
if test $have_lwp = yes ; then
LTHREAD_DEFS="$LTHREAD_DEFS -DTHREAD_SUNOS4_LWP"
LTHREAD_LIBS="$LTHREAD_LIBS -llwp"
fi
fi
fi
if test $ol_with_threads = manual ; then
dnl User thinks he can manually configure threads.
$ol_link_threads=yes

View File

@ -1,313 +0,0 @@
/*
* Copyright 1998 The OpenLDAP Foundation.
* Copying restrictions apply. See COPYRIGHT file for details.
*
* Portions Copyright (c) 1994 Regents of the University of Michigan.
* All rights reserved.
*
* Redistribution and use in source and binary forms are permitted
* provided that this notice is preserved and that due credit is given
* to the University of Michigan at Ann Arbor. The name of the University
* may not be used to endorse or promote products derived from this
* software without specific prior written permission. This software
* is provided ``as is'' without express or implied warranty.
*/
#ifndef _LDAP_CONFIG_H
#define _LDAP_CONFIG_H
/*
* config.h for LDAP -- edit this file to customize LDAP client behavior.
* NO platform-specific definitions should be placed in this file.
* Note that this is NOT used by the LDAP or LBER libraries.
*/
/*
* SHARED DEFINITIONS
*/
#define DEFAULT_BINDIR "@BINDIR@"
#define DEFAULT_SBINDIR "@SBINDIR@"
#define DEFAULT_LIBEXECDIR "@LIBEXECDIR@"
#define DEFAULT_DATADIR "@DATADIR@"
#define DEFAULT_SYSCONFDIR "@SYSCONFDIR@"
#define DEFAULT_SHAREDSTATEDIR "@SHAREDSTATEDIR@"
#define DEFAULT_LOCALSTATEDIR "@LOCALSTATEDIR@"
#define DEFAULT_LIBDIR "@LIBDIR@"
#define DEFAULT_INCLUDEDIR "@INCLUDEDIR@"
#define DEFAULT_OLDINCLUDEDIR "@OLDINCLUDEDIR@"
#define DEFAULT_INFODIR "@INFODIR@"
#define DEFAULT_MANDIR "@MANDIR@"
/* default ldap host */
#define LDAPHOST "localhost"
#define DEFAULT_LDAPHOST_FILE "@SYSCONFDIR@/ldaphost"
/* default place to start searching */
#define DEFAULT_BASE "o=Your Organization Name, c=US"
#define DEFAULT_BASE_FILE "@SYSCONFDIR@/ldapbase"
/*
* default binddn and creditials
* use files, make sure they are not generally readable
*/
#define DEFAULT_BINDDN NULL
#define DEFAULT_BINDDN_FILE "@SYSCONFDIR@/ldapbinddn"
#define DEFAULT_BIND_CRED NULL
#define DEFAULT_BIND_CRED_FILE "@SYSCONFDIR@/ldapbindcred"
/*********************************************************************
* *
* You probably do not need to edit anything below this point *
* *
*********************************************************************/
/*
* SHARED DEFINITIONS - other things you can change
*/
/* default attribute to use when sorting entries, NULL => sort by DN */
#define SORT_ATTR NULL
/* default count of DN components to show in entry displays */
#define DEFAULT_RDNCOUNT 2
/* default config file locations */
#define FILTERFILE "@SYSCONFDIR@/ldapfilter.conf"
#define TEMPLATEFILE "@SYSCONFDIR@/ldaptemplates.conf"
#define SEARCHFILE "@SYSCONFDIR@/ldapsearchprefs.conf"
#define FRIENDLYFILE "@SYSCONFDIR@/ldapfriendly"
/*
* FINGER DEFINITIONS
*/
/* who to bind as */
#define FINGER_BINDDN NULL
#define FINGER_BIND_CRED NULL
/* where to search */
#define FINGER_BASE DEFAULT_BASE
/* banner to print */
#define FINGER_BANNER "X.500 Finger Service...\r\n"
/* who to report errors to */
#define FINGER_ERRORS "System Administrator"
/* what to say if no matches are found */
#define FINGER_NOMATCH "Search failed to find anything.\r\n"
/* what to say if the service may be unavailable */
#define FINGER_UNAVAILABLE \
"The directory service may be temporarily unavailable.\r\n\
Please try again later.\r\n"
/* printed if a match has no email address - for disptmp default */
#define FINGER_NOEMAIL1 "None registered in this service."
#define FINGER_NOEMAIL2 NULL
#define FINGER_NOEMAIL { FINGER_NOEMAIL1, FINGER_NOEMAIL2, NULL }
/* maximum number of matches returned */
#define FINGER_SIZELIMIT 50
/* max number of hits displayed in full before a list is presented */
#define FINGER_LISTLIMIT 1
/* what to exec for "finger @host" */
#define FINGER_CMD "@FINGER@"
/* how to treat aliases when searching */
#define FINGER_DEREF LDAP_DEREF_FINDING
/* attribute to use when sorting results */
#define FINGER_SORT_ATTR SORT_ATTR
/* enable ufn support */
#define FINGER_UFN
/* timeout for searches */
#define FINGER_TIMEOUT 60
/* number of DN components to show in entry displays */
#define FINGER_RDNCOUNT DEFAULT_RDNCOUNT
/*
* GO500 GOPHER GATEWAY DEFINITIONS
*/
/* who to bind as */
#define GO500_BINDDN NULL
#define GO500_BIND_CRED NULL
/* where to search */
#define GO500_BASE DEFAULT_BASE
/* port on which to listen */
#define GO500_PORT 5555
/* how to handle aliases */
#define GO500_DEREF LDAP_DEREF_FINDING
/* attribute to use when sorting results */
#define GO500_SORT_ATTR SORT_ATTR
/* timeout for searches */
#define GO500_TIMEOUT 180
/* enable ufn support */
#define GO500_UFN
/*
* only set and uncomment this if your hostname() does not return
* a fully qualified hostname
*/
/* #define GO500_HOSTNAME "fully.qualified.hostname.here" */
/* number of DN components to show in entry displays */
#define GO500_RDNCOUNT DEFAULT_RDNCOUNT
/*
* GO500GW GOPHER GATEWAY DEFINITIONS
*/
/* who to bind as */
#define GO500GW_BINDDN NULL
#define GO500GW_BIND_CRED NULL
/* where the helpfile lives */
#define GO500GW_HELPFILE "@SYSCONFDIR@/go500gw.help"
/* port on which to listen */
#define GO500GW_PORT 7777
/* timeout on all searches */
#define GO500GW_TIMEOUT 180
/* enable ufn support */
#define GO500GW_UFN
/* attribute to use when sorting results */
#define GO500GW_SORT_ATTR SORT_ATTR
/*
* only set and uncomment this if your hostname() does not return
* a fully qualified hostname
*/
/* #define GO500GW_HOSTNAME "fully.qualified.hostname.here" */
/* number of DN components to show in entry displays */
#define GO500GW_RDNCOUNT DEFAULT_RDNCOUNT
/*
* RCPT500 MAIL RESPONDER GATEWAY DEFINITIONS
*/
/* who to bind as */
#define RCPT500_BINDDN NULL
#define RCPT500_BIND_CRED NULL
/* where the helpfile lives */
#define RCPT500_HELPFILE "@SYSCONFDIR@/rcpt500.help"
/* maximum number of matches returned */
#define RCPT500_SIZELIMIT 50
/* address replies will appear to come from */
#define RCPT500_FROM "\"Directory Query Program\" <Dir-Query>"
/* command that will accept an RFC822 message text on standard
input, and send it. sendmail -t does this nicely. */
#define RCPT500_PIPEMAILCMD "@SENDMAIL@ -t"
/* where to search */
#define RCPT500_BASE DEFAULT_BASE
/* attribute to use when sorting results */
#define RCPT500_SORT_ATTR SORT_ATTR
/* max number of hits displayed in full before a list is presented */
#define RCPT500_LISTLIMIT 1
/* enable ufn support */
#define RCPT500_UFN
/* number of DN components to show in entry displays */
#define RCPT500_RDNCOUNT DEFAULT_RDNCOUNT
/*
* LDAPSEARCH TOOL
*/
/* who to bind as */
#define LDAPSEARCH_BINDDN NULL
#define LDAPSEARCH_BIND_CRED NULL
/* search base */
#define LDAPSEARCH_BASE DEFAULT_BASE
/*
* LDAPMODIFY TOOL
*/
/* who to bind as */
#define LDAPMODIFY_BINDDN NULL
#define LDAPMODIFY_BIND_CRED NULL
/* search base */
#define LDAPMODIFY_BASE DEFAULT_BASE
/*
* LDAPDELETE TOOL
*/
/* who to bind as */
#define LDAPDELETE_BINDDN NULL
#define LDAPDELETE_BIND_CRED NULL
/* search base */
#define LDAPDELETE_BASE DEFAULT_BASE
/*
* LDAPMODRDN TOOL
*/
/* who to bind as */
#define LDAPMODRDN_BINDDN NULL
#define LDAPMODRDN_BIND_CRED NULL
/* search base */
#define LDAPMODRDN_BASE DEFAULT_BASE
/*
* MAIL500 MAILER DEFINITIONS
*/
/* who to bind as */
#define MAIL500_BINDDN NULL
#define MAIL500_BIND_CRED NULL
/* max number of ambiguous matches reported */
#define MAIL500_MAXAMBIGUOUS 10
/* max subscribers allowed (size limit when searching for them ) */
#define MAIL500_MAXGROUPMEMBERS LDAP_NO_LIMIT
/* timeout for all searches */
#define MAIL500_TIMEOUT 180
/* sendmail location - mail500 needs to exec this */
#define MAIL500_SENDMAIL "@SENDMAIL@"
/*
* UD DEFINITIONS
*/
/* ud configuration file */
#define UD_CONFIG_FILE "@SYSCONFDIR@/ud.conf"
/* default editor */
#define UD_DEFAULT_EDITOR "@EDITOR@"
/* default bbasename of user config file */
#define UD_USER_CONFIG_FILE ".udrc"
/* default user to bind as */
#define UD_BINDDN NULL
/* default password to bind with */
#define UD_BIND_CRED NULL
/* default search base */
#define UD_BASE DEFAULT_BASE
/* default base where groups are created */
#define UD_WHERE_GROUPS_ARE_CREATED ""
/* default base below which all groups live */
#define UD_WHERE_ALL_GROUPS_LIVE ""
/*
* FAX500 DEFINITIONS
*/
/* what to bind as */
#define FAX_BINDDN NULL
#define FAX_BIND_CRED NULL
/* default search base */
#define FAX_BASE DEFAULT_BASE
/* how long to wait for searches */
#define FAX_TIMEOUT 180
/* maximum number of ambiguous matches reported */
#define FAX_MAXAMBIGUOUS 10
/* maximum number of members allowed */
#define FAX_MAXMEMBERS LDAP_NO_LIMIT
/* program to send mail */
#define FAX_SENDMAIL "@SENDMAIL@"
/*
* RP500 DEFINITIONS
*/
/* what to bind as */
#define RP_BINDDN NULL
#define RP_BIND_CRED NULL
/* default search base */
#define RP_BASE DEFAULT_BASE
/* prefix to add to non-fully-qualified numbers */
#define RP_PHONEPREFIX ""
/*
* SLAPD DEFINITIONS
*/
/* location of the default slapd config file */
#define SLAPD_DEFAULT_CONFIGFILE "@SYSCONFDIR@/slapd.conf"
/* default sizelimit on number of entries from a search */
#define SLAPD_DEFAULT_SIZELIMIT 500
/* default timelimit to spend on a search */
#define SLAPD_DEFAULT_TIMELIMIT 3600
/* location of the slapd pid file */
#define SLAPD_PIDFILE "@RUNDIR@/slapd.pid"
/* location of the slapd args file */
#define SLAPD_ARGSFILE "@RUNDIR@/slapd.args"
/* dn of the special "monitor" entry */
#define SLAPD_MONITOR_DN "cn=monitor"
/* dn of the special "config" entry */
#define SLAPD_CONFIG_DN "cn=config"
/* minimum max ids that a single index entry can map to in ldbm */
#define SLAPD_LDBM_MIN_MAXIDS 4000
#endif /* _LDAP_CONFIG_H */

View File

@ -103,6 +103,27 @@
/* Define if you have the mktime function. */
#undef HAVE_MKTIME
/* Define if you have the pthread_attr_create function. */
#undef HAVE_PTHREAD_ATTR_CREATE
/* Define if you have the pthread_attr_delete function. */
#undef HAVE_PTHREAD_ATTR_DELETE
/* Define if you have the pthread_attr_destroy function. */
#undef HAVE_PTHREAD_ATTR_DESTROY
/* Define if you have the pthread_attr_init function. */
#undef HAVE_PTHREAD_ATTR_INIT
/* Define if you have the pthread_attr_setdetach_np function. */
#undef HAVE_PTHREAD_ATTR_SETDETACH_NP
/* Define if you have the pthread_attr_setdetachstate function. */
#undef HAVE_PTHREAD_ATTR_SETDETACHSTATE
/* Define if you have the pthread_kill function. */
#undef HAVE_PTHREAD_KILL
/* Define if you have the pthread_yield function. */
#undef HAVE_PTHREAD_YIELD
@ -187,6 +208,12 @@
/* Define if you have the <limits.h> header file. */
#undef HAVE_LIMITS_H
/* Define if you have the <lwp/lwp.h> header file. */
#undef HAVE_LWP_LWP_H
/* Define if you have the <mach/cthreads.h> header file. */
#undef HAVE_MACH_CTHREADS_H
/* Define if you have the <malloc.h> header file. */
#undef HAVE_MALLOC_H
@ -211,6 +238,9 @@
/* Define if you have the <stddef.h> header file. */
#undef HAVE_STDDEF_H
/* Define if you have the <synch.h> header file. */
#undef HAVE_SYNCH_H
/* Define if you have the <sys/dir.h> header file. */
#undef HAVE_SYS_DIR_H
@ -235,6 +265,9 @@
/* Define if you have the <termio.h> header file. */
#undef HAVE_TERMIO_H
/* Define if you have the <thread.h> header file. */
#undef HAVE_THREAD_H
/* Define if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H