[PATCH] Fix sys/wait.h
Jakub Jelinek
jakub@redhat.com
Tue Jan 12 11:01:00 GMT 2010
On Tue, Jan 12, 2010 at 11:50:13AM +0100, Jakub Jelinek wrote:
> #define _POSIX_C_SOURCE 200809L
> #include <stdlib.h>
> #include <sys/wait.h>
>
> now fails to compile. The following should fix it.
Small correction to the testcase, the problem is without any
feature test macros actually.
In file included from a.c:2:
/usr/include/sys/wait.h:67: error: conflicting types for âÂÂ__WAIT_STATUSâÂÂ
/usr/include/stdlib.h:72: note: previous declaration of âÂÂ__WAIT_STATUSâ was here
In file included from /usr/include/sys/wait.h:80,
from a.c:2:
/usr/include/bits/waitstatus.h:68: error: redefinition of âÂÂunion waitâÂÂ
The posted patch fixes it.
> 2010-01-12 Jakub Jelinek <jakub@redhat.com>
>
> * posix/sys/wait.h: Don't define W* macros etc. if
> stdlib.h has been included with _POSIX_C_SOURCE >= 200809L.
>
> diff --git a/posix/sys/wait.h b/posix/sys/wait.h
> index bb98c00..6d7f068 100644
> --- a/posix/sys/wait.h
> +++ b/posix/sys/wait.h
> @@ -32,7 +32,7 @@ __BEGIN_DECLS
> #include <sys/resource.h>
>
> /* These macros could also be defined in <stdlib.h>. */
> -#if !defined _STDLIB_H || !defined __USE_XOPEN
> +#if !defined _STDLIB_H || (!defined __USE_XOPEN && !defined __USE_XOPEN2K8)
> /* This will define the `W*' macros for the flag
> bits to `waitpid', `wait3', and `wait4'. */
> # include <bits/waitflags.h>
Jakub
More information about the Libc-hacker
mailing list