diff options
author | Sam James <sam@gentoo.org> | 2023-04-12 08:56:26 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2023-04-12 08:57:38 +0100 |
commit | 42256835f74c6385d941e262dcdbfa816af5f01e (patch) | |
tree | 971f49c75ecca95e8613971c39f240eefa268d7a /dev-util/rr | |
parent | sys-kernel/installkernel-gentoo: Stabilize 7 x86, #904184 (diff) | |
download | gentoo-42256835f74c6385d941e262dcdbfa816af5f01e.tar.gz gentoo-42256835f74c6385d941e262dcdbfa816af5f01e.tar.bz2 gentoo-42256835f74c6385d941e262dcdbfa816af5f01e.zip |
dev-util/rr: drop epoll_pwait2 backport
I only chucked it in because I (wrongly) thought it was needed for the
GCC 13 workaround to cleanly apply, but it isn't. I was just confused
by the spelling commit thing.
We could keep this but as jubalh points out, there's a bunch of subsequent
commits that fixup and enhance epoll_pwait2 support, so let's just leave
it for now & drop it.
I've also asked upstream if there's a release forthcoming & such, so
let's see what happens with that.
Bug: https://github.com/rr-debugger/rr/issues/3494
Fixes: f5e0ac5711c94279073106adf04977cb07db37c7
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-util/rr')
-rw-r--r-- | dev-util/rr/files/rr-5.6.0-epoll_pwait2.patch | 78 | ||||
-rw-r--r-- | dev-util/rr/rr-5.6.0-r4.ebuild (renamed from dev-util/rr/rr-5.6.0-r3.ebuild) | 1 |
2 files changed, 0 insertions, 79 deletions
diff --git a/dev-util/rr/files/rr-5.6.0-epoll_pwait2.patch b/dev-util/rr/files/rr-5.6.0-epoll_pwait2.patch deleted file mode 100644 index 02d90d36e7dc..000000000000 --- a/dev-util/rr/files/rr-5.6.0-epoll_pwait2.patch +++ /dev/null @@ -1,78 +0,0 @@ -https://github.com/rr-debugger/rr/commit/7d1b31dd76d18e9e810455f4abd804e76b0a6c1f - -From 7d1b31dd76d18e9e810455f4abd804e76b0a6c1f Mon Sep 17 00:00:00 2001 -From: Robert O'Callahan <robert@ocallahan.org> -Date: Sun, 26 Mar 2023 23:52:44 +1300 -Subject: [PATCH] Support epoll_pwait2 - -Resolves #3462 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -933,6 +933,7 @@ set(BASIC_TESTS - epoll_edge - epoll_many - epoll_pwait_eintr_sigmask -+ epoll_pwait2 - eventfd - exec_flags - exec_no_env ---- a/src/record_syscall.cc -+++ b/src/record_syscall.cc -@@ -4841,6 +4841,7 @@ static Switchable rec_prepare_syscall_arch(RecordTask* t, - sizeof(typename Arch::epoll_event))); - return ALLOW_SWITCH; - -+ case Arch::epoll_pwait2: - case Arch::epoll_pwait: { - syscall_state.reg_parameter( - 2, ParamSize::from_syscall_result<int>(sizeof(typename Arch::epoll_event) * regs.arg3_signed(), ---- a/src/syscalls.py -+++ b/src/syscalls.py -@@ -1729,7 +1729,7 @@ def __init__(self, **kwargs): - openat2 = UnsupportedSyscall(x86=437, x64=437, generic=437) - pidfd_getfd = UnsupportedSyscall(x86=438, x64=438, generic=438) - process_madvise = UnsupportedSyscall(x86=440, x64=440, generic=440) --epoll_pwait2 = UnsupportedSyscall(x86=441, x64=441, generic=441) -+epoll_pwait2 = IrregularEmulatedSyscall(x86=441, x64=441, generic=441) - mount_setattr = UnsupportedSyscall(x86=442, x64=442, generic=442) - quotactl_fd = UnsupportedSyscall(x86=443, x64=443, generic=443) - landlock_create_ruleset = UnsupportedSyscall(x86=444, x64=444, generic=444) ---- /dev/null -+++ b/src/test/epoll_pwait2.c -@@ -0,0 +1,35 @@ -+/* -*- Mode: C; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */ -+ -+#include "util.h" -+ -+static void handle_sig(__attribute__((unused)) int sig) { -+ /* Don't do anything, just go through the signal handler motions */ -+} -+ -+int main(void) { -+ int pipe_fd[2]; -+ int epfd; -+ struct timespec ts = { 5, 0 }; -+ struct epoll_event ev; -+ sigset_t sigmask; -+ sigemptyset(&sigmask); -+ sigaddset(&sigmask, SIGCHLD); -+ -+ signal(SIGALRM, handle_sig); -+ -+ test_assert(0 == pipe(pipe_fd)); -+ test_assert(0 <= (epfd = epoll_create(1 /*num events*/))); -+ -+ ev.events = EPOLLIN; -+ ev.data.fd = pipe_fd[0]; -+ test_assert(0 == epoll_ctl(epfd, EPOLL_CTL_ADD, ev.data.fd, &ev)); -+ -+ // Make sure something will wake us from the epoll_pwait2. -+ alarm(1); -+ // But also use the epoll_pwait to modify the signal mask. -+ epoll_pwait2(epfd, &ev, 1, &ts, &sigmask); -+ test_assert(errno == EINTR || errno == ENOSYS); -+ -+ atomic_puts("EXIT-SUCCESS"); -+ return 0; -+} - diff --git a/dev-util/rr/rr-5.6.0-r3.ebuild b/dev-util/rr/rr-5.6.0-r4.ebuild index bdd724733aaa..559533e754a6 100644 --- a/dev-util/rr/rr-5.6.0-r3.ebuild +++ b/dev-util/rr/rr-5.6.0-r4.ebuild @@ -47,7 +47,6 @@ PATCHES=( "${FILESDIR}"/${P}-linux-headers-6.0.patch "${FILESDIR}"/${P}-tests-clang16.patch "${FILESDIR}"/${P}-gcc13.patch - "${FILESDIR}"/${P}-epoll_pwait2.patch "${FILESDIR}"/${P}-gcc13-workaround.patch ) |