[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: cmake ftbfs on ppc64el (and ppc64)



Control: tags -1 +patch

On Fri, 2024-01-12 at 01:31 +0100, John Paul Adrian Glaubitz wrote:
> This has now been tracked down to the libuv upstream change that introduced support
> for io_uring [1]. This regression is tracked now in a new issue for libuv [2].

The attached patch disables io_uring on ppc64 and ppc64el for the time being until
the upstream issue has been resolved.

Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer
`. `'   Physicist
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
From 3b6a1a14caeeeaf5510f2939a8e28ed9ba0ad968 Mon Sep 17 00:00:00 2001
From: Brad King <brad.king@kitware.com>
Date: Sat, 13 Jan 2024 06:04:01 -0500
Subject: [PATCH] linux: disable io_uring on ppc64 and ppc64le (#4285)

Since `io_uring` support was added, libuv's signal handler randomly
segfaults on ppc64 when interrupting `epoll_pwait`.  Disable it
pending further investigation.

Issue: https://github.com/libuv/libuv/issues/4283
---
 src/unix/linux.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/unix/linux.c b/src/unix/linux.c
index 3c1313e7..4164e90d 100644
--- a/src/unix/linux.c
+++ b/src/unix/linux.c
@@ -463,6 +463,9 @@ static int uv__use_io_uring(void) {
 #elif defined(__arm__) && __SIZEOF_POINTER__ == 4
   /* See https://github.com/libuv/libuv/issues/4158. */
   return 0;  /* All 32 bits kernels appear buggy. */
+#elif defined(__powerpc64__) || defined(__ppc64__)
+  /* See https://github.com/libuv/libuv/issues/4283. */
+  return 0; /* Random SIGSEGV in signal handler. */
 #else
   /* Ternary: unknown=0, yes=1, no=-1 */
   static _Atomic int use_io_uring;
-- 
2.43.0


Reply to: