<pre style='margin:0'>
Renee Otten (reneeotten) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/4c7b92a1ca1155d1225d4f471965ef7ff9eb5b95">https://github.com/macports/macports-ports/commit/4c7b92a1ca1155d1225d4f471965ef7ff9eb5b95</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 4c7b92a1ca1155d1225d4f471965ef7ff9eb5b95
</span>Author: Sergey Fedorov <barracuda@macos-powerpc.org>
AuthorDate: Wed Nov 27 00:51:12 2024 +0800
<span style='display:block; white-space:pre;color:#404040;'> epoll-shim: new port in devel
</span>---
devel/epoll-shim/Portfile | 47 +++++++++
...EV_TRIGGER-as-a-fallback-for-NOTE_TRIGGER.patch | 117 +++++++++++++++++++++
.../0002-Define-MSG_NOSIGNAL-when-undefined.patch | 28 +++++
...003-timerfd-root-test-skip-on-macOS-10.12.patch | 42 ++++++++
4 files changed, 234 insertions(+)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/epoll-shim/Portfile b/devel/epoll-shim/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..a5c7399e976
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/epoll-shim/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,47 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup cmake 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup github 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup legacysupport 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# O_CLOEXEC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+legacysupport.newest_darwin_requires_legacy 10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup jiixyj epoll-shim 0.0.20240608 v
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories devel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license MIT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers nomaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description Small epoll implementation using kqueue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description ${description}. Includes all features \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ needed for libinput/libevdev.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 3cead7960ad43d9e03355753527024da0ceab0b5 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 8f5125217e4a0eeb96ab01f9dfd56c38f85ac3e8f26ef2578e538e72e87862cb \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 104137
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.tarball_from archive
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patch.pre_args-replace -p0 -p1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/jiixyj/epoll-shim/pull/57
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append 0001-Use-EV_TRIGGER-as-a-fallback-for-NOTE_TRIGGER.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0002-Define-MSG_NOSIGNAL-when-undefined.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0003-timerfd-root-test-skip-on-macOS-10.12.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.c_standard 2011
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Build tries to run test binaries during the build, which fails otherwise.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.pre_args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platform darwin powerpc {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:libdispatch-legacy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.cppflags-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -I${prefix}/libexec/dispatch/usr/include
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.ldflags-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${prefix}/libexec/dispatch/usr/lib/libdispatch.a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test.run yes
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/epoll-shim/files/0001-Use-EV_TRIGGER-as-a-fallback-for-NOTE_TRIGGER.patch b/devel/epoll-shim/files/0001-Use-EV_TRIGGER-as-a-fallback-for-NOTE_TRIGGER.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..66b80a9af3f
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/epoll-shim/files/0001-Use-EV_TRIGGER-as-a-fallback-for-NOTE_TRIGGER.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,117 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 9d6d02e25b415e971f968365c46b16f7bc689113 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Sergey Fedorov <barracuda@macos-powerpc.org>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 26 Nov 2024 23:10:54 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 1/3] Use EV_TRIGGER as a fallback for NOTE_TRIGGER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/compat_ppoll.c | 7 ++++++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/epollfd_ctx.c | 13 +++++++++++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/kqueue_event.c | 13 +++++++++++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 3 files changed, 28 insertions(+), 5 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/compat_ppoll.c b/src/compat_ppoll.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 44a579d..19b0c88 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/compat_ppoll.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/compat_ppoll.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -93,7 +93,7 @@ compat_ppoll_impl(struct pollfd fds[], nfds_t nfds,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ goto out;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef EVFILT_USER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(EVFILT_USER) && (defined(NOTE_TRIGGER) || defined(EV_TRIGGER))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sigset_t pending;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (sigpending(&pending) < 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ec = errno;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -103,8 +103,13 @@ compat_ppoll_impl(struct pollfd fds[], nfds_t nfds,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (sigismember(&pending, (int)kevs[i].ident)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EV_SET(&kevs[0], 0, EVFILT_USER, /**/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EV_ADD | EV_ONESHOT, 0, 0, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(NOTE_TRIGGER)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EV_SET(&kevs[1], 0, EVFILT_USER, /**/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0, NOTE_TRIGGER, 0, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif defined(EV_TRIGGER)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EV_SET(&kevs[1], 0, EVFILT_USER, /**/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EV_TRIGGER, 0, 0, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (kevent(kq, kevs, 2, NULL, 0, NULL) < 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ec = errno;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ goto out;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/epollfd_ctx.c b/src/epollfd_ctx.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0db5b01..08836a4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/epollfd_ctx.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/epollfd_ctx.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -268,10 +268,15 @@ registered_fds_node_add_self_trigger(RegisteredFDsNode *fd2_node, int kq)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ registered_fds_node_trigger_self(RegisteredFDsNode *fd2_node, int kq)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef EVFILT_USER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(EVFILT_USER) && (defined(NOTE_TRIGGER) || defined(EV_TRIGGER))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct kevent kevs[1];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(NOTE_TRIGGER)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EV_SET(&kevs[0], (uintptr_t)fd2_node, EVFILT_USER, /**/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0, NOTE_TRIGGER, 0, fd2_node);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif defined(EV_TRIGGER)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EV_SET(&kevs[0], (uintptr_t)fd2_node, EVFILT_USER, /**/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EV_TRIGGER, 0, 0, fd2_node);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (void)kevent(kq, kevs, 1, NULL, 0, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (void)kq;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -792,10 +797,14 @@ epollfd_ctx__add_self_trigger(EpollFDCtx *epollfd, int kq)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ epollfd_ctx__trigger_self(EpollFDCtx *epollfd, int kq)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef EVFILT_USER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(EVFILT_USER) && (defined(NOTE_TRIGGER) || defined(EV_TRIGGER))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (void)epollfd;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct kevent kevs[1];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(NOTE_TRIGGER)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EV_SET(&kevs[0], 0, EVFILT_USER, 0, NOTE_TRIGGER, 0, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif defined(EV_TRIGGER)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EV_SET(&kevs[0], 0, EVFILT_USER, EV_TRIGGER, 0, 0, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (void)kevent(kq, kevs, 1, NULL, 0, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ assert(epollfd->self_pipe[0] >= 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/kqueue_event.c b/src/kqueue_event.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e26816f..d06233e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/kqueue_event.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/kqueue_event.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16,13 +16,18 @@ kqueue_event_init(KQueueEvent *kqueue_event, struct kevent *kevs,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *kqueue_event = (KQueueEvent) { .self_pipe_ = { -1, -1 } };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef EVFILT_USER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(EVFILT_USER) && (defined(NOTE_TRIGGER) || defined(EV_TRIGGER))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EV_SET(&kevs[(*kevs_length)++], 0, /**/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EVFILT_USER, EV_ADD | EV_CLEAR, 0, 0, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (should_trigger) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(NOTE_TRIGGER)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EV_SET(&kevs[(*kevs_length)++], 0, /**/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EVFILT_USER, 0, NOTE_TRIGGER, 0, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif defined(EV_TRIGGER)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EV_SET(&kevs[(*kevs_length)++], 0, /**/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EVFILT_USER, EV_TRIGGER, 0, 0, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ kqueue_event->is_triggered_ = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -82,9 +87,13 @@ kqueue_event_trigger(KQueueEvent *kqueue_event, int kq)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef EVFILT_USER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(EVFILT_USER) && (defined(NOTE_TRIGGER) || defined(EV_TRIGGER))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct kevent kevs[1];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(NOTE_TRIGGER)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EV_SET(&kevs[0], 0, EVFILT_USER, 0, NOTE_TRIGGER, 0, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif defined(EV_TRIGGER)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EV_SET(&kevs[0], 0, EVFILT_USER, EV_TRIGGER, 0, 0, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (kevent(kq, kevs, 1, NULL, 0, NULL) < 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return errno;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.47.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/epoll-shim/files/0002-Define-MSG_NOSIGNAL-when-undefined.patch b/devel/epoll-shim/files/0002-Define-MSG_NOSIGNAL-when-undefined.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..b1adfeecf2e
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/epoll-shim/files/0002-Define-MSG_NOSIGNAL-when-undefined.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,28 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 101ca2971aa2a7e1b12e64eca76f46e4e79e485b Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Sergey Fedorov <barracuda@macos-powerpc.org>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 26 Nov 2024 23:30:32 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 2/3] Define MSG_NOSIGNAL when undefined
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ test/epoll-test.c | 5 +++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 5 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/test/epoll-test.c b/test/epoll-test.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f53ee97..64dfade 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/test/epoll-test.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/test/epoll-test.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -42,6 +42,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define EPOLLRDHUP 0x2000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* macOS and Solaris do not have it */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef MSG_NOSIGNAL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define MSG_NOSIGNAL 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fd_pipe(int fds[3])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.47.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/epoll-shim/files/0003-timerfd-root-test-skip-on-macOS-10.12.patch b/devel/epoll-shim/files/0003-timerfd-root-test-skip-on-macOS-10.12.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..113857eb149
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/epoll-shim/files/0003-timerfd-root-test-skip-on-macOS-10.12.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,42 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 182a55bfee38ab9d2804d86fd1e8bc43fcf08389 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Sergey Fedorov <barracuda@macos-powerpc.org>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Wed, 27 Nov 2024 00:11:33 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 3/3] timerfd-root-test: skip on macOS < 10.12
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ test/CMakeLists.txt | 12 +++++++++++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 11 insertions(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2d04d2a..5f3c9f8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/test/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/test/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15,6 +15,14 @@ include(ATFTest)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(THREADS_PREFER_PTHREAD_FLAG ON)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ find_package(Threads REQUIRED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ exec_program(uname ARGS -v OUTPUT_VARIABLE DARWIN_VERSION)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ string(REGEX MATCH "[0-9]+" DARWIN_VERSION ${DARWIN_VERSION})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(DARWIN_VERSION LESS 16)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set(APPLE_LEGACY 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ macro(atf_test_impl _testname _suffix)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -54,7 +62,9 @@ foreach(_target epoll-test epoll-test-interpose epoll-test-rdhup-linux-def)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endforeach()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ atf_test(timerfd-test)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-atf_test(timerfd-root-test)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(NOT APPLE_LEGACY)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ atf_test(timerfd-root-test)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ atf_test(timerfd-mock-test)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ atf_test(signalfd-test)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ atf_test(perf-many-fds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.47.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span></pre><pre style='margin:0'>
</pre>