mirror of git://git.musl-libc.org/musl
adjust sys/wait.h not to produde errors in strict ISO C feature profile
siginfo_t is not available from signal.h when the strict ISO C feature profile (e.g. passing -std=c99 to gcc without defining any other feature test macros) is used, but the type is needed to declare waitid. using sys/wait.h (or any POSIX headers) in strict ISO C mode is an application bug, but in the interest of compatibility, it's best to avoid producing gratuitous errors. the simplest fix I could find is suppressing the declaration of waitid (and also signal.h inclusion, since it's not needed for anything else) in this case, while still exposing everything else in sys/wait.h
This commit is contained in:
parent
41a9ba25cd
commit
f5980e330a
|
@ -6,8 +6,6 @@ extern "C" {
|
||||||
|
|
||||||
#include <features.h>
|
#include <features.h>
|
||||||
|
|
||||||
#include <signal.h>
|
|
||||||
|
|
||||||
#define __NEED_pid_t
|
#define __NEED_pid_t
|
||||||
#define __NEED_id_t
|
#define __NEED_id_t
|
||||||
#include <bits/alltypes.h>
|
#include <bits/alltypes.h>
|
||||||
|
@ -19,9 +17,15 @@ typedef enum {
|
||||||
} idtype_t;
|
} idtype_t;
|
||||||
|
|
||||||
pid_t wait (int *);
|
pid_t wait (int *);
|
||||||
int waitid (idtype_t, id_t, siginfo_t *, int);
|
|
||||||
pid_t waitpid (pid_t, int *, int );
|
pid_t waitpid (pid_t, int *, int );
|
||||||
|
|
||||||
|
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
|
||||||
|
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
|
||||||
|
|| defined(_BSD_SOURCE)
|
||||||
|
#include <signal.h>
|
||||||
|
int waitid (idtype_t, id_t, siginfo_t *, int);
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
||||||
#include <sys/resource.h>
|
#include <sys/resource.h>
|
||||||
pid_t wait3 (int *, int, struct rusage *);
|
pid_t wait3 (int *, int, struct rusage *);
|
||||||
|
|
Loading…
Reference in New Issue