summaryrefslogtreecommitdiff
path: root/dev-libs/libuv/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-11-27 22:51:10 +0000
committerV3n3RiX <venerix@koprulu.sector>2023-11-27 22:51:10 +0000
commitee0c4d5e506a6c64994a15c3af5cf1ca22045567 (patch)
treebdf578939023d42f04092ddb4bcd190eb391770f /dev-libs/libuv/files
parent161eaa4b12ca6314376288834bba20b7824d0d77 (diff)
gentoo auto-resync : 27:11:2023 - 22:51:09
Diffstat (limited to 'dev-libs/libuv/files')
-rw-r--r--dev-libs/libuv/files/libuv-1.47.0-hppa-kernel.patch32
-rw-r--r--dev-libs/libuv/files/libuv-1.47.0-ipv6-tests.patch54
2 files changed, 86 insertions, 0 deletions
diff --git a/dev-libs/libuv/files/libuv-1.47.0-hppa-kernel.patch b/dev-libs/libuv/files/libuv-1.47.0-hppa-kernel.patch
new file mode 100644
index 000000000000..1871ae221395
--- /dev/null
+++ b/dev-libs/libuv/files/libuv-1.47.0-hppa-kernel.patch
@@ -0,0 +1,32 @@
+https://github.com/libuv/libuv/commit/f1444293652cf5478a67b9305271d73ad6d36232
+
+From f1444293652cf5478a67b9305271d73ad6d36232 Mon Sep 17 00:00:00 2001
+From: matoro <12038583+matoro@users.noreply.github.com>
+Date: Wed, 15 Nov 2023 17:57:06 -0500
+Subject: [PATCH] linux: disable io_uring on hppa below kernel 6.1.51 (#4224)
+
+First kernel with support is 6.1, was only fully functional from .51
+onwards: https://lore.kernel.org/all/cb912694-b1fe-dbb0-4d8c-d608f3526905@gmx.de/
+
+Co-authored-by: matoro <matoro@users.noreply.github.com>
+--- a/src/unix/linux.c
++++ b/src/unix/linux.c
+@@ -487,8 +487,16 @@ static int uv__use_io_uring(void) {
+ use = atomic_load_explicit(&use_io_uring, memory_order_relaxed);
+
+ if (use == 0) {
++ use = uv__kernel_version() >=
++#if defined(__hppa__)
++ /* io_uring first supported on parisc in 6.1, functional in .51 */
++ /* https://lore.kernel.org/all/cb912694-b1fe-dbb0-4d8c-d608f3526905@gmx.de/ */
++ /* 6.1.51 */ 0x060133
++#else
+ /* Older kernels have a bug where the sqpoll thread uses 100% CPU. */
+- use = uv__kernel_version() >= /* 5.10.186 */ 0x050ABA ? 1 : -1;
++ /* 5.10.186 */ 0x050ABA
++#endif
++ ? 1 : -1;
+
+ /* But users can still enable it if they so desire. */
+ val = getenv("UV_USE_IO_URING");
+
diff --git a/dev-libs/libuv/files/libuv-1.47.0-ipv6-tests.patch b/dev-libs/libuv/files/libuv-1.47.0-ipv6-tests.patch
new file mode 100644
index 000000000000..20176dc7aba0
--- /dev/null
+++ b/dev-libs/libuv/files/libuv-1.47.0-ipv6-tests.patch
@@ -0,0 +1,54 @@
+https://github.com/libuv/libuv/issues/4211
+https://github.com/libuv/libuv/pull/4220
+https://github.com/libuv/libuv/commit/54d8364c2406758b572621af381f1d83e01ae46c
+
+From 54d8364c2406758b572621af381f1d83e01ae46c Mon Sep 17 00:00:00 2001
+From: Ben Noordhuis <info@bnoordhuis.nl>
+Date: Tue, 14 Nov 2023 22:09:30 +0100
+Subject: [PATCH] test: check if ipv6 link-local traffic is routable (#4220)
+
+Fixes: https://github.com/libuv/libuv/issues/4211
+--- a/test/test-tcp-connect6-error.c
++++ b/test/test-tcp-connect6-error.c
+@@ -23,6 +23,7 @@
+ #include "task.h"
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <string.h>
+
+
+ static int connect_cb_called = 0;
+@@ -75,9 +76,13 @@ TEST_IMPL(tcp_connect6_error_fault) {
+
+
+ TEST_IMPL(tcp_connect6_link_local) {
++ uv_interface_address_t* ifs;
++ uv_interface_address_t* p;
+ struct sockaddr_in6 addr;
+ uv_connect_t req;
+ uv_tcp_t server;
++ int ok;
++ int n;
+
+ if (!can_ipv6())
+ RETURN_SKIP("IPv6 not supported");
+@@ -90,6 +95,18 @@ TEST_IMPL(tcp_connect6_link_local) {
+ RETURN_SKIP("Test does not currently work in QEMU");
+ #endif /* defined(__QEMU__) */
+
++ /* Check there's an interface that routes link-local (fe80::/10) traffic. */
++ ASSERT_OK(uv_interface_addresses(&ifs, &n));
++ for (p = ifs; p < &ifs[n]; p++)
++ if (p->address.address6.sin6_family == AF_INET6)
++ if (!memcmp(&p->address.address6.sin6_addr, "\xfe\x80", 2))
++ break;
++ ok = (p < &ifs[n]);
++ uv_free_interface_addresses(ifs, n);
++
++ if (!ok)
++ RETURN_SKIP("IPv6 link-local traffic not supported");
++
+ ASSERT_OK(uv_ip6_addr("fe80::0bad:babe", 1337, &addr));
+ ASSERT_OK(uv_tcp_init(uv_default_loop(), &server));
+
+