Hash :
b781b33a
Author :
Date :
2011-09-24T01:07:22
sigprocmask: Avoid crashes through signal() on MSVC 9. * lib/sigprocmask.c: Include msvc-inval.h. (signal_nothrow): New function. (signal): Redefine it. * m4/signalblocking.m4 (gl_PREREQ_SIGPROCMASK): Require AC_C_INLINE. * modules/sigprocmask (Depends-on): Add msvc-inval. * doc/posix-functions/signal.texi: Mention the problem on MSVC.
# signalblocking.m4 serial 13
dnl Copyright (C) 2001-2002, 2006-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.
# Determine available signal blocking primitives. Three different APIs exist:
# 1) POSIX: sigemptyset, sigaddset, sigprocmask
# 2) SYSV: sighold, sigrelse
# 3) BSD: sigblock, sigsetmask
# For simplicity, here we check only for the POSIX signal blocking.
AC_DEFUN([gl_SIGNALBLOCKING],
[
AC_REQUIRE([gl_SIGNAL_H_DEFAULTS])
AC_REQUIRE([gl_CHECK_TYPE_SIGSET_T])
if test $gl_cv_type_sigset_t = yes; then
AC_CHECK_FUNC([sigprocmask], [gl_cv_func_sigprocmask=1])
fi
if test -z "$gl_cv_func_sigprocmask"; then
HAVE_POSIX_SIGNALBLOCKING=0
fi
])
# Prerequisites of lib/sigprocmask.c.
AC_DEFUN([gl_PREREQ_SIGPROCMASK], [
AC_REQUIRE([AC_C_INLINE])
])