Rebase against 9781b5433cd4b708c0f537aa0b5608ff4157f04c

This commit is contained in:
Alistair Leslie-Hughes
2019-02-13 10:07:39 +11:00
parent 697fe8b5da
commit b8de62375f
19 changed files with 167 additions and 6373 deletions

View File

@@ -1,4 +1,4 @@
From c101440f7e4066a3727b46a0b4b08bacef0e8bc2 Mon Sep 17 00:00:00 2001
From 41b39da1e8fe850985da5f90bee3df26742bf2fc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 7 Sep 2017 00:38:09 +0200
Subject: [PATCH] tools/winebuild: Add syscall thunks for 64 bit.
@@ -6,17 +6,17 @@ Subject: [PATCH] tools/winebuild: Add syscall thunks for 64 bit.
---
dlls/kernel32/tests/loader.c | 7 +-
dlls/ntdll/signal_x86_64.c | 3 +
dlls/ntdll/thread.c | 7 +-
dlls/ntdll/thread.c | 6 +
libs/wine/loader.c | 4 +
tools/winebuild/parser.c | 2 +-
tools/winebuild/spec32.c | 209 +++++++++++++++++++++++++++++++++++++++++--
6 files changed, 223 insertions(+), 9 deletions(-)
tools/winebuild/spec32.c | 209 ++++++++++++++++++++++++++++++++++-
6 files changed, 223 insertions(+), 8 deletions(-)
diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
index 26214c4..8c3521c 100644
index 3908fc75a0a..5154db69dcc 100644
--- a/dlls/kernel32/tests/loader.c
+++ b/dlls/kernel32/tests/loader.c
@@ -1415,7 +1415,7 @@ static void test_filenames(void)
@@ -1563,7 +1563,7 @@ static void test_filenames(void)
static void test_FakeDLL(void)
{
@@ -25,7 +25,7 @@ index 26214c4..8c3521c 100644
NTSTATUS (WINAPI *pNtSetEvent)(HANDLE, ULONG *) = NULL;
IMAGE_EXPORT_DIRECTORY *dir;
HMODULE module = GetModuleHandleA("ntdll.dll");
@@ -1457,8 +1457,13 @@ static void test_FakeDLL(void)
@@ -1605,8 +1605,13 @@ static void test_FakeDLL(void)
dll_func = (BYTE *)GetProcAddress(module, func_name);
ok(dll_func != NULL, "%s: GetProcAddress returned NULL\n", func_name);
@@ -40,7 +40,7 @@ index 26214c4..8c3521c 100644
todo_wine ok(0, "%s: Export is a stub-function, skipping\n", func_name);
continue;
diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
index 9f0fbc2..ef89180 100644
index ea55388f4b2..a5d4364dfa5 100644
--- a/dlls/ntdll/signal_x86_64.c
+++ b/dlls/ntdll/signal_x86_64.c
@@ -328,6 +328,8 @@ static inline struct amd64_thread_data *amd64_thread_data(void)
@@ -52,7 +52,7 @@ index 9f0fbc2..ef89180 100644
/***********************************************************************
* Dynamic unwind table
*/
@@ -3278,6 +3280,7 @@ NTSTATUS signal_alloc_thread( TEB **teb )
@@ -3281,6 +3283,7 @@ NTSTATUS signal_alloc_thread( TEB **teb )
{
(*teb)->Tib.Self = &(*teb)->Tib;
(*teb)->Tib.ExceptionList = (void *)~0UL;
@@ -61,7 +61,7 @@ index 9f0fbc2..ef89180 100644
return status;
}
diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
index abea82b..17252d4 100644
index 56c68e5e891..85c4cf52721 100644
--- a/dlls/ntdll/thread.c
+++ b/dlls/ntdll/thread.c
@@ -60,6 +60,8 @@ struct _KUSER_SHARED_DATA *user_shared_data_external;
@@ -73,15 +73,7 @@ index abea82b..17252d4 100644
void (WINAPI *kernel32_start_process)(LPTHREAD_START_ROUTINE,void*) = NULL;
/* info passed to a starting thread */
@@ -89,7 +91,6 @@ static RTL_CRITICAL_SECTION_DEBUG critsect_debug =
};
static RTL_CRITICAL_SECTION peb_lock = { &critsect_debug, -1, 0, 0, 0, 0 };
-
BOOL read_process_time(int unix_pid, int unix_tid, unsigned long clk_tck,
LARGE_INTEGER *kernel, LARGE_INTEGER *user)
{
@@ -496,6 +497,10 @@ void thread_init(void)
@@ -494,6 +496,10 @@ void thread_init(void)
InitializeListHead( &ldr.InInitializationOrderModuleList );
*(ULONG_PTR *)peb->Reserved = get_image_addr();
@@ -93,7 +85,7 @@ index abea82b..17252d4 100644
* Starting with Vista, the first user to log on has session id 1.
* Session id 0 is for processes that don't interact with the user (like services).
diff --git a/libs/wine/loader.c b/libs/wine/loader.c
index 162c94d..87eb5a8 100644
index 162c94d2921..87eb5a85ad4 100644
--- a/libs/wine/loader.c
+++ b/libs/wine/loader.c
@@ -468,7 +468,11 @@ static void *map_dll( const IMAGE_NT_HEADERS *nt_descr )
@@ -109,7 +101,7 @@ index 162c94d..87eb5a8 100644
sec++;
diff --git a/tools/winebuild/parser.c b/tools/winebuild/parser.c
index c4b9abf..064019c 100644
index c4b9abfc9fc..064019c4404 100644
--- a/tools/winebuild/parser.c
+++ b/tools/winebuild/parser.c
@@ -521,7 +521,7 @@ static const char *parse_spec_flags( DLLSPEC *spec, ORDDEF *odp )
@@ -122,7 +114,7 @@ index c4b9abf..064019c 100644
if (odp->flags & (FLAG_FORWARD | FLAG_REGISTER))
return 0;
diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
index d2fd6a6..403aad5 100644
index d2fd6a6bfa7..403aad5560d 100644
--- a/tools/winebuild/spec32.c
+++ b/tools/winebuild/spec32.c
@@ -342,11 +342,11 @@ static void output_relay_debug( DLLSPEC *spec )
@@ -139,10 +131,11 @@ index d2fd6a6..403aad5 100644
{
const unsigned int page_size = get_page_size();
int i;
@@ -445,6 +445,90 @@ static void output_syscall_thunks( DLLSPEC *spec )
@@ -444,6 +444,90 @@ static void output_syscall_thunks( DLLSPEC *spec )
output_function_size( "__wine_syscall_dispatcher" );
}
/*******************************************************************
+/*******************************************************************
+ * output_syscall_thunks_x64
+ *
+ * Output entry points for system call functions
@@ -226,10 +219,9 @@ index d2fd6a6..403aad5 100644
+ output_function_size( "__wine_syscall_dispatcher" );
+}
+
+/*******************************************************************
/*******************************************************************
* output_exports
*
* Output the export table for a Win32 module.
@@ -801,7 +885,10 @@ void BuildSpec32File( DLLSPEC *spec )
resolve_imports( spec );
output_standard_file_header();
@@ -387,5 +379,5 @@ index d2fd6a6..403aad5 100644
}
else
--
1.9.1
2.20.1