--- libuv-1.40.0/src/win/atomicops-inl.h.orig	2021-01-12 14:43:58.259375600 -0800
+++ libuv-1.40.0/src/win/atomicops-inl.h	2021-01-12 14:49:35.587505100 -0800
@@ -41,6 +41,8 @@
 
 #else /* GCC */
 
+#if defined(__i386__) || defined(__x86_64__)
+
 /* Mingw-32 version, hopefully this works for 64-bit gcc as well. */
 static inline char uv__atomic_exchange_set(char volatile* target) {
   const char one = 1;
@@ -52,6 +54,14 @@
   return old_value;
 }
 
+#else
+
+static inline char uv__atomic_exchange_set(char volatile* target) {
+  return __atomic_exchange_n(target, 1, __ATOMIC_SEQ_CST);
+}
+
+#endif
+
 #endif
 
 #endif /* UV_WIN_ATOMICOPS_INL_H_ */
