From e8641982fb2363b3d21061b7d5e5c4eeb568a6e9 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sun, 5 Oct 2008 13:47:45 +0200 Subject: [PATCH] Use the system's values, rather than overriding them by ours. --- ChangeLog | 6 ++++++ lib/spawn.in.h | 41 ++++++++++++++++++++++++++--------------- 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4f4f35c33..7bd8c48c0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-10-05 Bruno Haible + + * lib/spawn.in.h (POSIX_SPAWN_*): Use the system's values, rather than + overriding them by ours. + (POSIX_SPAWN_USEVFORK): Use the next free bit position. + 2008-10-05 Jim Meyering bootstrap: check for AC_PROG_LIBTOOL as well as AM_PROG_LIBTOOL diff --git a/lib/spawn.in.h b/lib/spawn.in.h index a2b0d2484..6976dade2 100644 --- a/lib/spawn.in.h +++ b/lib/spawn.in.h @@ -97,21 +97,32 @@ typedef struct /* Flags to be set in the `posix_spawnattr_t'. */ -#undef POSIX_SPAWN_RESETIDS -#define POSIX_SPAWN_RESETIDS 0x01 -#undef POSIX_SPAWN_SETPGROUP -#define POSIX_SPAWN_SETPGROUP 0x02 -#undef POSIX_SPAWN_SETSIGDEF -#define POSIX_SPAWN_SETSIGDEF 0x04 -#undef POSIX_SPAWN_SETSIGMASK -#define POSIX_SPAWN_SETSIGMASK 0x08 -#undef POSIX_SPAWN_SETSCHEDPARAM -#define POSIX_SPAWN_SETSCHEDPARAM 0x10 -#undef POSIX_SPAWN_SETSCHEDULER -#define POSIX_SPAWN_SETSCHEDULER 0x20 -/* A GNU extension. */ -#undef POSIX_SPAWN_USEVFORK -#define POSIX_SPAWN_USEVFORK 0x40 +#if @REPLACE_POSIX_SPAWN@ +/* Use the values from the system, for better compatibility. */ +/* But this implementation does not support AIX extensions. */ +# undef POSIX_SPAWN_FORK_HANDLERS +#else +# define POSIX_SPAWN_RESETIDS 0x01 +# define POSIX_SPAWN_SETPGROUP 0x02 +# define POSIX_SPAWN_SETSIGDEF 0x04 +# define POSIX_SPAWN_SETSIGMASK 0x08 +# define POSIX_SPAWN_SETSCHEDPARAM 0x10 +# define POSIX_SPAWN_SETSCHEDULER 0x20 +#endif +/* A GNU extension. Use the next free bit position. */ +#define POSIX_SPAWN_USEVFORK \ + ((POSIX_SPAWN_RESETIDS | (POSIX_SPAWN_RESETIDS - 1) \ + | POSIX_SPAWN_SETPGROUP | (POSIX_SPAWN_SETPGROUP - 1) \ + | POSIX_SPAWN_SETSIGDEF | (POSIX_SPAWN_SETSIGDEF - 1) \ + | POSIX_SPAWN_SETSIGMASK | (POSIX_SPAWN_SETSIGMASK - 1) \ + | POSIX_SPAWN_SETSCHEDPARAM | (POSIX_SPAWN_SETSCHEDPARAM - 1) \ + | POSIX_SPAWN_SETSCHEDULER | (POSIX_SPAWN_SETSCHEDULER - 1)) \ + + 1) +typedef int verify_POSIX_SPAWN_USEVFORK_no_overlap + [2 * (((POSIX_SPAWN_RESETIDS | POSIX_SPAWN_SETPGROUP + | POSIX_SPAWN_SETSIGDEF | POSIX_SPAWN_SETSIGMASK + | POSIX_SPAWN_SETSCHEDPARAM | POSIX_SPAWN_SETSCHEDULER) + & POSIX_SPAWN_USEVFORK) == 0) - 1]; #ifdef __cplusplus -- 2.11.0