<pre style='margin:0'>
Clemens Lang (neverpanic) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/53b2517cbce86092aff294a78df8aa938bf85129">https://github.com/macports/macports-ports/commit/53b2517cbce86092aff294a78df8aa938bf85129</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 53b2517cbce86092aff294a78df8aa938bf85129
</span>Author: barracuda156 <vital.had@gmail.com>
AuthorDate: Mon Jul 31 15:48:33 2023 +0800

<span style='display:block; white-space:pre;color:#404040;'>    capnproto: update to 1.0.0, improve and reduce patches
</span>---
 devel/capnproto/Portfile                           | 40 ++++++-------
 ...-do-not-require-monotonic-time-on-PPC-too.patch | 22 +++++++
 ...se-padding-patch-for-Darwin-i386-as-well.patch} | 12 ++--
 ...filesystem.c-a-hack-to-fix-overloaded-set.patch | 60 -------------------
 .../0003-Fix-for-sfinae-for-Darwin-ppc32.patch     | 22 +++++++
 ...async-io-unix.c-fix-for-missing-SOL_LOCAL.patch | 24 --------
 .../0004-Enforce-call-of-pthread_-_init-1725.patch | 64 +++++++++++++++++++++
 .../0004-capability.c-a-hack-for-capability.patch  | 45 ---------------
 ...arwin-PPC-disable-negative-broken-asserts.patch | 67 ----------------------
 ...TRIGGER-fallback-disable-KJ_USE_KQUEUE-on.patch | 55 ++++++++++++++++++
 ...06-capability-test-fix-for-macOS-with-GCC.patch | 36 ------------
 .../files/0007-mutex.c-fix-for-Apple.patch         | 49 ----------------
 12 files changed, 185 insertions(+), 311 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/capnproto/Portfile b/devel/capnproto/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index fdaa432bdbe..23145876aaa 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/capnproto/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/capnproto/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,14 +5,13 @@ PortGroup               compiler_blacklist_versions 1.0
</span> PortGroup               legacysupport 1.1
 
 name                    capnproto
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version                 0.10.4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version                 1.0.0
</span> revision                0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums               rmd160  d1d3e8894004c94b0c8df5e509197c3459719a07 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        sha256  981e7ef6dbe3ac745907e55a78870fbb491c5d23abd4ebc04e20ec235af4458c \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        size    1701486
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums               rmd160  f49381ab76b202b7785a00be32eb561716b0d8a3 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        sha256  4829b3b5f5d03ea83cf6eabd18ceac04ab393398322427eda4411d9f1d017ea9 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        size    1802942
</span> 
 maintainers             {cal @neverpanic} openmaintainer
<span style='display:block; white-space:pre;background:#ffe0e0;'>-platforms               darwin
</span> categories              devel
 
 homepage                https://capnproto.org/
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -32,36 +31,28 @@ compiler.cxx_standard   2014
</span> 
 # clang 3.2 - clang-3.5 and all clangs from Xcode < 5 crash while compiling this.
 # see http://llvm.org/bugs/show_bug.cgi?id=18340
<span style='display:block; white-space:pre;background:#ffe0e0;'>-compiler.blacklist-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        {clang < 500.2.75} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        macports-clang-3.3 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        macports-clang-3.4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# clang prior to 1000 also fails.
</span> # ./src/kj/time.h:48:31: error: invalid operands to binary expression ('int' and 'const Duration' (aka 'const Quantity<int64_t, _::NanosecondLabel>'))
 # constexpr Duration HOURS = 60 * MINUTES;
 #                            ~~ ^ ~~~~~~~
