winebuild-Fake_Dlls: Avoid conflict with 16-bit code.

This commit is contained in:
Sebastian Lackner
2017-05-16 04:52:55 +02:00
parent d00088e0fa
commit 7ad2ee4c60
6 changed files with 687 additions and 8 deletions

View File

@@ -1,15 +1,16 @@
From 03c327c90dcdf127c25c32872eb70d907a87a83d Mon Sep 17 00:00:00 2001
From a905d238bf7bdfa11ba1a78cea673bd7c835ee19 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 12 May 2017 04:05:24 +0200
Subject: winebuild: Use Windows 7 WOW64 signature for syscall thunks.
---
dlls/ntdll/signal_i386.c | 2 ++
include/winternl.h | 2 +-
tools/winebuild/spec32.c | 32 ++++++++++++++++++++++++++------
2 files changed, 28 insertions(+), 6 deletions(-)
3 files changed, 29 insertions(+), 7 deletions(-)
diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
index d57daa7984f..ffa9c1bbb0f 100644
index f071ea3b79b..602688820a1 100644
--- a/dlls/ntdll/signal_i386.c
+++ b/dlls/ntdll/signal_i386.c
@@ -481,6 +481,7 @@ static wine_signal_handler handlers[256];
@@ -28,6 +29,19 @@ index d57daa7984f..ffa9c1bbb0f 100644
thread_data = (struct ntdll_thread_data *)(*teb)->SpareBytes1;
if (!(thread_data->fs = wine_ldt_alloc_fs()))
{
diff --git a/include/winternl.h b/include/winternl.h
index ae3163daeac..6b0624290fa 100644
--- a/include/winternl.h
+++ b/include/winternl.h
@@ -322,7 +322,7 @@ typedef struct _TEB
PVOID CsrClientThread; /* 03c/0070 */
PVOID Win32ThreadInfo; /* 040/0078 */
ULONG Win32ClientInfo[31]; /* 044/0080 used for user32 private data in Wine */
- PVOID WOW32Reserved; /* 0c0/0100 */
+ PVOID WOW32Reserved; /* 0c0/0100 used for ntdll syscall thunks */
ULONG CurrentLocale; /* 0c4/0108 */
ULONG FpSoftwareStatusRegister; /* 0c8/010c */
PVOID SystemReserved1[54]; /* 0cc/0110 used for krnl386.exe16 private data in Wine */
diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
index fbde7ce6937..452e26fa949 100644
--- a/tools/winebuild/spec32.c