From 14eb43ea8656ada19a7983202f1b186afb96890f Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Thu, 10 Jun 2021 15:12:12 +1000 Subject: [PATCH] meson.build: check for SYS_pidfd_open --- config.h.meson | 1 + meson.build | 4 ++++ test/pwtest.c | 4 ++++ 3 files changed, 9 insertions(+) diff --git a/config.h.meson b/config.h.meson index a9dd827d7..7f9c143bb 100644 --- a/config.h.meson +++ b/config.h.meson @@ -475,6 +475,7 @@ #mesondefine HAVE_MEMFD_CREATE #mesondefine HAVE_GETRANDOM #mesondefine HAVE_SIGABBREV_NP +#mesondefine HAVE_PIDFD_OPEN #mesondefine PIPEWIRE_VERSION_MAJOR #mesondefine PIPEWIRE_VERSION_MINOR diff --git a/meson.build b/meson.build index 7ecc1bc6a..b49593c64 100644 --- a/meson.build +++ b/meson.build @@ -282,6 +282,10 @@ if cc.has_function('sigabbrev_np', prefix : '#include ', args : [ '-D_ cdata.set('HAVE_SIGABBREV_NP', 1) endif +if cc.get_define('SYS_pidfd_open', prefix : '#include ') != '' + cdata.set('HAVE_PIDFD_OPEN', 1) +endif + systemd = dependency('systemd', required: get_option('systemd')) systemd_dep = dependency('libsystemd',required: get_option('systemd')) if systemd.found() and systemd_dep.found() diff --git a/test/pwtest.c b/test/pwtest.c index 359adad4a..01553c6d5 100644 --- a/test/pwtest.c +++ b/test/pwtest.c @@ -812,7 +812,11 @@ static int monitor_test_forked(struct pwtest_test *t, pid_t pid, int read_fds[_F size_t nevents = 0; int r; +#if HAVE_PIDFD_OPEN pidfd = syscall(SYS_pidfd_open, pid, 0); +#else + errno = ENOSYS; +#endif /* If we don't have pidfd, we use a timerfd to ping us every 20ms */ if (pidfd < 0 && errno == ENOSYS) { pidfd = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK);