From 00ab8180c0c51cbc818b95c1eea3baaa3099dabe Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Thu, 4 Nov 2021 10:15:32 +1100 Subject: [PATCH] Rebase against 46367d1ecc8a016ab7c7af9ec107e33c6d46fc26. --- ...ile-error-when-HAVE_GNUTLS_CIPHER_IN.patch | 14 +-- ...ediag-message-to-show-warning-that-t.patch | 14 +-- ...for-sys-eventfd.h-ppoll-and-shm_open.patch | 94 ------------------- patches/ntdll-ForceBottomUpAlloc/definition | 2 +- ...t-HashLinks-field-in-LDR-module-data.patch | 28 ++++-- ...t-for-hiding-wine-version-informatio.patch | 22 ++--- ...e-check-before-returning-a-default-s.patch | 10 +- ...f-a-WRITECOPY-page-has-been-modified.patch | 16 ++-- patches/ntdll-WRITECOPY/definition | 2 +- patches/patchinstall.sh | 37 +------- ...-windows.networking.connectivity.idl.patch | 12 +-- ...2-include-Add-windows.networking.idl.patch | 16 ++-- staging/upstream-commit | 2 +- 13 files changed, 76 insertions(+), 193 deletions(-) diff --git a/patches/Compiler_Warnings/0034-bcrypt-Stop-compile-error-when-HAVE_GNUTLS_CIPHER_IN.patch b/patches/Compiler_Warnings/0034-bcrypt-Stop-compile-error-when-HAVE_GNUTLS_CIPHER_IN.patch index adaae846..52d19add 100644 --- a/patches/Compiler_Warnings/0034-bcrypt-Stop-compile-error-when-HAVE_GNUTLS_CIPHER_IN.patch +++ b/patches/Compiler_Warnings/0034-bcrypt-Stop-compile-error-when-HAVE_GNUTLS_CIPHER_IN.patch @@ -1,4 +1,4 @@ -From 7784b62bd2b64aabd6bfef9ef39ac4f3e8c55c77 Mon Sep 17 00:00:00 2001 +From eb21fcc668da85977bc86b6105f3830cb26c93e6 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Tue, 8 Jun 2021 08:56:40 +1000 Subject: [PATCH] bcrypt: Stop compile error when HAVE_GNUTLS_CIPHER_INIT not @@ -20,21 +20,21 @@ Signed-off-by: Alistair Leslie-Hughes 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dlls/bcrypt/gnutls.c b/dlls/bcrypt/gnutls.c -index 37a80bdc062..64825f5b99b 100644 +index d7b4499c692..11596d5f7ac 100644 --- a/dlls/bcrypt/gnutls.c +++ b/dlls/bcrypt/gnutls.c -@@ -25,9 +25,10 @@ +@@ -24,9 +24,10 @@ + #include "config.h" - #include "wine/port.h" +#include + #ifdef HAVE_GNUTLS_CIPHER_INIT -#include + #include #include - #include - #include + #include -- -2.30.2 +2.33.0 diff --git a/patches/Staging/0001-kernel32-Add-winediag-message-to-show-warning-that-t.patch b/patches/Staging/0001-kernel32-Add-winediag-message-to-show-warning-that-t.patch index 706329ce..e0ad19a3 100644 --- a/patches/Staging/0001-kernel32-Add-winediag-message-to-show-warning-that-t.patch +++ b/patches/Staging/0001-kernel32-Add-winediag-message-to-show-warning-that-t.patch @@ -1,4 +1,4 @@ -From 916189d1cdf149f16867870121171e20f129da9f Mon Sep 17 00:00:00 2001 +From 36b4dbb687232d783cc3203da1dee4a797606ba7 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Thu, 2 Oct 2014 19:44:31 +0200 Subject: [PATCH] ntdll: Print a warning message specifying the wine-staging @@ -9,7 +9,7 @@ Subject: [PATCH] ntdll: Print a warning message specifying the wine-staging 1 file changed, 15 insertions(+) diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c -index 3339596944a..1d435f88755 100644 +index 255d5afef79..00add6728cc 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c @@ -44,6 +44,7 @@ WINE_DECLARE_DEBUG_CHANNEL(relay); @@ -20,7 +20,7 @@ index 3339596944a..1d435f88755 100644 #ifdef _WIN64 #define DEFAULT_SECURITY_COOKIE_64 (((ULONGLONG)0x00002b99 << 32) | 0x2ddfa232) -@@ -3373,6 +3374,7 @@ void WINAPI LdrShutdownProcess(void) +@@ -3536,6 +3537,7 @@ void WINAPI LdrShutdownProcess(void) process_detach(); } @@ -28,7 +28,7 @@ index 3339596944a..1d435f88755 100644 /****************************************************************** * RtlExitUserProcess (NTDLL.@) -@@ -3783,6 +3785,9 @@ static void init_wow64( CONTEXT *context ) +@@ -3955,6 +3957,9 @@ static void release_address_space(void) */ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR unknown3, ULONG_PTR unknown4 ) { @@ -36,9 +36,9 @@ index 3339596944a..1d435f88755 100644 + UNICODE_STRING staging_event_string; + HANDLE staging_event; static int attach_done; - int i; NTSTATUS status; -@@ -3869,6 +3874,16 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR + ULONG_PTR cookie; +@@ -4041,6 +4046,16 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR if (NtCurrentTeb()->WowTebOffset) init_wow64( context ); #endif @@ -56,5 +56,5 @@ index 3339596944a..1d435f88755 100644 InsertHeadList( &tls_links, &NtCurrentTeb()->TlsLinks ); RtlReleasePebLock(); -- -2.30.2 +2.33.0 diff --git a/patches/eventfd_synchronization/0001-configure-Check-for-sys-eventfd.h-ppoll-and-shm_open.patch b/patches/eventfd_synchronization/0001-configure-Check-for-sys-eventfd.h-ppoll-and-shm_open.patch index 08568f99..383782ce 100644 --- a/patches/eventfd_synchronization/0001-configure-Check-for-sys-eventfd.h-ppoll-and-shm_open.patch +++ b/patches/eventfd_synchronization/0001-configure-Check-for-sys-eventfd.h-ppoll-and-shm_open.patch @@ -7,104 +7,10 @@ We use ppoll() instead of poll() for the better time granularity. Although perhaps we shouldn't since the server doesn't do this. --- - configure | 68 +++++++++++++++++++++++++++++++++++++++++++++ configure.ac | 12 ++++++++ include/config.h.in | 9 ++++++ 3 files changed, 89 insertions(+) -diff --git a/configure b/configure -index ec425d91f63..200b42b7fe7 100755 ---- a/configure -+++ b/configure -@@ -7525,6 +7525,7 @@ for ac_header in \ - sys/cdio.h \ - sys/epoll.h \ - sys/event.h \ -+ sys/eventfd.h \ - sys/filio.h \ - sys/ioctl.h \ - sys/ipc.h \ -@@ -17912,6 +17913,7 @@ for ac_func in \ - port_create \ - posix_fadvise \ - posix_fallocate \ -+ ppoll \ - prctl \ - proc_pidinfo \ - setproctitle \ -@@ -18255,6 +18257,72 @@ fi - ;; - esac - -+if test "$ac_cv_header_sys_mman_h" = "yes" -a "x$RT_LIBS" = "x" -+then -+ ac_save_LIBS=$LIBS -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing shm_open" >&5 -+$as_echo_n "checking for library containing shm_open... " >&6; } -+if ${ac_cv_search_shm_open+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ ac_func_search_save_LIBS=$LIBS -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+/* Override any GCC internal prototype to avoid an error. -+ Use char because int might match the return type of a GCC -+ builtin and then its argument prototype would still apply. */ -+#ifdef __cplusplus -+extern "C" -+#endif -+char shm_open (); -+int -+main () -+{ -+return shm_open (); -+ ; -+ return 0; -+} -+_ACEOF -+for ac_lib in '' rt; do -+ if test -z "$ac_lib"; then -+ ac_res="none required" -+ else -+ ac_res=-l$ac_lib -+ LIBS="-l$ac_lib $ac_func_search_save_LIBS" -+ fi -+ if ac_fn_c_try_link "$LINENO"; then : -+ ac_cv_search_shm_open=$ac_res -+fi -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext -+ if ${ac_cv_search_shm_open+:} false; then : -+ break -+fi -+done -+if ${ac_cv_search_shm_open+:} false; then : -+ -+else -+ ac_cv_search_shm_open=no -+fi -+rm conftest.$ac_ext -+LIBS=$ac_func_search_save_LIBS -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_shm_open" >&5 -+$as_echo "$ac_cv_search_shm_open" >&6; } -+ac_res=$ac_cv_search_shm_open -+if test "$ac_res" != no; then : -+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" -+ -+$as_echo "#define HAVE_SHM_OPEN 1" >>confdefs.h -+ -+ test "$ac_res" = "none required" || RT_LIBS="$ac_res" -+ -+fi -+ -+fi -+LIBS=$ac_save_LIBS -+ - if test "x$with_ldap" != "xno" - then - if ${LDAP_CFLAGS:+false} :; then : diff --git a/configure.ac b/configure.ac index 718ab1ca50e..d5f82ad2af4 100644 --- a/configure.ac diff --git a/patches/ntdll-ForceBottomUpAlloc/definition b/patches/ntdll-ForceBottomUpAlloc/definition index fe758c9e..db90605f 100644 --- a/patches/ntdll-ForceBottomUpAlloc/definition +++ b/patches/ntdll-ForceBottomUpAlloc/definition @@ -1,3 +1,3 @@ Fixes: [48175] AION (64 bit) - crashes in crysystem.dll.CryFree() due to high memory pointers allocated Fixes: [46568] 64-bit msxml6.dll from Microsoft Core XML Services 6.0 redist package fails to load (Wine doesn't respect 44-bit user-mode VA limitation from Windows < 8.1) - +Disabled: True diff --git a/patches/ntdll-HashLinks/0001-ntdll-Implement-HashLinks-field-in-LDR-module-data.patch b/patches/ntdll-HashLinks/0001-ntdll-Implement-HashLinks-field-in-LDR-module-data.patch index 97a10fdf..358f80d8 100644 --- a/patches/ntdll-HashLinks/0001-ntdll-Implement-HashLinks-field-in-LDR-module-data.patch +++ b/patches/ntdll-HashLinks/0001-ntdll-Implement-HashLinks-field-in-LDR-module-data.patch @@ -1,12 +1,12 @@ -From 187108be05dcf7521646c22f637627147d9bbdb3 Mon Sep 17 00:00:00 2001 +From f44bf16013c0dace490308af9ce17b3ff6082abf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Mon, 3 Apr 2017 05:30:27 +0200 Subject: [PATCH] ntdll: Implement HashLinks field in LDR module data. --- dlls/kernel32/tests/loader.c | 75 ++++++++++++++++++++++++++++++++++++ - dlls/ntdll/loader.c | 41 ++++++++++++++++++++ - 2 files changed, 116 insertions(+) + dlls/ntdll/loader.c | 42 ++++++++++++++++++++ + 2 files changed, 117 insertions(+) diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c index 4f1b11338a6..56cd5a88e20 100644 @@ -109,7 +109,7 @@ index 4f1b11338a6..56cd5a88e20 100644 test_dll_file( "kernel32.dll" ); test_dll_file( "advapi32.dll" ); diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c -index 65d684e555c..644d531d8f8 100644 +index 6dcf73295b0..8b9305ff5b6 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c @@ -129,6 +129,9 @@ struct file_id @@ -122,7 +122,7 @@ index 65d684e555c..644d531d8f8 100644 /* internal representation of loaded modules */ typedef struct _wine_modref { -@@ -477,6 +480,33 @@ static void call_ldr_notifications( ULONG reason, LDR_DATA_TABLE_ENTRY *module ) +@@ -476,6 +479,33 @@ static void call_ldr_notifications( ULONG reason, LDR_DATA_TABLE_ENTRY *module ) } } @@ -156,7 +156,7 @@ index 65d684e555c..644d531d8f8 100644 /************************************************************************* * get_modref * -@@ -1253,7 +1283,12 @@ static WINE_MODREF *alloc_module( HMODULE hModule, const UNICODE_STRING *nt_name +@@ -1352,7 +1382,12 @@ static WINE_MODREF *alloc_module( HMODULE hModule, const UNICODE_STRING *nt_name &wm->ldr.InLoadOrderLinks); InsertTailList(&NtCurrentTeb()->Peb->LdrData->InMemoryOrderModuleList, &wm->ldr.InMemoryOrderLinks); @@ -169,7 +169,7 @@ index 65d684e555c..644d531d8f8 100644 if (!(nt->OptionalHeader.DllCharacteristics & IMAGE_DLLCHARACTERISTICS_NX_COMPAT)) { -@@ -1933,6 +1968,7 @@ static NTSTATUS build_module( LPCWSTR load_path, const UNICODE_STRING *nt_name, +@@ -2032,6 +2067,7 @@ static NTSTATUS build_module( LPCWSTR load_path, const UNICODE_STRING *nt_name, /* the module has only be inserted in the load & memory order lists */ RemoveEntryList(&wm->ldr.InLoadOrderLinks); RemoveEntryList(&wm->ldr.InMemoryOrderLinks); @@ -177,15 +177,23 @@ index 65d684e555c..644d531d8f8 100644 /* FIXME: there are several more dangling references * left. Including dlls loaded by this dll before the -@@ -3518,6 +3554,7 @@ static void free_modref( WINE_MODREF *wm ) - { +@@ -3621,6 +3657,7 @@ static void free_modref( WINE_MODREF *wm ) + RemoveEntryList(&wm->ldr.InLoadOrderLinks); RemoveEntryList(&wm->ldr.InMemoryOrderLinks); + RemoveEntryList(&wm->ldr.HashLinks); if (wm->ldr.InInitializationOrderLinks.Flink) RemoveEntryList(&wm->ldr.InInitializationOrderLinks); -@@ -3881,6 +3918,10 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR +@@ -3983,6 +4020,7 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR + + if (!imports_fixup_done) + { ++ int i; + ANSI_STRING func_name; + WINE_MODREF *kernel32; + PEB *peb = NtCurrentTeb()->Peb; +@@ -4000,6 +4038,10 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR sizeof(peb->TlsExpansionBitmapBits) * 8 ); RtlSetBits( peb->TlsBitmap, 0, 1 ); /* TLS index 0 is reserved and should be initialized to NULL. */ diff --git a/patches/ntdll-Hide_Wine_Exports/0001-ntdll-Add-support-for-hiding-wine-version-informatio.patch b/patches/ntdll-Hide_Wine_Exports/0001-ntdll-Add-support-for-hiding-wine-version-informatio.patch index 00f27f13..b346b630 100644 --- a/patches/ntdll-Hide_Wine_Exports/0001-ntdll-Add-support-for-hiding-wine-version-informatio.patch +++ b/patches/ntdll-Hide_Wine_Exports/0001-ntdll-Add-support-for-hiding-wine-version-informatio.patch @@ -1,4 +1,4 @@ -From b8a8aafd5c57dba6be726cf5974dfce006ea8d06 Mon Sep 17 00:00:00 2001 +From 2900e5cd5220e8a41e7c5a5971f7a32e72f508f5 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sat, 30 May 2015 02:23:15 +0200 Subject: [PATCH] ntdll: Add support for hiding wine version information from @@ -10,10 +10,10 @@ Subject: [PATCH] ntdll: Add support for hiding wine version information from 2 files changed, 103 insertions(+), 1 deletion(-) diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c -index 336b11c6344..46f74df7130 100644 +index 23d44aae64c..77dd56c88f1 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c -@@ -74,6 +74,9 @@ BOOL is_wow64 = FALSE; +@@ -89,6 +89,9 @@ HMODULE kernel32_handle = 0; /* system search path */ static const WCHAR system_path[] = L"C:\\windows\\system32;C:\\windows\\system;C:\\windows"; @@ -23,7 +23,7 @@ index 336b11c6344..46f74df7130 100644 static BOOL is_prefix_bootstrap; /* are we bootstrapping the prefix? */ static BOOL imports_fixup_done = FALSE; /* set once the imports have been fixed up, before attaching them */ static BOOL process_detaching = FALSE; /* set on process detach to avoid deadlocks with thread detach */ -@@ -92,6 +95,8 @@ struct dll_dir_entry +@@ -107,6 +110,8 @@ struct dll_dir_entry static struct list dll_dir_list = LIST_INIT( dll_dir_list ); /* extra dirs from LdrAddDllDirectory */ @@ -32,7 +32,7 @@ index 336b11c6344..46f74df7130 100644 struct ldr_notification { struct list entry; -@@ -1673,6 +1678,96 @@ NTSTATUS WINAPI LdrUnlockLoaderLock( ULONG flags, ULONG_PTR magic ) +@@ -1862,6 +1867,96 @@ NTSTATUS WINAPI LdrUnlockLoaderLock( ULONG flags, ULONG_PTR magic ) } @@ -129,7 +129,7 @@ index 336b11c6344..46f74df7130 100644 /****************************************************************** * LdrGetProcedureAddress (NTDLL.@) */ -@@ -1692,7 +1787,7 @@ NTSTATUS WINAPI LdrGetProcedureAddress(HMODULE module, const ANSI_STRING *name, +@@ -1881,7 +1976,7 @@ NTSTATUS WINAPI LdrGetProcedureAddress(HMODULE module, const ANSI_STRING *name, { void *proc = name ? find_named_export( module, exports, exp_size, name->Buffer, -1, NULL ) : find_ordinal_export( module, exports, exp_size, ord - exports->Base, NULL ); @@ -138,9 +138,9 @@ index 336b11c6344..46f74df7130 100644 { *address = proc; ret = STATUS_SUCCESS; -@@ -1934,6 +2029,8 @@ static void build_ntdll_module(void) - assert( wm ); +@@ -2121,6 +2216,8 @@ static void build_ntdll_module(void) wm->ldr.Flags &= ~LDR_DONT_RESOLVE_REFS; + node_ntdll = wm->ldr.DdagNode; if (TRACE_ON(relay)) RELAY_SetupDLL( meminfo.AllocationBase ); + + hidden_exports_init( wm->ldr.FullDllName.Buffer ); @@ -148,10 +148,10 @@ index 336b11c6344..46f74df7130 100644 diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h -index 400ac9398a5..55695f2c370 100644 +index 27de37d5b88..a8c5e335870 100644 --- a/dlls/ntdll/ntdll_misc.h +++ b/dlls/ntdll/ntdll_misc.h -@@ -100,6 +100,11 @@ static inline TEB64 *NtCurrentTeb64(void) { return (TEB64 *)NtCurrentTeb()->GdiB +@@ -149,6 +149,11 @@ static inline TEB64 *NtCurrentTeb64(void) { return (TEB64 *)NtCurrentTeb()->GdiB NTSTATUS WINAPI RtlHashUnicodeString(PCUNICODE_STRING,BOOLEAN,ULONG,ULONG*); @@ -164,5 +164,5 @@ index 400ac9398a5..55695f2c370 100644 static inline void ascii_to_unicode( WCHAR *dst, const char *src, size_t len ) { -- -2.30.2 +2.33.0 diff --git a/patches/ntdll-Serial_Port_Detection/0001-ntdll-Do-a-device-check-before-returning-a-default-s.patch b/patches/ntdll-Serial_Port_Detection/0001-ntdll-Do-a-device-check-before-returning-a-default-s.patch index 1e4a8c33..a07f49a6 100644 --- a/patches/ntdll-Serial_Port_Detection/0001-ntdll-Do-a-device-check-before-returning-a-default-s.patch +++ b/patches/ntdll-Serial_Port_Detection/0001-ntdll-Do-a-device-check-before-returning-a-default-s.patch @@ -1,4 +1,4 @@ -From 2b56fefe47ac35cb7f2495745da9b2edb9fcd37c Mon Sep 17 00:00:00 2001 +From 4b28fdca0eed2a8307b7f0acb26748713a87181a Mon Sep 17 00:00:00 2001 From: Alex Henrie Date: Tue, 29 Dec 2015 00:48:02 -0700 Subject: [PATCH] mountmgr.sys: Do a device check before returning a default @@ -10,11 +10,11 @@ Fixes https://bugs.winehq.org/show_bug.cgi?id=39793 1 file changed, 24 insertions(+) diff --git a/dlls/mountmgr.sys/device.c b/dlls/mountmgr.sys/device.c -index a6e34ff6976..f2c03dbbb94 100644 +index 4dfe0c62916..f196ca9803f 100644 --- a/dlls/mountmgr.sys/device.c +++ b/dlls/mountmgr.sys/device.c -@@ -27,6 +27,9 @@ - #include +@@ -28,6 +28,9 @@ + #include #include #include +#ifdef HAVE_TERMIOS_H @@ -23,7 +23,7 @@ index a6e34ff6976..f2c03dbbb94 100644 #include #include #ifdef HAVE_SYS_IOCTL_H -@@ -2240,6 +2243,27 @@ static BOOL create_port_device( DRIVER_OBJECT *driver, int n, const char *unix_p +@@ -2241,6 +2244,27 @@ static BOOL create_port_device( DRIVER_OBJECT *driver, int n, const char *unix_p sprintfW( dos_name, dos_name_format, n ); diff --git a/patches/ntdll-WRITECOPY/0005-ntdll-Track-if-a-WRITECOPY-page-has-been-modified.patch b/patches/ntdll-WRITECOPY/0005-ntdll-Track-if-a-WRITECOPY-page-has-been-modified.patch index 764c143a..1dea43fb 100644 --- a/patches/ntdll-WRITECOPY/0005-ntdll-Track-if-a-WRITECOPY-page-has-been-modified.patch +++ b/patches/ntdll-WRITECOPY/0005-ntdll-Track-if-a-WRITECOPY-page-has-been-modified.patch @@ -1,4 +1,4 @@ -From dd7071e971c22e8100510f51763b0efa4e03eb33 Mon Sep 17 00:00:00 2001 +From 4785271b7201cd43778befdf15029f858d2d25e9 Mon Sep 17 00:00:00 2001 From: Andrew Wesie Date: Fri, 24 Apr 2020 14:55:14 -0500 Subject: [PATCH] ntdll: Track if a WRITECOPY page has been modified. @@ -12,18 +12,18 @@ Signed-off-by: Andrew Wesie 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c -index 312448de4a0..37264c91689 100644 +index bf77d534049..c3c8f2d1d5b 100644 --- a/dlls/ntdll/unix/virtual.c +++ b/dlls/ntdll/unix/virtual.c -@@ -141,6 +141,7 @@ struct file_view +@@ -125,6 +125,7 @@ struct file_view #define VPROT_GUARD 0x10 #define VPROT_COMMITTED 0x20 #define VPROT_WRITEWATCH 0x40 +#define VPROT_WRITTEN 0x80 /* per-mapping protection flags */ #define VPROT_SYSTEM 0x0200 /* system view (underlying mmap not under our control) */ - #define VPROT_NATIVE 0x0400 -@@ -1136,7 +1137,7 @@ static int get_unix_prot( BYTE vprot ) + +@@ -1115,7 +1116,7 @@ static int get_unix_prot( BYTE vprot ) #if defined(__i386__) if (vprot & VPROT_WRITECOPY) { @@ -32,7 +32,7 @@ index 312448de4a0..37264c91689 100644 prot = (prot & ~PROT_WRITE) | PROT_READ; else prot |= PROT_WRITE | PROT_READ; -@@ -1573,7 +1574,11 @@ static NTSTATUS create_view( struct file_view **view_ret, void *base, size_t siz +@@ -1677,7 +1678,11 @@ static NTSTATUS create_view( struct file_view **view_ret, void *base, size_t siz */ static DWORD get_win32_prot( BYTE vprot, unsigned int map_prot ) { @@ -45,7 +45,7 @@ index 312448de4a0..37264c91689 100644 if (vprot & VPROT_GUARD) ret |= PAGE_GUARD; if (map_prot & SEC_NOCACHE) ret |= PAGE_NOCACHE; return ret; -@@ -1684,12 +1689,21 @@ static BOOL set_vprot( struct file_view *view, void *base, size_t size, BYTE vpr +@@ -1788,12 +1793,21 @@ static BOOL set_vprot( struct file_view *view, void *base, size_t size, BYTE vpr if (view->protect & VPROT_WRITEWATCH) { /* each page may need different protections depending on write watch flag */ @@ -69,7 +69,7 @@ index 312448de4a0..37264c91689 100644 return TRUE; } -@@ -3449,7 +3463,7 @@ NTSTATUS virtual_handle_fault( void *addr, DWORD err, void *stack ) +@@ -3365,7 +3379,7 @@ NTSTATUS virtual_handle_fault( void *addr, DWORD err, void *stack ) } if (vprot & VPROT_WRITECOPY) { diff --git a/patches/ntdll-WRITECOPY/definition b/patches/ntdll-WRITECOPY/definition index 9f26ca0c..1bb1113b 100644 --- a/patches/ntdll-WRITECOPY/definition +++ b/patches/ntdll-WRITECOPY/definition @@ -1,5 +1,5 @@ Fixes: [29384] Multiple applications expect correct handling of WRITECOPY memory protection (Voobly fails to launch Age of Empires II, MSYS2) -Depends: ntdll-ForceBottomUpAlloc +#Depends: ntdll-ForceBottomUpAlloc # Causes regressions? # https://bugs.wine-staging.com/show_bug.cgi?id=207 # https://bugs.wine-staging.com/show_bug.cgi?id=521 diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 114e663c..b5e67260 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -51,7 +51,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "0b79e2caa6f224fc0da672886c07f4f32dda4682" + echo "46367d1ecc8a016ab7c7af9ec107e33c6d46fc26" } # Show version information @@ -142,7 +142,6 @@ patch_enable_all () enable_ntdll_DOS_Attributes="$1" enable_ntdll_Exception="$1" enable_ntdll_FileFsFullSizeInformation="$1" - enable_ntdll_ForceBottomUpAlloc="$1" enable_ntdll_HashLinks="$1" enable_ntdll_Hide_Wine_Exports="$1" enable_ntdll_Junction_Points="$1" @@ -454,9 +453,6 @@ patch_enable () ntdll-FileFsFullSizeInformation) enable_ntdll_FileFsFullSizeInformation="$2" ;; - ntdll-ForceBottomUpAlloc) - enable_ntdll_ForceBottomUpAlloc="$2" - ;; ntdll-HashLinks) enable_ntdll_HashLinks="$2" ;; @@ -1292,13 +1288,6 @@ if test "$enable_ntdll_Builtin_Prot" -eq 1; then enable_ntdll_WRITECOPY=1 fi -if test "$enable_ntdll_WRITECOPY" -eq 1; then - if test "$enable_ntdll_ForceBottomUpAlloc" -gt 1; then - abort "Patchset ntdll-ForceBottomUpAlloc disabled, but ntdll-WRITECOPY depends on that." - fi - enable_ntdll_ForceBottomUpAlloc=1 -fi - if test "$enable_fltmgr_sys_FltBuildDefaultSecurityDescriptor" -eq 1; then if test "$enable_winedevice_Default_Drivers" -gt 1; then abort "Patchset winedevice-Default_Drivers disabled, but fltmgr.sys-FltBuildDefaultSecurityDescriptor depends on that." @@ -1941,7 +1930,7 @@ fi # | * [#36692] Many multi-threaded applications have poor performance due to heavy use of synchronization primitives # | # | Modified files: -# | * README.esync, configure, configure.ac, dlls/kernel32/tests/sync.c, dlls/ntdll/Makefile.in, dlls/ntdll/unix/esync.c, +# | * README.esync, configure.ac, dlls/kernel32/tests/sync.c, dlls/ntdll/Makefile.in, dlls/ntdll/unix/esync.c, # | dlls/ntdll/unix/esync.h, dlls/ntdll/unix/loader.c, dlls/ntdll/unix/server.c, dlls/ntdll/unix/sync.c, # | dlls/ntdll/unix/unix_private.h, dlls/ntdll/unix/virtual.c, dlls/rpcrt4/rpc_server.c, include/config.h.in, # | server/Makefile.in, server/async.c, server/atom.c, server/change.c, server/clipboard.c, server/completion.c, @@ -2337,28 +2326,8 @@ if test "$enable_ntdll_ApiSetMap" -eq 1; then patch_apply ntdll-ApiSetMap/0001-ntdll-Add-dummy-apiset-to-PEB.patch fi -# Patchset ntdll-ForceBottomUpAlloc -# | -# | This patchset fixes the following Wine bugs: -# | * [#48175] AION (64 bit) - crashes in crysystem.dll.CryFree() due to high memory pointers allocated -# | * [#46568] 64-bit msxml6.dll from Microsoft Core XML Services 6.0 redist package fails to load (Wine doesn't respect -# | 44-bit user-mode VA limitation from Windows < 8.1) -# | -# | Modified files: -# | * dlls/ntdll/unix/virtual.c -# | -if test "$enable_ntdll_ForceBottomUpAlloc" -eq 1; then - patch_apply ntdll-ForceBottomUpAlloc/0001-ntdll-Increase-step-after-failed-map-attempt-in-try_.patch - patch_apply ntdll-ForceBottomUpAlloc/0002-ntdll-Increase-free-ranges-view-block-size-on-64-bit.patch - patch_apply ntdll-ForceBottomUpAlloc/0003-ntdll-Force-virtual-memory-allocation-order.patch - patch_apply ntdll-ForceBottomUpAlloc/0004-ntdll-Exclude-natively-mapped-areas-from-free-areas-.patch -fi - # Patchset ntdll-WRITECOPY # | -# | This patchset has the following (direct or indirect) dependencies: -# | * ntdll-ForceBottomUpAlloc -# | # | This patchset fixes the following Wine bugs: # | * [#29384] Multiple applications expect correct handling of WRITECOPY memory protection (Voobly fails to launch Age of # | Empires II, MSYS2) @@ -2382,7 +2351,7 @@ fi # Patchset ntdll-Builtin_Prot # | # | This patchset has the following (direct or indirect) dependencies: -# | * ntdll-ForceBottomUpAlloc, ntdll-WRITECOPY +# | * ntdll-WRITECOPY # | # | This patchset fixes the following Wine bugs: # | * [#44650] Fix holes in ELF mappings diff --git a/patches/windows.networking.connectivity-new-dll/0001-include-Add-windows.networking.connectivity.idl.patch b/patches/windows.networking.connectivity-new-dll/0001-include-Add-windows.networking.connectivity.idl.patch index 082c349d..72927634 100644 --- a/patches/windows.networking.connectivity-new-dll/0001-include-Add-windows.networking.connectivity.idl.patch +++ b/patches/windows.networking.connectivity-new-dll/0001-include-Add-windows.networking.connectivity.idl.patch @@ -1,7 +1,7 @@ -From c928a124f0e5a35fe02f27f0d08cfdbc9e6a35e8 Mon Sep 17 00:00:00 2001 +From 47ca467e3697bb01ee996a1cf8d5ed94227cbbc2 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Fri, 28 May 2021 12:34:37 +1000 -Subject: [PATCH 1/8] include: Add windows.networking.connectivity.idl +Subject: [PATCH] include: Add windows.networking.connectivity.idl --- include/Makefile.in | 1 + @@ -10,17 +10,17 @@ Subject: [PATCH 1/8] include: Add windows.networking.connectivity.idl create mode 100644 include/windows.networking.connectivity.idl diff --git a/include/Makefile.in b/include/Makefile.in -index 9822bce6bdd..8e40dfd903f 100644 +index d3856fc76e6..db74ceb8376 100644 --- a/include/Makefile.in +++ b/include/Makefile.in -@@ -760,6 +760,7 @@ SOURCES = \ +@@ -784,6 +784,7 @@ SOURCES = \ windows.h \ windows.media.devices.idl \ windows.media.speechsynthesis.idl \ + windows.networking.connectivity.idl \ + windows.storage.streams.idl \ windows.system.idl \ windows.system.userprofile.idl \ - windowscontracts.idl \ diff --git a/include/windows.networking.connectivity.idl b/include/windows.networking.connectivity.idl new file mode 100644 index 00000000000..3ccefca02fa @@ -396,5 +396,5 @@ index 00000000000..3ccefca02fa + } +} -- -2.30.2 +2.33.0 diff --git a/patches/windows.networking.connectivity-new-dll/0002-include-Add-windows.networking.idl.patch b/patches/windows.networking.connectivity-new-dll/0002-include-Add-windows.networking.idl.patch index 9abe80fd..649c8c3c 100644 --- a/patches/windows.networking.connectivity-new-dll/0002-include-Add-windows.networking.idl.patch +++ b/patches/windows.networking.connectivity-new-dll/0002-include-Add-windows.networking.idl.patch @@ -1,7 +1,7 @@ -From 9bedd90e89affd509fa9e5a3301eda4f4595b9d8 Mon Sep 17 00:00:00 2001 +From be391f20312e3b9e6460e9e3513b2c9de8c28799 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Tue, 1 Jun 2021 10:26:28 +1000 -Subject: [PATCH 2/8] include: Add windows.networking.idl +Subject: [PATCH] include: Add windows.networking.idl --- include/Makefile.in | 1 + @@ -10,17 +10,17 @@ Subject: [PATCH 2/8] include: Add windows.networking.idl create mode 100644 include/windows.networking.idl diff --git a/include/Makefile.in b/include/Makefile.in -index 8e40dfd903f..c7b186fed44 100644 +index db74ceb8376..a16cba52642 100644 --- a/include/Makefile.in +++ b/include/Makefile.in -@@ -761,6 +761,7 @@ SOURCES = \ +@@ -784,6 +784,7 @@ SOURCES = \ + windows.h \ windows.media.devices.idl \ windows.media.speechsynthesis.idl \ - windows.networking.connectivity.idl \ + windows.networking.idl \ + windows.networking.connectivity.idl \ + windows.storage.streams.idl \ windows.system.idl \ - windows.system.userprofile.idl \ - windowscontracts.idl \ diff --git a/include/windows.networking.idl b/include/windows.networking.idl new file mode 100644 index 00000000000..160cd78e540 @@ -116,5 +116,5 @@ index 00000000000..160cd78e540 +} \ No newline at end of file -- -2.30.2 +2.33.0 diff --git a/staging/upstream-commit b/staging/upstream-commit index 73de0eb8..07ef74aa 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -0b79e2caa6f224fc0da672886c07f4f32dda4682 +46367d1ecc8a016ab7c7af9ec107e33c6d46fc26