Rebase against 3c2db20f66806074b047b0b3c76aa86ad79e3175.

This commit is contained in:
Zebediah Figura
2021-03-01 16:31:44 -06:00
parent 15f4220e49
commit 6b24c39d32
12 changed files with 78 additions and 288 deletions

View File

@@ -1,4 +1,4 @@
From 0cdc9966b9cf95ab1d2c53112ef6ea03479a5708 Mon Sep 17 00:00:00 2001
From bdb8554de8eba7d4a6e948122c1f98aad35e5d53 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
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, 75 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
index c4f897f3d0d..7eedb03e7a0 100644
index b7e1432535d..90fd2cb7a16 100644
--- a/dlls/ntdll/unix/loader.c
+++ b/dlls/ntdll/unix/loader.c
@@ -1983,6 +1983,8 @@ void __wine_main( int argc, char *argv[], char *envp[] )
@@ -2075,6 +2075,8 @@ void __wine_main( int argc, char *argv[], char *envp[] )
#endif
virtual_init();
@@ -28,10 +28,10 @@ index c4f897f3d0d..7eedb03e7a0 100644
#ifdef __APPLE__
diff --git a/dlls/ntdll/unix/signal_arm.c b/dlls/ntdll/unix/signal_arm.c
index 2de58925c84..3816f4429b8 100644
index 5c96521e55e..bdefeb57ebf 100644
--- a/dlls/ntdll/unix/signal_arm.c
+++ b/dlls/ntdll/unix/signal_arm.c
@@ -971,6 +971,12 @@ void *signal_init_syscalls(void)
@@ -982,6 +982,12 @@ void *signal_init_syscalls(void)
return __wine_syscall_dispatcher;
}
@@ -45,10 +45,10 @@ index 2de58925c84..3816f4429b8 100644
/***********************************************************************
* init_thread_context
diff --git a/dlls/ntdll/unix/signal_arm64.c b/dlls/ntdll/unix/signal_arm64.c
index 9a36746f5bc..b04eaf92b65 100644
index 80cc59d0743..b8ebca0d9c4 100644
--- a/dlls/ntdll/unix/signal_arm64.c
+++ b/dlls/ntdll/unix/signal_arm64.c
@@ -1130,6 +1130,13 @@ void *signal_init_syscalls(void)
@@ -1140,6 +1140,13 @@ void *signal_init_syscalls(void)
}
@@ -63,10 +63,10 @@ index 9a36746f5bc..b04eaf92b65 100644
* init_thread_context
*/
diff --git a/dlls/ntdll/unix/signal_i386.c b/dlls/ntdll/unix/signal_i386.c
index 09529a1ea96..41ea96ccbff 100644
index cc1e1d24e2a..807ebb38169 100644
--- a/dlls/ntdll/unix/signal_i386.c
+++ b/dlls/ntdll/unix/signal_i386.c
@@ -1907,6 +1907,30 @@ static BOOL handle_syscall_fault( ucontext_t *sigcontext, void *stack_ptr,
@@ -1984,6 +1984,30 @@ static BOOL handle_syscall_fault( ucontext_t *sigcontext, void *stack_ptr,
}
@@ -97,8 +97,8 @@ index 09529a1ea96..41ea96ccbff 100644
/**********************************************************************
* segv_handler
*
@@ -2475,6 +2499,34 @@ void *signal_init_syscalls(void)
return __wine_syscall_dispatcher;
@@ -2560,6 +2584,34 @@ void *signal_init_syscalls(void)
return NtCurrentTeb()->WOW32Reserved = syscall_dispatcher;
}
+/**********************************************************************
@@ -133,10 +133,10 @@ index 09529a1ea96..41ea96ccbff 100644
/***********************************************************************
* init_thread_context
diff --git a/dlls/ntdll/unix/signal_x86_64.c b/dlls/ntdll/unix/signal_x86_64.c
index 8d3353e959d..7c0b446ecba 100644
index e62e958b4aa..b10c0e58b17 100644
--- a/dlls/ntdll/unix/signal_x86_64.c
+++ b/dlls/ntdll/unix/signal_x86_64.c
@@ -2783,6 +2783,12 @@ void *signal_init_syscalls(void)
@@ -2849,6 +2849,12 @@ void *signal_init_syscalls(void)
return syscall_dispatcher;
}
@@ -150,10 +150,10 @@ index 8d3353e959d..7c0b446ecba 100644
/***********************************************************************
* init_thread_context
diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
index 65f526d0f7d..ca18cede199 100644
index 031f9ed3d33..79a27192e18 100644
--- a/dlls/ntdll/unix/unix_private.h
+++ b/dlls/ntdll/unix/unix_private.h
@@ -208,6 +208,7 @@ extern NTSTATUS signal_alloc_thread( TEB *teb ) DECLSPEC_HIDDEN;
@@ -207,6 +207,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;
@@ -162,10 +162,10 @@ index 65f526d0f7d..ca18cede199 100644
extern void DECLSPEC_NORETURN signal_start_thread( PRTL_THREAD_START_ROUTINE entry, void *arg,
BOOL suspend, void *thunk, TEB *teb ) DECLSPEC_HIDDEN;
diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
index 9889028de27..6cdf5c3fa5c 100644
index 23585a2a17b..5299a6c8859 100644
--- a/dlls/ntdll/unix/virtual.c
+++ b/dlls/ntdll/unix/virtual.c
@@ -2933,7 +2933,7 @@ NTSTATUS virtual_handle_fault( void *addr, DWORD err, void *stack )
@@ -2932,7 +2932,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 );