1
0
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:
Eric Blake
2009-12-30 14:42:41 -07:00
parent 0bf85001e7
commit 2adf9eb9d5
5 changed files with 319 additions and 33 deletions

View File

@@ -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> 2009-12-31 Eric Blake <ebb9@byu.net>
spawn: improve wrapper support spawn: improve wrapper support

View File

@@ -52,6 +52,11 @@ typedef int rpl_sig_atomic_t;
# define sig_atomic_t rpl_sig_atomic_t # define sig_atomic_t rpl_sig_atomic_t
#endif #endif
/* A set or mask of signals. */
#if !@HAVE_SIGSET_T@
typedef unsigned int sigset_t;
#endif
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
@@ -68,7 +73,8 @@ extern "C" {
#endif #endif
#if !@HAVE_POSIX_SIGNALBLOCKING@ #if @GNULIB_SIGPROCMASK@
# if !@HAVE_POSIX_SIGNALBLOCKING@
/* Maximum signal number + 1. */ /* Maximum signal number + 1. */
# ifndef NSIG # ifndef NSIG
@@ -78,11 +84,6 @@ extern "C" {
/* This code supports only 32 signals. */ /* This code supports only 32 signals. */
typedef int verify_NSIG_constraint[2 * (NSIG <= 32) - 1]; 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. */ /* Test whether a given signal is contained in a signal set. */
extern int sigismember (const sigset_t *set, int sig) _GL_ARG_NONNULL ((1)); extern int sigismember (const sigset_t *set, int sig) _GL_ARG_NONNULL ((1));
@@ -125,10 +126,48 @@ 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. */ /* Present to allow compilation, but unsupported by gnulib. */
@@ -182,12 +221,18 @@ struct sigaction
extern int sigaction (int, const struct sigaction *restrict, extern int sigaction (int, const struct sigaction *restrict,
struct sigaction *restrict); struct sigaction *restrict);
#elif !@HAVE_STRUCT_SIGACTION_SA_SIGACTION@ # elif !@HAVE_STRUCT_SIGACTION_SA_SIGACTION@
# define sa_sigaction sa_handler # define sa_sigaction sa_handler
#endif /* !@HAVE_SIGACTION@, !@HAVE_STRUCT_SIGACTION_SA_SIGACTION@ */ # 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. */ /* Some systems don't have SA_NODEFER. */
#ifndef SA_NODEFER #ifndef SA_NODEFER

View File

@@ -156,6 +156,12 @@ extern int posix_spawn (pid_t *_Restrict_ __pid,
char *const envp[_Restrict_arr_]) char *const envp[_Restrict_arr_])
_GL_ARG_NONNULL ((2, 5, 6)); _GL_ARG_NONNULL ((2, 5, 6));
# endif # 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 #endif
#if @GNULIB_POSIX_SPAWNP@ #if @GNULIB_POSIX_SPAWNP@
@@ -173,6 +179,12 @@ extern int posix_spawnp (pid_t *__pid, const char *__file,
char *const argv[], char *const envp[]) char *const argv[], char *const envp[])
_GL_ARG_NONNULL ((2, 5, 6)); _GL_ARG_NONNULL ((2, 5, 6));
# endif # 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 #endif
@@ -185,6 +197,12 @@ extern int posix_spawnp (pid_t *__pid, const char *__file,
extern int posix_spawnattr_init (posix_spawnattr_t *__attr) extern int posix_spawnattr_init (posix_spawnattr_t *__attr)
__THROW _GL_ARG_NONNULL ((1)); __THROW _GL_ARG_NONNULL ((1));
# endif # 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 #endif
#if @GNULIB_POSIX_SPAWNATTR_DESTROY@ #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) extern int posix_spawnattr_destroy (posix_spawnattr_t *__attr)
__THROW _GL_ARG_NONNULL ((1)); __THROW _GL_ARG_NONNULL ((1));
# endif # 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 #endif
#if @GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT@ #if @GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT@
@@ -209,6 +233,12 @@ extern int posix_spawnattr_getsigdefault (const posix_spawnattr_t *_Restrict_ __
sigset_t *_Restrict_ __sigdefault) sigset_t *_Restrict_ __sigdefault)
__THROW _GL_ARG_NONNULL ((1, 2)); __THROW _GL_ARG_NONNULL ((1, 2));
# endif # 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 #endif
#if @GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT@ #if @GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT@
@@ -221,6 +251,12 @@ extern int posix_spawnattr_setsigdefault (posix_spawnattr_t *_Restrict_ __attr,
const sigset_t *_Restrict_ __sigdefault) const sigset_t *_Restrict_ __sigdefault)
__THROW _GL_ARG_NONNULL ((1, 2)); __THROW _GL_ARG_NONNULL ((1, 2));
# endif # 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 #endif
#if @GNULIB_POSIX_SPAWNATTR_GETSIGMASK@ #if @GNULIB_POSIX_SPAWNATTR_GETSIGMASK@
@@ -233,6 +269,12 @@ extern int posix_spawnattr_getsigmask (const posix_spawnattr_t *_Restrict_ __att
sigset_t *_Restrict_ __sigmask) sigset_t *_Restrict_ __sigmask)
__THROW _GL_ARG_NONNULL ((1, 2)); __THROW _GL_ARG_NONNULL ((1, 2));
# endif # 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 #endif
#if @GNULIB_POSIX_SPAWNATTR_SETSIGMASK@ #if @GNULIB_POSIX_SPAWNATTR_SETSIGMASK@
@@ -245,6 +287,12 @@ extern int posix_spawnattr_setsigmask (posix_spawnattr_t *_Restrict_ __attr,
const sigset_t *_Restrict_ __sigmask) const sigset_t *_Restrict_ __sigmask)
__THROW _GL_ARG_NONNULL ((1, 2)); __THROW _GL_ARG_NONNULL ((1, 2));
# endif # 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 #endif
#if @GNULIB_POSIX_SPAWNATTR_GETFLAGS@ #if @GNULIB_POSIX_SPAWNATTR_GETFLAGS@
@@ -257,6 +305,12 @@ extern int posix_spawnattr_getflags (const posix_spawnattr_t *_Restrict_ __attr,
short int *_Restrict_ __flags) short int *_Restrict_ __flags)
__THROW _GL_ARG_NONNULL ((1, 2)); __THROW _GL_ARG_NONNULL ((1, 2));
# endif # 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 #endif
#if @GNULIB_POSIX_SPAWNATTR_SETFLAGS@ #if @GNULIB_POSIX_SPAWNATTR_SETFLAGS@
@@ -269,6 +323,12 @@ extern int posix_spawnattr_setflags (posix_spawnattr_t *__attr,
short int __flags) short int __flags)
__THROW _GL_ARG_NONNULL ((1)); __THROW _GL_ARG_NONNULL ((1));
# endif # 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 #endif
#if @GNULIB_POSIX_SPAWNATTR_GETPGROUP@ #if @GNULIB_POSIX_SPAWNATTR_GETPGROUP@
@@ -281,6 +341,12 @@ extern int posix_spawnattr_getpgroup (const posix_spawnattr_t *_Restrict_ __attr
pid_t *_Restrict_ __pgroup) pid_t *_Restrict_ __pgroup)
__THROW _GL_ARG_NONNULL ((1, 2)); __THROW _GL_ARG_NONNULL ((1, 2));
# endif # 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 #endif
#if @GNULIB_POSIX_SPAWNATTR_SETPGROUP@ #if @GNULIB_POSIX_SPAWNATTR_SETPGROUP@
@@ -305,6 +371,12 @@ extern int posix_spawnattr_getschedpolicy (const posix_spawnattr_t *_Restrict_ _
int *_Restrict_ __schedpolicy) int *_Restrict_ __schedpolicy)
__THROW _GL_ARG_NONNULL ((1, 2)); __THROW _GL_ARG_NONNULL ((1, 2));
# endif # 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 #endif
#if @GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY@ #if @GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY@
@@ -317,6 +389,12 @@ extern int posix_spawnattr_setschedpolicy (posix_spawnattr_t *__attr,
int __schedpolicy) int __schedpolicy)
__THROW _GL_ARG_NONNULL ((1)); __THROW _GL_ARG_NONNULL ((1));
# endif # 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 #endif
#if @GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM@ #if @GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM@
@@ -329,6 +407,12 @@ extern int posix_spawnattr_getschedparam (const posix_spawnattr_t *_Restrict_ __
struct sched_param *_Restrict_ __schedparam) struct sched_param *_Restrict_ __schedparam)
__THROW _GL_ARG_NONNULL ((1, 2)); __THROW _GL_ARG_NONNULL ((1, 2));
# endif # 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 #endif
#if @GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM@ #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) const struct sched_param *_Restrict_ __schedparam)
__THROW _GL_ARG_NONNULL ((1, 2)); __THROW _GL_ARG_NONNULL ((1, 2));
# endif # 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 #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) extern int posix_spawn_file_actions_init (posix_spawn_file_actions_t *__file_actions)
__THROW _GL_ARG_NONNULL ((1)); __THROW _GL_ARG_NONNULL ((1));
# endif # 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 #endif
#if @GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY@ #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) extern int posix_spawn_file_actions_destroy (posix_spawn_file_actions_t *__file_actions)
__THROW _GL_ARG_NONNULL ((1)); __THROW _GL_ARG_NONNULL ((1));
# endif # 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 #endif
#if @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN@ #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) int __oflag, mode_t __mode)
__THROW _GL_ARG_NONNULL ((1, 3)); __THROW _GL_ARG_NONNULL ((1, 3));
# endif # 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 #endif
#if @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE@ #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) int __fd)
__THROW _GL_ARG_NONNULL ((1)); __THROW _GL_ARG_NONNULL ((1));
# endif # 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 #endif
#if @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2@ #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) int __fd, int __newfd)
__THROW _GL_ARG_NONNULL ((1)); __THROW _GL_ARG_NONNULL ((1));
# endif # 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 #endif

View File

@@ -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 Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it, 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], [[ [HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=0], [[
#include <signal.h> #include <signal.h>
]]) ]])
AC_REQUIRE([AC_TYPE_UID_T])
]) ])
AC_DEFUN([gl_SIGNAL_MODULE_INDICATOR], AC_DEFUN([gl_SIGNAL_MODULE_INDICATOR],

View File

@@ -20,10 +20,109 @@
#include <signal.h> #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 int
main (void) 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;
} }