summary refs log tree commit diff
path: root/posix/sys/wait.h
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-02-24 22:31:08 +0000
committerUlrich Drepper <drepper@redhat.com>2000-02-24 22:31:08 +0000
commitc3fb74d389db31b189fbaab2370bdbb3a8f2c652 (patch)
treeb416a868d939001c63c1c1d103798550d9302730 /posix/sys/wait.h
parent230232e5f8aec363bbbab90b52fd21e046fee0e9 (diff)
downloadglibc-c3fb74d389db31b189fbaab2370bdbb3a8f2c652.tar.gz
glibc-c3fb74d389db31b189fbaab2370bdbb3a8f2c652.tar.xz
glibc-c3fb74d389db31b189fbaab2370bdbb3a8f2c652.zip
Update.
	* posix/sys/wait.h: Handle definitions duplicated in stdlib.h
	correctly.
	* stdlib/stdlib.h: Handle definition of wait macros correctly.
Diffstat (limited to 'posix/sys/wait.h')
-rw-r--r--posix/sys/wait.h44
1 files changed, 22 insertions, 22 deletions
diff --git a/posix/sys/wait.h b/posix/sys/wait.h
index cccbcb8931..81b0eb429d 100644
--- a/posix/sys/wait.h
+++ b/posix/sys/wait.h
@@ -34,61 +34,61 @@ typedef __pid_t pid_t;
 # define __pid_t_defined
 #endif
 
+/* These macros could also be defined int <stdlib.h>.  */
+#ifndef _STDLIB_H
 /* This will define the `W*' macros for the flag
    bits to `waitpid', `wait3', and `wait4'.  */
-#include <bits/waitflags.h>
+# include <bits/waitflags.h>
 
-#ifdef	__USE_BSD
+# ifdef	__USE_BSD
 
 /* Lots of hair to allow traditional BSD use of `union wait'
    as well as POSIX.1 use of `int' for the status word.  */
 
-# if defined __GNUC__ && !defined __cplusplus
-#  define __WAIT_INT(status)						      \
+#  if defined __GNUC__ && !defined __cplusplus
+#   define __WAIT_INT(status)						      \
   (__extension__ ({ union { __typeof(status) __in; int __i; } __u;	      \
 		    __u.__in = (status); __u.__i; }))
-# else
-#  define __WAIT_INT(status)	(*(int *) &(status))
-# endif
+#  else
+#   define __WAIT_INT(status)	(*(int *) &(status))
+#  endif
 
 /* This is the type of the argument to `wait'.  The funky union
    causes redeclarations with ether `int *' or `union wait *' to be
    allowed without complaint.  __WAIT_STATUS_DEFN is the type used in
    the actual function definitions.  */
 
-# if !defined __GNUC__ || __GNUC__ < 2 || defined __cplusplus
-#  define __WAIT_STATUS		void *
-#  define __WAIT_STATUS_DEFN	void *
-# else
+#  if !defined __GNUC__ || __GNUC__ < 2 || defined __cplusplus
+#   define __WAIT_STATUS		void *
+#   define __WAIT_STATUS_DEFN	void *
+#  else
 /* This works in GCC 2.6.1 and later.  */
 typedef union
   {
     union wait *__uptr;
     int *__iptr;
   } __WAIT_STATUS __attribute__ ((__transparent_union__));
-#  define __WAIT_STATUS_DEFN	int *
-# endif
+#   define __WAIT_STATUS_DEFN	int *
+#  endif
 
-#else /* Don't use BSD.  */
+# else /* Don't use BSD.  */
 
-# define __WAIT_INT(status)	(status)
-# define __WAIT_STATUS		int *
-# define __WAIT_STATUS_DEFN	int *
+#  define __WAIT_INT(status)	(status)
+#  define __WAIT_STATUS		int *
+#  define __WAIT_STATUS_DEFN	int *
 
-#endif /* Use BSD.  */
+# endif /* Use BSD.  */
 
 /* This will define all the `__W*' macros.  */
-#include <bits/waitstatus.h>
+# include <bits/waitstatus.h>
 
-/* These macros could also be defined int <stdlib.h>.  */
-#ifndef WEXITSTATUS
 # define WEXITSTATUS(status)	__WEXITSTATUS(__WAIT_INT(status))
 # define WTERMSIG(status)	__WTERMSIG(__WAIT_INT(status))
 # define WSTOPSIG(status)	__WSTOPSIG(__WAIT_INT(status))
 # define WIFEXITED(status)	__WIFEXITED(__WAIT_INT(status))
 # define WIFSIGNALED(status)	__WIFSIGNALED(__WAIT_INT(status))
 # define WIFSTOPPED(status)	__WIFSTOPPED(__WAIT_INT(status))
-#endif
+#endif	/* <stdlib.h> not included.  */
 
 #ifdef	__USE_BSD
 # define WCOREFLAG		__WCOREFLAG