mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-27 03:41:23 +08:00
Condition signal.h inclusion in sys/wait.h (bug 21560).
sys/wait.h includes signal.h unconditionally. But the permission to do so is UX-shaded in XPG4.2, and XSI-shaded in POSIX before 2008, so this should not be unconditional. This patch fixes this conservatively: the include is kept, but conditioned on the standards that permit it (meaning it is still present by default, because non-XSI POSIX.1:2008 is enabled by default). <bits/types.h> is now included unconditionally to provide the required definition of __pid_t; it was previously included via <signal.h>. Some standards require pid_t to be defined here, and all allow it to be defined here; previously defined via <signal.h>, it's now defined directly in this header. Tested for x86_64. This does not fix any of the sys/wait.h conformtest failures, but substantially reduces the number of namespace failures for sys/wait.h for XPG4 and POSIX. [BZ #21560] * posix/sys/wait.h: Condition include of <signal.h> on [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8]. Include <bits/types.h> unconditionally. [!__pid_t_defined] (pid_t): Define typedef.
This commit is contained in:
parent
b4971123e9
commit
0862cdcdc8
@ -1,3 +1,11 @@
|
||||
2017-06-09 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
[BZ #21560]
|
||||
* posix/sys/wait.h: Condition include of <signal.h> on
|
||||
[__USE_XOPEN_EXTENDED || __USE_XOPEN2K8]. Include <bits/types.h>
|
||||
unconditionally.
|
||||
[!__pid_t_defined] (pid_t): Define typedef.
|
||||
|
||||
2017-06-09 Zack Weinberg <zackw@panix.com>
|
||||
|
||||
* include/errno.h (__errno_location): Use __attribute_const__
|
||||
|
@ -26,7 +26,15 @@
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
#include <signal.h>
|
||||
#include <bits/types.h>
|
||||
#ifndef __pid_t_defined
|
||||
typedef __pid_t pid_t;
|
||||
# define __pid_t_defined
|
||||
#endif
|
||||
|
||||
#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
|
||||
# include <signal.h>
|
||||
#endif
|
||||
|
||||
/* These macros could also be defined in <stdlib.h>. */
|
||||
#if !defined _STDLIB_H || (!defined __USE_XOPEN && !defined __USE_XOPEN2K8)
|
||||
@ -98,7 +106,6 @@ extern __pid_t waitpid (__pid_t __pid, int *__stat_loc, int __options);
|
||||
|
||||
#if defined __USE_XOPEN || defined __USE_XOPEN2K8
|
||||
# ifndef __id_t_defined
|
||||
# include <bits/types.h>
|
||||
typedef __id_t id_t;
|
||||
# define __id_t_defined
|
||||
# endif
|
||||
|
Loading…
Reference in New Issue
Block a user