diff --git a/meson.build b/meson.build index 55ed968798..8a4552d5bb 100644 --- a/meson.build +++ b/meson.build @@ -599,6 +599,10 @@ foreach ident : [ #include #include #include '''], + ['rt_tgsigqueueinfo', '''#include + #include + #include + #include '''], ['mallinfo', '''#include '''], ['mallinfo2', '''#include '''], ['execveat', '''#include '''], diff --git a/src/basic/missing_syscall.h b/src/basic/missing_syscall.h index d54e59fdf9..6ad89da541 100644 --- a/src/basic/missing_syscall.h +++ b/src/basic/missing_syscall.h @@ -363,6 +363,20 @@ static inline int missing_rt_sigqueueinfo(pid_t tgid, int sig, siginfo_t *info) /* ======================================================================= */ +#if !HAVE_RT_TGSIGQUEUEINFO +static inline int missing_rt_tgsigqueueinfo(pid_t tgid, pid_t tid, int sig, siginfo_t *info) { +# if defined __NR_rt_tgsigqueueinfo && __NR_rt_tgsigqueueinfo >= 0 + return syscall(__NR_rt_tgsigqueueinfo, tgid, tid, sig, info); +# else +# error "__NR_rt_tgsigqueueinfo not defined" +# endif +} + +# define rt_tgsigqueueinfo missing_rt_tgsigqueueinfo +#endif + +/* ======================================================================= */ + #if !HAVE_EXECVEAT static inline int missing_execveat(int dirfd, const char *pathname, char *const argv[], char *const envp[],