X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Fstrsignal.m4;h=856f8af8fef2e5ca566b51a2db1d852a168fe501;hb=0e789d4c672de575ec384b2059c4779de5b5c664;hp=9bcd374ac098f579118811d25c2adf2d718a030f;hpb=bd642010ddd06b7ced7e5a26a75c68fd828ac2bf;p=gnulib.git diff --git a/m4/strsignal.m4 b/m4/strsignal.m4 index 9bcd374ac..856f8af8f 100644 --- a/m4/strsignal.m4 +++ b/m4/strsignal.m4 @@ -1,5 +1,5 @@ -# strsignal.m4 serial 1 -dnl Copyright (C) 2008 Free Software Foundation, Inc. +# strsignal.m4 serial 5 +dnl Copyright (C) 2008-2011 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. @@ -9,16 +9,54 @@ AC_DEFUN([gl_FUNC_STRSIGNAL], dnl Persuade glibc to declare strsignal(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) - AC_REQUIRE([AC_DECL_SYS_SIGLIST]) - AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) - AC_REPLACE_FUNCS([strsignal]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + AC_CHECK_DECLS_ONCE([strsignal]) if test $ac_cv_have_decl_strsignal = no; then HAVE_DECL_STRSIGNAL=0 + fi + + AC_CHECK_FUNCS([strsignal]) + if test $ac_cv_func_strsignal = yes; then + 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], + [gl_cv_func_working_strsignal], + [AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[#include +#include /* NetBSD 5.0 declares it in wrong header. */ + ]], + [[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 + REPLACE_STRSIGNAL=1 + fi + AC_LIBOBJ([strsignal]) gl_PREREQ_STRSIGNAL fi ]) # Prerequisites of lib/strsignal.c. -AC_DEFUN([gl_PREREQ_STRSIGNAL], [:]) +AC_DEFUN([gl_PREREQ_STRSIGNAL], [ + AC_REQUIRE([AC_DECL_SYS_SIGLIST]) + AC_CHECK_DECLS([_sys_siglist], [], [], [#include ]) +])