X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fsignal.in.h;h=5c42fe9e260fb003210e6a66e240a6bb0518a214;hb=6a9b156fdf9c71c0bbc8bb0b3aa0262df5674dda;hp=7df5d5f71b1bb9787e32f40cb453a662294e9f27;hpb=a3f953e86848ed858ed655bba12a7fbbab57f1c5;p=gnulib.git diff --git a/lib/signal.in.h b/lib/signal.in.h index 7df5d5f71..5c42fe9e2 100644 --- a/lib/signal.in.h +++ b/lib/signal.in.h @@ -1,6 +1,6 @@ /* A GNU-like . - Copyright (C) 2006-2008 Free Software Foundation, Inc. + Copyright (C) 2006-2009 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -15,6 +15,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif + #if defined __need_sig_atomic_t || defined __need_sigset_t /* Special invocation convention inside glibc header files. */ @@ -37,11 +41,31 @@ Also, mingw defines sigset_t not in , but in . */ #include +/* On AIX, sig_atomic_t already includes volatile. C99 requires that + 'volatile sig_atomic_t' ignore the extra modifier, but C89 did not. + Hence, redefine this to a non-volatile type as needed. */ +#if ! @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ +typedef int rpl_sig_atomic_t; +# undef sig_atomic_t +# define sig_atomic_t rpl_sig_atomic_t +#endif + #ifdef __cplusplus extern "C" { #endif +#if @GNULIB_SIGNAL_H_SIGPIPE@ +# ifndef SIGPIPE +/* Define SIGPIPE to a value that does not overlap with other signals. */ +# define SIGPIPE 13 +# define GNULIB_defined_SIGPIPE 1 +/* To actually use SIGPIPE, you also need the gnulib modules 'sigprocmask', + 'write', 'stdio'. */ +# endif +#endif + + #if !@HAVE_POSIX_SIGNALBLOCKING@ /* Maximum signal number + 1. */ @@ -90,8 +114,18 @@ extern int sigprocmask (int operation, const sigset_t *set, sigset_t *old_set); handler. */ extern void (*signal (int sig, void (*func) (int))) (int); +# if GNULIB_defined_SIGPIPE + +/* Raise signal SIG. */ +# undef raise +# define raise rpl_raise +extern int raise (int sig); + +# endif + #endif /* !@HAVE_POSIX_SIGNALBLOCKING@ */ + #if !@HAVE_SIGACTION@ # if !@HAVE_SIGINFO_T@ @@ -153,6 +187,12 @@ extern int sigaction (int, const struct sigaction *restrict, #endif /* !@HAVE_SIGACTION@, !@HAVE_STRUCT_SIGACTION_SA_SIGACTION@ */ +/* Some systems don't have SA_NODEFER. */ +#ifndef SA_NODEFER +# define SA_NODEFER 0 +#endif + + #ifdef __cplusplus } #endif