diff --git a/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch b/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch index b67b360a..1f9cdb25 100644 --- a/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch +++ b/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch @@ -1,4 +1,4 @@ -From 43e0d719795b5715afd3a058232a519ed67045b3 Mon Sep 17 00:00:00 2001 +From 63701e8ab8c1a1dfa2faa34e0ee1e83cbc4880f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Sat, 4 Oct 2014 02:53:22 +0200 Subject: [PATCH] ntdll: Setup a temporary signal handler during process @@ -15,10 +15,10 @@ Subject: [PATCH] ntdll: Setup a temporary signal handler during process 7 files changed, 74 insertions(+), 1 deletion(-) diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c -index 1830c4fb392..de1629c3f23 100644 +index 8ae2b4f8470..07829faf8c9 100644 --- a/dlls/ntdll/unix/loader.c +++ b/dlls/ntdll/unix/loader.c -@@ -2210,6 +2210,8 @@ void __wine_main( int argc, char *argv[], char *envp[] ) +@@ -2214,6 +2214,8 @@ void __wine_main( int argc, char *argv[], char *envp[] ) #endif virtual_init(); @@ -28,10 +28,10 @@ index 1830c4fb392..de1629c3f23 100644 #ifdef __APPLE__ diff --git a/dlls/ntdll/unix/signal_arm.c b/dlls/ntdll/unix/signal_arm.c -index 3397e876722..27098259bba 100644 +index a0d826ea178..313fe4f1f5b 100644 --- a/dlls/ntdll/unix/signal_arm.c +++ b/dlls/ntdll/unix/signal_arm.c -@@ -848,6 +848,12 @@ void signal_init_process(void) +@@ -902,6 +902,12 @@ void signal_init_process(void) exit(1); } @@ -45,10 +45,10 @@ index 3397e876722..27098259bba 100644 /*********************************************************************** * init_thread_context diff --git a/dlls/ntdll/unix/signal_arm64.c b/dlls/ntdll/unix/signal_arm64.c -index 5552704987f..84eafe64209 100644 +index 669e44aaa2b..aba9c8dcf02 100644 --- a/dlls/ntdll/unix/signal_arm64.c +++ b/dlls/ntdll/unix/signal_arm64.c -@@ -1032,6 +1032,12 @@ void signal_init_process(void) +@@ -1080,6 +1080,12 @@ void signal_init_process(void) exit(1); } @@ -62,10 +62,10 @@ index 5552704987f..84eafe64209 100644 /*********************************************************************** * init_thread_context diff --git a/dlls/ntdll/unix/signal_i386.c b/dlls/ntdll/unix/signal_i386.c -index c3f8c01d350..f94c8c993f3 100644 +index 89f4fb4151c..a30ff779482 100644 --- a/dlls/ntdll/unix/signal_i386.c +++ b/dlls/ntdll/unix/signal_i386.c -@@ -1833,6 +1833,30 @@ static BOOL handle_syscall_fault( ucontext_t *sigcontext, void *stack_ptr, +@@ -1753,6 +1753,30 @@ static BOOL handle_syscall_fault( ucontext_t *sigcontext, void *stack_ptr, } @@ -96,7 +96,7 @@ index c3f8c01d350..f94c8c993f3 100644 /********************************************************************** * segv_handler * -@@ -2410,6 +2434,34 @@ void signal_init_process(void) +@@ -2338,6 +2362,34 @@ void signal_init_process(void) exit(1); } @@ -132,10 +132,10 @@ index c3f8c01d350..f94c8c993f3 100644 /*********************************************************************** * init_thread_context diff --git a/dlls/ntdll/unix/signal_x86_64.c b/dlls/ntdll/unix/signal_x86_64.c -index 59c030ae6a4..7e31597c295 100644 +index 10aa2a516b0..55c9c322e75 100644 --- a/dlls/ntdll/unix/signal_x86_64.c +++ b/dlls/ntdll/unix/signal_x86_64.c -@@ -2692,6 +2692,12 @@ void signal_init_process(void) +@@ -2599,6 +2599,12 @@ void signal_init_process(void) exit(1); } @@ -149,22 +149,22 @@ index 59c030ae6a4..7e31597c295 100644 /*********************************************************************** * init_thread_context diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h -index 39ab7912490..2dd7a10ed36 100644 +index 2efd107fff8..b64fa142aca 100644 --- a/dlls/ntdll/unix/unix_private.h +++ b/dlls/ntdll/unix/unix_private.h -@@ -243,6 +243,7 @@ extern NTSTATUS signal_alloc_thread( TEB *teb ) DECLSPEC_HIDDEN; +@@ -246,6 +246,7 @@ extern NTSTATUS signal_alloc_thread( TEB *teb ) DECLSPEC_HIDDEN; extern void signal_free_thread( TEB *teb ) DECLSPEC_HIDDEN; extern void signal_init_thread( TEB *teb ) DECLSPEC_HIDDEN; extern void signal_init_process(void) DECLSPEC_HIDDEN; +extern void signal_init_early(void) DECLSPEC_HIDDEN; extern void DECLSPEC_NORETURN signal_start_thread( PRTL_THREAD_START_ROUTINE entry, void *arg, BOOL suspend, void *thunk, TEB *teb ) DECLSPEC_HIDDEN; - extern void DECLSPEC_NORETURN signal_exit_thread( int status, void (*func)(int) ) DECLSPEC_HIDDEN; + extern void DECLSPEC_NORETURN signal_exit_thread( int status, void (*func)(int), TEB *teb ) DECLSPEC_HIDDEN; diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c -index 9796451f58f..0d796075b4c 100644 +index 2885cbbaa45..a4deac77a4c 100644 --- a/dlls/ntdll/unix/virtual.c +++ b/dlls/ntdll/unix/virtual.c -@@ -3197,7 +3197,7 @@ NTSTATUS virtual_handle_fault( void *addr, DWORD err, void *stack ) +@@ -3264,7 +3264,7 @@ NTSTATUS virtual_handle_fault( void *addr, DWORD err, void *stack ) mutex_lock( &virtual_mutex ); /* no need for signal masking inside signal handler */ vprot = get_page_vprot( page ); diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 6c866e4e..aa106102 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -51,7 +51,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "f5bd0be6a44c1c7d69afb8b8eb6311923e7762a1" + echo "25271032dfb3f126a8b0dff2adb9b96a7d09241d" } # Show version information diff --git a/staging/upstream-commit b/staging/upstream-commit index 894323d3..0e247807 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -f5bd0be6a44c1c7d69afb8b8eb6311923e7762a1 +25271032dfb3f126a8b0dff2adb9b96a7d09241d