From 97d07afaf911ba73f6d21f021ef72d6207e70b4d Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Tue, 10 Nov 2015 20:14:26 +0100 Subject: [PATCH] Rebase against 61c49bd78e5c96f14870e5c21a2ff75da7ac17b2. --- ...sed-version-of-gcc-4.5-when-Werror-i.patch | 32 +++---- ...tion-Serif-as-an-Times-New-Roman-rep.patch | 10 +-- ...k-architecture-before-loading-module.patch | 22 ++--- ...missing-definitions-for-Nt-functions.patch | 73 ++++++++++++++++ ..._only_relocs-suppress-to-the-linker.patch} | 0 ...-Use-wrapper-functions-for-syscalls.patch} | 86 +++++++++++++------ ...-call-the-implementation-instead-of.patch} | 0 ...hould-not-call-Nt-Ex-thunk-wrappers.patch} | 19 ++-- ...ry-initialization-function-early-du.patch} | 0 ...andle-instead-of-NtClose-for-intern.patch} | 0 ...ts-Add-initial-driver-testing-framew.patch | 34 ++++---- patches/patchinstall.sh | 25 +++--- 12 files changed, 210 insertions(+), 91 deletions(-) create mode 100644 patches/ntdll-Syscall_Wrappers/0001-include-Add-missing-definitions-for-Nt-functions.patch rename patches/ntdll-Syscall_Wrappers/{0001-winegcc-Pass-read_only_relocs-suppress-to-the-linker.patch => 0002-winegcc-Pass-read_only_relocs-suppress-to-the-linker.patch} (100%) rename patches/ntdll-Syscall_Wrappers/{0002-ntdll-Use-wrapper-functions-for-syscalls.patch => 0003-ntdll-Use-wrapper-functions-for-syscalls.patch} (96%) rename patches/ntdll-Syscall_Wrappers/{0003-ntdll-APCs-should-call-the-implementation-instead-of.patch => 0004-ntdll-APCs-should-call-the-implementation-instead-of.patch} (100%) rename patches/ntdll-Syscall_Wrappers/{0004-ntdll-Syscalls-should-not-call-Nt-Ex-thunk-wrappers.patch => 0005-ntdll-Syscalls-should-not-call-Nt-Ex-thunk-wrappers.patch} (75%) rename patches/ntdll-Syscall_Wrappers/{0005-ntdll-Run-directory-initialization-function-early-du.patch => 0006-ntdll-Run-directory-initialization-function-early-du.patch} (100%) rename patches/ntdll-Syscall_Wrappers/{0006-ntdll-Use-close_handle-instead-of-NtClose-for-intern.patch => 0007-ntdll-Use-close_handle-instead-of-NtClose-for-intern.patch} (100%) diff --git a/patches/Compiler_Warnings/0001-Appease-the-blessed-version-of-gcc-4.5-when-Werror-i.patch b/patches/Compiler_Warnings/0001-Appease-the-blessed-version-of-gcc-4.5-when-Werror-i.patch index 4226da8b..2d8c8185 100644 --- a/patches/Compiler_Warnings/0001-Appease-the-blessed-version-of-gcc-4.5-when-Werror-i.patch +++ b/patches/Compiler_Warnings/0001-Appease-the-blessed-version-of-gcc-4.5-when-Werror-i.patch @@ -1,4 +1,4 @@ -From 267583000e05b5ed8da1122df0830556fe7e69f6 Mon Sep 17 00:00:00 2001 +From 35e7be609df3c37eded9a3fd117ba0cef02f24c7 Mon Sep 17 00:00:00 2001 From: "Erich E. Hoover" Date: Fri, 8 Aug 2014 19:33:14 -0600 Subject: Appease the blessed version of gcc (4.5) when -Werror is enabled. @@ -12,10 +12,10 @@ Subject: Appease the blessed version of gcc (4.5) when -Werror is enabled. 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c -index f9cb71c..81f6131 100644 +index 55140c6..2facbfb 100644 --- a/dlls/d3d9/tests/visual.c +++ b/dlls/d3d9/tests/visual.c -@@ -11967,7 +11967,7 @@ static void yuv_layout_test(void) +@@ -12034,7 +12034,7 @@ static void yuv_layout_test(void) IDirect3D9 *d3d; D3DCOLOR color; DWORD ref_color; @@ -25,10 +25,10 @@ index f9cb71c..81f6131 100644 IDirect3DDevice9 *device; ULONG refcount; diff --git a/dlls/netapi32/netapi32.c b/dlls/netapi32/netapi32.c -index 7a1d408..649c866 100644 +index bb61e7f..cf4c466 100644 --- a/dlls/netapi32/netapi32.c +++ b/dlls/netapi32/netapi32.c -@@ -779,7 +779,7 @@ static NET_API_STATUS share_info_to_samba( DWORD level, const BYTE *buf, unsigne +@@ -780,7 +780,7 @@ static NET_API_STATUS share_info_to_samba( DWORD level, const BYTE *buf, unsigne static NET_API_STATUS share_add( LMSTR servername, DWORD level, LPBYTE buf, LPDWORD parm_err ) { char *server = NULL; @@ -51,10 +51,10 @@ index 14eac39..ebff9f1 100644 static const WCHAR dashW[] = {' ','-',' ',0}; static const size_t dashW_len = (sizeof(dashW) / sizeof(*dashW)) - 1; diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c -index f69a2ce..00232a5 100644 +index 44e7090..429ae90 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c -@@ -6706,7 +6706,7 @@ static void set_glsl_shader_program(const struct wined3d_context *context, const +@@ -6893,7 +6893,7 @@ static void set_glsl_shader_program(const struct wined3d_context *context, const GLuint vs_id = 0; GLuint gs_id = 0; GLuint ps_id = 0; @@ -64,18 +64,18 @@ index f69a2ce..00232a5 100644 struct wined3d_string_buffer *tmp_name; diff --git a/tools/makedep.c b/tools/makedep.c -index 54aab45..103422e 100644 +index d8cf2f5..280f62f 100644 --- a/tools/makedep.c +++ b/tools/makedep.c -@@ -1480,7 +1480,7 @@ static char *get_make_variable( struct makefile *make, const char *name ) - */ - static char *get_expanded_make_variable( struct makefile *make, const char *name ) +@@ -1559,7 +1559,7 @@ static const char *get_make_variable( const struct makefile *make, const char *n + static char *get_expanded_make_variable( const struct makefile *make, const char *name ) { -- char *p, *end, *var, *expand, *tmp; -+ char *p, *end, *var, *expand, *tmp = NULL; + const char *var; +- char *p, *end, *expand, *tmp; ++ char *p, *end, *expand, *tmp = NULL; - expand = get_make_variable( make, name ); - if (!expand) return NULL; + var = get_make_variable( make, name ); + if (!var) return NULL; -- -2.4.2 +2.6.2 diff --git a/patches/fonts-Missing_Fonts/0002-fonts-Add-Liberation-Serif-as-an-Times-New-Roman-rep.patch b/patches/fonts-Missing_Fonts/0002-fonts-Add-Liberation-Serif-as-an-Times-New-Roman-rep.patch index 7e79c42e..8f1d75d2 100644 --- a/patches/fonts-Missing_Fonts/0002-fonts-Add-Liberation-Serif-as-an-Times-New-Roman-rep.patch +++ b/patches/fonts-Missing_Fonts/0002-fonts-Add-Liberation-Serif-as-an-Times-New-Roman-rep.patch @@ -1,4 +1,4 @@ -From 61c4147d7135ed0fa79f8a442de7d4e355018d81 Mon Sep 17 00:00:00 2001 +From 56544167ea9d090249d0e9e6cebb5e55268ffdfd Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Thu, 3 Sep 2015 01:25:14 +0200 Subject: fonts: Add Liberation Serif as an Times New Roman replacement. @@ -12,17 +12,15 @@ Subject: fonts: Add Liberation Serif as an Times New Roman replacement. create mode 100644 fonts/times.ttf diff --git a/fonts/Makefile.in b/fonts/Makefile.in -index 6bbc79c..33f4f03 100644 +index 93adf12..7d29b40 100644 --- a/fonts/Makefile.in +++ b/fonts/Makefile.in -@@ -11,6 +11,7 @@ FONT_SRCS = \ +@@ -11,4 +11,5 @@ FONT_SRCS = \ system.sfd \ tahoma.sfd \ tahomabd.sfd \ + times.sfd \ wingding.sfd - - # Make sure that make_makefiles sees the generated rules diff --git a/fonts/times.sfd b/fonts/times.sfd new file mode 100644 index 0000000..6b41459 @@ -99113,5 +99111,5 @@ literal 0 HcmV?d00001 -- -2.5.0 +2.6.2 diff --git a/patches/ntdll-Loader_Machine_Type/0001-ntdll-Check-architecture-before-loading-module.patch b/patches/ntdll-Loader_Machine_Type/0001-ntdll-Check-architecture-before-loading-module.patch index b4c69374..9635e456 100644 --- a/patches/ntdll-Loader_Machine_Type/0001-ntdll-Check-architecture-before-loading-module.patch +++ b/patches/ntdll-Loader_Machine_Type/0001-ntdll-Check-architecture-before-loading-module.patch @@ -1,4 +1,4 @@ -From a9e0627c59b5ddf2f91d5ceea61a0401afc27ce4 Mon Sep 17 00:00:00 2001 +From a01523c116eb0fa430e618683bea55f1e3b6b0d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Sat, 18 Jul 2015 04:52:55 +0200 Subject: ntdll: Check architecture before loading module. @@ -8,10 +8,10 @@ Subject: ntdll: Check architecture before loading module. 1 file changed, 131 insertions(+), 8 deletions(-) diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c -index bef0ab1..0486517 100644 +index 74feb97..ee1e5e2 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c -@@ -1911,6 +1911,108 @@ done: +@@ -2078,6 +2078,108 @@ done: return status; } @@ -120,7 +120,7 @@ index bef0ab1..0486517 100644 /*********************************************************************** * find_dll_file -@@ -1918,7 +2020,8 @@ done: +@@ -2085,7 +2187,8 @@ done: * Find the file (or already loaded module) for a given dll name. */ static NTSTATUS find_dll_file( const WCHAR *load_path, const WCHAR *libname, @@ -130,7 +130,7 @@ index bef0ab1..0486517 100644 { OBJECT_ATTRIBUTES attr; IO_STATUS_BLOCK io; -@@ -1964,12 +2067,15 @@ static NTSTATUS find_dll_file( const WCHAR *load_path, const WCHAR *libname, +@@ -2131,12 +2234,15 @@ static NTSTATUS find_dll_file( const WCHAR *load_path, const WCHAR *libname, if (RtlDetermineDosPathNameType_U( libname ) == RELATIVE_PATH) { @@ -150,7 +150,7 @@ index bef0ab1..0486517 100644 if (!RtlDosPathNameToNtPathName_U( filename, &nt_name, NULL, NULL )) { -@@ -1983,7 +2089,23 @@ static NTSTATUS find_dll_file( const WCHAR *load_path, const WCHAR *libname, +@@ -2150,7 +2256,23 @@ static NTSTATUS find_dll_file( const WCHAR *load_path, const WCHAR *libname, attr.SecurityDescriptor = NULL; attr.SecurityQualityOfService = NULL; if (NtOpenFile( handle, GENERIC_READ, &attr, &io, FILE_SHARE_READ|FILE_SHARE_DELETE, FILE_SYNCHRONOUS_IO_NONALERT|FILE_NON_DIRECTORY_FILE )) *handle = 0; @@ -175,15 +175,15 @@ index bef0ab1..0486517 100644 } /* not found */ -@@ -2040,6 +2162,7 @@ overflow: +@@ -2207,6 +2329,7 @@ overflow: */ static NTSTATUS load_dll( LPCWSTR load_path, LPCWSTR libname, DWORD flags, WINE_MODREF** pwm ) { + BOOL data = flags & (LOAD_LIBRARY_AS_DATAFILE | LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE); enum loadorder loadorder; - WCHAR buffer[32]; + WCHAR buffer[64]; WCHAR *filename; -@@ -2055,7 +2178,7 @@ static NTSTATUS load_dll( LPCWSTR load_path, LPCWSTR libname, DWORD flags, WINE_ +@@ -2222,7 +2345,7 @@ static NTSTATUS load_dll( LPCWSTR load_path, LPCWSTR libname, DWORD flags, WINE_ size = sizeof(buffer); for (;;) { @@ -192,7 +192,7 @@ index bef0ab1..0486517 100644 if (nts == STATUS_SUCCESS) break; if (filename != buffer) RtlFreeHeap( GetProcessHeap(), 0, filename ); if (nts != STATUS_BUFFER_TOO_SMALL) return nts; -@@ -2192,7 +2315,7 @@ NTSTATUS WINAPI LdrGetDllHandle( LPCWSTR load_path, ULONG flags, const UNICODE_S +@@ -2359,7 +2482,7 @@ NTSTATUS WINAPI LdrGetDllHandle( LPCWSTR load_path, ULONG flags, const UNICODE_S size = sizeof(buffer); for (;;) { @@ -202,5 +202,5 @@ index bef0ab1..0486517 100644 if (status != STATUS_BUFFER_TOO_SMALL) break; /* grow the buffer and retry */ -- -2.4.5 +2.6.2 diff --git a/patches/ntdll-Syscall_Wrappers/0001-include-Add-missing-definitions-for-Nt-functions.patch b/patches/ntdll-Syscall_Wrappers/0001-include-Add-missing-definitions-for-Nt-functions.patch new file mode 100644 index 00000000..a31e150d --- /dev/null +++ b/patches/ntdll-Syscall_Wrappers/0001-include-Add-missing-definitions-for-Nt-functions.patch @@ -0,0 +1,73 @@ +From b3c1ba550d89a4363a9b017757834e37e2d44c4e Mon Sep 17 00:00:00 2001 +From: Sebastian Lackner +Date: Tue, 10 Nov 2015 19:13:37 +0100 +Subject: include: Add missing definitions for Nt* functions. + +Also fix the ntdll specfile for NtCreateKeyTransacted. +--- + dlls/ntdll/ntdll.spec | 4 ++-- + include/winternl.h | 5 +++++ + 2 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec +index d285561..c3b6bf0 100644 +--- a/dlls/ntdll/ntdll.spec ++++ b/dlls/ntdll/ntdll.spec +@@ -130,7 +130,7 @@ + @ stdcall NtCreateJobObject(ptr long ptr) + # @ stub NtCreateJobSet + @ stdcall NtCreateKey(ptr long ptr long ptr long long) +-@ stdcall NtCreateKeyTransacted(ptr long ptr long ptr long long long) ++@ stdcall NtCreateKeyTransacted(ptr long ptr long ptr long long ptr) + @ stdcall NtCreateKeyedEvent(ptr long ptr long) + @ stdcall NtCreateMailslotFile(long long long long long long long long) + @ stdcall NtCreateMutant(ptr long ptr long) +@@ -1050,7 +1050,7 @@ + @ stdcall ZwCreateJobObject(ptr long ptr) NtCreateJobObject + # @ stub ZwCreateJobSet + @ stdcall ZwCreateKey(ptr long ptr long ptr long long) NtCreateKey +-@ stdcall ZwCreateKeyTransacted(ptr long ptr long ptr long long long) NtCreateKeyTransacted ++@ stdcall ZwCreateKeyTransacted(ptr long ptr long ptr long long ptr) NtCreateKeyTransacted + @ stdcall ZwCreateKeyedEvent(ptr long ptr long) NtCreateKeyedEvent + @ stdcall ZwCreateMailslotFile(long long long long long long long long) NtCreateMailslotFile + @ stdcall ZwCreateMutant(ptr long ptr long) NtCreateMutant +diff --git a/include/winternl.h b/include/winternl.h +index f3de636..9532b1d 100644 +--- a/include/winternl.h ++++ b/include/winternl.h +@@ -2108,6 +2108,7 @@ NTSYSAPI NTSTATUS WINAPI NtCreateFile(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,PI + NTSYSAPI NTSTATUS WINAPI NtCreateIoCompletion(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,ULONG); + NTSYSAPI NTSTATUS WINAPI NtCreateJobObject(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*); + NTSYSAPI NTSTATUS WINAPI NtCreateKey(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*,ULONG,const UNICODE_STRING*,ULONG,PULONG); ++NTSYSAPI NTSTATUS WINAPI NtCreateKeyTransacted(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES *,ULONG,const UNICODE_STRING *,ULONG,HANDLE,ULONG *); + NTSYSAPI NTSTATUS WINAPI NtCreateKeyedEvent(HANDLE*,ACCESS_MASK,const OBJECT_ATTRIBUTES*,ULONG); + NTSYSAPI NTSTATUS WINAPI NtCreateMailslotFile(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,PIO_STATUS_BLOCK,ULONG,ULONG,ULONG,PLARGE_INTEGER); + NTSYSAPI NTSTATUS WINAPI NtCreateMutant(HANDLE*,ACCESS_MASK,const OBJECT_ATTRIBUTES*,BOOLEAN); +@@ -2162,6 +2163,7 @@ NTSYSAPI NTSTATUS WINAPI NtMakeTemporaryObject(HANDLE); + NTSYSAPI NTSTATUS WINAPI NtMapViewOfSection(HANDLE,HANDLE,PVOID*,ULONG,SIZE_T,const LARGE_INTEGER*,SIZE_T*,SECTION_INHERIT,ULONG,ULONG); + NTSYSAPI NTSTATUS WINAPI NtNotifyChangeDirectoryFile(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,PVOID,ULONG,ULONG,BOOLEAN); + NTSYSAPI NTSTATUS WINAPI NtNotifyChangeKey(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,ULONG,BOOLEAN,PVOID,ULONG,BOOLEAN); ++NTSYSAPI NTSTATUS WINAPI NtNotifyChangeMultipleKeys(HANDLE,ULONG,OBJECT_ATTRIBUTES *,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,ULONG,BOOLEAN,PVOID,ULONG,BOOLEAN); + NTSYSAPI NTSTATUS WINAPI NtOpenDirectoryObject(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES); + NTSYSAPI NTSTATUS WINAPI NtOpenEvent(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES *); + NTSYSAPI NTSTATUS WINAPI NtOpenEventPair(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES); +@@ -2170,6 +2172,8 @@ NTSYSAPI NTSTATUS WINAPI NtOpenIoCompletion(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBU + NTSYSAPI NTSTATUS WINAPI NtOpenJobObject(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*); + NTSYSAPI NTSTATUS WINAPI NtOpenKey(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES *); + NTSYSAPI NTSTATUS WINAPI NtOpenKeyEx(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*,ULONG); ++NTSYSAPI NTSTATUS WINAPI NtOpenKeyTransacted(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES *,HANDLE); ++NTSYSAPI NTSTATUS WINAPI NtOpenKeyTransactedEx(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES *,ULONG,HANDLE); + NTSYSAPI NTSTATUS WINAPI NtOpenKeyedEvent(HANDLE*,ACCESS_MASK,const OBJECT_ATTRIBUTES*); + NTSYSAPI NTSTATUS WINAPI NtOpenMutant(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*); + NTSYSAPI NTSTATUS WINAPI NtOpenObjectAuditAlarm(PUNICODE_STRING,PHANDLE,PUNICODE_STRING,PUNICODE_STRING,PSECURITY_DESCRIPTOR,HANDLE,ACCESS_MASK,ACCESS_MASK,PPRIVILEGE_SET,BOOLEAN,BOOLEAN,PBOOLEAN); +@@ -2238,6 +2242,7 @@ NTSYSAPI NTSTATUS WINAPI NtReleaseKeyedEvent(HANDLE,const void*,BOOLEAN,const L + NTSYSAPI NTSTATUS WINAPI NtReleaseMutant(HANDLE,PLONG); + NTSYSAPI NTSTATUS WINAPI NtReleaseSemaphore(HANDLE,ULONG,PULONG); + NTSYSAPI NTSTATUS WINAPI NtRemoveIoCompletion(HANDLE,PULONG_PTR,PULONG_PTR,PIO_STATUS_BLOCK,PLARGE_INTEGER); ++NTSYSAPI NTSTATUS WINAPI NtRenameKey(HANDLE,UNICODE_STRING *); + NTSYSAPI NTSTATUS WINAPI NtReplaceKey(POBJECT_ATTRIBUTES,HANDLE,POBJECT_ATTRIBUTES); + NTSYSAPI NTSTATUS WINAPI NtReplyPort(HANDLE,PLPC_MESSAGE); + NTSYSAPI NTSTATUS WINAPI NtReplyWaitReceivePort(HANDLE,PULONG,PLPC_MESSAGE,PLPC_MESSAGE); +-- +2.6.2 + diff --git a/patches/ntdll-Syscall_Wrappers/0001-winegcc-Pass-read_only_relocs-suppress-to-the-linker.patch b/patches/ntdll-Syscall_Wrappers/0002-winegcc-Pass-read_only_relocs-suppress-to-the-linker.patch similarity index 100% rename from patches/ntdll-Syscall_Wrappers/0001-winegcc-Pass-read_only_relocs-suppress-to-the-linker.patch rename to patches/ntdll-Syscall_Wrappers/0002-winegcc-Pass-read_only_relocs-suppress-to-the-linker.patch diff --git a/patches/ntdll-Syscall_Wrappers/0002-ntdll-Use-wrapper-functions-for-syscalls.patch b/patches/ntdll-Syscall_Wrappers/0003-ntdll-Use-wrapper-functions-for-syscalls.patch similarity index 96% rename from patches/ntdll-Syscall_Wrappers/0002-ntdll-Use-wrapper-functions-for-syscalls.patch rename to patches/ntdll-Syscall_Wrappers/0003-ntdll-Use-wrapper-functions-for-syscalls.patch index 44485168..a1c69246 100644 --- a/patches/ntdll-Syscall_Wrappers/0002-ntdll-Use-wrapper-functions-for-syscalls.patch +++ b/patches/ntdll-Syscall_Wrappers/0003-ntdll-Use-wrapper-functions-for-syscalls.patch @@ -1,4 +1,4 @@ -From ebfd5e2652dba8934354b0c20563cbabc717900b Mon Sep 17 00:00:00 2001 +From 1a0efd8b70bcf35e4e12326ba77bfd93b4bf0367 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Fri, 16 Oct 2015 02:32:58 +0200 Subject: ntdll: Use wrapper functions for syscalls. @@ -14,7 +14,7 @@ Subject: ntdll: Use wrapper functions for syscalls. dlls/ntdll/ntdll_misc.h | 17 ++++++ dlls/ntdll/om.c | 39 +++++++++----- dlls/ntdll/process.c | 15 ++++-- - dlls/ntdll/reg.c | 63 ++++++++++++++-------- + dlls/ntdll/reg.c | 75 +++++++++++++++++--------- dlls/ntdll/resource.c | 16 ++++-- dlls/ntdll/sec.c | 9 ++-- dlls/ntdll/signal_arm.c | 3 +- @@ -26,7 +26,7 @@ Subject: ntdll: Use wrapper functions for syscalls. dlls/ntdll/thread.c | 36 ++++++++----- dlls/ntdll/time.c | 12 +++-- dlls/ntdll/virtual.c | 48 +++++++++++------ - 22 files changed, 414 insertions(+), 193 deletions(-) + 22 files changed, 422 insertions(+), 197 deletions(-) diff --git a/dlls/ntdll/atom.c b/dlls/ntdll/atom.c index 304b7f6..222fde9 100644 @@ -395,7 +395,7 @@ index 1027b54..1cde19c 100644 ULONG CreateOptions, ULONG MailslotQuota, ULONG MaxMessageSize, PLARGE_INTEGER TimeOut) diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c -index 831f049..ecbc885 100644 +index 74feb97..e5ea736 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c @@ -3200,7 +3200,8 @@ PVOID WINAPI RtlPcToFileHeader( PVOID pc, PVOID *address ) @@ -950,7 +950,7 @@ index ca9462a..37c08f1 100644 { NTSTATUS status; diff --git a/dlls/ntdll/reg.c b/dlls/ntdll/reg.c -index 5248595..11a03cd 100644 +index 0701426..b74c464 100644 --- a/dlls/ntdll/reg.c +++ b/dlls/ntdll/reg.c @@ -51,7 +51,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(reg); @@ -963,7 +963,27 @@ index 5248595..11a03cd 100644 ULONG TitleIndex, const UNICODE_STRING *class, ULONG options, PULONG dispos ) { -@@ -109,7 +110,8 @@ NTSTATUS WINAPI RtlpNtCreateKey( PHANDLE retkey, ACCESS_MASK access, const OBJEC +@@ -84,7 +85,8 @@ NTSTATUS WINAPI NtCreateKey( PHANDLE retkey, ACCESS_MASK access, const OBJECT_AT + return ret; + } + +-NTSTATUS WINAPI NtCreateKeyTransacted( PHANDLE retkey, ACCESS_MASK access, const OBJECT_ATTRIBUTES *attr, ++DEFINE_SYSCALL_ENTRYPOINT( NtCreateKeyTransacted, 8 ); ++NTSTATUS WINAPI SYSCALL(NtCreateKeyTransacted)( PHANDLE retkey, ACCESS_MASK access, const OBJECT_ATTRIBUTES *attr, + ULONG TitleIndex, const UNICODE_STRING *class, ULONG options, + HANDLE transacted, ULONG *dispos ) + { +@@ -93,7 +95,8 @@ NTSTATUS WINAPI NtCreateKeyTransacted( PHANDLE retkey, ACCESS_MASK access, const + return STATUS_NOT_IMPLEMENTED; + } + +-NTSTATUS WINAPI NtRenameKey( HANDLE handle, UNICODE_STRING *name ) ++DEFINE_SYSCALL_ENTRYPOINT( NtRenameKey, 2 ); ++NTSTATUS WINAPI SYSCALL(NtRenameKey)( HANDLE handle, UNICODE_STRING *name ) + { + FIXME( "(%p %s)\n", handle, debugstr_us(name) ); + return STATUS_NOT_IMPLEMENTED; +@@ -124,7 +127,8 @@ NTSTATUS WINAPI RtlpNtCreateKey( PHANDLE retkey, ACCESS_MASK access, const OBJEC * NtOpenKeyEx [NTDLL.@] * ZwOpenKeyEx [NTDLL.@] */ @@ -973,7 +993,7 @@ index 5248595..11a03cd 100644 { NTSTATUS ret; DWORD len; -@@ -146,7 +148,8 @@ NTSTATUS WINAPI NtOpenKeyEx( PHANDLE retkey, ACCESS_MASK access, const OBJECT_AT +@@ -161,19 +165,22 @@ NTSTATUS WINAPI NtOpenKeyEx( PHANDLE retkey, ACCESS_MASK access, const OBJECT_AT * IN ACCESS_MASK access * IN POBJECT_ATTRIBUTES attr */ @@ -983,7 +1003,23 @@ index 5248595..11a03cd 100644 { return NtOpenKeyEx( retkey, access, attr, 0 ); } -@@ -167,7 +170,8 @@ NTSTATUS WINAPI RtlpNtOpenKey( PHANDLE retkey, ACCESS_MASK access, OBJECT_ATTRIB + +-NTSTATUS WINAPI NtOpenKeyTransactedEx( PHANDLE retkey, ACCESS_MASK access, const OBJECT_ATTRIBUTES *attr, ++DEFINE_SYSCALL_ENTRYPOINT( NtOpenKeyTransactedEx, 5 ); ++NTSTATUS WINAPI SYSCALL(NtOpenKeyTransactedEx)( PHANDLE retkey, ACCESS_MASK access, const OBJECT_ATTRIBUTES *attr, + ULONG options, HANDLE transaction ) + { + FIXME( "(%p %x %p %x %p)\n", retkey, access, attr, options, transaction ); + return STATUS_NOT_IMPLEMENTED; + } + +-NTSTATUS WINAPI NtOpenKeyTransacted( PHANDLE retkey, ACCESS_MASK access, const OBJECT_ATTRIBUTES *attr, ++DEFINE_SYSCALL_ENTRYPOINT( NtOpenKeyTransacted, 4 ); ++NTSTATUS WINAPI SYSCALL(NtOpenKeyTransacted)( PHANDLE retkey, ACCESS_MASK access, const OBJECT_ATTRIBUTES *attr, + HANDLE transaction ) + { + return NtOpenKeyTransactedEx( retkey, access, attr, 0, transaction ); +@@ -195,7 +202,8 @@ NTSTATUS WINAPI RtlpNtOpenKey( PHANDLE retkey, ACCESS_MASK access, OBJECT_ATTRIB * NtDeleteKey [NTDLL.@] * ZwDeleteKey [NTDLL.@] */ @@ -993,7 +1029,7 @@ index 5248595..11a03cd 100644 { NTSTATUS ret; -@@ -196,7 +200,8 @@ NTSTATUS WINAPI RtlpNtMakeTemporaryKey( HANDLE hkey ) +@@ -224,7 +232,8 @@ NTSTATUS WINAPI RtlpNtMakeTemporaryKey( HANDLE hkey ) * NtDeleteValueKey [NTDLL.@] * ZwDeleteValueKey [NTDLL.@] */ @@ -1003,7 +1039,7 @@ index 5248595..11a03cd 100644 { NTSTATUS ret; -@@ -322,7 +327,8 @@ static NTSTATUS enumerate_key( HANDLE handle, int index, KEY_INFORMATION_CLASS i +@@ -350,7 +359,8 @@ static NTSTATUS enumerate_key( HANDLE handle, int index, KEY_INFORMATION_CLASS i * NOTES * the name copied into the buffer is NOT 0-terminated */ @@ -1013,7 +1049,7 @@ index 5248595..11a03cd 100644 void *info, DWORD length, DWORD *result_len ) { /* -1 means query key, so avoid it here */ -@@ -381,7 +387,8 @@ NTSTATUS WINAPI RtlpNtEnumerateSubKey( HANDLE handle, UNICODE_STRING *out, ULONG +@@ -409,7 +419,8 @@ NTSTATUS WINAPI RtlpNtEnumerateSubKey( HANDLE handle, UNICODE_STRING *out, ULONG * NtQueryKey [NTDLL.@] * ZwQueryKey [NTDLL.@] */ @@ -1023,7 +1059,7 @@ index 5248595..11a03cd 100644 void *info, DWORD length, DWORD *result_len ) { return enumerate_key( handle, -1, info_class, info, length, result_len ); -@@ -436,7 +443,8 @@ static void copy_key_value_info( KEY_VALUE_INFORMATION_CLASS info_class, void *i +@@ -464,7 +475,8 @@ static void copy_key_value_info( KEY_VALUE_INFORMATION_CLASS info_class, void *i * NtEnumerateValueKey [NTDLL.@] * ZwEnumerateValueKey [NTDLL.@] */ @@ -1033,7 +1069,7 @@ index 5248595..11a03cd 100644 KEY_VALUE_INFORMATION_CLASS info_class, void *info, DWORD length, DWORD *result_len ) { -@@ -484,7 +492,8 @@ NTSTATUS WINAPI NtEnumerateValueKey( HANDLE handle, ULONG index, +@@ -512,7 +524,8 @@ NTSTATUS WINAPI NtEnumerateValueKey( HANDLE handle, ULONG index, * NOTES * the name in the KeyValueInformation is never set */ @@ -1043,7 +1079,7 @@ index 5248595..11a03cd 100644 KEY_VALUE_INFORMATION_CLASS info_class, void *info, DWORD length, DWORD *result_len ) { -@@ -586,7 +595,8 @@ NTSTATUS WINAPI RtlpNtQueryValueKey( HANDLE handle, ULONG *result_type, PBYTE de +@@ -614,7 +627,8 @@ NTSTATUS WINAPI RtlpNtQueryValueKey( HANDLE handle, ULONG *result_type, PBYTE de * NtFlushKey [NTDLL.@] * ZwFlushKey [NTDLL.@] */ @@ -1053,7 +1089,7 @@ index 5248595..11a03cd 100644 { NTSTATUS ret; -@@ -606,7 +616,8 @@ NTSTATUS WINAPI NtFlushKey(HANDLE key) +@@ -634,7 +648,8 @@ NTSTATUS WINAPI NtFlushKey(HANDLE key) * NtLoadKey [NTDLL.@] * ZwLoadKey [NTDLL.@] */ @@ -1063,7 +1099,7 @@ index 5248595..11a03cd 100644 { NTSTATUS ret; HANDLE hive; -@@ -636,7 +647,8 @@ NTSTATUS WINAPI NtLoadKey( const OBJECT_ATTRIBUTES *attr, OBJECT_ATTRIBUTES *fil +@@ -664,7 +679,8 @@ NTSTATUS WINAPI NtLoadKey( const OBJECT_ATTRIBUTES *attr, OBJECT_ATTRIBUTES *fil * NtNotifyChangeMultipleKeys [NTDLL.@] * ZwNotifyChangeMultipleKeys [NTDLL.@] */ @@ -1073,7 +1109,7 @@ index 5248595..11a03cd 100644 HANDLE KeyHandle, ULONG Count, OBJECT_ATTRIBUTES *SubordinateObjects, -@@ -692,7 +704,8 @@ NTSTATUS WINAPI NtNotifyChangeMultipleKeys( +@@ -720,7 +736,8 @@ NTSTATUS WINAPI NtNotifyChangeMultipleKeys( * NtNotifyChangeKey [NTDLL.@] * ZwNotifyChangeKey [NTDLL.@] */ @@ -1083,7 +1119,7 @@ index 5248595..11a03cd 100644 IN HANDLE KeyHandle, IN HANDLE Event, IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, -@@ -714,7 +727,8 @@ NTSTATUS WINAPI NtNotifyChangeKey( +@@ -742,7 +759,8 @@ NTSTATUS WINAPI NtNotifyChangeKey( * ZwQueryMultipleValueKey */ @@ -1093,7 +1129,7 @@ index 5248595..11a03cd 100644 HANDLE KeyHandle, PKEY_MULTIPLE_VALUE_INFORMATION ListOfValuesToQuery, ULONG NumberOfItems, -@@ -732,7 +746,8 @@ NTSTATUS WINAPI NtQueryMultipleValueKey( +@@ -760,7 +778,8 @@ NTSTATUS WINAPI NtQueryMultipleValueKey( * NtReplaceKey [NTDLL.@] * ZwReplaceKey [NTDLL.@] */ @@ -1103,7 +1139,7 @@ index 5248595..11a03cd 100644 IN POBJECT_ATTRIBUTES ObjectAttributes, IN HANDLE Key, IN POBJECT_ATTRIBUTES ReplacedObjectAttributes) -@@ -745,7 +760,8 @@ NTSTATUS WINAPI NtReplaceKey( +@@ -773,7 +792,8 @@ NTSTATUS WINAPI NtReplaceKey( * NtRestoreKey [NTDLL.@] * ZwRestoreKey [NTDLL.@] */ @@ -1113,7 +1149,7 @@ index 5248595..11a03cd 100644 HANDLE KeyHandle, HANDLE FileHandle, ULONG RestoreFlags) -@@ -758,7 +774,8 @@ NTSTATUS WINAPI NtRestoreKey( +@@ -786,7 +806,8 @@ NTSTATUS WINAPI NtRestoreKey( * NtSaveKey [NTDLL.@] * ZwSaveKey [NTDLL.@] */ @@ -1123,7 +1159,7 @@ index 5248595..11a03cd 100644 { NTSTATUS ret; -@@ -778,7 +795,8 @@ NTSTATUS WINAPI NtSaveKey(IN HANDLE KeyHandle, IN HANDLE FileHandle) +@@ -806,7 +827,8 @@ NTSTATUS WINAPI NtSaveKey(IN HANDLE KeyHandle, IN HANDLE FileHandle) * NtSetInformationKey [NTDLL.@] * ZwSetInformationKey [NTDLL.@] */ @@ -1133,7 +1169,7 @@ index 5248595..11a03cd 100644 IN HANDLE KeyHandle, IN const int KeyInformationClass, IN PVOID KeyInformation, -@@ -798,7 +816,8 @@ NTSTATUS WINAPI NtSetInformationKey( +@@ -826,7 +848,8 @@ NTSTATUS WINAPI NtSetInformationKey( * win95 does not care about count for REG_SZ and finds out the len by itself (js) * NT does definitely care (aj) */ @@ -1143,7 +1179,7 @@ index 5248595..11a03cd 100644 ULONG type, const void *data, ULONG count ) { NTSTATUS ret; -@@ -837,7 +856,8 @@ NTSTATUS WINAPI RtlpNtSetValueKey( HANDLE hkey, ULONG type, const void *data, +@@ -865,7 +888,8 @@ NTSTATUS WINAPI RtlpNtSetValueKey( HANDLE hkey, ULONG type, const void *data, * NtUnloadKey [NTDLL.@] * ZwUnloadKey [NTDLL.@] */ @@ -1153,7 +1189,7 @@ index 5248595..11a03cd 100644 { NTSTATUS ret; -@@ -1444,7 +1464,8 @@ NTSTATUS WINAPI RtlWriteRegistryValue( ULONG RelativeTo, PCWSTR path, PCWSTR nam +@@ -1472,7 +1496,8 @@ NTSTATUS WINAPI RtlWriteRegistryValue( ULONG RelativeTo, PCWSTR path, PCWSTR nam * unless there is some app which explicitly depends on that, there is * no good reason to reproduce that. */ diff --git a/patches/ntdll-Syscall_Wrappers/0003-ntdll-APCs-should-call-the-implementation-instead-of.patch b/patches/ntdll-Syscall_Wrappers/0004-ntdll-APCs-should-call-the-implementation-instead-of.patch similarity index 100% rename from patches/ntdll-Syscall_Wrappers/0003-ntdll-APCs-should-call-the-implementation-instead-of.patch rename to patches/ntdll-Syscall_Wrappers/0004-ntdll-APCs-should-call-the-implementation-instead-of.patch diff --git a/patches/ntdll-Syscall_Wrappers/0004-ntdll-Syscalls-should-not-call-Nt-Ex-thunk-wrappers.patch b/patches/ntdll-Syscall_Wrappers/0005-ntdll-Syscalls-should-not-call-Nt-Ex-thunk-wrappers.patch similarity index 75% rename from patches/ntdll-Syscall_Wrappers/0004-ntdll-Syscalls-should-not-call-Nt-Ex-thunk-wrappers.patch rename to patches/ntdll-Syscall_Wrappers/0005-ntdll-Syscalls-should-not-call-Nt-Ex-thunk-wrappers.patch index d953ed7a..061be544 100644 --- a/patches/ntdll-Syscall_Wrappers/0004-ntdll-Syscalls-should-not-call-Nt-Ex-thunk-wrappers.patch +++ b/patches/ntdll-Syscall_Wrappers/0005-ntdll-Syscalls-should-not-call-Nt-Ex-thunk-wrappers.patch @@ -1,4 +1,4 @@ -From 0026d5f6d3bd8fead6081e21d3a5f45f415d31df Mon Sep 17 00:00:00 2001 +From 04018008d5ca9c25a5d5e9c6eed7c6c1a8938a5c Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Fri, 16 Oct 2015 05:31:11 +0200 Subject: ntdll: Syscalls should not call Nt*Ex thunk wrappers. @@ -6,8 +6,8 @@ Subject: ntdll: Syscalls should not call Nt*Ex thunk wrappers. --- dlls/ntdll/nt.c | 4 ++-- dlls/ntdll/ntdll_misc.h | 2 ++ - dlls/ntdll/reg.c | 2 +- - 3 files changed, 5 insertions(+), 3 deletions(-) + dlls/ntdll/reg.c | 4 ++-- + 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c index 19d5b6e..a0d8909 100644 @@ -45,10 +45,19 @@ index 5566080..ee94382 100644 DECLARE_SYSCALL_ENTRYPOINT( NtQueryVirtualMemory ); DECLARE_SYSCALL_ENTRYPOINT( NtUnlockVirtualMemory ); diff --git a/dlls/ntdll/reg.c b/dlls/ntdll/reg.c -index 11a03cd..cb5b514 100644 +index b74c464..406d72f 100644 --- a/dlls/ntdll/reg.c +++ b/dlls/ntdll/reg.c -@@ -717,7 +717,7 @@ NTSTATUS WINAPI SYSCALL(NtNotifyChangeKey)( +@@ -183,7 +183,7 @@ DEFINE_SYSCALL_ENTRYPOINT( NtOpenKeyTransacted, 4 ); + NTSTATUS WINAPI SYSCALL(NtOpenKeyTransacted)( PHANDLE retkey, ACCESS_MASK access, const OBJECT_ATTRIBUTES *attr, + HANDLE transaction ) + { +- return NtOpenKeyTransactedEx( retkey, access, attr, 0, transaction ); ++ return SYSCALL(NtOpenKeyTransactedEx)( retkey, access, attr, 0, transaction ); + } + + /****************************************************************************** +@@ -749,7 +749,7 @@ NTSTATUS WINAPI SYSCALL(NtNotifyChangeKey)( IN ULONG Length, IN BOOLEAN Asynchronous) { diff --git a/patches/ntdll-Syscall_Wrappers/0005-ntdll-Run-directory-initialization-function-early-du.patch b/patches/ntdll-Syscall_Wrappers/0006-ntdll-Run-directory-initialization-function-early-du.patch similarity index 100% rename from patches/ntdll-Syscall_Wrappers/0005-ntdll-Run-directory-initialization-function-early-du.patch rename to patches/ntdll-Syscall_Wrappers/0006-ntdll-Run-directory-initialization-function-early-du.patch diff --git a/patches/ntdll-Syscall_Wrappers/0006-ntdll-Use-close_handle-instead-of-NtClose-for-intern.patch b/patches/ntdll-Syscall_Wrappers/0007-ntdll-Use-close_handle-instead-of-NtClose-for-intern.patch similarity index 100% rename from patches/ntdll-Syscall_Wrappers/0006-ntdll-Use-close_handle-instead-of-NtClose-for-intern.patch rename to patches/ntdll-Syscall_Wrappers/0007-ntdll-Use-close_handle-instead-of-NtClose-for-intern.patch diff --git a/patches/ntoskrnl-DriverTest/0001-ntoskrnl.exe-tests-Add-initial-driver-testing-framew.patch b/patches/ntoskrnl-DriverTest/0001-ntoskrnl.exe-tests-Add-initial-driver-testing-framew.patch index b8823c17..5c0f97fb 100644 --- a/patches/ntoskrnl-DriverTest/0001-ntoskrnl.exe-tests-Add-initial-driver-testing-framew.patch +++ b/patches/ntoskrnl-DriverTest/0001-ntoskrnl.exe-tests-Add-initial-driver-testing-framew.patch @@ -1,4 +1,4 @@ -From 0a6a4d1aa5009c1e29508c34a32155cc5174984c Mon Sep 17 00:00:00 2001 +From ff63d064b47c582a0b31a0120d9555af5f041b7d Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sun, 18 Jan 2015 05:42:10 +0100 Subject: ntoskrnl.exe/tests: Add initial driver testing framework and @@ -24,7 +24,7 @@ Subject: ntoskrnl.exe/tests: Add initial driver testing framework and create mode 100644 dlls/ntoskrnl.exe/tests/ntoskrnl.c diff --git a/aclocal.m4 b/aclocal.m4 -index e236c92..c19efc7 100644 +index 774377d..bf91b70 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -629,6 +629,28 @@ $ac_dir/crosstest: $ac_dir/Makefile __builddeps__ dummy @@ -73,10 +73,10 @@ index e236c92..c19efc7 100644 dnl dnl Usage: WINE_CONFIG_LIB(name,flags) diff --git a/configure.ac b/configure.ac -index 3180407..7862a4b 100644 +index 84420a9..fe4b94e 100644 --- a/configure.ac +++ b/configure.ac -@@ -3215,6 +3215,8 @@ WINE_CONFIG_TEST(dlls/ntdll/tests) +@@ -3203,6 +3203,8 @@ WINE_CONFIG_TEST(dlls/ntdll/tests) WINE_CONFIG_DLL(ntdsapi,,[implib]) WINE_CONFIG_TEST(dlls/ntdsapi/tests) WINE_CONFIG_DLL(ntoskrnl.exe,,[implib]) @@ -530,10 +530,10 @@ index 0000000..9b8a6a7 + unload_driver(service, filename); +} diff --git a/tools/make_makefiles b/tools/make_makefiles -index 4b539cd..2bea0a4 100755 +index b7f8b63..8143c4f 100755 --- a/tools/make_makefiles +++ b/tools/make_makefiles -@@ -258,7 +258,7 @@ sub parse_makefile($) +@@ -200,7 +200,7 @@ sub parse_makefile($) while (/\\$/) { chop; $_ .= ; chomp; } # merge continued lines next if (/^\s*$/); @@ -542,7 +542,7 @@ index 4b539cd..2bea0a4 100755 { my $var = $1; $make{$var} = $2; -@@ -486,6 +486,13 @@ sub update_makefiles(@) +@@ -440,6 +440,13 @@ sub update_makefiles(@) (my $dir = $file) =~ s/^(.*)\/Makefile/$1/; push @lines, "WINE_CONFIG_TEST($dir$flag_args)\n"; } @@ -557,7 +557,7 @@ index 4b539cd..2bea0a4 100755 { die "MODULE should not be defined as static lib in $file" unless $file =~ /^dlls\//; diff --git a/tools/makedep.c b/tools/makedep.c -index 30bbc3e..de5ca59 100644 +index d8cf2f5..6094148 100644 --- a/tools/makedep.c +++ b/tools/makedep.c @@ -170,4 +170,5 @@ struct makefile @@ -597,15 +597,15 @@ index 30bbc3e..de5ca59 100644 * replace_extension */ static char *replace_extension( const char *name, const char *old_ext, const char *new_ext ) -@@ -1872,6 +1897,7 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t +@@ -1958,6 +1983,7 @@ static struct strarray output_sources( const struct makefile *make, struct strar struct strarray subdirs = empty_strarray; struct strarray phony_targets = empty_strarray; struct strarray all_targets = empty_strarray; + struct strarray resource_dlls = get_expanded_make_var_array( make, "RC_DLLS" ); + struct strarray install_rules[NB_INSTALL_RULES]; char *ldrpath_local = get_expanded_make_variable( make, "LDRPATH_LOCAL" ); char *ldrpath_install = get_expanded_make_variable( make, "LDRPATH_INSTALL" ); - -@@ -2097,7 +2123,7 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t +@@ -2229,7 +2255,7 @@ static struct strarray output_sources( const struct makefile *make, struct strar } else { @@ -614,7 +614,7 @@ index 30bbc3e..de5ca59 100644 (source->file->flags & FLAG_C_IMPLIB) || (make->module && make->staticlib); -@@ -2111,7 +2137,7 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t +@@ -2243,7 +2269,7 @@ static struct strarray output_sources( const struct makefile *make, struct strar output_filenames( includes ); output_filenames( make->define_args ); output_filenames( extradefs ); @@ -623,7 +623,7 @@ index 30bbc3e..de5ca59 100644 { output_filenames( dll_flags ); if (make->use_msvcrt) output_filenames( msvcrt_flags ); -@@ -2191,6 +2217,72 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t +@@ -2322,6 +2348,72 @@ static struct strarray output_sources( const struct makefile *make, struct strar output( "\n" ); } @@ -696,8 +696,8 @@ index 30bbc3e..de5ca59 100644 if (make->module && !make->staticlib) { struct strarray all_libs = empty_strarray; -@@ -2514,6 +2606,83 @@ static struct strarray output_sources( struct makefile *make, struct strarray *t - add_install_rule( make, make->scripts.str[i], make->scripts.str[i], +@@ -2666,6 +2758,83 @@ static struct strarray output_sources( const struct makefile *make, struct strar + add_install_rule( make, install_rules, make->scripts.str[i], make->scripts.str[i], strmake( "S$(bindir)/%s", make->scripts.str[i] )); + if (make->resource) @@ -780,12 +780,12 @@ index 30bbc3e..de5ca59 100644 if (all_targets.count) { output( "all:" ); -@@ -2798,4 +2967,5 @@ static void update_makefile( const char *path ) +@@ -2951,4 +3120,5 @@ static void update_makefile( const char *path ) make->module = get_expanded_make_variable( make, "MODULE" ); make->testdll = get_expanded_make_variable( make, "TESTDLL" ); + make->resource = get_expanded_make_variable( make, "RESOURCE" ); make->staticlib = get_expanded_make_variable( make, "STATICLIB" ); make->importlib = get_expanded_make_variable( make, "IMPORTLIB" ); -- -2.6.1 +2.6.2 diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index db319283..5eaa8a5a 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "7bd852c6ce0299f14fa585c124bae029f0d6d214" + echo "61c49bd78e5c96f14870e5c21a2ff75da7ac17b2" } # Show version information @@ -3852,19 +3852,22 @@ fi # | # | Modified files: # | * dlls/ntdll/atom.c, dlls/ntdll/directory.c, dlls/ntdll/env.c, dlls/ntdll/error.c, dlls/ntdll/file.c, dlls/ntdll/loader.c, -# | dlls/ntdll/nt.c, dlls/ntdll/ntdll_misc.h, dlls/ntdll/om.c, dlls/ntdll/process.c, dlls/ntdll/reg.c, -# | dlls/ntdll/resource.c, dlls/ntdll/sec.c, dlls/ntdll/server.c, dlls/ntdll/signal_arm.c, dlls/ntdll/signal_arm64.c, -# | dlls/ntdll/signal_i386.c, dlls/ntdll/signal_powerpc.c, dlls/ntdll/signal_x86_64.c, dlls/ntdll/sync.c, -# | dlls/ntdll/thread.c, dlls/ntdll/time.c, dlls/ntdll/virtual.c, tools/winegcc/winegcc.c +# | dlls/ntdll/nt.c, dlls/ntdll/ntdll.spec, dlls/ntdll/ntdll_misc.h, dlls/ntdll/om.c, dlls/ntdll/process.c, +# | dlls/ntdll/reg.c, dlls/ntdll/resource.c, dlls/ntdll/sec.c, dlls/ntdll/server.c, dlls/ntdll/signal_arm.c, +# | dlls/ntdll/signal_arm64.c, dlls/ntdll/signal_i386.c, dlls/ntdll/signal_powerpc.c, dlls/ntdll/signal_x86_64.c, +# | dlls/ntdll/sync.c, dlls/ntdll/thread.c, dlls/ntdll/time.c, dlls/ntdll/virtual.c, include/winternl.h, +# | tools/winegcc/winegcc.c # | if test "$enable_ntdll_Syscall_Wrappers" -eq 1; then - patch_apply ntdll-Syscall_Wrappers/0001-winegcc-Pass-read_only_relocs-suppress-to-the-linker.patch - patch_apply ntdll-Syscall_Wrappers/0002-ntdll-Use-wrapper-functions-for-syscalls.patch - patch_apply ntdll-Syscall_Wrappers/0003-ntdll-APCs-should-call-the-implementation-instead-of.patch - patch_apply ntdll-Syscall_Wrappers/0004-ntdll-Syscalls-should-not-call-Nt-Ex-thunk-wrappers.patch - patch_apply ntdll-Syscall_Wrappers/0005-ntdll-Run-directory-initialization-function-early-du.patch - patch_apply ntdll-Syscall_Wrappers/0006-ntdll-Use-close_handle-instead-of-NtClose-for-intern.patch + patch_apply ntdll-Syscall_Wrappers/0001-include-Add-missing-definitions-for-Nt-functions.patch + patch_apply ntdll-Syscall_Wrappers/0002-winegcc-Pass-read_only_relocs-suppress-to-the-linker.patch + patch_apply ntdll-Syscall_Wrappers/0003-ntdll-Use-wrapper-functions-for-syscalls.patch + patch_apply ntdll-Syscall_Wrappers/0004-ntdll-APCs-should-call-the-implementation-instead-of.patch + patch_apply ntdll-Syscall_Wrappers/0005-ntdll-Syscalls-should-not-call-Nt-Ex-thunk-wrappers.patch + patch_apply ntdll-Syscall_Wrappers/0006-ntdll-Run-directory-initialization-function-early-du.patch + patch_apply ntdll-Syscall_Wrappers/0007-ntdll-Use-close_handle-instead-of-NtClose-for-intern.patch ( + echo '+ { "Sebastian Lackner", "include: Add missing definitions for Nt* functions.", 1 },'; echo '+ { "Sebastian Lackner", "winegcc: Pass '\''-read_only_relocs suppress'\'' to the linker on OSX.", 1 },'; echo '+ { "Sebastian Lackner", "ntdll: Use wrapper functions for syscalls.", 1 },'; echo '+ { "Sebastian Lackner", "ntdll: APCs should call the implementation instead of the syscall thunk.", 1 },';