summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2023-04-12 08:56:26 +0100
committerSam James <sam@gentoo.org>2023-04-12 08:57:38 +0100
commit42256835f74c6385d941e262dcdbfa816af5f01e (patch)
tree971f49c75ecca95e8613971c39f240eefa268d7a /dev-util/rr
parentsys-kernel/installkernel-gentoo: Stabilize 7 x86, #904184 (diff)
downloadgentoo-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.patch78
-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
)