dev-libs/libuv: Sync with Gentoo

It's from Gentoo commit 84a0960fa006493d697c09da3e4532e0cdc2894c.

Signed-off-by: Flatcar Buildbot <buildbot@flatcar-linux.org>
This commit is contained in:
Flatcar Buildbot 2025-10-13 07:07:04 +00:00 committed by Krzesimir Nowak
parent 62ff781cc7
commit 7e36bd1151
2 changed files with 84 additions and 0 deletions

View File

@ -0,0 +1,21 @@
https://bugs.gentoo.org/941738
There are reports of this working with libuv-1.51.0 and cmake-4.1.2 but
the fix was likely on the kernel side which means it's not something we
can rely on, especially for an arch like ppc32.
This could be submitted upstream if we can identify what actually fixed
it and therefore the first good kernel version to check for, as we do
for hppa.
--- a/src/unix/linux.c
+++ b/src/unix/linux.c
@@ -464,6 +464,9 @@ static int uv__use_io_uring(uint32_t flags) {
#elif defined(__powerpc64__) || defined(__ppc64__)
/* See https://github.com/libuv/libuv/issues/4283. */
return 0; /* Random SIGSEGV in signal handler. */
+#elif defined(__powerpc__) && !defined(__powerpc64__)
+ /* See https://bugs.gentoo.org/941738. */
+ return 0; /* Crash in uv__spawn_and_init_child_fork. */
#else
/* Ternary: unknown=0, yes=1, no=-1 */
static _Atomic int use_io_uring;

View File

@ -0,0 +1,63 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libuv.asc
inherit autotools verify-sig
DESCRIPTION="Cross-platform asychronous I/O"
HOMEPAGE="https://github.com/libuv/libuv"
if [[ ${PV} = 9999* ]]; then
EGIT_REPO_URI="https://github.com/libuv/libuv.git"
inherit git-r3
else
SRC_URI="
https://dist.libuv.org/dist/v${PV}/libuv-v${PV}.tar.gz -> ${P}.tar.gz
verify-sig? ( https://dist.libuv.org/dist/v${PV}/libuv-v${PV}.tar.gz.sign -> ${P}.tar.gz.sig )
"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
S="${WORKDIR}/${PN}-v${PV}"
fi
LICENSE="BSD BSD-2 ISC MIT"
SLOT="0/1"
BDEPEND="
dev-build/libtool
virtual/pkgconfig
verify-sig? ( sec-keys/openpgp-keys-libuv )
"
PATCHES=(
"${FILESDIR}"/${PN}-1.48.0-test-thread-priority-portage.patch
"${FILESDIR}"/${PN}-1.51.0-ppc32-uring.patch
)
src_prepare() {
default
if [[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] ; then
eapply "${FILESDIR}"/${PN}-1.41.0-darwin.patch
fi
# Upstream fails to ship a configure script and has missing m4 file.
echo "m4_define([UV_EXTRA_AUTOMAKE_FLAGS], [serial-tests])" \
> m4/libuv-extra-automake-flags.m4 || die
eautoreconf
}
src_configure() {
local myeconfargs=(
cc_cv_cflags__g=no
)
econf "${myeconfargs[@]}"
}
src_install() {
default
find "${ED}" -name '*.la' -delete || die
}