diff --git a/acconfig.h b/acconfig.h index 864eedccf2..32ae1bc55b 100644 --- a/acconfig.h +++ b/acconfig.h @@ -15,7 +15,7 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: acconfig.h,v 1.29 2000/09/22 18:52:32 bwelling Exp $ */ +/* $Id: acconfig.h,v 1.30 2000/12/22 20:50:01 bwelling Exp $ */ /*** *** This file is not to be included by any public header files, because @@ -111,3 +111,6 @@ int sigwait(const unsigned int *set, int *sig); /* define if the system has a random number generating device */ #undef PATH_RANDOMDEV + +/* define if pthread_attr_getstacksize() is available */ +#undef HAVE_PTHREAD_ATTR_GETSTACKSIZE diff --git a/config.h.in b/config.h.in index fdd4e81039..dedae6249b 100644 --- a/config.h.in +++ b/config.h.in @@ -16,7 +16,7 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: config.h.in,v 1.38 2000/09/22 18:52:34 bwelling Exp $ */ +/* $Id: config.h.in,v 1.39 2000/12/22 20:50:02 bwelling Exp $ */ /*** *** This file is not to be included by any public header files, because @@ -123,6 +123,9 @@ int sigwait(const unsigned int *set, int *sig); /* define if the system has a random number generating device */ #undef PATH_RANDOMDEV +/* define if pthread_attr_getstacksize() is available */ +#undef HAVE_PTHREAD_ATTR_GETSTACKSIZE + /* Define if you have the header file. */ #undef HAVE_FCNTL_H diff --git a/configure.in b/configure.in index 2b8208060b..0fbb6b8a23 100644 --- a/configure.in +++ b/configure.in @@ -18,7 +18,7 @@ AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl esyscmd([sed "s/^/# /" COPYRIGHT])dnl AC_DIVERT_POP()dnl -AC_REVISION($Revision: 1.199 $) +AC_REVISION($Revision: 1.200 $) AC_INIT(lib/dns/name.c) AC_PREREQ(2.13) @@ -377,12 +377,18 @@ Please install the devel/unproven-pthreads package and rerun configure. ;; *) AC_CHECK_LIB(pthread, pthread_create,, - AC_CHECK_LIB(pthread, __pthread_create) - AC_CHECK_LIB(pthread, __pthread_create_system) - AC_CHECK_LIB(pthreads, pthread_create)) + AC_CHECK_LIB(pthread, __pthread_create,, + AC_CHECK_LIB(pthread, __pthread_create_system,, + use_threads=false))) ;; esac +fi +# +# We may have failed to find libpthread, so check again. +# +if $use_threads +then # # We'd like to use sigwait() too # @@ -394,6 +400,9 @@ Please install the devel/unproven-pthreads package and rerun configure. AC_DEFINE(HAVE_SIGWAIT),)) ) + AC_CHECK_FUNC(pthread_attr_getstacksize, + AC_DEFINE(HAVE_PTHREAD_ATTR_GETSTACKSIZE),) + # # Additional OS-specific issues related to pthreads and sigwait. # diff --git a/lib/isc/pthreads/thread.c b/lib/isc/pthreads/thread.c index 578d3d6126..cac349f99c 100644 --- a/lib/isc/pthreads/thread.c +++ b/lib/isc/pthreads/thread.c @@ -15,7 +15,7 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: thread.c,v 1.7 2000/08/01 01:31:01 tale Exp $ */ +/* $Id: thread.c,v 1.8 2000/12/22 20:50:05 bwelling Exp $ */ #include @@ -36,6 +36,7 @@ isc_thread_create(isc_threadfunc_t func, isc_threadarg_t arg, pthread_attr_init(&attr); +#ifdef HAVE_PTHREAD_ATTR_GETSTACKSIZE ret = pthread_attr_getstacksize(&attr, &stacksize); if (ret != 0) return (ISC_R_UNEXPECTED); @@ -45,6 +46,7 @@ isc_thread_create(isc_threadfunc_t func, isc_threadarg_t arg, if (ret != 0) return (ISC_R_UNEXPECTED); } +#endif ret = pthread_create(thread, &attr, func, arg); if (ret != 0)