From bd8f350fdf914767d4799404e106d83ab37c8d32 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Mon, 21 Oct 2019 09:09:26 -0400 Subject: [PATCH] Add upstream patch to fix aarch64 builds Signed-off-by: Stephen Gallagher --- 2524.patch | 36 ++++++++++++++++++++++++++++++++++++ libuv.spec | 12 +++++++++++- 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 2524.patch diff --git a/2524.patch b/2524.patch new file mode 100644 index 0000000..c424c2f --- /dev/null +++ b/2524.patch @@ -0,0 +1,36 @@ +From eb5552190000b9699bba33e1e419f500c7bd18b7 Mon Sep 17 00:00:00 2001 +From: Ben Noordhuis +Date: Sat, 19 Oct 2019 09:54:46 +0200 +Subject: [PATCH] linux: fix arm64 SYS__sysctl build breakage + +The arm64 architecture never had a _sysctl system call and therefore +doesn't have a SYS__sysctl define either. Always return UV_ENOSYS. + +Fixes: https://github.com/libuv/libuv/issues/2522 +--- + src/unix/random-sysctl.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/src/unix/random-sysctl.c b/src/unix/random-sysctl.c +index 7af2e32070..fb182ded09 100644 +--- a/src/unix/random-sysctl.c ++++ b/src/unix/random-sysctl.c +@@ -65,9 +65,18 @@ int uv__random_sysctl(void* buf, size_t buflen) { + * an okay trade-off for the fallback of the fallback: this function is + * only called when neither getrandom(2) nor /dev/urandom are available. + * Fails with ENOSYS on kernels configured without CONFIG_SYSCTL_SYSCALL. ++ * At least arm64 never had a _sysctl system call and therefore doesn't ++ * have a SYS__sysctl define either. + */ ++#ifdef SYS__sysctl + if (syscall(SYS__sysctl, &args) == -1) + return UV__ERR(errno); ++#else ++ { ++ (void) &args; ++ return UV_ENOSYS; ++ } ++#endif + + if (n != sizeof(uuid)) + return UV_EIO; /* Can't happen. */ diff --git a/libuv.spec b/libuv.spec index dc13a0c..2cf6031 100644 --- a/libuv.spec +++ b/libuv.spec @@ -1,7 +1,7 @@ Name: libuv Epoch: 1 Version: 1.33.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Platform layer for node.js # the licensing breakdown is described in detail in the LICENSE file @@ -13,6 +13,12 @@ Source2: %{name}.pc.in BuildRequires: autoconf automake libtool BuildRequires: gcc +# -- Patches -- # +# Upstream patch to fix builds on aarch64 +# https://github.com/libuv/libuv/pull/2524 +Patch0001: 2524.patch + + %description libuv is a new platform layer for Node. Its purpose is to abstract IOCP on Windows and libev on Unix systems. We intend to eventually contain all platform @@ -32,6 +38,7 @@ Requires: %{name}-devel%{?_isa} = %{epoch}:%{version}-%{release} %description static Static library (.a) version of libuv. + %prep %autosetup -n %{name}-v%{version} -p1 @@ -68,6 +75,9 @@ rm -f %{buildroot}%{_libdir}/libuv.la %{_libdir}/%{name}.a %changelog +* Mon Oct 21 2019 Stephen Gallagher - 1.33.0-2 +- Add upstream patch to fix aarch64 builds + * Fri Oct 18 2019 Stephen Gallagher - 1.33.0-1 - Update to 1.33.0 - https://github.com/libuv/libuv/blob/v1.33.0/ChangeLog