]> sourceware.org Git - glibc.git/commitdiff
Update.
authorUlrich Drepper <drepper@redhat.com>
Thu, 24 Feb 2000 22:31:08 +0000 (22:31 +0000)
committerUlrich Drepper <drepper@redhat.com>
Thu, 24 Feb 2000 22:31:08 +0000 (22:31 +0000)
* posix/sys/wait.h: Handle definitions duplicated in stdlib.h
correctly.
* stdlib/stdlib.h: Handle definition of wait macros correctly.

ChangeLog
posix/sys/wait.h
stdlib/stdlib.h

index e0307443122be5fb7bda482a76ef84063de33386..eed4534350cf73e3d139f9973694fa6c27ffb43d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2000-02-24  Ulrich Drepper  <drepper@redhat.com>
 
+       * posix/sys/wait.h: Handle definitions duplicated in stdlib.h
+       correctly.
+       * stdlib/stdlib.h: Handle definition of wait macros correctly.
+
        * posix/sys/wait.h: Add missing #endif.
 
        * stdlib/stdlib.h (setstate): Don't mark argument as const (yet).
index cccbcb8931b83a656cba9b6bfd661366ab1ac70a..81b0eb429d7bb5fd49488d1f14be36ce1e2d4898 100644 (file)
@@ -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
index 8857f35a204b106de33cbfc33dd1b2840b0cad0e..604ab64f78748629b0c1f769176104818cd37d12 100644 (file)
@@ -37,60 +37,58 @@ __BEGIN_DECLS
 #ifndef __need_malloc_and_calloc
 #define        _STDLIB_H       1
 
-#ifdef __USE_XOPEN
+#if defined __USE_XOPEN && !defined _SYS_WAIT_H
 /* XPG requires a few symbols from <sys/wait.h> being defined.  */
 # include <bits/waitflags.h>
 # include <bits/waitstatus.h>
 
-# ifndef WEXITSTATUS
-#  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.  */
 
 /* Define the macros <sys/wait.h> also would define this way.  */
-#  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
+# 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 /* X/Open and <sys/wait.h> not included.  */
 
 /* Returned by `div'.  */
 typedef struct
This page took 0.055866 seconds and 5 git commands to generate.