Message ID | 20191011163811.8607-1-ckellner@redhat.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 1948172fdba5ad643529ddcd00a601c0caa913ed |
Headers | show |
Series | pidfd: fix selftest compilation by removing linux/wait.h | expand |
On Fri, Oct 11, 2019 at 06:38:11PM +0200, Christian Kellner wrote: > From: Christian Kellner <christian@kellner.me> > > The pidfd_{open,poll}_test.c files both include `linux/wait.h` and > later `sys/wait.h`. The former has `#define P_ALL 0`, but in the > latter P_ALL is part of idtype_t enum, where it gets substituted > due to the aforementioned define to be `0`, which then results in > `typedef enum {0, ...`, which then results into a compiler error: > "error: expected identifier before numeric constant". > Since we need `sys/wait.h` for waitpid, drop `linux/wait.h`. > > Signed-off-by: Christian Kellner <christian@kellner.me> Sorry, I missed this patch. This is problematic and your patch would only temporarily fix it. If glibc adds a P_PIDFD to the enum we'll run into the same issue. So please: - remove the linux/wait.h header (as you've already done here) - add a custom define for P_PIDFD under a different name, e.g.: #ifndef __P_PIDFD #define __P_PIDFD 3 #endif and add a comment above it explaining the reason for this mess. Thanks and (_ugh_) Christian
diff --git a/tools/testing/selftests/pidfd/pidfd_open_test.c b/tools/testing/selftests/pidfd/pidfd_open_test.c index b9fe75fc3e51..8a59438ccc78 100644 --- a/tools/testing/selftests/pidfd/pidfd_open_test.c +++ b/tools/testing/selftests/pidfd/pidfd_open_test.c @@ -6,7 +6,6 @@ #include <inttypes.h> #include <limits.h> #include <linux/types.h> -#include <linux/wait.h> #include <sched.h> #include <signal.h> #include <stdbool.h> diff --git a/tools/testing/selftests/pidfd/pidfd_poll_test.c b/tools/testing/selftests/pidfd/pidfd_poll_test.c index 4b115444dfe9..610811275357 100644 --- a/tools/testing/selftests/pidfd/pidfd_poll_test.c +++ b/tools/testing/selftests/pidfd/pidfd_poll_test.c @@ -3,7 +3,6 @@ #define _GNU_SOURCE #include <errno.h> #include <linux/types.h> -#include <linux/wait.h> #include <poll.h> #include <signal.h> #include <stdbool.h>