<span style='display:block; white-space:pre;background:#ffe0e0;'>-compiler.blacklist-append {clang < 1000}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.blacklist-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        {clang < 1000} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        macports-clang-3.3 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        macports-clang-3.4
</span> 
 configure.cppflags-replace \
                         -I${prefix}/include "-isystem${prefix}/include"
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append       0001-timer.c-do-not-require-monotonic-time-on-PPC-too.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        0002-Use-padding-patch-for-Darwin-i386-as-well.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        0003-Fix-for-sfinae-for-Darwin-ppc32.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        0004-Enforce-call-of-pthread_-_init-1725.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        0005-Support-EV_TRIGGER-fallback-disable-KJ_USE_KQUEUE-on.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> if {[string match *clang* ${configure.compiler}]} {
     configure.cxx_stdlib        libc++
     configure.ldflags-append    -stdlib=libc++
 } elseif {[string match *gcc* ${configure.compiler}]} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # Partly merged: https://github.com/capnproto/capnproto/pull/1711
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # Re other hacks, see:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # https://github.com/capnproto/capnproto/issues/1710
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # https://github.com/capnproto/capnproto/issues/1712
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # With these, 946 test cases pass, 11 fail.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # FIXME: judging by test results, mutices and filesystem require attention.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    patchfiles-append   0001-message.h-fix-for-Darwin-ppc.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        0002-filesystem.c-a-hack-to-fix-overloaded-set.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        0003-async-io-unix.c-fix-for-missing-SOL_LOCAL.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        0004-capability.c-a-hack-for-capability.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        0005-Darwin-PPC-disable-negative-broken-asserts.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        0006-capability-test-fix-for-macOS-with-GCC.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        0007-mutex.c-fix-for-Apple.patch
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>     configure.cxxflags-append   -std=gnu++17
     # ___atomic_load_8
     # https://github.com/capnproto/capnproto/issues/1713
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -69,6 +60,7 @@ if {[string match *clang* ${configure.compiler}]} {
</span> }
 
 default_variants            +openssl
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> variant openssl description {Support TLS using the OpenSSL library} {
     configure.args-append   --with-openssl=${prefix}
     depends_lib-append      path:lib/libssl.dylib:openssl
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/capnproto/files/0001-timer.c-do-not-require-monotonic-time-on-PPC-too.patch b/devel/capnproto/files/0001-timer.c-do-not-require-monotonic-time-on-PPC-too.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..032c506a124
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/capnproto/files/0001-timer.c-do-not-require-monotonic-time-on-PPC-too.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,22 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 270f195c358f0f1e5a48132698d6e215377f093e Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: barracuda156 <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 11 Jul 2023 09:59:29 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] timer.c++: do not require monotonic time on PPC too
</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;'>+ c++/src/kj/timer.c++ | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 1 insertion(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git c++/src/kj/timer.c++ c++/src/kj/timer.c++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e5cd2648..dbd66cf3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/kj/timer.c++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/kj/timer.c++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -114,7 +114,7 @@ void TimerImpl::advanceTo(TimePoint newTime) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // may return non monotonic time, even when CLOCK_MONOTONIC is used.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // This workaround is to avoid the assert triggering on these machines.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // See also https://github.com/capnproto/capnproto/issues/1693
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if __APPLE__ && defined(__x86_64__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __APPLE__ && (defined(__x86_64__) || defined(__POWERPC__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   time = std::max(time, newTime);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   KJ_REQUIRE(newTime >= time, "can't advance backwards in time") { return; }
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/capnproto/files/0001-message.h-fix-for-Darwin-ppc.patch b/devel/capnproto/files/0002-Use-padding-patch-for-Darwin-i386-as-well.patch
</span>similarity index 54%
rename from devel/capnproto/files/0001-message.h-fix-for-Darwin-ppc.patch
rename to devel/capnproto/files/0002-Use-padding-patch-for-Darwin-i386-as-well.patch
<span style='display:block; white-space:pre;color:#808080;'>index bc28b162728..f0cd74ad4b0 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/capnproto/files/0001-message.h-fix-for-Darwin-ppc.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/capnproto/files/0002-Use-padding-patch-for-Darwin-i386-as-well.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,22 +1,22 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 581df7113bee0e9e8dd7ce23493065a4e93e0ec2 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 003535f899e8d74249a17a58e4efade15ff33faa Mon Sep 17 00:00:00 2001
</span> From: barracuda156 <vital.had@gmail.com>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Mon, 10 Jul 2023 20:36:50 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 1/7] message.h: fix for Darwin ppc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 23 Jul 2023 09:59:48 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Use padding patch for Darwin i386 as well
</span> 
 ---
  c++/src/capnp/message.h | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git c++/src/capnp/message.h c++/src/capnp/message.h
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index d91c0b13..af87aec8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index af87aec8..983761df 100644
</span> --- src/capnp/message.h
 +++ src/capnp/message.h
 @@ -127,7 +127,7 @@ public:
  private:
    ReaderOptions options;
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>--#if defined(__EMSCRIPTEN__)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if defined(__EMSCRIPTEN__) || (defined(__APPLE__) && defined(__ppc__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(__EMSCRIPTEN__) || (defined(__APPLE__) && defined(__ppc__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__EMSCRIPTEN__) || (defined(__APPLE__) && (defined(__ppc__) || defined(__i386__)))
</span>    static constexpr size_t arenaSpacePadding = 19;
  #else
    static constexpr size_t arenaSpacePadding = 18;
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/capnproto/files/0002-filesystem.c-a-hack-to-fix-overloaded-set.patch b/devel/capnproto/files/0002-filesystem.c-a-hack-to-fix-overloaded-set.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 004ccb63ab0..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/capnproto/files/0002-filesystem.c-a-hack-to-fix-overloaded-set.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,60 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From c5808c27940d53e73168de9d30d4fc2aa316bffc Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: barracuda156 <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Mon, 10 Jul 2023 22:54:06 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 2/7] filesystem.c++: a hack to fix overloaded set
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- c++/src/kj/filesystem.c++ | 14 ++++++++++----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 10 insertions(+), 4 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git c++/src/kj/filesystem.c++ c++/src/kj/filesystem.c++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 1dff22ba..62346df4 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/kj/filesystem.c++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/kj/filesystem.c++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1394,6 +1394,12 @@ private:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     void set(Own<const Directory>&& value) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       node.init<DirectoryNode>(DirectoryNode { kj::mv(value) });
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    void set_file(Own<const File>&& value) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      node.init<FileNode>(FileNode { kj::mv(value) });
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    void set_dir(Own<const Directory>&& value) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      node.init<DirectoryNode>(DirectoryNode { kj::mv(value) });
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   template <typename T>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1510,14 +1516,14 @@ private:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             if (mode == TransferMode::COPY) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               auto copy = newInMemoryFile(clock);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               copy->copy(0, **file, 0, size.orDefault(kj::maxValue));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--              entry.set(kj::mv(copy));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              entry.set_file(kj::mv(copy));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               if (mode == TransferMode::MOVE) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 KJ_ASSERT(fromDirectory.tryRemove(fromPath), "couldn't move node", fromPath) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   return false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--              entry.set(kj::mv(*file));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              entry.set_file(kj::mv(*file));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             return true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1542,14 +1548,14 @@ private:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   cpim.entries.insert(std::make_pair(nameRef, kj::mv(newEntry)));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--              entry.set(kj::mv(copy));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              entry.set_dir(kj::mv(copy));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               if (mode == TransferMode::MOVE) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 KJ_ASSERT(fromDirectory.tryRemove(fromPath), "couldn't move node", fromPath) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   return false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--              entry.set(kj::mv(*subdir));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              entry.set_dir(kj::mv(*subdir));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             return true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           } else {
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/capnproto/files/0003-Fix-for-sfinae-for-Darwin-ppc32.patch b/devel/capnproto/files/0003-Fix-for-sfinae-for-Darwin-ppc32.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..0b540d5cc6c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/capnproto/files/0003-Fix-for-sfinae-for-Darwin-ppc32.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,22 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 16aebc62f2a5e9b5d3252e199e9465a784702036 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: barracuda156 <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sat, 15 Jul 2023 03:24:15 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Fix for sfinae for Darwin ppc32
</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;'>+ c++/src/kj/common.h | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 1 insertion(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git c++/src/kj/common.h c++/src/kj/common.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2ed7aea7..483528a4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/kj/common.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/kj/common.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -618,7 +618,7 @@ template <> constexpr bool isIntegral<unsigned long long>() { return true; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ template <typename T>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct CanConvert_ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   static int sfinae(T);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  static bool sfinae(...);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  static char sfinae(...);
</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;'>+ template <typename T, typename U>
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/capnproto/files/0003-async-io-unix.c-fix-for-missing-SOL_LOCAL.patch b/devel/capnproto/files/0003-async-io-unix.c-fix-for-missing-SOL_LOCAL.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index be46e214458..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/capnproto/files/0003-async-io-unix.c-fix-for-missing-SOL_LOCAL.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,24 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 6337510b45f6880f6d385982b96539544ca615e2 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: barracuda156 <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Mon, 10 Jul 2023 23:07:13 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 3/7] async-io-unix.c++: fix for missing SOL_LOCAL
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- c++/src/kj/async-io-unix.c++ | 4 ++--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 2 insertions(+), 2 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git c++/src/kj/async-io-unix.c++ c++/src/kj/async-io-unix.c++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 3da285af..62ce2132 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/kj/async-io-unix.c++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/kj/async-io-unix.c++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -66,8 +66,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <sys/ucred.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#if !defined(SOL_LOCAL) && (__FreeBSD__ || __DragonflyBSD__)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--// On DragonFly or FreeBSD < 12.2 you're supposed to use 0 for SOL_LOCAL.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if !defined(SOL_LOCAL) && (__FreeBSD__ || __DragonflyBSD__ || __APPLE__)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// On DragonFly, FreeBSD < 12.2 and older Darwin you're supposed to use 0 for SOL_LOCAL.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define SOL_LOCAL 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/capnproto/files/0004-Enforce-call-of-pthread_-_init-1725.patch b/devel/capnproto/files/0004-Enforce-call-of-pthread_-_init-1725.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..8ee4188d50e
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/capnproto/files/0004-Enforce-call-of-pthread_-_init-1725.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,64 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 40b02f5ea2ab9833c7555bb0490d48d9f1d9e8cc Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: "Kirill A. Korinsky" <kirill@korins.ky>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Mon, 24 Jul 2023 22:29:40 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Enforce call of `pthread_*_init` (#1725)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Very old macOS has a wired behaviour that statically initalized and not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+used pthread primites returns EINVAL on attempt to be destroyed.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+calling `pthread_*_init` on not used objects fixes all such errors.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Closes: https://github.com/capnproto/capnproto/issues/1715
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ c++/src/kj/mutex.c++ | 24 ++++++++++++++++++++++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 22 insertions(+), 2 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git c++/src/kj/mutex.c++ c++/src/kj/mutex.c++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1ddd4921..edccdf40 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/kj/mutex.c++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/kj/mutex.c++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -870,7 +870,13 @@ void Once::reset() {
</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;'>+-Mutex::Mutex(): mutex(PTHREAD_RWLOCK_INITIALIZER) {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Mutex::Mutex(): mutex(PTHREAD_RWLOCK_INITIALIZER) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  // In older versions of MacOS, mutexes initialized statically cannot be destroyed,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  // so we must call the init function.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  KJ_PTHREAD_CALL(pthread_rwlock_init(&mutex, NULL));
</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;'>+ Mutex::~Mutex() {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   KJ_PTHREAD_CLEANUP(pthread_rwlock_destroy(&mutex));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -950,6 +956,14 @@ void Mutex::wait(Predicate& predicate, Maybe<Duration> timeout, NoopSourceLocati
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     nullptr, waitersTail, predicate, nullptr,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     PTHREAD_COND_INITIALIZER, PTHREAD_MUTEX_INITIALIZER
</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;'>++#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  // In older versions of MacOS, mutexes initialized statically cannot be destroyed,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  // so we must call the init function.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  KJ_PTHREAD_CALL(pthread_cond_init(&waiter.condvar, NULL));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  KJ_PTHREAD_CALL(pthread_mutex_init(&waiter.stupidMutex, NULL));
</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;'>+   addWaiter(waiter);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // To guarantee that we've re-locked the mutex before scope exit, keep track of whether it is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1059,7 +1073,13 @@ void Mutex::induceSpuriousWakeupForTest() {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Once::Once(bool startInitialized)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     : state(startInitialized ? INITIALIZED : UNINITIALIZED),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      mutex(PTHREAD_MUTEX_INITIALIZER) {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      mutex(PTHREAD_MUTEX_INITIALIZER) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  // In older versions of MacOS, mutexes initialized statically cannot be destroyed,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  // so we must call the init function.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  KJ_PTHREAD_CALL(pthread_mutex_init(&mutex, NULL));
</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;'>+ Once::~Once() {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   KJ_PTHREAD_CLEANUP(pthread_mutex_destroy(&mutex));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/capnproto/files/0004-capability.c-a-hack-for-capability.patch b/devel/capnproto/files/0004-capability.c-a-hack-for-capability.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index fe7c1ddc0b3..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/capnproto/files/0004-capability.c-a-hack-for-capability.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,45 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 0b297ec5f527fe62f50e7db79bcf12ca9164fd6f Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: barracuda156 <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Tue, 11 Jul 2023 06:18:39 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 4/7] capability.c++: a hack for capability
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- c++/src/capnp/capability.c++ | 2 +-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- c++/src/capnp/membrane.c++   | 8 ++++----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 2 files changed, 5 insertions(+), 5 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git c++/src/capnp/capability.c++ c++/src/capnp/capability.c++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 9462c6c2..c3854f6c 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/capnp/capability.c++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/capnp/capability.c++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1148,7 +1148,7 @@ namespace _ {  // private
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Capability::Client CapabilityServerSetBase::addInternal(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     kj::Own<Capability::Server>&& server, void* ptr) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  return Capability::Client(kj::refcounted<LocalClient>(kj::mv(server), *this, ptr));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  return Capability::Client(kj::Own<ClientHook>(kj::refcounted<LocalClient>(kj::mv(server), *this, ptr)));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- kj::Promise<void*> CapabilityServerSetBase::getLocalServerInternal(Capability::Client& client) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git c++/src/capnp/membrane.c++ c++/src/capnp/membrane.c++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 845ff954..2ae6f830 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/capnp/membrane.c++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/capnp/membrane.c++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -553,13 +553,13 @@ kj::Own<ClientHook> membrane(kj::Own<ClientHook> inner, MembranePolicy& policy,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }  // namespace
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Capability::Client MembranePolicy::importExternal(Capability::Client external) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  return Capability::Client(kj::refcounted<MembraneHook>(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      ClientHook::from(kj::mv(external)), addRef(), true));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  return Capability::Client(kj::Own<ClientHook>(kj::refcounted<MembraneHook>(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      ClientHook::from(kj::mv(external)), addRef(), true)));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Capability::Client MembranePolicy::exportInternal(Capability::Client internal) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  return Capability::Client(kj::refcounted<MembraneHook>(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      ClientHook::from(kj::mv(internal)), addRef(), false));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  return Capability::Client(kj::Own<ClientHook>(kj::refcounted<MembraneHook>(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      ClientHook::from(kj::mv(internal)), addRef(), false)));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Capability::Client MembranePolicy::importInternal(
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/capnproto/files/0005-Darwin-PPC-disable-negative-broken-asserts.patch b/devel/capnproto/files/0005-Darwin-PPC-disable-negative-broken-asserts.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index a6ccc30799d..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/capnproto/files/0005-Darwin-PPC-disable-negative-broken-asserts.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,67 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From ba112638046984c55faa97a5298779426bc762c6 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: barracuda156 <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Tue, 11 Jul 2023 08:57:04 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 5/7] Darwin PPC: disable negative broken asserts
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- c++/src/kj/common-test.c++ | 9 ++++++---
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- c++/src/kj/memory-test.c++ | 2 ++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- c++/src/kj/test.h          | 4 ++++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 3 files changed, 12 insertions(+), 3 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git c++/src/kj/common-test.c++ c++/src/kj/common-test.c++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 97856125..750b3012 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/kj/common-test.c++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/kj/common-test.c++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -659,18 +659,21 @@ TEST(Common, Defer) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- TEST(Common, CanConvert) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   static_assert(canConvert<long, int>(), "failure");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  static_assert(!canConvert<long, void*>(), "failure");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   struct Super {};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   struct Sub: public Super {};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   static_assert(canConvert<Sub, Super>(), "failure");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  static_assert(!canConvert<Super, Sub>(), "failure");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   static_assert(canConvert<Sub*, Super*>(), "failure");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  static_assert(!canConvert<Super*, Sub*>(), "failure");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   static_assert(canConvert<void*, const void*>(), "failure");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifndef BROKEN_ASSERTS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  static_assert(!canConvert<long, void*>(), "failure");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  static_assert(!canConvert<Super, Sub>(), "failure");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  static_assert(!canConvert<Super*, Sub*>(), "failure");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   static_assert(!canConvert<const void*, void*>(), "failure");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- TEST(Common, ArrayAsBytes) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git c++/src/kj/memory-test.c++ c++/src/kj/memory-test.c++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 9ad3ce9e..8858b065 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/kj/memory-test.c++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/kj/memory-test.c++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -42,7 +42,9 @@ TEST(Memory, CanConvert) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   struct Sub: public Super {};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   static_assert(canConvert<Own<Sub>, Own<Super>>(), "failure");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifndef BROKEN_ASSERTS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   static_assert(!canConvert<Own<Super>, Own<Sub>>(), "failure");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- struct Nested {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git c++/src/kj/test.h c++/src/kj/test.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index ef278070..00e85f6e 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/kj/test.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/kj/test.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -205,4 +205,8 @@ private:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }  // namespace _ (private)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }  // namespace kj
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if defined(__APPLE__) && defined(__POWERPC__)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define BROKEN_ASSERTS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- KJ_END_HEADER
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/capnproto/files/0005-Support-EV_TRIGGER-fallback-disable-KJ_USE_KQUEUE-on.patch b/devel/capnproto/files/0005-Support-EV_TRIGGER-fallback-disable-KJ_USE_KQUEUE-on.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..59402151f6b
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/capnproto/files/0005-Support-EV_TRIGGER-fallback-disable-KJ_USE_KQUEUE-on.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,55 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 6dcf401843cc57efeb4adbef4849a7373e08e44f Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: barracuda156 <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Mon, 31 Jul 2023 05:34:02 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Support EV_TRIGGER fallback; disable KJ_USE_KQUEUE on old
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ macOS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fixes: https://github.com/capnproto/capnproto/issues/1735
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ c++/src/kj/async-unix.c++ |  4 ++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ c++/src/kj/async-unix.h   | 10 ++++++++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2 files changed, 12 insertions(+), 2 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git c++/src/kj/async-unix.c++ c++/src/kj/async-unix.c++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a8179ea5..67489e46 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/kj/async-unix.c++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/kj/async-unix.c++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1065,7 +1065,11 @@ void UnixEventPort::captureChildExit() {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void UnixEventPort::wake() const {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // Trigger our user event.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   struct kevent event;
</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(&event, 0, EVFILT_USER, 0, NOTE_TRIGGER, 0, nullptr);
</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(&event, 0, EVFILT_USER, EV_TRIGGER, 0, 0, nullptr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   KJ_SYSCALL(kevent(kqueueFd, &event, 1, nullptr, 0, nullptr));
</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;'>+diff --git c++/src/kj/async-unix.h c++/src/kj/async-unix.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 665305ea..a647820f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/kj/async-unix.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/kj/async-unix.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -31,14 +31,20 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <kj/io.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <signal.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <AvailabilityMacros.h>
</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;'>+ KJ_BEGIN_HEADER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if !defined(KJ_USE_EPOLL) && !defined(KJ_USE_KQUEUE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if __linux__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Default to epoll on Linux.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define KJ_USE_EPOLL 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#elif __APPLE__ || __FreeBSD__ || __OpenBSD__ || __NetBSD__ || __DragonFly__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-// MacOS and BSDs prefer kqueue() for event notification.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif (__APPLE__ && (MAC_OS_X_VERSION_MIN_REQUIRED > 1050)) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  || __FreeBSD__ || __OpenBSD__ || __NetBSD__ || __DragonFly__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// MacOS and BSDs prefer kqueue() for event notification, however MacOS prior
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// to 10.6.x does not have NOTE_TRIGGER.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define KJ_USE_KQUEUE 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;color:#808080;'>diff --git a/devel/capnproto/files/0006-capability-test-fix-for-macOS-with-GCC.patch b/devel/capnproto/files/0006-capability-test-fix-for-macOS-with-GCC.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 5b0f45cc65a..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/capnproto/files/0006-capability-test-fix-for-macOS-with-GCC.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,36 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 6e3d2c3ddd9739c8e00361b4abffdda4c87657e3 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: barracuda156 <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Tue, 11 Jul 2023 09:10:09 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 6/7] capability-test: fix for macOS with GCC
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- c++/src/capnp/capability-test.c++ | 7 +++++--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 5 insertions(+), 2 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git c++/src/capnp/capability-test.c++ c++/src/capnp/capability-test.c++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index a645abce..e6f26e01 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/capnp/capability-test.c++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/capnp/capability-test.c++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -653,7 +653,7 @@ public:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             // Too lazy to write a whole separate test for each of these cases...  so just make
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             // sure they both compile here, and only actually test the latter.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             box.set("cap", kj::heap<TestExtendsDynamicImpl>(callCount));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#if __GNUG__ && !__clang__ && __GNUG__ == 4 && __GNUC_MINOR__ == 9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if __GNUG__ && !__clang__ && ((__GNUG__ == 4 && __GNUC_MINOR__ == 9) || __APPLE__)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             // The last line in this block tickles a bug in Debian G++ 4.9.2 that is not present
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             // in 4.8.x nor in 4.9.4:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             //     https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=781060
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -662,9 +662,12 @@ public:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             //
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             // For the moment, we can get away with skipping the last line as the previous line
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             // will set things up in a way that allows the test to complete successfully.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            //
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            // The issue also arises on macOS when building with GCC.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             box.set("cap", kj::heap<TestExtendsImpl>(callCount));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           });
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       KJ_FAIL_ASSERT("Method not implemented", methodName);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/capnproto/files/0007-mutex.c-fix-for-Apple.patch b/devel/capnproto/files/0007-mutex.c-fix-for-Apple.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index d78d4b258ae..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/capnproto/files/0007-mutex.c-fix-for-Apple.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,49 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From a245f0b756d4dfd0aeee4315ee64657ee7a71190 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: barracuda156 <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Tue, 11 Jul 2023 09:46:00 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 7/7] mutex.c++: fix for Apple
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- c++/src/kj/mutex.c++ | 15 ++++++++++++++-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 14 insertions(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git c++/src/kj/mutex.c++ c++/src/kj/mutex.c++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 1ddd4921..8f0534f7 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/kj/mutex.c++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/kj/mutex.c++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -866,11 +866,17 @@ void Once::reset() {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   { \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     int pthreadError = code; \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if (pthreadError != 0) { \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      KJ_LOG(ERROR, #code, strerror(pthreadError)); \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      KJ_LOG(WARNING, #code, strerror(pthreadError)); \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     } \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if defined(__APPLE__) && !defined(__clang__)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+Mutex::Mutex() {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  KJ_PTHREAD_CALL(pthread_rwlock_init(&mutex, nullptr));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Mutex::Mutex(): mutex(PTHREAD_RWLOCK_INITIALIZER) {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Mutex::~Mutex() {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   KJ_PTHREAD_CLEANUP(pthread_rwlock_destroy(&mutex));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1057,9 +1063,16 @@ void Mutex::induceSpuriousWakeupForTest() {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if defined(__APPLE__) && !defined(__clang__)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+Once::Once(bool startInitialized)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    : state(startInitialized ? INITIALIZED : UNINITIALIZED) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      KJ_PTHREAD_CALL(pthread_mutex_init(&mutex, nullptr));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Once::Once(bool startInitialized)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     : state(startInitialized ? INITIALIZED : UNINITIALIZED),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       mutex(PTHREAD_MUTEX_INITIALIZER) {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Once::~Once() {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   KJ_PTHREAD_CLEANUP(pthread_mutex_destroy(&mutex));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span></pre><pre style='margin:0'>

</pre>