diff --git a/common/signal.c b/common/signal.c index ccfa8e670..92925fdb7 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 e1216c9ad..d9f3ea987 100644 --- a/configure.ac +++ b/configure.ac @@ -1351,7 +1351,7 @@ AC_C_INLINE AC_C_VOLATILE AC_TYPE_SIZE_T AC_TYPE_MODE_T -AC_TYPE_SIGNAL +AC_CHECK_FUNCS([sigdescr_np]) AC_DECL_SYS_SIGLIST gl_HEADER_SYS_SOCKET