aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common/signal.c4
-rw-r--r--configure.ac1
2 files changed, 4 insertions, 1 deletions
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 <signal.h>
/* NetBSD declares sys_siglist in unistd.h. */
#ifdef HAVE_UNISTD_H