changeset 30270:84a08c4179ea

Use the system's values, rather than overriding them by ours.
author Bruno Haible <bruno@clisp.org>
date Sun, 05 Oct 2008 13:47:45 +0200
parents a7ac99c01f80
children f3f743668c73
files ChangeLog lib/spawn.in.h
diffstat 2 files changed, 32 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Sun Oct 05 13:00:23 2008 +0200
+++ b/ChangeLog	Sun Oct 05 13:47:45 2008 +0200
@@ -1,3 +1,9 @@
+2008-10-05  Bruno Haible  <bruno@clisp.org>
+
+	* 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  <meyering@redhat.com>
 
 	bootstrap: check for AC_PROG_LIBTOOL as well as AM_PROG_LIBTOOL
--- a/lib/spawn.in.h	Sun Oct 05 13:00:23 2008 +0200
+++ b/lib/spawn.in.h	Sun Oct 05 13:47:45 2008 +0200
@@ -97,21 +97,32 @@
 
 
 /* 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