sd-event: reenable epoll_pwait2()

This reenables epoll_pwait2() use, i.e. undoes the effect of
39f756d3ae.

Instead of just reverting that, this PR will change things so that we
strictly rely on glibc's new epoll_pwait2() wrapper (which was added
earlier this year), and drop our own manual fallback syscall wrapper.
That should nicely side-step any issues with correct syscall wrapping
definitions (which on some arch seem not to be easy, given the sigset_t
size final argument), by making this a glibc problem, not ours.

Given that the only benefit this delivers are time-outs more granular
than msec, it shouldn't really matter that we'll miss out on support
for this on systems with older glibcs.
This commit is contained in:
Lennart Poettering
2022-11-23 00:54:23 +01:00
committed by Luca Boccassi
parent c9bb7438db
commit 0c14c45e5c
4 changed files with 9 additions and 113 deletions
-68
View File
@@ -246,74 +246,6 @@ assert_cc(__NR_copy_file_range == systemd_NR_copy_file_range);
# endif
#endif
#ifndef __IGNORE_epoll_pwait2
# if defined(__aarch64__)
# define systemd_NR_epoll_pwait2 441
# elif defined(__alpha__)
# define systemd_NR_epoll_pwait2 551
# elif defined(__arc__) || defined(__tilegx__)
# define systemd_NR_epoll_pwait2 441
# elif defined(__arm__)
# define systemd_NR_epoll_pwait2 441
# elif defined(__i386__)
# define systemd_NR_epoll_pwait2 441
# elif defined(__ia64__)
# define systemd_NR_epoll_pwait2 1465
# elif defined(__loongarch64)
# define systemd_NR_epoll_pwait2 441
# elif defined(__m68k__)
# define systemd_NR_epoll_pwait2 441
# elif defined(_MIPS_SIM)
# if _MIPS_SIM == _MIPS_SIM_ABI32
# define systemd_NR_epoll_pwait2 4441
# elif _MIPS_SIM == _MIPS_SIM_NABI32
# define systemd_NR_epoll_pwait2 6441
# elif _MIPS_SIM == _MIPS_SIM_ABI64
# define systemd_NR_epoll_pwait2 5441
# else
# error "Unknown MIPS ABI"
# endif
# elif defined(__hppa__)
# define systemd_NR_epoll_pwait2 441
# elif defined(__powerpc__)
# define systemd_NR_epoll_pwait2 441
# elif defined(__riscv)
# if __riscv_xlen == 32
# define systemd_NR_epoll_pwait2 441
# elif __riscv_xlen == 64
# define systemd_NR_epoll_pwait2 441
# else
# error "Unknown RISC-V ABI"
# endif
# elif defined(__s390__)
# define systemd_NR_epoll_pwait2 441
# elif defined(__sparc__)
# define systemd_NR_epoll_pwait2 441
# elif defined(__x86_64__)
# if defined(__ILP32__)
# define systemd_NR_epoll_pwait2 (441 | /* __X32_SYSCALL_BIT */ 0x40000000)
# else
# define systemd_NR_epoll_pwait2 441
# endif
# elif !defined(missing_arch_template)
# warning "epoll_pwait2() syscall number is unknown for your architecture"
# endif
/* may be an (invalid) negative number due to libseccomp, see PR 13319 */
# if defined __NR_epoll_pwait2 && __NR_epoll_pwait2 >= 0
# if defined systemd_NR_epoll_pwait2
assert_cc(__NR_epoll_pwait2 == systemd_NR_epoll_pwait2);
# endif
# else
# if defined __NR_epoll_pwait2
# undef __NR_epoll_pwait2
# endif
# if defined systemd_NR_epoll_pwait2 && systemd_NR_epoll_pwait2 >= 0
# define __NR_epoll_pwait2 systemd_NR_epoll_pwait2
# endif
# endif
#endif
#ifndef __IGNORE_getrandom
# if defined(__aarch64__)
# define systemd_NR_getrandom 278