I don't understand the "Due to autoconf conventions". We are not using HAVE_SIGACTION as a #define in config.h. We are using it as a shell variable. This shell variable is not set by either AC_REPLACE_FUNCS([sigaction]) nor by AC_CHECK_TYPE(...). So there is no conflict.
Proposed comment change: *** lib/signal.in.h.orig 2008-06-22 21:55:31.000000000 +0200 --- lib/signal.in.h 2008-06-22 21:55:10.000000000 +0200 *************** *** 118,126 **** typedef struct siginfo_t siginfo_t; # endif /* [EMAIL PROTECTED]@ */ ! /* Due to autoconf conventions, we can't tell if HAVE_SIGACTION ! means we have the type or means we have the function. We assume ! that all implementations either have both or neither. */ struct sigaction { --- 118,125 ---- typedef struct siginfo_t siginfo_t; # endif /* [EMAIL PROTECTED]@ */ ! /* We assume that platforms which lack the sigaction() function also lack ! the 'struct sigaction' type, and vice versa. */ struct sigaction { *** m4/sigaction.m4.orig 2008-06-22 21:55:31.000000000 +0200 --- m4/sigaction.m4 2008-06-22 21:55:10.000000000 +0200 *************** *** 8,16 **** AC_DEFUN([gl_SIGACTION], [ AC_REQUIRE([gl_SIGNAL_H_DEFAULTS]) - dnl Due to autoconf conventions, we can't tell if HAVE_SIGACTION - dnl means we have the type or means we have the function. We assume - dnl that all implementations either have both or neither. AC_REPLACE_FUNCS([sigaction]) if test $ac_cv_func_sigaction = no ; then HAVE_SIGACTION=0 --- 8,13 ----