X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=m4%2Fstrsignal.m4;h=b9dfeca2768a94c1fff8812cdeb013ccada6ea25;hb=0c6fd3b84775ca4cf1045d4cc07a2dff4c73f29b;hp=6cb8d9d5f1436b77895c0a66bae3cb3c4802365d;hpb=8c4874e600742f95ad38fbd6f518a3005ac4283c;p=gnulib.git diff --git a/m4/strsignal.m4 b/m4/strsignal.m4 index 6cb8d9d5f..b9dfeca27 100644 --- a/m4/strsignal.m4 +++ b/m4/strsignal.m4 @@ -1,5 +1,5 @@ -# strsignal.m4 serial 4 -dnl Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc. +# strsignal.m4 serial 8 +dnl Copyright (C) 2008-2014 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -19,6 +19,7 @@ AC_DEFUN([gl_FUNC_STRSIGNAL], AC_CHECK_FUNCS([strsignal]) if test $ac_cv_func_strsignal = yes; then + HAVE_STRSIGNAL=1 dnl Check if strsignal behaves reasonably for out-of-range signal numbers. dnl On Solaris it returns NULL; on AIX 5.1 it returns (char *) -1. AC_CACHE_CHECK([whether strsignal always returns a string], @@ -28,29 +29,31 @@ AC_DEFUN([gl_FUNC_STRSIGNAL], [[#include #include /* NetBSD 5.0 declares it in wrong header. */ ]], - [[char *s = strsignal (-1); - return !(s != (char *) 0 && s != (char *) -1);]])], + [[int result = 0; + char *s = strsignal (-1); + if (s == (char *) 0) + result |= 1; + if (s == (char *) -1) + result |= 2; + return result; + ]])], [gl_cv_func_working_strsignal=yes], [gl_cv_func_working_strsignal=no], [case "$host_os" in solaris* | aix*) gl_cv_func_working_strsignal=no;; *) gl_cv_func_working_strsignal="guessing yes";; esac])]) - else - gl_cv_func_working_strsignal=no - fi - - if test "$gl_cv_func_working_strsignal" = no; then - if test $ac_cv_func_strsignal = yes; then + if test "$gl_cv_func_working_strsignal" = no; then REPLACE_STRSIGNAL=1 fi - AC_LIBOBJ([strsignal]) - gl_PREREQ_STRSIGNAL + else + HAVE_STRSIGNAL=0 fi ]) # Prerequisites of lib/strsignal.c. AC_DEFUN([gl_PREREQ_STRSIGNAL], [ + AC_CHECK_HEADERS_ONCE([unistd.h]) AC_REQUIRE([AC_DECL_SYS_SIGLIST]) - AC_CHECK_DECLS([_sys_siglist], [], [], [#include ]) + AC_CHECK_DECLS([_sys_siglist], [], [], [[#include ]]) ])