From: Bruno Haible Date: Tue, 12 Jul 2011 12:02:11 +0000 (+0200) Subject: pthread_sigmask: Rely on module 'threadlib'. X-Git-Tag: v0.1~2101 X-Git-Url: http://erislabs.net/gitweb/?a=commitdiff_plain;h=bd399f07ee4f383fad038efad25a659fcdc0bbb0;p=gnulib.git pthread_sigmask: Rely on module 'threadlib'. * modules/pthread_sigmask (Depends-on): Add threadlib. * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Assume gl_THREADLIB is defined. --- diff --git a/ChangeLog b/ChangeLog index 1a30ae807..465e8d0ac 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2011-07-12 Bruno Haible + pthread_sigmask: Rely on module 'threadlib'. + * modules/pthread_sigmask (Depends-on): Add threadlib. + * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Assume gl_THREADLIB + is defined. + +2011-07-12 Bruno Haible + regex: Depend on module 'strcase'. * modules/regex (Depends-on): Add strcase, for strcasecmp(). diff --git a/m4/pthread_sigmask.m4 b/m4/pthread_sigmask.m4 index c73e7e6ec..380398868 100644 --- a/m4/pthread_sigmask.m4 +++ b/m4/pthread_sigmask.m4 @@ -1,4 +1,4 @@ -# pthread_sigmask.m4 serial 9 +# pthread_sigmask.m4 serial 10 dnl Copyright (C) 2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -6,70 +6,56 @@ dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_PTHREAD_SIGMASK], [ + AC_REQUIRE([gl_THREADLIB]) + AC_CHECK_FUNCS_ONCE([pthread_sigmask]) LIB_PTHREAD_SIGMASK= - m4_ifdef([gl_THREADLIB], [ - AC_REQUIRE([gl_THREADLIB]) - if test "$gl_threads_api" = posix; then - if test $ac_cv_func_pthread_sigmask = yes; then - dnl pthread_sigmask is available without -lpthread. - : - else - if test -n "$LIBMULTITHREAD"; then - AC_CACHE_CHECK([for pthread_sigmask in $LIBMULTITHREAD], - [gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD], - [gl_save_LIBS="$LIBS" - LIBS="$LIBS $LIBMULTITHREAD" - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[#include - #include - ]], - [[return pthread_sigmask (0, (sigset_t *) 0, (sigset_t *) 0);]]) - ], - [gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=yes], - [gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=no]) - LIBS="$gl_save_LIBS" - ]) - if test $gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD = yes; then - dnl pthread_sigmask is available with -lpthread. - LIB_PTHREAD_SIGMASK="$LIBMULTITHREAD" - else - dnl pthread_sigmask is not available at all. - HAVE_PTHREAD_SIGMASK=0 - fi + if test "$gl_threads_api" = posix; then + if test $ac_cv_func_pthread_sigmask = yes; then + dnl pthread_sigmask is available without -lpthread. + : + else + if test -n "$LIBMULTITHREAD"; then + AC_CACHE_CHECK([for pthread_sigmask in $LIBMULTITHREAD], + [gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD], + [gl_save_LIBS="$LIBS" + LIBS="$LIBS $LIBMULTITHREAD" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include + #include + ]], + [[return pthread_sigmask (0, (sigset_t *) 0, (sigset_t *) 0);]]) + ], + [gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=yes], + [gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=no]) + LIBS="$gl_save_LIBS" + ]) + if test $gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD = yes; then + dnl pthread_sigmask is available with -lpthread. + LIB_PTHREAD_SIGMASK="$LIBMULTITHREAD" else dnl pthread_sigmask is not available at all. HAVE_PTHREAD_SIGMASK=0 fi - fi - else - dnl pthread_sigmask may exist but does not interoperate with the chosen - dnl multithreading facility. - dnl If "$gl_threads_api" = pth, we could use the function pth_sigmask, - dnl but it is equivalent to sigprocmask, so we choose to emulate - dnl pthread_sigmask with sigprocmask also in this case. This yields fewer - dnl link dependencies. - if test $ac_cv_func_pthread_sigmask = yes; then - REPLACE_PTHREAD_SIGMASK=1 else + dnl pthread_sigmask is not available at all. HAVE_PTHREAD_SIGMASK=0 fi fi - ] ,[ - dnl gl_THREADLIB is not in use. Assume the application wants - dnl POSIX semantics. - if test $ac_cv_func_pthread_sigmask != yes; then - gl_save_LIBS=$LIBS - AC_SEARCH_LIBS([pthread_sigmask], [pthread c_r]) - LIBS=$gl_save_LIBS - if test "$ac_cv_search_pthread_sigmask" = no; then - HAVE_PTHREAD_SIGMASK=0 - elif test "$ac_cv_search_pthread_sigmask" != 'none required'; then - LIB_PTHREAD_SIGMASK=$ac_cv_search_pthread_sigmask - fi + else + dnl pthread_sigmask may exist but does not interoperate with the chosen + dnl multithreading facility. + dnl If "$gl_threads_api" = pth, we could use the function pth_sigmask, + dnl but it is equivalent to sigprocmask, so we choose to emulate + dnl pthread_sigmask with sigprocmask also in this case. This yields fewer + dnl link dependencies. + if test $ac_cv_func_pthread_sigmask = yes; then + REPLACE_PTHREAD_SIGMASK=1 + else + HAVE_PTHREAD_SIGMASK=0 fi - ]) + fi AC_SUBST([LIB_PTHREAD_SIGMASK]) dnl We don't need a variable LTLIB_PTHREAD_SIGMASK, because when dnl "$gl_threads_api" = posix, $LTLIBMULTITHREAD and $LIBMULTITHREAD are the diff --git a/modules/pthread_sigmask b/modules/pthread_sigmask index 9e26e1309..b9a8f9666 100644 --- a/modules/pthread_sigmask +++ b/modules/pthread_sigmask @@ -7,6 +7,7 @@ m4/pthread_sigmask.m4 Depends-on: signal +threadlib sigprocmask [test $HAVE_PTHREAD_SIGMASK = 0 || test $REPLACE_PTHREAD_SIGMASK = 1] configure.ac: