diff --git a/common/signal.c b/common/signal.c index 41c14ba68..0200186c1 100644 --- a/common/signal.c +++ b/common/signal.c @@ -87,7 +87,9 @@ get_signal_name( int signum ) { /* Note that we can't use strsignal(), because it is not reentrant. */ -#if HAVE_DECL_SYS_SIGLIST && defined(NSIG) +#if HAVE_SIGDESCR_NP + return sigdescr_np (signum); +#elif HAVE_DECL_SYS_SIGLIST && defined(NSIG) return (signum >= 0 && signum < NSIG) ? sys_siglist[signum] : "?"; #else return NULL; diff --git a/configure.ac b/configure.ac index c0ff1b71e..df6029810 100644 --- a/configure.ac +++ b/configure.ac @@ -1373,6 +1373,7 @@ AC_C_INLINE AC_C_VOLATILE AC_TYPE_SIZE_T AC_TYPE_MODE_T +AC_CHECK_FUNCS([sigdescr_np]) AC_CHECK_DECLS([sys_siglist],[],[],[#include /* NetBSD declares sys_siglist in unistd.h. */ #ifdef HAVE_UNISTD_H