nixsgx/packages/libuv/no-eventfd.patch
Harald Hoyer 1054e3dbe4
feat: initial commit
Signed-off-by: Harald Hoyer <harald@matterlabs.dev>
2024-02-07 11:25:05 +01:00

36 lines
834 B
Diff

diff --git a/src/unix/async.c b/src/unix/async.c
index 0ff2669e..2bb87863 100644
--- a/src/unix/async.c
+++ b/src/unix/async.c
@@ -35,6 +35,13 @@
#include <sched.h> /* sched_yield() */
#ifdef __linux__
+#define HAVE_EVENT_FD
+#endif
+
+// No eventfd for gramine
+#undef HAVE_EVENT_FD
+
+#ifdef HAVE_EVENT_FD
#include <sys/eventfd.h>
#endif
@@ -188,7 +195,7 @@ static void uv__async_send(uv_loop_t* loop) {
len = 1;
fd = loop->async_wfd;
-#if defined(__linux__)
+#if defined(HAVE_EVENT_FD)
if (fd == -1) {
static const uint64_t val = 1;
buf = &val;
@@ -219,7 +226,7 @@ static int uv__async_start(uv_loop_t* loop) {
if (loop->async_io_watcher.fd != -1)
return 0;
-#ifdef __linux__
+#ifdef HAVE_EVENT_FD
err = eventfd(0, EFD_CLOEXEC | EFD_NONBLOCK);
if (err < 0)
return UV__ERR(errno);