diff --git a/patches/imagehlp-BindImageEx/0001-imagehlp-Implement-parts-of-BindImageEx-to-make-free.patch b/patches/imagehlp-BindImageEx/0001-imagehlp-Implement-parts-of-BindImageEx-to-make-free.patch deleted file mode 100644 index 0792752b..00000000 --- a/patches/imagehlp-BindImageEx/0001-imagehlp-Implement-parts-of-BindImageEx-to-make-free.patch +++ /dev/null @@ -1,190 +0,0 @@ -From 1de55db4e9e0412f144ae9e675c4f419b0d2e3da Mon Sep 17 00:00:00 2001 -From: Bernhard Reiter -Date: Wed, 9 Apr 2014 00:52:31 +0200 -Subject: imagehlp: Implement parts of BindImageEx to make freezing Python - scripts work. - -Fixes http://bugs.winehq.org/show_bug.cgi?id=3591 ---- - dlls/imagehlp/modify.c | 111 +++++++++++++++++++++++++++++++++++++++++--- - dlls/imagehlp/tests/image.c | 18 +++---- - 2 files changed, 114 insertions(+), 15 deletions(-) - -diff --git a/dlls/imagehlp/modify.c b/dlls/imagehlp/modify.c -index debccc0..4ac3248 100644 ---- a/dlls/imagehlp/modify.c -+++ b/dlls/imagehlp/modify.c -@@ -31,9 +31,11 @@ WINE_DEFAULT_DEBUG_CHANNEL(imagehlp); - - static WORD CalcCheckSum(DWORD StartValue, LPVOID BaseAddress, DWORD WordCount); - -- - /*********************************************************************** - * BindImage (IMAGEHLP.@) -+ * -+ * NOTES -+ * See BindImageEx - */ - BOOL WINAPI BindImage( - PCSTR ImageName, PCSTR DllPath, PCSTR SymbolPath) -@@ -43,16 +45,113 @@ BOOL WINAPI BindImage( - - /*********************************************************************** - * BindImageEx (IMAGEHLP.@) -+ * -+ * Compute the virtual address of each function imported by a PE image -+ * -+ * PARAMS -+ * -+ * Flags [in] Bind options -+ * ImageName [in] File name of the image to be bound -+ * DllPath [in] Root of the fallback search path in case the ImageName file cannot be opened -+ * SymbolPath [in] Symbol file root search path -+ * StatusRoutine [in] Pointer to a status routine which will be called during the binding process -+ * -+ * RETURNS -+ * Success: TRUE -+ * Failure: FALSE -+ * -+ * NOTES -+ * Binding is not implemented yet, so far this function only enumerates -+ * all imported dlls/functions and returns TRUE. - */ - BOOL WINAPI BindImageEx( - DWORD Flags, PCSTR ImageName, PCSTR DllPath, PCSTR SymbolPath, - PIMAGEHLP_STATUS_ROUTINE StatusRoutine) - { -- FIXME("(%d, %s, %s, %s, %p): stub\n", -- Flags, debugstr_a(ImageName), debugstr_a(DllPath), -- debugstr_a(SymbolPath), StatusRoutine -- ); -- return TRUE; -+ LOADED_IMAGE loaded_image; -+ const IMAGE_IMPORT_DESCRIPTOR *import_desc; -+ ULONG size; -+ -+ FIXME("(%d, %s, %s, %s, %p): semi-stub\n", -+ Flags, debugstr_a(ImageName), debugstr_a(DllPath), -+ debugstr_a(SymbolPath), StatusRoutine -+ ); -+ -+ if (!(MapAndLoad(ImageName, DllPath, &loaded_image, TRUE, TRUE))) return FALSE; -+ -+ if (!(import_desc = RtlImageDirectoryEntryToData((HMODULE)loaded_image.MappedAddress, FALSE, -+ IMAGE_DIRECTORY_ENTRY_IMPORT, &size))) -+ { -+ UnMapAndLoad(&loaded_image); -+ return TRUE; /* No imported modules means nothing to bind, so we're done. */ -+ } -+ -+ /* FIXME: Does native imagehlp support both 32-bit and 64-bit PE executables? */ -+#ifdef _WIN64 -+ if (loaded_image.FileHeader->OptionalHeader.Magic != IMAGE_NT_OPTIONAL_HDR64_MAGIC) -+#else -+ if (loaded_image.FileHeader->OptionalHeader.Magic != IMAGE_NT_OPTIONAL_HDR32_MAGIC) -+#endif -+ { -+ FIXME("Wrong architecture in PE header, unable to enumerate imports\n"); -+ UnMapAndLoad(&loaded_image); -+ return TRUE; -+ } -+ -+ for (; import_desc->Name && import_desc->FirstThunk; ++import_desc) -+ { -+ IMAGE_THUNK_DATA *thunk; -+ char dll_fullname[MAX_PATH]; -+ const char *dll_name; -+ -+ if (!(dll_name = ImageRvaToVa(loaded_image.FileHeader, loaded_image.MappedAddress, -+ import_desc->Name, 0))) -+ { -+ UnMapAndLoad(&loaded_image); -+ SetLastError(ERROR_INVALID_ACCESS); /* FIXME */ -+ return FALSE; -+ } -+ -+ if (StatusRoutine) -+ StatusRoutine(BindImportModule, ImageName, dll_name, 0, 0); -+ -+ if (!SearchPathA(DllPath, dll_name, 0, sizeof(dll_fullname), dll_fullname, 0)) -+ { -+ UnMapAndLoad(&loaded_image); -+ SetLastError(ERROR_FILE_NOT_FOUND); -+ return FALSE; -+ } -+ -+ if (!(thunk = ImageRvaToVa(loaded_image.FileHeader, loaded_image.MappedAddress, -+ import_desc->OriginalFirstThunk ? import_desc->OriginalFirstThunk : -+ import_desc->FirstThunk, 0))) -+ { -+ ERR("Can't grab thunk data of %s, going to next imported DLL\n", dll_name); -+ continue; -+ } -+ -+ for (; thunk->u1.Ordinal; ++thunk) -+ { -+ /* Ignoring ordinal imports for now */ -+ if(!IMAGE_SNAP_BY_ORDINAL(thunk->u1.Ordinal)) -+ { -+ IMAGE_IMPORT_BY_NAME *iibn; -+ -+ if (!(iibn = ImageRvaToVa(loaded_image.FileHeader, loaded_image.MappedAddress, -+ thunk->u1.AddressOfData, 0))) -+ { -+ ERR("Can't grab import by name info, skipping to next ordinal\n"); -+ continue; -+ } -+ -+ if (StatusRoutine) -+ StatusRoutine(BindImportProcedure, ImageName, dll_fullname, 0, (ULONG_PTR)iibn->Name); -+ } -+ } -+ } -+ -+ UnMapAndLoad(&loaded_image); -+ return TRUE; - } - - -diff --git a/dlls/imagehlp/tests/image.c b/dlls/imagehlp/tests/image.c -index 48443f5..4a19c16 100644 ---- a/dlls/imagehlp/tests/image.c -+++ b/dlls/imagehlp/tests/image.c -@@ -390,10 +390,10 @@ static void test_bind_image_ex(void) - SetLastError(0xdeadbeef); - ret = pBindImageEx(BIND_NO_BOUND_IMPORTS | BIND_NO_UPDATE | BIND_ALL_IMAGES, "nonexistent.dll", 0, 0, - testing_status_routine); -- todo_wine ok(!ret && ((GetLastError() == ERROR_FILE_NOT_FOUND) || -- (GetLastError() == ERROR_INVALID_PARAMETER)), -- "expected ERROR_FILE_NOT_FOUND or ERROR_INVALID_PARAMETER, got %d\n", -- GetLastError()); -+ ok(!ret && ((GetLastError() == ERROR_FILE_NOT_FOUND) || -+ (GetLastError() == ERROR_INVALID_PARAMETER)), -+ "expected ERROR_FILE_NOT_FOUND or ERROR_INVALID_PARAMETER, got %d\n", -+ GetLastError()); - - file = create_temp_file(temp_file); - if (file == INVALID_HANDLE_VALUE) -@@ -415,14 +415,14 @@ static void test_bind_image_ex(void) - testing_status_routine); - ok(ret, "BindImageEx failed: %d\n", GetLastError()); - -- todo_wine ok(status_routine_called[BindImportModule] == 1, -- "StatusRoutine was called %d times\n", status_routine_called[BindImportModule]); -+ ok(status_routine_called[BindImportModule] == 1, -+ "StatusRoutine was called %d times\n", status_routine_called[BindImportModule]); - -- todo_wine ok((status_routine_called[BindImportProcedure] == 1) -+ ok((status_routine_called[BindImportProcedure] == 1) - #if defined(_WIN64) -- || broken(status_routine_called[BindImportProcedure] == 0) /* < Win8 */ -+ || broken(status_routine_called[BindImportProcedure] == 0) /* < Win8 */ - #endif -- , "StatusRoutine was called %d times\n", status_routine_called[BindImportProcedure]); -+ , "StatusRoutine was called %d times\n", status_routine_called[BindImportProcedure]); - - DeleteFileA(temp_file); - } --- -2.1.2 - diff --git a/patches/imagehlp-BindImageEx/definition b/patches/imagehlp-BindImageEx/definition deleted file mode 100644 index e17b0946..00000000 --- a/patches/imagehlp-BindImageEx/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: [3591] Support for BindImageEx diff --git a/patches/ntdll-NtAlertThreadByThreadId/0009-ntdll-Reimplement-Win32-futexes-on-top-of-thread-ID-.patch b/patches/ntdll-NtAlertThreadByThreadId/0009-ntdll-Reimplement-Win32-futexes-on-top-of-thread-ID-.patch index eaf0892f..18c6cc0d 100644 --- a/patches/ntdll-NtAlertThreadByThreadId/0009-ntdll-Reimplement-Win32-futexes-on-top-of-thread-ID-.patch +++ b/patches/ntdll-NtAlertThreadByThreadId/0009-ntdll-Reimplement-Win32-futexes-on-top-of-thread-ID-.patch @@ -1,4 +1,4 @@ -From d44f0a6e60f59ea4ca6ba91e4cd3b0e81a99cb20 Mon Sep 17 00:00:00 2001 +From 62eb66a1663351f80ed81f835d9d21c6f2549443 Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Mon, 2 Nov 2020 20:24:07 -0600 Subject: [PATCH] ntdll: Reimplement Win32 futexes on top of thread-ID alerts. @@ -10,8 +10,8 @@ Signed-off-by: Zebediah Figura dlls/ntdll/thread.c | 2 + dlls/ntdll/unix/loader.c | 3 - dlls/ntdll/unix/sync.c | 162 ---------------------------------- - dlls/ntdll/unixlib.h | 6 +- - 6 files changed, 187 insertions(+), 173 deletions(-) + dlls/ntdll/unixlib.h | 4 - + 6 files changed, 186 insertions(+), 172 deletions(-) diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h index e0d371e4c54..8fc5e54e4a4 100644 @@ -261,10 +261,10 @@ index 425e8770294..bc308e17bee 100644 } diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c -index bfbdfa1a5c4..5d59d2684b8 100644 +index 2ee67588df8..465ab427469 100644 --- a/dlls/ntdll/unix/loader.c +++ b/dlls/ntdll/unix/loader.c -@@ -1583,9 +1583,6 @@ static struct unix_funcs unix_funcs = +@@ -1584,9 +1584,6 @@ static struct unix_funcs unix_funcs = #endif DbgUiIssueRemoteBreakin, RtlGetSystemTimePrecise, @@ -467,18 +467,9 @@ index 86b9b3a4978..0ea8e28613c 100644 - mutex_unlock( &addr_mutex ); -} diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h -index ed78d08559a..cd890152230 100644 +index 8dc42320f18..20f9a19ff8d 100644 --- a/dlls/ntdll/unixlib.h +++ b/dlls/ntdll/unixlib.h -@@ -27,7 +27,7 @@ - struct _DISPATCHER_CONTEXT; - - /* increment this when you change the function table */ --#define NTDLL_UNIXLIB_VERSION 108 -+#define NTDLL_UNIXLIB_VERSION 109 - - struct unix_funcs - { @@ -39,10 +39,6 @@ struct unix_funcs /* other Win32 API functions */ NTSTATUS (WINAPI *DbgUiIssueRemoteBreakin)( HANDLE process ); diff --git a/patches/ntdll-NtAlertThreadByThreadId/0011-ntdll-Reimplement-the-critical-section-fast-path-on-.patch b/patches/ntdll-NtAlertThreadByThreadId/0011-ntdll-Reimplement-the-critical-section-fast-path-on-.patch index 0b24fe18..0c693823 100644 --- a/patches/ntdll-NtAlertThreadByThreadId/0011-ntdll-Reimplement-the-critical-section-fast-path-on-.patch +++ b/patches/ntdll-NtAlertThreadByThreadId/0011-ntdll-Reimplement-the-critical-section-fast-path-on-.patch @@ -1,4 +1,4 @@ -From c9d5f5826099aa1f80e1aa491912ac291115ebe0 Mon Sep 17 00:00:00 2001 +From 5e83a08f11243c8aeb90ef324ae1564994c4bb73 Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Mon, 31 Aug 2020 23:38:09 -0500 Subject: [PATCH] ntdll: Reimplement the critical section fast path on top of @@ -10,8 +10,8 @@ Signed-off-by: Zebediah Figura dlls/ntdll/unix/loader.c | 3 - dlls/ntdll/unix/sync.c | 109 --------------------------------- dlls/ntdll/unix/unix_private.h | 3 - - dlls/ntdll/unixlib.h | 5 +- - 5 files changed, 24 insertions(+), 131 deletions(-) + dlls/ntdll/unixlib.h | 3 - + 5 files changed, 23 insertions(+), 130 deletions(-) diff --git a/dlls/ntdll/sync.c b/dlls/ntdll/sync.c index 66f807636c7..5bd093e42f5 100644 @@ -83,10 +83,10 @@ index 66f807636c7..5bd093e42f5 100644 return ret; } diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c -index 585b30ea21b..5784359668e 100644 +index 465ab427469..2a67f0750a0 100644 --- a/dlls/ntdll/unix/loader.c +++ b/dlls/ntdll/unix/loader.c -@@ -1582,9 +1582,6 @@ static struct unix_funcs unix_funcs = +@@ -1584,9 +1584,6 @@ static struct unix_funcs unix_funcs = #endif DbgUiIssueRemoteBreakin, RtlGetSystemTimePrecise, @@ -97,10 +97,10 @@ index 585b30ea21b..5784359668e 100644 fast_RtlAcquireSRWLockExclusive, fast_RtlTryAcquireSRWLockShared, diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c -index 39766a88e20..8ff468d7a13 100644 +index 0ea8e28613c..8e24d7aecd5 100644 --- a/dlls/ntdll/unix/sync.c +++ b/dlls/ntdll/unix/sync.c -@@ -2412,115 +2412,6 @@ NTSTATUS WINAPI NtWaitForAlertByThreadId( const void *address, const LARGE_INTEG +@@ -2468,115 +2468,6 @@ NTSTATUS WINAPI NtWaitForAlertByThreadId( const void *address, const LARGE_INTEG } @@ -217,10 +217,10 @@ index 39766a88e20..8ff468d7a13 100644 /* Futex-based SRW lock implementation: diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h -index 935a0a2894c..4686bf1b269 100644 +index cfcf99423c3..bf94dddb212 100644 --- a/dlls/ntdll/unix/unix_private.h +++ b/dlls/ntdll/unix/unix_private.h -@@ -97,9 +97,6 @@ extern void (WINAPI *pKiUserApcDispatcher)(CONTEXT*,ULONG_PTR,ULONG_PTR,ULON +@@ -99,9 +99,6 @@ extern void (WINAPI *pKiUserApcDispatcher)(CONTEXT*,ULONG_PTR,ULONG_PTR,ULON extern NTSTATUS (WINAPI *pKiUserExceptionDispatcher)(EXCEPTION_RECORD*,CONTEXT*) DECLSPEC_HIDDEN; extern void (WINAPI *pLdrInitializeThunk)(CONTEXT*,void**,ULONG_PTR,ULONG_PTR) DECLSPEC_HIDDEN; extern void (WINAPI *pRtlUserThreadStart)( PRTL_THREAD_START_ROUTINE entry, void *arg ) DECLSPEC_HIDDEN; @@ -231,18 +231,9 @@ index 935a0a2894c..4686bf1b269 100644 extern NTSTATUS CDECL fast_RtlAcquireSRWLockExclusive( RTL_SRWLOCK *lock ) DECLSPEC_HIDDEN; extern NTSTATUS CDECL fast_RtlTryAcquireSRWLockShared( RTL_SRWLOCK *lock ) DECLSPEC_HIDDEN; diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h -index cd890152230..99415e1c412 100644 +index 20f9a19ff8d..a18526de013 100644 --- a/dlls/ntdll/unixlib.h +++ b/dlls/ntdll/unixlib.h -@@ -27,7 +27,7 @@ - struct _DISPATCHER_CONTEXT; - - /* increment this when you change the function table */ --#define NTDLL_UNIXLIB_VERSION 109 -+#define NTDLL_UNIXLIB_VERSION 110 - - struct unix_funcs - { @@ -41,9 +41,6 @@ struct unix_funcs LONGLONG (WINAPI *RtlGetSystemTimePrecise)(void); @@ -254,5 +245,5 @@ index cd890152230..99415e1c412 100644 NTSTATUS (CDECL *fast_RtlAcquireSRWLockExclusive)( RTL_SRWLOCK *lock ); NTSTATUS (CDECL *fast_RtlTryAcquireSRWLockShared)( RTL_SRWLOCK *lock ); -- -2.20.1 +2.30.0 diff --git a/patches/ntdll-NtAlertThreadByThreadId/0012-ntdll-Get-rid-of-the-direct-futex-path-for-condition.patch b/patches/ntdll-NtAlertThreadByThreadId/0012-ntdll-Get-rid-of-the-direct-futex-path-for-condition.patch index c6b441ea..ef83b50e 100644 --- a/patches/ntdll-NtAlertThreadByThreadId/0012-ntdll-Get-rid-of-the-direct-futex-path-for-condition.patch +++ b/patches/ntdll-NtAlertThreadByThreadId/0012-ntdll-Get-rid-of-the-direct-futex-path-for-condition.patch @@ -1,4 +1,4 @@ -From 9bd992e74a073a6ffce07463edeea29ad7aecaa5 Mon Sep 17 00:00:00 2001 +From cd6c3ffb9903b798c0d1ffc5501c7be5cb0293f9 Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Mon, 31 Aug 2020 23:55:29 -0500 Subject: [PATCH] ntdll: Get rid of the direct futex path for condition @@ -10,8 +10,8 @@ Signed-off-by: Zebediah Figura dlls/ntdll/unix/loader.c | 2 - dlls/ntdll/unix/sync.c | 71 ---------------------------------- dlls/ntdll/unix/unix_private.h | 3 -- - dlls/ntdll/unixlib.h | 5 +-- - 5 files changed, 9 insertions(+), 96 deletions(-) + dlls/ntdll/unixlib.h | 3 -- + 5 files changed, 8 insertions(+), 95 deletions(-) diff --git a/dlls/ntdll/sync.c b/dlls/ntdll/sync.c index 5bd093e42f5..42b62a2cd87 100644 @@ -80,10 +80,10 @@ index 5bd093e42f5..42b62a2cd87 100644 if (flags & RTL_CONDITION_VARIABLE_LOCKMODE_SHARED) RtlAcquireSRWLockShared( lock ); diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c -index 5784359668e..2269a9f62c9 100644 +index 2a67f0750a0..d5e8153b313 100644 --- a/dlls/ntdll/unix/loader.c +++ b/dlls/ntdll/unix/loader.c -@@ -1588,8 +1588,6 @@ static struct unix_funcs unix_funcs = +@@ -1590,8 +1590,6 @@ static struct unix_funcs unix_funcs = fast_RtlAcquireSRWLockShared, fast_RtlReleaseSRWLockExclusive, fast_RtlReleaseSRWLockShared, @@ -93,10 +93,10 @@ index 5784359668e..2269a9f62c9 100644 ntdll_ceil, ntdll_cos, diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c -index 8ff468d7a13..ca4b5b22f53 100644 +index 8e24d7aecd5..68c2e560938 100644 --- a/dlls/ntdll/unix/sync.c +++ b/dlls/ntdll/unix/sync.c -@@ -166,23 +166,6 @@ static int *get_futex(void **ptr) +@@ -167,23 +167,6 @@ static int *get_futex(void **ptr) return NULL; } @@ -120,7 +120,7 @@ index 8ff468d7a13..ca4b5b22f53 100644 #endif -@@ -2664,50 +2647,6 @@ NTSTATUS CDECL fast_RtlReleaseSRWLockShared( RTL_SRWLOCK *lock ) +@@ -2720,50 +2703,6 @@ NTSTATUS CDECL fast_RtlReleaseSRWLockShared( RTL_SRWLOCK *lock ) return STATUS_SUCCESS; } @@ -171,7 +171,7 @@ index 8ff468d7a13..ca4b5b22f53 100644 #else NTSTATUS CDECL fast_RtlTryAcquireSRWLockExclusive( RTL_SRWLOCK *lock ) -@@ -2740,14 +2679,4 @@ NTSTATUS CDECL fast_RtlReleaseSRWLockShared( RTL_SRWLOCK *lock ) +@@ -2796,14 +2735,4 @@ NTSTATUS CDECL fast_RtlReleaseSRWLockShared( RTL_SRWLOCK *lock ) return STATUS_NOT_IMPLEMENTED; } @@ -187,10 +187,10 @@ index 8ff468d7a13..ca4b5b22f53 100644 - #endif diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h -index 4686bf1b269..0da243799f1 100644 +index bf94dddb212..f3a85dcd8d4 100644 --- a/dlls/ntdll/unix/unix_private.h +++ b/dlls/ntdll/unix/unix_private.h -@@ -103,10 +103,7 @@ extern NTSTATUS CDECL fast_RtlTryAcquireSRWLockShared( RTL_SRWLOCK *lock ) DECLS +@@ -105,10 +105,7 @@ extern NTSTATUS CDECL fast_RtlTryAcquireSRWLockShared( RTL_SRWLOCK *lock ) DECLS extern NTSTATUS CDECL fast_RtlAcquireSRWLockShared( RTL_SRWLOCK *lock ) DECLSPEC_HIDDEN; extern NTSTATUS CDECL fast_RtlReleaseSRWLockExclusive( RTL_SRWLOCK *lock ) DECLSPEC_HIDDEN; extern NTSTATUS CDECL fast_RtlReleaseSRWLockShared( RTL_SRWLOCK *lock ) DECLSPEC_HIDDEN; @@ -199,21 +199,12 @@ index 4686bf1b269..0da243799f1 100644 -extern NTSTATUS CDECL fast_wait_cv( RTL_CONDITION_VARIABLE *variable, const void *value, - const LARGE_INTEGER *timeout ) DECLSPEC_HIDDEN; - extern NTSTATUS CDECL get_initial_environment( WCHAR **wargv[], WCHAR *env, SIZE_T *size ) DECLSPEC_HIDDEN; - extern NTSTATUS CDECL get_startup_info( startup_info_t *info, SIZE_T *total_size, SIZE_T *info_size ) DECLSPEC_HIDDEN; + extern USHORT * CDECL get_unix_codepage_data(void) DECLSPEC_HIDDEN; + extern void CDECL get_locales( WCHAR *sys, WCHAR *user ) DECLSPEC_HIDDEN; diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h -index 99415e1c412..bd74bf8267a 100644 +index a18526de013..31f2c3a5cd8 100644 --- a/dlls/ntdll/unixlib.h +++ b/dlls/ntdll/unixlib.h -@@ -27,7 +27,7 @@ - struct _DISPATCHER_CONTEXT; - - /* increment this when you change the function table */ --#define NTDLL_UNIXLIB_VERSION 110 -+#define NTDLL_UNIXLIB_VERSION 111 - - struct unix_funcs - { @@ -47,9 +47,6 @@ struct unix_funcs NTSTATUS (CDECL *fast_RtlAcquireSRWLockShared)( RTL_SRWLOCK *lock ); NTSTATUS (CDECL *fast_RtlReleaseSRWLockExclusive)( RTL_SRWLOCK *lock ); @@ -225,5 +216,5 @@ index 99415e1c412..bd74bf8267a 100644 /* math functions */ double (CDECL *atan)( double d ); -- -2.20.1 +2.30.0 diff --git a/patches/ntdll-NtAlertThreadByThreadId/0013-ntdll-Reimplement-SRW-locks-on-top-of-Win32-futexes.patch b/patches/ntdll-NtAlertThreadByThreadId/0013-ntdll-Reimplement-SRW-locks-on-top-of-Win32-futexes.patch index 6da6ec83..3b8f70f0 100644 --- a/patches/ntdll-NtAlertThreadByThreadId/0013-ntdll-Reimplement-SRW-locks-on-top-of-Win32-futexes.patch +++ b/patches/ntdll-NtAlertThreadByThreadId/0013-ntdll-Reimplement-SRW-locks-on-top-of-Win32-futexes.patch @@ -1,4 +1,4 @@ -From 5fde43f2d58b318d8e9c8a85dd21dc61fbeb0d95 Mon Sep 17 00:00:00 2001 +From 9f1b410e28ff85e4b7f6a36539e159f913c0ff05 Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Sun, 22 Nov 2020 20:51:10 -0600 Subject: [PATCH] ntdll: Reimplement SRW locks on top of Win32 futexes. @@ -391,10 +391,10 @@ index 42b62a2cd87..d4944951dc6 100644 /*********************************************************************** diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c -index 2269a9f62c9..d8f1a00ade7 100644 +index d5e8153b313..05a45916714 100644 --- a/dlls/ntdll/unix/loader.c +++ b/dlls/ntdll/unix/loader.c -@@ -1582,12 +1582,6 @@ static struct unix_funcs unix_funcs = +@@ -1584,12 +1584,6 @@ static struct unix_funcs unix_funcs = #endif DbgUiIssueRemoteBreakin, RtlGetSystemTimePrecise, @@ -408,10 +408,10 @@ index 2269a9f62c9..d8f1a00ade7 100644 ntdll_ceil, ntdll_cos, diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c -index ca4b5b22f53..4e4345098ca 100644 +index 68c2e560938..baa1ab0e786 100644 --- a/dlls/ntdll/unix/sync.c +++ b/dlls/ntdll/unix/sync.c -@@ -114,8 +114,6 @@ static inline ULONGLONG monotonic_counter(void) +@@ -115,8 +115,6 @@ static inline ULONGLONG monotonic_counter(void) #define FUTEX_WAIT 0 #define FUTEX_WAKE 1 @@ -420,7 +420,7 @@ index ca4b5b22f53..4e4345098ca 100644 static int futex_private = 128; -@@ -129,16 +127,6 @@ static inline int futex_wake( const int *addr, int val ) +@@ -130,16 +128,6 @@ static inline int futex_wake( const int *addr, int val ) return syscall( __NR_futex, addr, FUTEX_WAKE | futex_private, val, NULL, 0, 0 ); } @@ -437,7 +437,7 @@ index ca4b5b22f53..4e4345098ca 100644 static inline int use_futexes(void) { static int supported = -1; -@@ -156,16 +144,6 @@ static inline int use_futexes(void) +@@ -157,16 +145,6 @@ static inline int use_futexes(void) return supported; } @@ -454,7 +454,7 @@ index ca4b5b22f53..4e4345098ca 100644 #endif -@@ -2393,290 +2371,3 @@ NTSTATUS WINAPI NtWaitForAlertByThreadId( const void *address, const LARGE_INTEG +@@ -2449,290 +2427,3 @@ NTSTATUS WINAPI NtWaitForAlertByThreadId( const void *address, const LARGE_INTEG return NtWaitForSingleObject( ntdll_get_thread_data()->tid_alert_event, FALSE, timeout ); #endif } @@ -746,10 +746,10 @@ index ca4b5b22f53..4e4345098ca 100644 - -#endif diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h -index 0da243799f1..c1ddb47a611 100644 +index f3a85dcd8d4..182aa86e68f 100644 --- a/dlls/ntdll/unix/unix_private.h +++ b/dlls/ntdll/unix/unix_private.h -@@ -97,12 +97,6 @@ extern void (WINAPI *pKiUserApcDispatcher)(CONTEXT*,ULONG_PTR,ULONG_PTR,ULON +@@ -99,12 +99,6 @@ extern void (WINAPI *pKiUserApcDispatcher)(CONTEXT*,ULONG_PTR,ULONG_PTR,ULON extern NTSTATUS (WINAPI *pKiUserExceptionDispatcher)(EXCEPTION_RECORD*,CONTEXT*) DECLSPEC_HIDDEN; extern void (WINAPI *pLdrInitializeThunk)(CONTEXT*,void**,ULONG_PTR,ULONG_PTR) DECLSPEC_HIDDEN; extern void (WINAPI *pRtlUserThreadStart)( PRTL_THREAD_START_ROUTINE entry, void *arg ) DECLSPEC_HIDDEN; @@ -761,9 +761,9 @@ index 0da243799f1..c1ddb47a611 100644 -extern NTSTATUS CDECL fast_RtlReleaseSRWLockShared( RTL_SRWLOCK *lock ) DECLSPEC_HIDDEN; extern LONGLONG CDECL fast_RtlGetSystemTimePrecise(void) DECLSPEC_HIDDEN; - extern NTSTATUS CDECL get_initial_environment( WCHAR **wargv[], WCHAR *env, SIZE_T *size ) DECLSPEC_HIDDEN; + extern USHORT * CDECL get_unix_codepage_data(void) DECLSPEC_HIDDEN; diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h -index bd74bf8267a..534d22483e7 100644 +index 31f2c3a5cd8..db7540dc1b7 100644 --- a/dlls/ntdll/unixlib.h +++ b/dlls/ntdll/unixlib.h @@ -27,7 +27,7 @@ @@ -791,5 +791,5 @@ index bd74bf8267a..534d22483e7 100644 double (CDECL *atan)( double d ); double (CDECL *ceil)( double d ); -- -2.20.1 +2.30.0 diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 3d09e7fe..cc8e7f4c 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -51,7 +51,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "4f7e621dc58fd82924e64c695dc61a78c55fd44e" + echo "a9c8196e97ec255f4f69d005ea1cbf8fcf2537e8" } # Show version information @@ -128,7 +128,6 @@ patch_enable_all () enable_fonts_Missing_Fonts="$1" enable_gdi32_rotation="$1" enable_gdiplus_Performance_Improvements="$1" - enable_imagehlp_BindImageEx="$1" enable_imm32_com_initialization="$1" enable_imm32_message_on_focus="$1" enable_include_winsock="$1" @@ -456,9 +455,6 @@ patch_enable () gdiplus-Performance-Improvements) enable_gdiplus_Performance_Improvements="$2" ;; - imagehlp-BindImageEx) - enable_imagehlp_BindImageEx="$2" - ;; imm32-com-initialization) enable_imm32_com_initialization="$2" ;; @@ -2580,18 +2576,6 @@ if test "$enable_gdiplus_Performance_Improvements" -eq 1; then patch_apply gdiplus-Performance-Improvements/0004-gdiplus-Prefer-using-pre-multiplied-ARGB-data-in-the.patch fi -# Patchset imagehlp-BindImageEx -# | -# | This patchset fixes the following Wine bugs: -# | * [#3591] Support for BindImageEx -# | -# | Modified files: -# | * dlls/imagehlp/modify.c, dlls/imagehlp/tests/image.c -# | -if test "$enable_imagehlp_BindImageEx" -eq 1; then - patch_apply imagehlp-BindImageEx/0001-imagehlp-Implement-parts-of-BindImageEx-to-make-free.patch -fi - # Patchset winex11-_NET_ACTIVE_WINDOW # | # | This patchset fixes the following Wine bugs: diff --git a/staging/upstream-commit b/staging/upstream-commit index 3f1deb20..e14fcff6 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -4f7e621dc58fd82924e64c695dc61a78c55fd44e +a9c8196e97ec255f4f69d005ea1cbf8fcf2537e8