wine: update to 9.6

This commit is contained in:
Raven 2024-04-25 17:11:02 +06:00
parent 1f4ec2b150
commit bafc074a57
5 changed files with 418 additions and 367 deletions

1
wine/sysctl.conf Normal file
View File

@ -0,0 +1 @@
vm.max_map_count=1048576

View File

@ -0,0 +1,25 @@
--- wine-7.20.old/aclocal.m4 2022-11-17 17:19:01.772386752 +0100
+++ wine-7.20/aclocal.m4 2022-11-17 17:24:03.721683055 +0100
@@ -279,15 +279,17 @@
dnl
dnl Usage: WINE_CHECK_DEFINE(name),[action-if-yes,[action-if-no]])
dnl
AC_DEFUN([WINE_CHECK_DEFINE],
[AS_VAR_PUSHDEF([ac_var],[ac_cv_cpp_def_$1])dnl
-AC_CACHE_CHECK([whether we need to define $1],ac_var,
- AC_EGREP_CPP(yes,[#ifndef $1
-yes
-#endif],
- [AS_VAR_SET(ac_var,yes)],[AS_VAR_SET(ac_var,no)]))
+AC_CACHE_CHECK([whether we need to define $1], ac_var,
+ [AC_PREPROC_IFELSE([[
+#ifndef $1
+#error not defined
+#endif
+]],
+ [AS_VAR_SET(ac_var,no)],[AS_VAR_SET(ac_var,yes)])])
AS_VAR_IF([ac_var],[yes],
[CFLAGS="$CFLAGS -D$1"
LINTFLAGS="$LINTFLAGS -D$1"])dnl
AS_VAR_POPDEF([ac_var])])

View File

@ -1,21 +0,0 @@
--- a/aclocal.m4 2022-03-25 15:26:21.000000000 -0500
+++ b/aclocal.m4 2022-03-30 14:17:03.862124917 -0500
@@ -229,6 +229,7 @@
AC_CACHE_CHECK([for MinGW $1], ac_var,
[ac_wine_check_headers_saved_cc=$CC
ac_wine_check_headers_saved_exeext=$ac_exeext
+CFLAGS="$CROSSCFLAGS"
CC="$CROSSCC"
ac_exeext=".exe"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[$4
@@ -248,8 +249,10 @@
[ac_wine_check_headers_saved_cc=$CC
ac_wine_check_headers_saved_exeext=$ac_exeext
ac_wine_check_headers_saved_libs=$LIBS
+CFLAGS="$CROSSCFLAGS"
CC="$CROSSCC"
ac_exeext=".exe"
+LDFLAGS="$CROSSLDFLAGS"
LIBS="-l$1 $5 $LIBS"
AC_LINK_IFELSE([AC_LANG_CALL([], [$2])],[AS_VAR_SET([ac_var],[yes])],[AS_VAR_SET([ac_var],[no])])
CC=$ac_wine_check_headers_saved_cc

115
wine/wine-staging-9.0.patch Normal file
View File

@ -0,0 +1,115 @@
--- patches/eventfd_synchronization/0003-ntdll-Create-eventfd-based-objects-for-semaphores.patch.orig 2024-01-16 15:47:35.000000000 -0600
+++ patches/eventfd_synchronization/0003-ntdll-Create-eventfd-based-objects-for-semaphores.patch 2024-01-17 20:36:36.796186786 -0600
@@ -197,7 +197,7 @@
+ }
+ }
+
-+ if (!InterlockedCompareExchange( (int *)&esync_list[entry][idx].type, type, 0 ))
++ if (!InterlockedCompareExchange( (LONG *)&esync_list[entry][idx].type, type, 0 ))
+ {
+ esync_list[entry][idx].fd = fd;
+ esync_list[entry][idx].shm = shm;
--- patches/eventfd_synchronization/0005-ntdll-Implement-NtClose.patch.orig 2024-01-16 15:47:35.000000000 -0600
+++ patches/eventfd_synchronization/0005-ntdll-Implement-NtClose.patch 2024-01-17 20:22:59.170405980 -0600
@@ -25,7 +25,7 @@
+
+ if (entry < ESYNC_LIST_ENTRIES && esync_list[entry])
+ {
-+ if (InterlockedExchange((int *)&esync_list[entry][idx].type, 0))
++ if (InterlockedExchange((LONG *)&esync_list[entry][idx].type, 0))
+ {
+ close( esync_list[entry][idx].fd );
+ return STATUS_SUCCESS;
--- patches/eventfd_synchronization/0004-ntdll-Implement-NtReleaseSemaphore.patch.orig 2024-01-16 15:47:35.000000000 -0600
+++ patches/eventfd_synchronization/0004-ntdll-Implement-NtReleaseSemaphore.patch 2024-01-17 20:25:51.399420034 -0600
@@ -60,7 +60,7 @@
+
+ if (count + current > semaphore->max)
+ return STATUS_SEMAPHORE_LIMIT_EXCEEDED;
-+ } while (InterlockedCompareExchange( &semaphore->count, count + current, current ) != current);
++ } while (InterlockedCompareExchange( (LONG *) &semaphore->count, count + current, current ) != current);
+
+ if (prev) *prev = current;
+
--- patches/eventfd_synchronization/0050-ntdll-server-Try-to-avoid-poll-for-signaled-events.patch.orig 2024-01-16 15:47:35.000000000 -0600
+++ patches/eventfd_synchronization/0050-ntdll-server-Try-to-avoid-poll-for-signaled-events.patch 2024-01-17 20:29:39.020112232 -0600
@@ -90,7 +90,7 @@
+ if (obj->type == ESYNC_MANUAL_EVENT)
+ {
+ /* Acquire the spinlock. */
-+ while (InterlockedCompareExchange( &event->locked, 1, 0 ))
++ while (InterlockedCompareExchange( (LONG *) &event->locked, 1, 0 ))
+ small_pause();
+ }
+
@@ -103,7 +103,7 @@
+ * eventfd is unsignaled (i.e. reset shm, set shm, set fd, reset fd), we
+ * *must* signal the fd now, or any waiting threads will never wake up. */
+
-+ if (!InterlockedExchange( &event->signaled, 1 ) || obj->type == ESYNC_AUTO_EVENT)
++ if (!InterlockedExchange( (LONG *) &event->signaled, 1 ) || obj->type == ESYNC_AUTO_EVENT)
+ {
+ if (write( obj->fd, &value, sizeof(value) ) == -1)
+ ERR("write: %s\n", strerror(errno));
@@ -137,7 +137,7 @@
+ if (obj->type == ESYNC_MANUAL_EVENT)
+ {
+ /* Acquire the spinlock. */
-+ while (InterlockedCompareExchange( &event->locked, 1, 0 ))
++ while (InterlockedCompareExchange( (LONG *) &event->locked, 1, 0 ))
+ small_pause();
+ }
+
@@ -147,7 +147,7 @@
+ * For auto-reset events, we have no guarantee that the previous "signaled"
+ * state is actually correct. We need to leave both states unsignaled after
+ * leaving this function, so we always have to read(). */
-+ if (InterlockedExchange( &event->signaled, 0 ) || obj->type == ESYNC_AUTO_EVENT)
++ if (InterlockedExchange( (LONG *) &event->signaled, 0 ) || obj->type == ESYNC_AUTO_EVENT)
+ {
+ if (read( obj->fd, &value, sizeof(value) ) == -1 && errno != EWOULDBLOCK && errno != EAGAIN)
+ {
--- patches/eventfd_synchronization/0006-ntdll-Implement-NtWaitForMultipleObjects.patch.orig 2024-01-16 15:47:35.000000000 -0600
+++ patches/eventfd_synchronization/0006-ntdll-Implement-NtWaitForMultipleObjects.patch 2024-01-17 20:31:23.217332813 -0600
@@ -82,7 +82,7 @@
+ * fact that we were able to grab it at all means the count is nonzero,
+ * and if someone else grabbed it then the count must have been >= 2,
+ * etc. */
-+ InterlockedExchangeAdd( &semaphore->count, -1 );
++ InterlockedExchangeAdd( (LONG *) &semaphore->count, -1 );
+ }
+}
+
--- patches/eventfd_synchronization/0007-ntdll-server-Implement-NtCreateEvent.patch.orig 2024-01-16 15:47:35.000000000 -0600
+++ patches/eventfd_synchronization/0007-ntdll-server-Implement-NtCreateEvent.patch 2024-01-17 20:31:54.500700144 -0600
@@ -49,7 +49,7 @@
@@ -339,6 +358,14 @@ static void update_grabbed_object( struct esync *obj )
* etc. */
- InterlockedExchangeAdd( &semaphore->count, -1 );
+ InterlockedExchangeAdd( (LONG *) &semaphore->count, -1 );
}
+ else if (obj->type == ESYNC_AUTO_EVENT)
+ {
--- patches/eventfd_synchronization/0049-ntdll-Try-to-avoid-poll-for-uncontended-objects.patch.orig 2024-01-16 15:47:35.000000000 -0600
+++ patches/eventfd_synchronization/0049-ntdll-Try-to-avoid-poll-for-uncontended-objects.patch 2024-01-17 21:07:47.674962176 -0600
@@ -68,7 +68,7 @@
+ if ((size = read( obj->fd, &value, sizeof(value) )) == sizeof(value))
+ {
+ TRACE("Woken up by handle %p [%d].\n", handles[i], i);
-+ InterlockedDecrement( &semaphore->count );
++ InterlockedDecrement( (LONG *) &semaphore->count );
+ return i;
+ }
+ }
--- patches/gdi32-rotation/0002-gdi32-fix-for-rotated-ellipse.patch.orig 2024-01-16 15:47:35.000000000 -0600
+++ patches/gdi32-rotation/0002-gdi32-fix-for-rotated-ellipse.patch 2024-01-18 08:19:37.882485865 -0600
@@ -74,7 +74,7 @@
+ }
+
+ if (pdev->brush.style != BS_NULL &&
-+ !(interior = ULongToHandle(NtGdiPolyPolyDraw( ULongToHandle(ALTERNATE), points, (const UINT *)&count, 1, NtGdiPolyPolygonRgn ))))
++ !(interior = ULongToHandle(NtGdiPolyPolyDraw( ULongToHandle(ALTERNATE), points, (const ULONG *)&count, 1, NtGdiPolyPolygonRgn ))))
+ {
+ free( points );
+ if (outline) NtGdiDeleteObjectApp( outline );

File diff suppressed because it is too large Load Diff