mirror of
https://git.savannah.gnu.org/git/gnulib.git
synced 2025-08-17 12:41:05 +03:00
signal, spawn: use link warnings
These modules depended on link-warning, then didn't use it. * lib/signal.in.h (sigset_t): Make unconditional. (sigismember, sigemptyset, sigaddset, sigdelset, sigfillset) (sigpending, sigprocmask, sigaction): Add link warnings. * lib/spawn.in.h (posix_spawn, posix_spawnp, posix_spawnattr_init) (posix_spawnattr_destroy, posix_spawnattr_getsigdefault) (posix_spawnattr_setsigdefault, posix_spawnattr_getsigmask) (posix_spawnattr_setsigmask, posix_spawnattr_getflags) (posix_spawnattr_setflags, posix_spawnattr_getpgroup) (posix_spawnattr_setpgroup, posix_spawnattr_getschedpolicy) (posix_spawnattr_setschedpolicy, posix_spawnattr_getschedparam) (posix_spawnattr_setschedparam, posix_spawn_file_actions_init) (posix_spawn_file_actions_destroy) (posix_spawn_file_actions_addopen) (posix_spawn_file_actions_addclose) (posix_spawwn_file_actions_adddup2): Likewise. * m4/signal_h.m4 (gl_SIGNAL_H): Guarantee uid_t. * tests/test-signal.c (main): Enhance test. Signed-off-by: Eric Blake <ebb9@byu.net>
This commit is contained in:
21
ChangeLog
21
ChangeLog
@@ -1,3 +1,24 @@
|
||||
2009-12-31 Eric Blake <ebb9@byu.net>
|
||||
|
||||
signal, spawn: use link warnings
|
||||
* lib/signal.in.h (sigset_t): Make unconditional.
|
||||
(sigismember, sigemptyset, sigaddset, sigdelset, sigfillset)
|
||||
(sigpending, sigprocmask, sigaction): Add link warnings.
|
||||
* lib/spawn.in.h (posix_spawn, posix_spawnp, posix_spawnattr_init)
|
||||
(posix_spawnattr_destroy, posix_spawnattr_getsigdefault)
|
||||
(posix_spawnattr_setsigdefault, posix_spawnattr_getsigmask)
|
||||
(posix_spawnattr_setsigmask, posix_spawnattr_getflags)
|
||||
(posix_spawnattr_setflags, posix_spawnattr_getpgroup)
|
||||
(posix_spawnattr_setpgroup, posix_spawnattr_getschedpolicy)
|
||||
(posix_spawnattr_setschedpolicy, posix_spawnattr_getschedparam)
|
||||
(posix_spawnattr_setschedparam, posix_spawn_file_actions_init)
|
||||
(posix_spawn_file_actions_destroy)
|
||||
(posix_spawn_file_actions_addopen)
|
||||
(posix_spawn_file_actions_addclose)
|
||||
(posix_spawwn_file_actions_adddup2): Likewise.
|
||||
* m4/signal_h.m4 (gl_SIGNAL_H): Guarantee uid_t.
|
||||
* tests/test-signal.c (main): Enhance test.
|
||||
|
||||
2009-12-31 Eric Blake <ebb9@byu.net>
|
||||
|
||||
spawn: improve wrapper support
|
||||
|
105
lib/signal.in.h
105
lib/signal.in.h
@@ -52,6 +52,11 @@ typedef int rpl_sig_atomic_t;
|
||||
# define sig_atomic_t rpl_sig_atomic_t
|
||||
#endif
|
||||
|
||||
/* A set or mask of signals. */
|
||||
#if !@HAVE_SIGSET_T@
|
||||
typedef unsigned int sigset_t;
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
@@ -68,21 +73,17 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
#if !@HAVE_POSIX_SIGNALBLOCKING@
|
||||
#if @GNULIB_SIGPROCMASK@
|
||||
# if !@HAVE_POSIX_SIGNALBLOCKING@
|
||||
|
||||
/* Maximum signal number + 1. */
|
||||
# ifndef NSIG
|
||||
# define NSIG 32
|
||||
# endif
|
||||
# ifndef NSIG
|
||||
# define NSIG 32
|
||||
# endif
|
||||
|
||||
/* This code supports only 32 signals. */
|
||||
typedef int verify_NSIG_constraint[2 * (NSIG <= 32) - 1];
|
||||
|
||||
/* 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) _GL_ARG_NONNULL ((1));
|
||||
|
||||
@@ -106,31 +107,69 @@ extern int sigpending (sigset_t *set) _GL_ARG_NONNULL ((1));
|
||||
combining it with *SET as indicated in OPERATION.
|
||||
In this implementation, you are not allowed to change a signal handler
|
||||
while the signal is blocked. */
|
||||
# define SIG_BLOCK 0 /* blocked_set = blocked_set | *set; */
|
||||
# define SIG_SETMASK 1 /* blocked_set = *set; */
|
||||
# define SIG_UNBLOCK 2 /* blocked_set = blocked_set & ~*set; */
|
||||
# define SIG_BLOCK 0 /* blocked_set = blocked_set | *set; */
|
||||
# define SIG_SETMASK 1 /* blocked_set = *set; */
|
||||
# define SIG_UNBLOCK 2 /* blocked_set = blocked_set & ~*set; */
|
||||
extern int sigprocmask (int operation, const sigset_t *set, sigset_t *old_set);
|
||||
|
||||
# define signal rpl_signal
|
||||
# define signal rpl_signal
|
||||
/* Install the handler FUNC for signal SIG, and return the previous
|
||||
handler. */
|
||||
extern void (*signal (int sig, void (*func) (int))) (int);
|
||||
|
||||
# if GNULIB_defined_SIGPIPE
|
||||
# if GNULIB_defined_SIGPIPE
|
||||
|
||||
/* Raise signal SIG. */
|
||||
# undef raise
|
||||
# define raise rpl_raise
|
||||
# undef raise
|
||||
# define raise rpl_raise
|
||||
extern int raise (int sig);
|
||||
|
||||
# endif
|
||||
# endif
|
||||
|
||||
#endif /* !@HAVE_POSIX_SIGNALBLOCKING@ */
|
||||
# endif /* !@HAVE_POSIX_SIGNALBLOCKING@ */
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef sigaddset
|
||||
# define sigaddset(s,n) \
|
||||
(GL_LINK_WARNING ("sigaddset is unportable - " \
|
||||
"use gnulib module sigprocmask for portability"), \
|
||||
sigaddset (s, n))
|
||||
# undef sigdelset
|
||||
# define sigdelset(s,n) \
|
||||
(GL_LINK_WARNING ("sigdelset is unportable - " \
|
||||
"use gnulib module sigprocmask for portability"), \
|
||||
sigdelset (s, n))
|
||||
# undef sigemptyset
|
||||
# define sigemptyset(s) \
|
||||
(GL_LINK_WARNING ("sigemptyset is unportable - " \
|
||||
"use gnulib module sigprocmask for portability"), \
|
||||
sigemptyset (s))
|
||||
# undef sigfillset
|
||||
# define sigfillset(s) \
|
||||
(GL_LINK_WARNING ("sigfillset is unportable - " \
|
||||
"use gnulib module sigprocmask for portability"), \
|
||||
sigfillset (s))
|
||||
# undef sigismember
|
||||
# define sigismember(s,n) \
|
||||
(GL_LINK_WARNING ("sigismember is unportable - " \
|
||||
"use gnulib module sigprocmask for portability"), \
|
||||
sigismember (s, n))
|
||||
# undef sigpending
|
||||
# define sigpending(s) \
|
||||
(GL_LINK_WARNING ("sigpending is unportable - " \
|
||||
"use gnulib module sigprocmask for portability"), \
|
||||
sigpending (s))
|
||||
# undef sigprocmask
|
||||
# define sigprocmask(h,s,o) \
|
||||
(GL_LINK_WARNING ("sigprocmask is unportable - " \
|
||||
"use gnulib module sigprocmask for portability"), \
|
||||
sigprocmask (h, s, o))
|
||||
#endif /* @GNULIB_SIGPROCMASK@ */
|
||||
|
||||
|
||||
#if !@HAVE_SIGACTION@
|
||||
#if @GNULIB_SIGACTION@
|
||||
# if !@HAVE_SIGACTION@
|
||||
|
||||
# if !@HAVE_SIGINFO_T@
|
||||
# if !@HAVE_SIGINFO_T@
|
||||
/* Present to allow compilation, but unsupported by gnulib. */
|
||||
union sigval
|
||||
{
|
||||
@@ -152,7 +191,7 @@ struct siginfo_t
|
||||
union sigval si_value;
|
||||
};
|
||||
typedef struct siginfo_t siginfo_t;
|
||||
# endif /* !@HAVE_SIGINFO_T@ */
|
||||
# endif /* !@HAVE_SIGINFO_T@ */
|
||||
|
||||
/* We assume that platforms which lack the sigaction() function also lack
|
||||
the 'struct sigaction' type, and vice versa. */
|
||||
@@ -172,22 +211,28 @@ struct sigaction
|
||||
/* Not all POSIX flags are supported. */
|
||||
int sa_flags;
|
||||
};
|
||||
# define sa_handler _sa_func._sa_handler
|
||||
# define sa_sigaction _sa_func._sa_sigaction
|
||||
# define sa_handler _sa_func._sa_handler
|
||||
# define sa_sigaction _sa_func._sa_sigaction
|
||||
/* Unsupported flags are not present. */
|
||||
# define SA_RESETHAND 1
|
||||
# define SA_NODEFER 2
|
||||
# define SA_RESTART 4
|
||||
# define SA_RESETHAND 1
|
||||
# define SA_NODEFER 2
|
||||
# define SA_RESTART 4
|
||||
|
||||
extern int sigaction (int, const struct sigaction *restrict,
|
||||
struct sigaction *restrict);
|
||||
|
||||
#elif !@HAVE_STRUCT_SIGACTION_SA_SIGACTION@
|
||||
# elif !@HAVE_STRUCT_SIGACTION_SA_SIGACTION@
|
||||
|
||||
# define sa_sigaction sa_handler
|
||||
|
||||
#endif /* !@HAVE_SIGACTION@, !@HAVE_STRUCT_SIGACTION_SA_SIGACTION@ */
|
||||
# define sa_sigaction sa_handler
|
||||
|
||||
# endif /* !@HAVE_SIGACTION@, !@HAVE_STRUCT_SIGACTION_SA_SIGACTION@ */
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef sigaction
|
||||
# define sigaction(s,a,o) \
|
||||
(GL_LINK_WARNING ("sigaction is unportable - " \
|
||||
"use gnulib module sigaction for portability"), \
|
||||
sigaction (s, a, o))
|
||||
#endif
|
||||
|
||||
/* Some systems don't have SA_NODEFER. */
|
||||
#ifndef SA_NODEFER
|
||||
|
120
lib/spawn.in.h
120
lib/spawn.in.h
@@ -156,6 +156,12 @@ extern int posix_spawn (pid_t *_Restrict_ __pid,
|
||||
char *const envp[_Restrict_arr_])
|
||||
_GL_ARG_NONNULL ((2, 5, 6));
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef posix_spawn
|
||||
# define posix_spawn(a,b,c,d,e,f) \
|
||||
(GL_LINK_WARNING ("posix_spawn is unportable - " \
|
||||
"use gnulib module posix_spawn for portability"), \
|
||||
posix_spawn (a, b, c, d, e, f))
|
||||
#endif
|
||||
|
||||
#if @GNULIB_POSIX_SPAWNP@
|
||||
@@ -173,6 +179,12 @@ extern int posix_spawnp (pid_t *__pid, const char *__file,
|
||||
char *const argv[], char *const envp[])
|
||||
_GL_ARG_NONNULL ((2, 5, 6));
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef posix_spawnp
|
||||
# define posix_spawnp(a,b,c,d,e,f) \
|
||||
(GL_LINK_WARNING ("posix_spawnp is unportable - " \
|
||||
"use gnulib module posix_spawnp for portability"), \
|
||||
posix_spawnp (a, b, c, d, e, f))
|
||||
#endif
|
||||
|
||||
|
||||
@@ -185,6 +197,12 @@ extern int posix_spawnp (pid_t *__pid, const char *__file,
|
||||
extern int posix_spawnattr_init (posix_spawnattr_t *__attr)
|
||||
__THROW _GL_ARG_NONNULL ((1));
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef posix_spawnattr_init
|
||||
# define posix_spawnattr_init(a) \
|
||||
(GL_LINK_WARNING ("posix_spawnattr_init is unportable - " \
|
||||
"use gnulib module posix_spawnattr_init for portability"), \
|
||||
posix_spawnattr_init (a))
|
||||
#endif
|
||||
|
||||
#if @GNULIB_POSIX_SPAWNATTR_DESTROY@
|
||||
@@ -196,6 +214,12 @@ extern int posix_spawnattr_init (posix_spawnattr_t *__attr)
|
||||
extern int posix_spawnattr_destroy (posix_spawnattr_t *__attr)
|
||||
__THROW _GL_ARG_NONNULL ((1));
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef posix_spawnattr_destroy
|
||||
# define posix_spawnattr_destroy(a) \
|
||||
(GL_LINK_WARNING ("posix_spawnattr_destroy is unportable - " \
|
||||
"use gnulib module posix_spawnattr_destroy for portability"), \
|
||||
posix_spawnattr_destroy (a))
|
||||
#endif
|
||||
|
||||
#if @GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT@
|
||||
@@ -209,6 +233,12 @@ extern int posix_spawnattr_getsigdefault (const posix_spawnattr_t *_Restrict_ __
|
||||
sigset_t *_Restrict_ __sigdefault)
|
||||
__THROW _GL_ARG_NONNULL ((1, 2));
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef posix_spawnattr_getsigdefault
|
||||
# define posix_spawnattr_getsigdefault(a, b) \
|
||||
(GL_LINK_WARNING ("posix_spawnattr_getsigdefault is unportable - " \
|
||||
"use gnulib module posix_spawnattr_getsigdefault for portability"), \
|
||||
posix_spawnattr_getsigdefault (a, b))
|
||||
#endif
|
||||
|
||||
#if @GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT@
|
||||
@@ -221,6 +251,12 @@ extern int posix_spawnattr_setsigdefault (posix_spawnattr_t *_Restrict_ __attr,
|
||||
const sigset_t *_Restrict_ __sigdefault)
|
||||
__THROW _GL_ARG_NONNULL ((1, 2));
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef posix_spawnattr_setsigdefault
|
||||
# define posix_spawnattr_setsigdefault(a, b) \
|
||||
(GL_LINK_WARNING ("posix_spawnattr_setsigdefault is unportable - " \
|
||||
"use gnulib module posix_spawnattr_setsigdefault for portability"), \
|
||||
posix_spawnattr_setsigdefault (a, b))
|
||||
#endif
|
||||
|
||||
#if @GNULIB_POSIX_SPAWNATTR_GETSIGMASK@
|
||||
@@ -233,6 +269,12 @@ extern int posix_spawnattr_getsigmask (const posix_spawnattr_t *_Restrict_ __att
|
||||
sigset_t *_Restrict_ __sigmask)
|
||||
__THROW _GL_ARG_NONNULL ((1, 2));
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef posix_spawnattr_getsigmask
|
||||
# define posix_spawnattr_getsigmask(a, b) \
|
||||
(GL_LINK_WARNING ("posix_spawnattr_getsigmask is unportable - " \
|
||||
"use gnulib module posix_spawnattr_getsigmask for portability"), \
|
||||
posix_spawnattr_getsigmask (a, b))
|
||||
#endif
|
||||
|
||||
#if @GNULIB_POSIX_SPAWNATTR_SETSIGMASK@
|
||||
@@ -245,6 +287,12 @@ extern int posix_spawnattr_setsigmask (posix_spawnattr_t *_Restrict_ __attr,
|
||||
const sigset_t *_Restrict_ __sigmask)
|
||||
__THROW _GL_ARG_NONNULL ((1, 2));
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef posix_spawnattr_setsigmask
|
||||
# define posix_spawnattr_setsigmask(a, b) \
|
||||
(GL_LINK_WARNING ("posix_spawnattr_setsigmask is unportable - " \
|
||||
"use gnulib module posix_spawnattr_setsigmask for portability"), \
|
||||
posix_spawnattr_setsigmask (a, b))
|
||||
#endif
|
||||
|
||||
#if @GNULIB_POSIX_SPAWNATTR_GETFLAGS@
|
||||
@@ -257,6 +305,12 @@ extern int posix_spawnattr_getflags (const posix_spawnattr_t *_Restrict_ __attr,
|
||||
short int *_Restrict_ __flags)
|
||||
__THROW _GL_ARG_NONNULL ((1, 2));
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef posix_spawnattr_getsigdefault
|
||||
# define posix_spawnattr_getsigdefault(a, b) \
|
||||
(GL_LINK_WARNING ("posix_spawnattr_getsigdefault is unportable - " \
|
||||
"use gnulib module posix_spawnattr_getsigdefault for portability"), \
|
||||
posix_spawnattr_getsigdefault (a, b))
|
||||
#endif
|
||||
|
||||
#if @GNULIB_POSIX_SPAWNATTR_SETFLAGS@
|
||||
@@ -269,6 +323,12 @@ extern int posix_spawnattr_setflags (posix_spawnattr_t *__attr,
|
||||
short int __flags)
|
||||
__THROW _GL_ARG_NONNULL ((1));
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef posix_spawnattr_getflags
|
||||
# define posix_spawnattr_getflags(a, b) \
|
||||
(GL_LINK_WARNING ("posix_spawnattr_getflags is unportable - " \
|
||||
"use gnulib module posix_spawnattr_getflags for portability"), \
|
||||
posix_spawnattr_getflags (a, b))
|
||||
#endif
|
||||
|
||||
#if @GNULIB_POSIX_SPAWNATTR_GETPGROUP@
|
||||
@@ -281,6 +341,12 @@ extern int posix_spawnattr_getpgroup (const posix_spawnattr_t *_Restrict_ __attr
|
||||
pid_t *_Restrict_ __pgroup)
|
||||
__THROW _GL_ARG_NONNULL ((1, 2));
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef posix_spawnattr_setflags
|
||||
# define posix_spawnattr_setflags(a, b) \
|
||||
(GL_LINK_WARNING ("posix_spawnattr_setflags is unportable - " \
|
||||
"use gnulib module posix_spawnattr_setflags for portability"), \
|
||||
posix_spawnattr_setflags (a, b))
|
||||
#endif
|
||||
|
||||
#if @GNULIB_POSIX_SPAWNATTR_SETPGROUP@
|
||||
@@ -305,6 +371,12 @@ extern int posix_spawnattr_getschedpolicy (const posix_spawnattr_t *_Restrict_ _
|
||||
int *_Restrict_ __schedpolicy)
|
||||
__THROW _GL_ARG_NONNULL ((1, 2));
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef posix_spawnattr_getschedpolicy
|
||||
# define posix_spawnattr_getschedpolicy(a, b) \
|
||||
(GL_LINK_WARNING ("posix_spawnattr_getschedpolicy is unportable - " \
|
||||
"use gnulib module posix_spawnattr_getschedpolicy for portability"), \
|
||||
posix_spawnattr_getschedpolicy (a, b))
|
||||
#endif
|
||||
|
||||
#if @GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY@
|
||||
@@ -317,6 +389,12 @@ extern int posix_spawnattr_setschedpolicy (posix_spawnattr_t *__attr,
|
||||
int __schedpolicy)
|
||||
__THROW _GL_ARG_NONNULL ((1));
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef posix_spawnattr_setschedpolicy
|
||||
# define posix_spawnattr_setschedpolicy(a, b) \
|
||||
(GL_LINK_WARNING ("posix_spawnattr_setschedpolicy is unportable - " \
|
||||
"use gnulib module posix_spawnattr_setschedpolicy for portability"), \
|
||||
posix_spawnattr_setschedpolicy (a, b))
|
||||
#endif
|
||||
|
||||
#if @GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM@
|
||||
@@ -329,6 +407,12 @@ extern int posix_spawnattr_getschedparam (const posix_spawnattr_t *_Restrict_ __
|
||||
struct sched_param *_Restrict_ __schedparam)
|
||||
__THROW _GL_ARG_NONNULL ((1, 2));
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef posix_spawnattr_getschedparam
|
||||
# define posix_spawnattr_getschedparam(a, b) \
|
||||
(GL_LINK_WARNING ("posix_spawnattr_getschedparam is unportable - " \
|
||||
"use gnulib module posix_spawnattr_getschedparam for portability"), \
|
||||
posix_spawnattr_getschedparam (a, b))
|
||||
#endif
|
||||
|
||||
#if @GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM@
|
||||
@@ -341,6 +425,12 @@ extern int posix_spawnattr_setschedparam (posix_spawnattr_t *_Restrict_ __attr,
|
||||
const struct sched_param *_Restrict_ __schedparam)
|
||||
__THROW _GL_ARG_NONNULL ((1, 2));
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef posix_spawnattr_setschedparam
|
||||
# define posix_spawnattr_setschedparam(a, b) \
|
||||
(GL_LINK_WARNING ("posix_spawnattr_setschedparam is unportable - " \
|
||||
"use gnulib module posix_spawnattr_setschedparam for portability"), \
|
||||
posix_spawnattr_setschedparam (a, b))
|
||||
#endif
|
||||
|
||||
|
||||
@@ -353,6 +443,12 @@ extern int posix_spawnattr_setschedparam (posix_spawnattr_t *_Restrict_ __attr,
|
||||
extern int posix_spawn_file_actions_init (posix_spawn_file_actions_t *__file_actions)
|
||||
__THROW _GL_ARG_NONNULL ((1));
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef posix_spawn_file_actions_init
|
||||
# define posix_spawn_file_actions_init(a) \
|
||||
(GL_LINK_WARNING ("posix_spawn_file_actions_init is unportable - " \
|
||||
"use gnulib module posix_spawn_file_actions_init for portability"), \
|
||||
posix_spawn_file_actions_init (a))
|
||||
#endif
|
||||
|
||||
#if @GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY@
|
||||
@@ -364,6 +460,12 @@ extern int posix_spawn_file_actions_init (posix_spawn_file_actions_t *__file_act
|
||||
extern int posix_spawn_file_actions_destroy (posix_spawn_file_actions_t *__file_actions)
|
||||
__THROW _GL_ARG_NONNULL ((1));
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef posix_spawn_file_actions_destroy
|
||||
# define posix_spawn_file_actions_destroy(a) \
|
||||
(GL_LINK_WARNING ("posix_spawn_file_actions_destroy is unportable - " \
|
||||
"use gnulib module posix_spawn_file_actions_destroy for portability"), \
|
||||
posix_spawn_file_actions_destroy (a))
|
||||
#endif
|
||||
|
||||
#if @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN@
|
||||
@@ -379,6 +481,12 @@ extern int posix_spawn_file_actions_addopen (posix_spawn_file_actions_t *_Restri
|
||||
int __oflag, mode_t __mode)
|
||||
__THROW _GL_ARG_NONNULL ((1, 3));
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef posix_spawn_file_actions_addopen
|
||||
# define posix_spawn_file_actions_addopen(a, b, c, d, e) \
|
||||
(GL_LINK_WARNING ("posix_spawn_file_actions_addopen is unportable - " \
|
||||
"use gnulib module posix_spawn_file_actions_addopen for portability"), \
|
||||
posix_spawn_file_actions_addopen (a, b, c, d, e))
|
||||
#endif
|
||||
|
||||
#if @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE@
|
||||
@@ -392,6 +500,12 @@ extern int posix_spawn_file_actions_addclose (posix_spawn_file_actions_t *__file
|
||||
int __fd)
|
||||
__THROW _GL_ARG_NONNULL ((1));
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef posix_spawn_file_actions_addclose
|
||||
# define posix_spawn_file_actions_addclose(a,b) \
|
||||
(GL_LINK_WARNING ("posix_spawn_file_actions_addclose is unportable - " \
|
||||
"use gnulib module posix_spawn_file_actions_addclose for portability"), \
|
||||
posix_spawn_file_actions_addclose (a, b))
|
||||
#endif
|
||||
|
||||
#if @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2@
|
||||
@@ -405,6 +519,12 @@ extern int posix_spawn_file_actions_adddup2 (posix_spawn_file_actions_t *__file_
|
||||
int __fd, int __newfd)
|
||||
__THROW _GL_ARG_NONNULL ((1));
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef posix_spawn_file_actions_adddup2
|
||||
# define posix_spawn_file_actions_adddup2(a,b,c) \
|
||||
(GL_LINK_WARNING ("posix_spawn_file_actions_adddup2 is unportable - " \
|
||||
"use gnulib module posix_spawn_file_actions_adddup2 for portability"), \
|
||||
posix_spawn_file_actions_adddup2 (a, b, c))
|
||||
#endif
|
||||
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# signal_h.m4 serial 7
|
||||
# signal_h.m4 serial 8
|
||||
dnl Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
@@ -14,6 +14,7 @@ AC_DEFUN([gl_SIGNAL_H],
|
||||
[HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=0], [[
|
||||
#include <signal.h>
|
||||
]])
|
||||
AC_REQUIRE([AC_TYPE_UID_T])
|
||||
])
|
||||
|
||||
AC_DEFUN([gl_SIGNAL_MODULE_INDICATOR],
|
||||
|
@@ -20,10 +20,109 @@
|
||||
|
||||
#include <signal.h>
|
||||
|
||||
volatile sig_atomic_t s;
|
||||
/* Check for required types. */
|
||||
struct
|
||||
{
|
||||
size_t a;
|
||||
uid_t b;
|
||||
volatile sig_atomic_t c;
|
||||
sigset_t d;
|
||||
pid_t e;
|
||||
#if 0
|
||||
/* Not guaranteed by gnulib. */
|
||||
pthread_t f;
|
||||
struct timespec g;
|
||||
#endif
|
||||
} s;
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
return s;
|
||||
switch (0)
|
||||
{
|
||||
/* The following are guaranteed by C. */
|
||||
case 0:
|
||||
case SIGABRT:
|
||||
case SIGFPE:
|
||||
case SIGILL:
|
||||
case SIGINT:
|
||||
case SIGSEGV:
|
||||
case SIGTERM:
|
||||
/* The following is guaranteed by gnulib. */
|
||||
#if GNULIB_SIGPIPE || defined SIGPIPE
|
||||
case SIGPIPE:
|
||||
#endif
|
||||
/* Ensure no conflict with other standardized names. */
|
||||
#ifdef SIGALRM
|
||||
case SIGALRM:
|
||||
#endif
|
||||
#ifdef SIGBUS
|
||||
case SIGBUS:
|
||||
#endif
|
||||
#ifdef SIGCHLD
|
||||
case SIGCHLD:
|
||||
#endif
|
||||
#ifdef SIGCONT
|
||||
case SIGCONT:
|
||||
#endif
|
||||
#ifdef SIGHUP
|
||||
case SIGHUP:
|
||||
#endif
|
||||
#ifdef SIGKILL
|
||||
case SIGKILL:
|
||||
#endif
|
||||
#ifdef SIGQUIT
|
||||
case SIGQUIT:
|
||||
#endif
|
||||
#ifdef SIGSTOP
|
||||
case SIGSTOP:
|
||||
#endif
|
||||
#ifdef SIGTSTP
|
||||
case SIGTSTP:
|
||||
#endif
|
||||
#ifdef SIGTTIN
|
||||
case SIGTTIN:
|
||||
#endif
|
||||
#ifdef SIGTTOU
|
||||
case SIGTTOU:
|
||||
#endif
|
||||
#ifdef SIGUSR1
|
||||
case SIGUSR1:
|
||||
#endif
|
||||
#ifdef SIGUSR2
|
||||
case SIGUSR2:
|
||||
#endif
|
||||
#ifdef SIGSYS
|
||||
case SIGSYS:
|
||||
#endif
|
||||
#ifdef SIGTRAP
|
||||
case SIGTRAP:
|
||||
#endif
|
||||
#ifdef SIGURG
|
||||
case SIGURG:
|
||||
#endif
|
||||
#ifdef SIGVTALRM
|
||||
case SIGVTALRM:
|
||||
#endif
|
||||
#ifdef SIGXCPU
|
||||
case SIGXCPU:
|
||||
#endif
|
||||
#ifdef SIGXFSZ
|
||||
case SIGXFSZ:
|
||||
#endif
|
||||
#ifdef SIG
|
||||
case SIG:
|
||||
#endif
|
||||
/* SIGRTMIN and SIGRTMAX need not be compile-time constants. */
|
||||
#if 0
|
||||
# ifdef SIGRTMIN
|
||||
case SIGRTMIN:
|
||||
# endif
|
||||
# ifdef SIGRTMAX
|
||||
case SIGRTMAX:
|
||||
# endif
|
||||
#endif
|
||||
;
|
||||
}
|
||||
return s.a + s.b + s.c + s.e;
|
||||
}
|
||||
|
Reference in New Issue
Block a user