X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fspawn.in.h;h=d67b766ed8131d436bbf7846fb99ee5343f2b826;hb=aeb9a8a8a97f8b876a378ae4fe330f131437b348;hp=a2b0d2484580cb56fab7813c4ab753ffdfa0f139;hpb=671c9011cb6944a63f0d15f60252c31bf0ee8e9b;p=gnulib.git diff --git a/lib/spawn.in.h b/lib/spawn.in.h index a2b0d2484..d67b766ed 100644 --- a/lib/spawn.in.h +++ b/lib/spawn.in.h @@ -17,7 +17,9 @@ #ifndef _GL_SPAWN_H +#if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ +#endif /* The include_next requires a split double-inclusion guard. */ #if @HAVE_SPAWN_H@ @@ -97,21 +99,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