changeset 7511:c076b72ddb2f

Use the system's sigset_t if present.
author Bruno Haible <bruno@clisp.org>
date Tue, 17 Oct 2006 12:43:12 +0000
parents 6c0cb059c9ea
children ae3701c519c9
files ChangeLog lib/sigprocmask.h m4/signalblocking.m4
diffstat 3 files changed, 22 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-10-16  Bruno Haible  <bruno@clisp.org>
+
+	* m4/signalblocking.m4 (gl_PREREQ_SIGPROCMASK): Also test for sigset_t.
+	* lib/sigprocmask.h: Include <sys/types.h>.
+	(sigset_t): Use the system's definition if present.
+
 2006-10-17  Eric Blake  <ebb9@byu.net>
 
 	* lib/xvasprintf.c (includes): Assume config.h.
--- a/lib/sigprocmask.h
+++ b/lib/sigprocmask.h
@@ -20,6 +20,9 @@
 
 #if ! HAVE_POSIX_SIGNALBLOCKING
 
+/* Mingw defines sigset_t not in <signal.h>, but in <sys/types.h>.  */
+# include <sys/types.h>
+
 # include "verify.h"
 
 /* Maximum signal number + 1.  */
@@ -31,7 +34,9 @@
 verify (NSIG <= 32);
 
 /* A set or mask of signals.  */
+# if !HAVE_SIGSET_T
 typedef unsigned int sigset_t;
+# endif
 
 /* Test whether a given signal is contained in a signal set.  */
 extern int sigismember (const sigset_t *set, int sig);
--- a/m4/signalblocking.m4
+++ b/m4/signalblocking.m4
@@ -1,4 +1,4 @@
-# signalblocking.m4 serial 2 (gettext-0.15.1)
+# signalblocking.m4 serial 3 (gettext-0.15.1)
 dnl Copyright (C) 2001-2002, 2006 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -25,7 +25,16 @@
   fi
 ])
 
-# Prerequisites of lib/sigprocmask.c.
+# Prerequisites of lib/sigprocmask.h and lib/sigprocmask.c.
 AC_DEFUN([gl_PREREQ_SIGPROCMASK], [
+  AC_CHECK_TYPES([sigset_t],
+    [gl_cv_type_sigset_t=yes], [gl_cv_type_sigset_t=no],
+    [#include <signal.h>
+/* Mingw defines sigset_t not in <signal.h>, but in <sys/types.h>.  */
+#include <sys/types.h>])
+  if test $gl_cv_type_sigset_t = yes; then
+    AC_DEFUN([HAVE_SIGSET_T],
+      [Define to 1 if you lack the sigprocmask function but have the sigset_t type.])
+  fi
   AC_CHECK_FUNCS_ONCE(raise)
 ])