Frogging-Family / wine-tkg-git

The wine-tkg build systems, to create custom Wine and Proton builds
866 stars 156 forks source link

Can't build wine-staging v9.18 with protonify="true" #1265

Open rankynbass opened 2 days ago

rankynbass commented 2 days ago

The build errors out with:

ccache gcc -m64 -c -o dlls/ntdll/unix/virtual.o ../wine-git/dlls/ntdll/unix/virtual.c -Idlls/ntdll -I../wine-git/dlls/ntdll \
  -Iinclude -I../wine-git/include -D__WINESRC__ -D_NTSYSTEM_ -D_ACRTIMP= -DWINBASEAPI= \
  -DWINE_UNIX_LIB -I/usr/include/x86_64-linux-gnu -Wall -pipe -fcf-protection=none \
  -fvisibility=hidden -fno-stack-protector -fno-strict-aliasing -Wdeclaration-after-statement \
  -Wempty-body -Wignored-qualifiers -Winit-self -Wlogical-op -Wno-packed-not-aligned -Wpointer-arith \
  -Wshift-overflow=2 -Wstrict-prototypes -Wtype-limits -Wunused-but-set-parameter -Wvla \
  -Wwrite-strings -Wno-misleading-indentation -fPIC -fasynchronous-unwind-tables -O2 -ftree-vectorize -Wno-error=implicit-function-declaration -Wno-error=incompatible-pointer-types -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
../wine-git/dlls/ntdll/unix/virtual.c: In function ‘get_prot_str’:
../wine-git/dlls/ntdll/unix/virtual.c:1127:52: error: ‘VPROT_WRITTEN’ undeclared (first use in this function); did you mean ‘VPROT_WRITE’?
 1127 |     buffer[3] = (prot & VPROT_WRITECOPY) ? (prot & VPROT_WRITTEN ? 'w' : 'W')
      |                                                    ^~~~~~~~~~~~~
      |                                                    VPROT_WRITE
../wine-git/dlls/ntdll/unix/virtual.c:1127:52: note: each undeclared identifier is reported only once for each function it appears in
../wine-git/dlls/ntdll/unix/virtual.c: In function ‘try_map_free_area’:
../wine-git/dlls/ntdll/unix/virtual.c:1304:11: warning: unused variable ‘ptr’ [-Wunused-variable]
 1304 |     void *ptr;
      |           ^~~
../wine-git/dlls/ntdll/unix/virtual.c: In function ‘NtProtectVirtualMemory’:
../wine-git/dlls/ntdll/unix/virtual.c:5051:49: error: ‘VPROT_WRITTEN’ undeclared (first use in this function); did you mean ‘VPROT_WRITE’?
 5051 |                 set_page_vprot_bits(base, size, VPROT_WRITTEN, 0);
      |                                                 ^~~~~~~~~~~~~
      |                                                 VPROT_WRITE
make: *** [Makefile:115012: dlls/ntdll/unix/virtual.o] Error 1

It appears wine-staging commit 16dce52 is the culprit.

rankynbass commented 1 day ago

Did a sanity check, and dropped the deleted ntdll-WRITECOPY patch files into the wine-tkg-userpatchs folder (renamed to *.mypatch), and it built successfully.

Files were:

0001-ntdll-Trigger-write-watches-before-passing-userdata-.patch
0002-ntdll-Trigger-write-watches-on-the-info-pointer-in-S.patch
0003-ntdll-Install-signal-handlers-a-bit-earlier.patch
0004-ntdll-Properly-handle-PAGE_WRITECOPY-protection.-try.patch
0005-ntdll-Track-if-a-WRITECOPY-page-has-been-modified.patch
0007-ntdll-Report-unmodified-WRITECOPY-pages-as-shared.patch
0008-ntdll-Fallback-to-copy-pages-for-WRITECOPY.patch
0009-kernel32-tests-psapi-tests-Update-tests.patch

Edit to add: It did build successfully with these files, but is at least partially broken.