It's because you are building Proton's wine outside of the provided container, which again is not supported. You are building with your system headers which already have __NR_futex_waitv define. fsync.c doesn't include linux/futex.h, so we wont have FUTEX_32 or struct futex_waitv available.
The correct fix is to either start including linux/futex.h but is should probably come with configure.ac changes so we can have a test for it, or just define both unconditionally.
diff --git a/dlls/ntdll/unix/fsync.c b/dlls/ntdll/unix/fsync.c
index 8f07ed59ae0..3973278e439 100644
--- a/dlls/ntdll/unix/fsync.c
+++ b/dlls/ntdll/unix/fsync.c
@@ -66,9 +66,10 @@ WINE_DEFAULT_DEBUG_CHANNEL(fsync);
/* futex_waitv interface */
#ifndef __NR_futex_waitv
-
# define __NR_futex_waitv 449
-# define FUTEX_32 2
+#endif
+
+#define FUTEX_32 2
struct futex_waitv {
uint64_t val;
uint64_t uaddr;
@@ -76,8 +77,6 @@ struct futex_waitv {
uint32_t __reserved;
};
-#endif
-
#define u64_to_ptr(x) (void *)(uintptr_t)(x)
struct timespec64
Currently I don't have a better patch to offer, it's been a long time since wine-proton build and we will continue as long as possible.
Because it remains our reference wine
Thank you already for updating my patch.
And also for your indications.
Issue Fixed
Hi,
When try to use kernel patch from : https://github.com/andrealmeid/futex_waitv_patches/tree/main/5.15
And when try to build proton 6.3-8-rc3
Have this issue :
I can build proton only if i remove patch for add futex-waitv.
@ivyl i know you have work on fsync too if you have idea ?
Update : For fix this issue have apply this patch :
Best Regards