Eric Blake wrote: > Gnulib guarantees that pthread.h exists, but for now, it is a dummy > header with no support for most pthread_* functions. Modify our > use of pthread to use function checks, rather than header checks, > to determine how much pthread support is present. > > * configure.ac: Optimize function checks. Add check for pthread > functions. > * src/remote/remote_driver.c (remoteIOEventLoop): Depend on > pthread_sigmask, now that gnulib guarantees pthread.h. > * src/util/util.c (virFork): Likewise. > * src/util/threads.c (threads-pthread.c): Depend on > pthread_mutexattr_init, as a witness of full pthread support. > * src/util/threads.h (threads-pthread.h): Likewise. > --- > configure.ac | 13 +++++++++++-- > src/remote/remote_driver.c | 6 +++--- > src/util/threads.c | 4 ++-- > src/util/threads.h | 4 ++-- > src/util/util.c | 10 +++++----- > 5 files changed, 23 insertions(+), 14 deletions(-) > > diff --git a/configure.ac b/configure.ac > index cfefc02..b5ff348 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -107,10 +107,19 @@ dnl Use --disable-largefile if you don't want this. > AC_SYS_LARGEFILE > > dnl Availability of various common functions (non-fatal if missing). > -AC_CHECK_FUNCS([cfmakeraw regexec uname sched_getaffinity getuid getgid posix_fallocate mmap]) > +AC_CHECK_FUNCS_ONCE([cfmakeraw regexec uname sched_getaffinity getuid getgid \ > + posix_fallocate mmap]) > > dnl Availability of various not common threadsafe functions > -AC_CHECK_FUNCS([strerror_r strtok_r getmntent_r getgrnam_r getpwuid_r]) > +AC_CHECK_FUNCS_ONCE([strerror_r strtok_r getmntent_r getgrnam_r getpwuid_r]) > + > +dnl Availability of pthread functions (if missing, win32 threading is > +dnl assumed). Because of $LIB_PTHREAD, we cannot use AC_CHECK_FUNCS_ONCE. > +dnl LIB_PTHREAD was set during gl_INIT by gnulib. > +old_LIBS=$LIBS > +LIBS="$LIBS $LIB_PTHREAD" > +AC_CHECK_FUNCS([pthread_sigmask pthread_mutexattr_init]) > +LIBS=$old_libs > > dnl Availability of various common headers (non-fatal if missing). > AC_CHECK_HEADERS([pwd.h paths.h regex.h sys/syslimits.h sys/utsname.h \ > diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c > index 1917f26..b798cdf 100644 > --- a/src/remote/remote_driver.c > +++ b/src/remote/remote_driver.c > @@ -9487,7 +9487,7 @@ remoteIOEventLoop(virConnectPtr conn, > struct remote_thread_call *tmp = priv->waitDispatch; > struct remote_thread_call *prev; > char ignore; > -#ifdef HAVE_PTHREAD_H > +#ifdef HAVE_PTHREAD_SIGMASK Good change. This more in the spirit of the Autoconf Way. ACK. -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list