summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2015-03-11 22:58:32 +0100
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2015-03-12 14:20:50 +0100
commitc3ddc18409b71db9e2fc863a7ff94a89b3c316ce (patch)
tree5d00439592579331cc8315f939e2a0f8ad4b6bde
parent8e5113112ae7d3402e2afb01c8cee18d3beb0f2e (diff)
spawn.h: Fix !_GNU_SOURCE compilation
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
-rw-r--r--include/spawn.h24
1 files changed, 15 insertions, 9 deletions
diff --git a/include/spawn.h b/include/spawn.h
index 95fff356f..3de375b41 100644
--- a/include/spawn.h
+++ b/include/spawn.h
@@ -66,15 +66,6 @@ typedef struct
# define POSIX_SPAWN_USEVFORK 0x40
#endif
-
-#define __POSIX_SPAWN_MASK (POSIX_SPAWN_RESETIDS \
- | POSIX_SPAWN_SETPGROUP \
- | POSIX_SPAWN_SETSIGDEF \
- | POSIX_SPAWN_SETSIGMASK \
- | POSIX_SPAWN_SETSCHEDPARAM \
- | POSIX_SPAWN_SETSCHEDULER \
- | POSIX_SPAWN_USEVFORK)
-
__BEGIN_DECLS
/* Spawn a new process executing PATH with the attributes describes in *ATTRP.
@@ -170,12 +161,27 @@ static inline
int posix_spawnattr_setflags (posix_spawnattr_t *_attr,
short int __flags)
{
+#ifdef POSIX_SPAWN_USEVFORK
+# define __POSIX_SPAWN_USEVFORK POSIX_SPAWN_USEVFORK
+#else
+# define __POSIX_SPAWN_USEVFORK 0
+#endif
+#define __POSIX_SPAWN_MASK (POSIX_SPAWN_RESETIDS \
+ | POSIX_SPAWN_SETPGROUP \
+ | POSIX_SPAWN_SETSIGDEF \
+ | POSIX_SPAWN_SETSIGMASK \
+ | POSIX_SPAWN_SETSCHEDPARAM \
+ | POSIX_SPAWN_SETSCHEDULER \
+ | __POSIX_SPAWN_USEVFORK)
+
/* Check no invalid bits are set. */
if (__flags & ~__POSIX_SPAWN_MASK)
return EINVAL;
_attr->__flags = __flags;
return 0;
+#undef __POSIX_SPAWN_USEVFORK
+#undef __POSIX_SPAWN_MASK
}
/* Get process group ID from the attribute structure. */