From b45d9518aebfcd64e8359b9dce99067b00a33841 Mon Sep 17 00:00:00 2001 From: Ken Raeburn Date: Tue, 16 May 2006 02:56:59 +0000 Subject: [PATCH] Don't look for pthread_mutexattr_setrobust_np Apparently Red Hat's Fedora Core 5 defines it but doesn't declare it, so we'd have to declare it before testing the address. While it was once useful for checking whether the pthread code had been loaded, I think the other tests done now are more effective and this isn't needed any more. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@18012 dc483132-0cff-0310-8789-dd5450dbe970 --- src/aclocal.m4 | 4 +--- src/include/k5-thread.h | 13 +++++++------ src/util/support/threads.c | 5 ----- 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/src/aclocal.m4 b/src/aclocal.m4 index f3711c183..20f215424 100644 --- a/src/aclocal.m4 +++ b/src/aclocal.m4 @@ -219,7 +219,7 @@ dnl We want to know where these routines live, so on systems with weak dnl reference support we can figure out whether or not the pthread library dnl has been linked in. dnl If we don't add any libraries for thread support, don't bother. -AC_CHECK_FUNCS(pthread_once pthread_mutexattr_setrobust_np pthread_rwlock_init) +AC_CHECK_FUNCS(pthread_once pthread_rwlock_init) old_CC="$CC" test "$PTHREAD_CC" != "" && test "$ac_cv_c_compiler_gnu" = no && CC=$PTHREAD_CC old_CFLAGS="$CFLAGS" @@ -229,8 +229,6 @@ AC_SUBST(PTHREAD_CFLAGS) old_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" AC_MSG_NOTICE(rechecking with PTHREAD_... options) -AC_CHECK_LIB(c, pthread_mutexattr_setrobust_np, - [AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_SETROBUST_NP_IN_THREAD_LIB,1,[Define if pthread_mutexattr_setrobust_np is provided in the thread library.])]) AC_CHECK_LIB(c, pthread_rwlock_init, [AC_DEFINE(HAVE_PTHREAD_RWLOCK_INIT_IN_THREAD_LIB,1,[Define if pthread_rwlock_init is provided in the thread library.])]) LIBS="$old_LIBS" diff --git a/src/include/k5-thread.h b/src/include/k5-thread.h index 5373f836a..13c2391fb 100644 --- a/src/include/k5-thread.h +++ b/src/include/k5-thread.h @@ -388,9 +388,13 @@ typedef k5_os_nothread_mutex k5_os_mutex; Linux: Stub mutex routines exist, but pthread_once does not. - Solaris: In libc there's a pthread_once that doesn't seem - to do anything. Bleah. But pthread_mutexattr_setrobust_np - is defined only in libpthread. + Solaris: In libc there's a pthread_once that doesn't seem to do + anything. Bleah. But pthread_mutexattr_setrobust_np is defined + only in libpthread. However, some version of GNU libc (Red Hat's + Fedora Core 5, reportedly) seems to have that function, but no + declaration, so we'd have to declare it in order to test for its + address. We now have tests to see if pthread_once actually works, + so stick with that for now. IRIX 6.5 stub pthread support in libc is really annoying. The pthread_mutex_lock function returns ENOSYS for a program not linked @@ -414,9 +418,6 @@ typedef k5_os_nothread_mutex k5_os_mutex; # pragma weak pthread_mutex_init # pragma weak pthread_self # pragma weak pthread_equal -# ifdef HAVE_PTHREAD_MUTEXATTR_SETROBUST_NP_IN_THREAD_LIB -# pragma weak pthread_mutexattr_setrobust_np -# endif extern int krb5int_pthread_loaded(void); # define K5_PTHREADS_LOADED (krb5int_pthread_loaded()) #else diff --git a/src/util/support/threads.c b/src/util/support/threads.c index 1ac9c6150..ebc1dafae 100644 --- a/src/util/support/threads.c +++ b/src/util/support/threads.c @@ -144,11 +144,6 @@ int krb5int_pthread_loaded (void) || &pthread_mutex_init == 0 || &pthread_self == 0 || &pthread_equal == 0 - /* This catches Solaris 9. May be redundant with the above - tests now. */ -# ifdef HAVE_PTHREAD_MUTEXATTR_SETROBUST_NP_IN_THREAD_LIB - || &pthread_mutexattr_setrobust_np == 0 -# endif /* Any program that's really multithreaded will have to be able to create threads. */ || &pthread_create == 0 -- 2.26.2