Add upstream patch to fix aarch64 builds

Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
This commit is contained in:
Stephen Gallagher 2019-10-21 09:09:26 -04:00
parent 9090083edd
commit bd8f350fdf
No known key found for this signature in database
GPG Key ID: 7A25556236BAA3A3
2 changed files with 47 additions and 1 deletions

36
2524.patch Normal file
View File

@ -0,0 +1,36 @@
From eb5552190000b9699bba33e1e419f500c7bd18b7 Mon Sep 17 00:00:00 2001
From: Ben Noordhuis <info@bnoordhuis.nl>
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. */

View File

@ -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 <sgallagh@redhat.com> - 1.33.0-2
- Add upstream patch to fix aarch64 builds
* Fri Oct 18 2019 Stephen Gallagher <sgallagh@redhat.com> - 1.33.0-1
- Update to 1.33.0
- https://github.com/libuv/libuv/blob/v1.33.0/ChangeLog