-/* Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
#define __WAIT_INT(status) (*(int *) &(status))
#endif
-/* This is the type of the argument to `wait'. With GCC 2.4 and later, the
- funky union causes redeclarations with either `int *' or `union wait *'
- to be allowed without complaint. (__GNUC_MINOR__ is in fact only
- defined in later versions, after 2.5.0.) */
+/* This is the type of the argument to `wait'.
+
+ NOTE: Since this functionality is volatile, I'm disabling the use of it for
+ now.
+
+With GCC 2.6.1 and later, the funky union causes redeclarations with either
+ `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 || \
- (__GNUC__ == 2 && __GNUC_MINOR__ < 4))
-#define __WAIT_STATUS __ptr_t
+ /*(__GNUC__ == 2 && __GNUC_MINOR__ < 6)*/ 1)
+#define __WAIT_STATUS __ptr_t
+#define __WAIT_STATUS_DEFN __ptr_t
#else
-#define __WAIT_STATUS union { union wait *__unionptr; int *__intptr; }
+/* 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
#else /* Don't use BSD. */
#define __WAIT_INT(status) (status)
#define __WAIT_STATUS int *
+#define __WAIT_STATUS_DEFN int *
#endif /* Use BSD. */
#define WIFSTOPPED(status) __WIFSTOPPED(__WAIT_INT(status))
#ifdef __USE_BSD
+#define WCOREFLAG __WCOREFLAG
#define WCOREDUMP(status) __WCOREDUMP(__WAIT_INT(status))
#define W_EXITCODE(ret, sig) __W_EXITCODE(ret, sig)
#define W_STOPCODE(sig) __W_STOPCODE(sig)