This patch is similar. But it needs a trick in order to suppress the normal output from an AC_CHECK_FUNC invocation.
2020-07-25 Bruno Haible <br...@clisp.org> sigprocmask: Small autoconf macro improvement. * m4/signalblocking.m4 (gl_SIGNALBLOCKING): Make it possible for the user to override the value of gl_cv_func_sigprocmask. * m4/gnulib-common.m4 (gl_SILENT): New macro. diff --git a/m4/gnulib-common.m4 b/m4/gnulib-common.m4 index dfd4a25..7449648 100644 --- a/m4/gnulib-common.m4 +++ b/m4/gnulib-common.m4 @@ -1,4 +1,4 @@ -# gnulib-common.m4 serial 51 +# gnulib-common.m4 serial 52 dnl Copyright (C) 2007-2020 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -626,6 +626,15 @@ AC_DEFUN([gl_BIGENDIAN], AC_C_BIGENDIAN ]) +# gl_SILENT(command) +# executes command, but without the normal configure output. +AC_DEFUN([gl_SILENT], +[ + { + $1 + } AS_MESSAGE_FD>/dev/null +]) + # gl_CACHE_VAL_SILENT(cache-id, command-to-set-it) # is like AC_CACHE_VAL(cache-id, command-to-set-it), except that it does not # output a spurious "(cached)" mark in the midst of other configure output. diff --git a/m4/signalblocking.m4 b/m4/signalblocking.m4 index 74de534..0f72dd2 100644 --- a/m4/signalblocking.m4 +++ b/m4/signalblocking.m4 @@ -1,4 +1,4 @@ -# signalblocking.m4 serial 14 +# signalblocking.m4 serial 15 dnl Copyright (C) 2001-2002, 2006-2020 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -13,10 +13,19 @@ AC_DEFUN([gl_SIGNALBLOCKING], [ AC_REQUIRE([gl_SIGNAL_H_DEFAULTS]) AC_REQUIRE([gl_CHECK_TYPE_SIGSET_T]) - if test $gl_cv_type_sigset_t = yes; then - AC_CHECK_FUNC([sigprocmask], [gl_cv_func_sigprocmask=1]) - fi - if test -z "$gl_cv_func_sigprocmask"; then + AC_CACHE_CHECK([for sigprocmask], + [gl_cv_func_sigprocmask], + [if test $gl_cv_type_sigset_t = yes; then + gl_SILENT([ + AC_CHECK_FUNC([sigprocmask], + [gl_cv_func_sigprocmask=yes], + [gl_cv_func_sigprocmask=no]) + ]) + else + gl_cv_func_sigprocmask=no + fi + ]) + if test $gl_cv_func_sigprocmask != yes; then HAVE_POSIX_SIGNALBLOCKING=0 fi ])