From 1c5f4097455d5e97a7a1e409cb13920a276b1642 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Tue, 29 Jan 2019 10:30:19 +1100 Subject: [PATCH] Rebase against ca29ac4650f7f9a96cfaa75a7919ef007306cbbb --- .../0001-d3dx9_36-Add-dxtn-support.patch | 102 +++++++++--------- ...port-for-progress-callback-in-CopyFi.patch | 24 ++--- ...t-HashLinks-field-in-LDR-module-data.patch | 41 +++---- patches/patchinstall.sh | 2 +- ...-tests-Add-basic-tests-for-fake-dlls.patch | 14 +-- 5 files changed, 93 insertions(+), 90 deletions(-) diff --git a/patches/d3dx9_36-DXTn/0001-d3dx9_36-Add-dxtn-support.patch b/patches/d3dx9_36-DXTn/0001-d3dx9_36-Add-dxtn-support.patch index 0f62c8c5..7675a5ee 100644 --- a/patches/d3dx9_36-DXTn/0001-d3dx9_36-Add-dxtn-support.patch +++ b/patches/d3dx9_36-DXTn/0001-d3dx9_36-Add-dxtn-support.patch @@ -1,4 +1,4 @@ -From 076d1ae00db0f95713e64bea1d2649cbdcdf5939 Mon Sep 17 00:00:00 2001 +From 1c46cc796a20b263f708aebf5428e59408fea200 Mon Sep 17 00:00:00 2001 From: Christian Costa Date: Fri, 30 Mar 2018 08:22:02 +0000 Subject: [PATCH] d3dx9_36: add DXTn support @@ -29,7 +29,7 @@ Subject: [PATCH] d3dx9_36: add DXTn support 22 files changed, 118 insertions(+), 32 deletions(-) diff --git a/dlls/d3dx9_24/Makefile.in b/dlls/d3dx9_24/Makefile.in -index 482c92d..d969a55 100644 +index 02e64d3..0484639 100644 --- a/dlls/d3dx9_24/Makefile.in +++ b/dlls/d3dx9_24/Makefile.in @@ -1,6 +1,6 @@ @@ -38,10 +38,10 @@ index 482c92d..d969a55 100644 -IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 +IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d PARENTSRC = ../d3dx9_36 + DELAYIMPORTS = windowscodecs - C_SRCS = \ diff --git a/dlls/d3dx9_25/Makefile.in b/dlls/d3dx9_25/Makefile.in -index be4c769..b232290 100644 +index 57ed1da..3461967 100644 --- a/dlls/d3dx9_25/Makefile.in +++ b/dlls/d3dx9_25/Makefile.in @@ -1,6 +1,6 @@ @@ -50,10 +50,10 @@ index be4c769..b232290 100644 -IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 +IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d PARENTSRC = ../d3dx9_36 + DELAYIMPORTS = windowscodecs - C_SRCS = \ diff --git a/dlls/d3dx9_26/Makefile.in b/dlls/d3dx9_26/Makefile.in -index c5e9e85..525009d 100644 +index 04d9ba4..291daf3 100644 --- a/dlls/d3dx9_26/Makefile.in +++ b/dlls/d3dx9_26/Makefile.in @@ -1,6 +1,6 @@ @@ -62,10 +62,10 @@ index c5e9e85..525009d 100644 -IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 +IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d PARENTSRC = ../d3dx9_36 + DELAYIMPORTS = windowscodecs - C_SRCS = \ diff --git a/dlls/d3dx9_27/Makefile.in b/dlls/d3dx9_27/Makefile.in -index ee7f0e2..da98482 100644 +index faec9b2..5a52b60 100644 --- a/dlls/d3dx9_27/Makefile.in +++ b/dlls/d3dx9_27/Makefile.in @@ -1,6 +1,6 @@ @@ -74,10 +74,10 @@ index ee7f0e2..da98482 100644 -IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 +IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d PARENTSRC = ../d3dx9_36 + DELAYIMPORTS = windowscodecs - C_SRCS = \ diff --git a/dlls/d3dx9_28/Makefile.in b/dlls/d3dx9_28/Makefile.in -index 0944200..d50e035 100644 +index b8aad93..8eecbc0 100644 --- a/dlls/d3dx9_28/Makefile.in +++ b/dlls/d3dx9_28/Makefile.in @@ -1,6 +1,6 @@ @@ -86,10 +86,10 @@ index 0944200..d50e035 100644 -IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 +IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d PARENTSRC = ../d3dx9_36 + DELAYIMPORTS = windowscodecs - C_SRCS = \ diff --git a/dlls/d3dx9_29/Makefile.in b/dlls/d3dx9_29/Makefile.in -index 88cb110..cfc1a15 100644 +index 29c76c4..0299369 100644 --- a/dlls/d3dx9_29/Makefile.in +++ b/dlls/d3dx9_29/Makefile.in @@ -1,6 +1,6 @@ @@ -98,10 +98,10 @@ index 88cb110..cfc1a15 100644 -IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 +IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d PARENTSRC = ../d3dx9_36 + DELAYIMPORTS = windowscodecs - C_SRCS = \ diff --git a/dlls/d3dx9_30/Makefile.in b/dlls/d3dx9_30/Makefile.in -index 6ab2ff2..726c92e 100644 +index 810edc9..7bdc074 100644 --- a/dlls/d3dx9_30/Makefile.in +++ b/dlls/d3dx9_30/Makefile.in @@ -1,6 +1,6 @@ @@ -110,10 +110,10 @@ index 6ab2ff2..726c92e 100644 -IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 +IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d PARENTSRC = ../d3dx9_36 + DELAYIMPORTS = windowscodecs - C_SRCS = \ diff --git a/dlls/d3dx9_31/Makefile.in b/dlls/d3dx9_31/Makefile.in -index 3d44da1..2014301 100644 +index fce2b53..0ef9c91 100644 --- a/dlls/d3dx9_31/Makefile.in +++ b/dlls/d3dx9_31/Makefile.in @@ -1,6 +1,6 @@ @@ -122,10 +122,10 @@ index 3d44da1..2014301 100644 -IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 +IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d PARENTSRC = ../d3dx9_36 + DELAYIMPORTS = windowscodecs - C_SRCS = \ diff --git a/dlls/d3dx9_32/Makefile.in b/dlls/d3dx9_32/Makefile.in -index 37cc279..442258d 100644 +index ad53b26..25e2a1c 100644 --- a/dlls/d3dx9_32/Makefile.in +++ b/dlls/d3dx9_32/Makefile.in @@ -1,6 +1,6 @@ @@ -134,10 +134,10 @@ index 37cc279..442258d 100644 -IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 +IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d PARENTSRC = ../d3dx9_36 + DELAYIMPORTS = windowscodecs - C_SRCS = \ diff --git a/dlls/d3dx9_33/Makefile.in b/dlls/d3dx9_33/Makefile.in -index 5b03ec1..cc98ed2 100644 +index 318ddce..a6ec6db 100644 --- a/dlls/d3dx9_33/Makefile.in +++ b/dlls/d3dx9_33/Makefile.in @@ -1,6 +1,6 @@ @@ -146,10 +146,10 @@ index 5b03ec1..cc98ed2 100644 -IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 +IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d PARENTSRC = ../d3dx9_36 + DELAYIMPORTS = windowscodecs - C_SRCS = \ diff --git a/dlls/d3dx9_34/Makefile.in b/dlls/d3dx9_34/Makefile.in -index b7f9c46..4862fe9 100644 +index 451a371..ff79b58 100644 --- a/dlls/d3dx9_34/Makefile.in +++ b/dlls/d3dx9_34/Makefile.in @@ -1,6 +1,6 @@ @@ -158,10 +158,10 @@ index b7f9c46..4862fe9 100644 -IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 +IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d PARENTSRC = ../d3dx9_36 + DELAYIMPORTS = windowscodecs - C_SRCS = \ diff --git a/dlls/d3dx9_35/Makefile.in b/dlls/d3dx9_35/Makefile.in -index 9c196ea..3f529c9 100644 +index 978d0b0..aa8ea65 100644 --- a/dlls/d3dx9_35/Makefile.in +++ b/dlls/d3dx9_35/Makefile.in @@ -1,6 +1,6 @@ @@ -170,10 +170,10 @@ index 9c196ea..3f529c9 100644 -IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 +IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d PARENTSRC = ../d3dx9_36 + DELAYIMPORTS = windowscodecs - C_SRCS = \ diff --git a/dlls/d3dx9_36/Makefile.in b/dlls/d3dx9_36/Makefile.in -index da8098d..166031e 100644 +index 847edec..1427571 100644 --- a/dlls/d3dx9_36/Makefile.in +++ b/dlls/d3dx9_36/Makefile.in @@ -1,7 +1,7 @@ @@ -182,11 +182,11 @@ index da8098d..166031e 100644 IMPORTLIB = d3dx9 -IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 +IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d + DELAYIMPORTS = windowscodecs C_SRCS = \ - animation.c \ diff --git a/dlls/d3dx9_36/surface.c b/dlls/d3dx9_36/surface.c -index cae80a8..0900d04 100644 +index d236feb..3c308d3 100644 --- a/dlls/d3dx9_36/surface.c +++ b/dlls/d3dx9_36/surface.c @@ -27,6 +27,8 @@ @@ -197,8 +197,8 @@ index cae80a8..0900d04 100644 + WINE_DEFAULT_DEBUG_CHANNEL(d3dx); - -@@ -1784,6 +1786,24 @@ void point_filter_argb_pixels(const BYTE *src, UINT src_row_pitch, UINT src_slic + HRESULT WINAPI WICCreateImagingFactory_Proxy(UINT, IWICImagingFactory**); +@@ -1876,6 +1878,24 @@ void point_filter_argb_pixels(const BYTE *src, UINT src_row_pitch, UINT src_slic } } @@ -223,7 +223,7 @@ index cae80a8..0900d04 100644 /************************************************************ * D3DXLoadSurfaceFromMemory * -@@ -1823,10 +1843,12 @@ HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface, +@@ -1915,10 +1935,12 @@ HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface, { const struct pixel_format_desc *srcformatdesc, *destformatdesc; IDirect3DSurface9 *surface; @@ -237,7 +237,7 @@ index cae80a8..0900d04 100644 TRACE("(%p, %p, %s, %p, %#x, %u, %p, %s, %#x, 0x%08x)\n", dst_surface, dst_palette, wine_dbgstr_rect(dst_rect), src_memory, src_format, -@@ -1907,18 +1929,65 @@ HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface, +@@ -1999,18 +2021,65 @@ HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface, } else /* Stretching or format conversion. */ { @@ -307,7 +307,7 @@ index cae80a8..0900d04 100644 } else /* if ((filter & 0xf) == D3DX_FILTER_POINT) */ { -@@ -1927,12 +1996,29 @@ HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface, +@@ -2019,12 +2088,29 @@ HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface, /* Always apply a point filter until D3DX_FILTER_LINEAR, * D3DX_FILTER_TRIANGLE and D3DX_FILTER_BOX are implemented. */ @@ -341,10 +341,10 @@ index cae80a8..0900d04 100644 /************************************************************ diff --git a/dlls/d3dx9_36/tests/surface.c b/dlls/d3dx9_36/tests/surface.c -index 6cb1ddb..885191e 100644 +index 2c83dc2..95b64a0 100644 --- a/dlls/d3dx9_36/tests/surface.c +++ b/dlls/d3dx9_36/tests/surface.c -@@ -1195,7 +1195,7 @@ static void test_D3DXLoadSurface(IDirect3DDevice9 *device) +@@ -1224,7 +1224,7 @@ static void test_D3DXLoadSurface(IDirect3DDevice9 *device) hr = IDirect3DTexture9_GetSurfaceLevel(tex, 0, &newsurf); ok(SUCCEEDED(hr), "Failed to get the surface, hr %#x.\n", hr); hr = D3DXLoadSurfaceFromSurface(newsurf, NULL, NULL, surf, NULL, NULL, D3DX_FILTER_NONE, 0); @@ -353,7 +353,7 @@ index 6cb1ddb..885191e 100644 check_release((IUnknown*)newsurf, 1); check_release((IUnknown*)tex, 0); } -@@ -1221,7 +1221,7 @@ static void test_D3DXLoadSurface(IDirect3DDevice9 *device) +@@ -1250,7 +1250,7 @@ static void test_D3DXLoadSurface(IDirect3DDevice9 *device) hr = IDirect3DTexture9_GetSurfaceLevel(tex, 0, &newsurf); ok(SUCCEEDED(hr), "Failed to get the surface, hr %#x.\n", hr); hr = D3DXLoadSurfaceFromSurface(newsurf, NULL, NULL, surf, NULL, NULL, D3DX_FILTER_NONE, 0); @@ -362,7 +362,7 @@ index 6cb1ddb..885191e 100644 check_release((IUnknown*)newsurf, 1); check_release((IUnknown*)tex, 0); } -@@ -1234,10 +1234,10 @@ static void test_D3DXLoadSurface(IDirect3DDevice9 *device) +@@ -1263,10 +1263,10 @@ static void test_D3DXLoadSurface(IDirect3DDevice9 *device) hr = IDirect3DTexture9_GetSurfaceLevel(tex, 0, &newsurf); ok(SUCCEEDED(hr), "Failed to get the surface, hr %#x.\n", hr); hr = D3DXLoadSurfaceFromSurface(newsurf, NULL, NULL, surf, NULL, NULL, D3DX_FILTER_NONE, 0); @@ -376,7 +376,7 @@ index 6cb1ddb..885191e 100644 check_release((IUnknown*)newsurf, 1); check_release((IUnknown*)tex, 0); diff --git a/dlls/d3dx9_37/Makefile.in b/dlls/d3dx9_37/Makefile.in -index ab790a4..51382c7 100644 +index a05068c..e5b29d3 100644 --- a/dlls/d3dx9_37/Makefile.in +++ b/dlls/d3dx9_37/Makefile.in @@ -1,6 +1,6 @@ @@ -385,10 +385,10 @@ index ab790a4..51382c7 100644 -IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 +IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d PARENTSRC = ../d3dx9_36 + DELAYIMPORTS = windowscodecs - C_SRCS = \ diff --git a/dlls/d3dx9_38/Makefile.in b/dlls/d3dx9_38/Makefile.in -index 6125c2d..f6257cb 100644 +index b092e62..0a37204 100644 --- a/dlls/d3dx9_38/Makefile.in +++ b/dlls/d3dx9_38/Makefile.in @@ -1,6 +1,6 @@ @@ -397,10 +397,10 @@ index 6125c2d..f6257cb 100644 -IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 +IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d PARENTSRC = ../d3dx9_36 + DELAYIMPORTS = windowscodecs - C_SRCS = \ diff --git a/dlls/d3dx9_39/Makefile.in b/dlls/d3dx9_39/Makefile.in -index d97a787..a68ee9f 100644 +index 4d17120..d0e2cc9 100644 --- a/dlls/d3dx9_39/Makefile.in +++ b/dlls/d3dx9_39/Makefile.in @@ -1,6 +1,6 @@ @@ -409,10 +409,10 @@ index d97a787..a68ee9f 100644 -IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 +IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d PARENTSRC = ../d3dx9_36 + DELAYIMPORTS = windowscodecs - C_SRCS = \ diff --git a/dlls/d3dx9_40/Makefile.in b/dlls/d3dx9_40/Makefile.in -index 36c5a21..7f2cfe1 100644 +index 59f6f3d..0a0d36b 100644 --- a/dlls/d3dx9_40/Makefile.in +++ b/dlls/d3dx9_40/Makefile.in @@ -1,6 +1,6 @@ @@ -421,10 +421,10 @@ index 36c5a21..7f2cfe1 100644 -IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 +IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d PARENTSRC = ../d3dx9_36 + DELAYIMPORTS = windowscodecs - C_SRCS = \ diff --git a/dlls/d3dx9_41/Makefile.in b/dlls/d3dx9_41/Makefile.in -index d4552cf..c5c3ab1 100644 +index f18443a..f477a20 100644 --- a/dlls/d3dx9_41/Makefile.in +++ b/dlls/d3dx9_41/Makefile.in @@ -1,6 +1,6 @@ @@ -433,10 +433,10 @@ index d4552cf..c5c3ab1 100644 -IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 +IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d PARENTSRC = ../d3dx9_36 + DELAYIMPORTS = windowscodecs - C_SRCS = \ diff --git a/dlls/d3dx9_42/Makefile.in b/dlls/d3dx9_42/Makefile.in -index 5806fce..e9a8e89 100644 +index cb142b7..4d93a84 100644 --- a/dlls/d3dx9_42/Makefile.in +++ b/dlls/d3dx9_42/Makefile.in @@ -1,6 +1,6 @@ @@ -445,10 +445,10 @@ index 5806fce..e9a8e89 100644 -IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 +IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d PARENTSRC = ../d3dx9_36 + DELAYIMPORTS = windowscodecs - C_SRCS = \ diff --git a/dlls/d3dx9_43/Makefile.in b/dlls/d3dx9_43/Makefile.in -index 72ba8b4..33185bf 100644 +index 3e6111a..5812d03 100644 --- a/dlls/d3dx9_43/Makefile.in +++ b/dlls/d3dx9_43/Makefile.in @@ -1,6 +1,6 @@ @@ -457,8 +457,8 @@ index 72ba8b4..33185bf 100644 -IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 +IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d PARENTSRC = ../d3dx9_36 + DELAYIMPORTS = windowscodecs - C_SRCS = \ -- 1.9.1 diff --git a/patches/kernel32-CopyFileEx/0001-kernel32-Add-support-for-progress-callback-in-CopyFi.patch b/patches/kernel32-CopyFileEx/0001-kernel32-Add-support-for-progress-callback-in-CopyFi.patch index ff4ba940..e81834f6 100644 --- a/patches/kernel32-CopyFileEx/0001-kernel32-Add-support-for-progress-callback-in-CopyFi.patch +++ b/patches/kernel32-CopyFileEx/0001-kernel32-Add-support-for-progress-callback-in-CopyFi.patch @@ -1,7 +1,7 @@ -From 407cee7ad5b44512ec170665b78bd5243e0345d5 Mon Sep 17 00:00:00 2001 +From 96f59c91f45ca9572e3e9141ee9ad81bbb6ba45d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Thu, 26 Feb 2015 06:41:26 +0100 -Subject: kernel32: Add support for progress callback in CopyFileEx. +Subject: [PATCH] kernel32: Add support for progress callback in CopyFileEx. --- dlls/kernel32/path.c | 66 +++++++++++++++++++++++++++++++++++++++++++--- @@ -9,10 +9,10 @@ Subject: kernel32: Add support for progress callback in CopyFileEx. 2 files changed, 62 insertions(+), 10 deletions(-) diff --git a/dlls/kernel32/path.c b/dlls/kernel32/path.c -index 09b8b7f..18b28f6 100644 +index 41f0d34..f04b0f4 100644 --- a/dlls/kernel32/path.c +++ b/dlls/kernel32/path.c -@@ -1130,6 +1130,9 @@ BOOL WINAPI CopyFileExW(LPCWSTR source, LPCWSTR dest, +@@ -1177,6 +1177,9 @@ BOOL WINAPI CopyFileExW(LPCWSTR source, LPCWSTR dest, DWORD count; BOOL ret = FALSE; char *buffer; @@ -22,7 +22,7 @@ index 09b8b7f..18b28f6 100644 if (!source || !dest) { -@@ -1144,7 +1147,13 @@ BOOL WINAPI CopyFileExW(LPCWSTR source, LPCWSTR dest, +@@ -1191,7 +1194,13 @@ BOOL WINAPI CopyFileExW(LPCWSTR source, LPCWSTR dest, TRACE("%s -> %s, %x\n", debugstr_w(source), debugstr_w(dest), flags); @@ -37,7 +37,7 @@ index 09b8b7f..18b28f6 100644 FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL, OPEN_EXISTING, 0, 0)) == INVALID_HANDLE_VALUE) { -@@ -1180,9 +1189,13 @@ BOOL WINAPI CopyFileExW(LPCWSTR source, LPCWSTR dest, +@@ -1227,9 +1236,13 @@ BOOL WINAPI CopyFileExW(LPCWSTR source, LPCWSTR dest, } } @@ -54,7 +54,7 @@ index 09b8b7f..18b28f6 100644 { WARN("Unable to open dest %s\n", debugstr_w(dest)); HeapFree( GetProcessHeap(), 0, buffer ); -@@ -1190,6 +1203,30 @@ BOOL WINAPI CopyFileExW(LPCWSTR source, LPCWSTR dest, +@@ -1237,6 +1250,30 @@ BOOL WINAPI CopyFileExW(LPCWSTR source, LPCWSTR dest, return FALSE; } @@ -85,7 +85,7 @@ index 09b8b7f..18b28f6 100644 while (ReadFile( h1, buffer, buffer_size, &count, NULL ) && count) { char *p = buffer; -@@ -1199,6 +1236,27 @@ BOOL WINAPI CopyFileExW(LPCWSTR source, LPCWSTR dest, +@@ -1246,6 +1283,27 @@ BOOL WINAPI CopyFileExW(LPCWSTR source, LPCWSTR dest, if (!WriteFile( h2, p, count, &res, NULL ) || !res) goto done; p += res; count -= res; @@ -114,10 +114,10 @@ index 09b8b7f..18b28f6 100644 } ret = TRUE; diff --git a/dlls/kernel32/tests/file.c b/dlls/kernel32/tests/file.c -index 53d225c..01d342d 100644 +index b47b2b9..68396c0 100644 --- a/dlls/kernel32/tests/file.c +++ b/dlls/kernel32/tests/file.c -@@ -1137,23 +1137,17 @@ static void test_CopyFileEx(void) +@@ -1163,23 +1163,17 @@ static void test_CopyFileEx(void) ok(hfile != INVALID_HANDLE_VALUE, "failed to open destination file, error %d\n", GetLastError()); SetLastError(0xdeadbeef); retok = CopyFileExA(source, dest, copy_progress_cb, hfile, NULL, 0); @@ -140,7 +140,7 @@ index 53d225c..01d342d 100644 - todo_wine ok(GetFileAttributesA(dest) == INVALID_FILE_ATTRIBUTES, "file was not deleted\n"); - ret = DeleteFileA(source); + retok = CopyFileExA(source, NULL, copy_progress_cb, hfile, NULL, 0); -- -2.4.2 +1.9.1 diff --git a/patches/ntdll-HashLinks/0001-ntdll-Implement-HashLinks-field-in-LDR-module-data.patch b/patches/ntdll-HashLinks/0001-ntdll-Implement-HashLinks-field-in-LDR-module-data.patch index eab1e2ab..76f09ba5 100644 --- a/patches/ntdll-HashLinks/0001-ntdll-Implement-HashLinks-field-in-LDR-module-data.patch +++ b/patches/ntdll-HashLinks/0001-ntdll-Implement-HashLinks-field-in-LDR-module-data.patch @@ -1,27 +1,27 @@ -From 62a2aa4ae486d307eb3616bf715924983c6d3458 Mon Sep 17 00:00:00 2001 +From 4cf5c404e02fb82de6ce8568a5b6ac6ccfcbe23e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Mon, 3 Apr 2017 05:30:27 +0200 Subject: [PATCH] ntdll: Implement HashLinks field in LDR module data. --- - dlls/kernel32/tests/loader.c | 75 ++++++++++++++++++++++++++++++++++++++++++++ - dlls/ntdll/loader.c | 65 ++++++++++++++++++++++++++++++++++++++ + dlls/kernel32/tests/loader.c | 76 ++++++++++++++++++++++++++++++++++++++++++++ + dlls/ntdll/loader.c | 65 +++++++++++++++++++++++++++++++++++++ include/winternl.h | 6 ++-- - 3 files changed, 144 insertions(+), 2 deletions(-) + 3 files changed, 145 insertions(+), 2 deletions(-) diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c -index e7a1a43..7528098 100644 +index 165c05e..d26b787 100644 --- a/dlls/kernel32/tests/loader.c +++ b/dlls/kernel32/tests/loader.c -@@ -29,6 +29,7 @@ - #include "windef.h" +@@ -30,6 +30,7 @@ #include "winbase.h" #include "winternl.h" + #include "winnls.h" +#include "winuser.h" #include "wine/test.h" #include "delayloadhandler.h" -@@ -3600,6 +3601,79 @@ static void test_InMemoryOrderModuleList(void) +@@ -3806,6 +3807,79 @@ static void test_InMemoryOrderModuleList(void) ok(entry2 == mark2, "expected entry2 == mark2, got %p and %p\n", entry2, mark2); } @@ -101,14 +101,17 @@ index e7a1a43..7528098 100644 START_TEST(loader) { int argc; -@@ -3664,4 +3738,5 @@ START_TEST(loader) +@@ -3872,6 +3946,8 @@ START_TEST(loader) test_import_resolution(); test_ExitProcess(); test_InMemoryOrderModuleList(); + test_HashLinks(); ++ + /* loader test must be last, it can corrupt the internal loader state on Windows */ + test_Loader(); } diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c -index da83b27..9493770 100644 +index a47dfe0..a8599bd 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c @@ -93,6 +93,9 @@ static const char * const reason_names[] = @@ -195,7 +198,7 @@ index da83b27..9493770 100644 /* FIXME: free the modref */ builtin_load_info->status = STATUS_DLL_NOT_FOUND; return; -@@ -2028,6 +2083,7 @@ static NTSTATUS load_native_dll( LPCWSTR load_path, LPCWSTR name, HANDLE file, +@@ -2081,6 +2136,7 @@ static NTSTATUS load_native_dll( LPCWSTR load_path, LPCWSTR name, HANDLE file, /* the module has only be inserted in the load & memory order lists */ RemoveEntryList(&wm->ldr.InLoadOrderModuleList); RemoveEntryList(&wm->ldr.InMemoryOrderModuleList); @@ -203,7 +206,7 @@ index da83b27..9493770 100644 /* FIXME: there are several more dangling references * left. Including dlls loaded by this dll before the -@@ -3030,6 +3086,7 @@ static void free_modref( WINE_MODREF *wm ) +@@ -3097,6 +3153,7 @@ static void free_modref( WINE_MODREF *wm ) { RemoveEntryList(&wm->ldr.InLoadOrderModuleList); RemoveEntryList(&wm->ldr.InMemoryOrderModuleList); @@ -211,7 +214,7 @@ index da83b27..9493770 100644 if (wm->ldr.InInitializationOrderModuleList.Flink) RemoveEntryList(&wm->ldr.InInitializationOrderModuleList); -@@ -3357,6 +3414,9 @@ void WINAPI LdrInitializeThunk( void *kernel_start, ULONG_PTR unknown2, +@@ -3424,6 +3481,9 @@ void WINAPI LdrInitializeThunk( void *kernel_start, ULONG_PTR unknown2, RemoveEntryList( &wm->ldr.InMemoryOrderModuleList ); InsertHeadList( &peb->LdrData->InMemoryOrderModuleList, &wm->ldr.InMemoryOrderModuleList ); @@ -221,7 +224,7 @@ index da83b27..9493770 100644 if ((status = virtual_alloc_thread_stack( NtCurrentTeb(), 0, 0, NULL )) != STATUS_SUCCESS) { ERR( "Main exe initialization for %s failed, status %x\n", -@@ -3505,6 +3565,7 @@ void __wine_process_init(void) +@@ -3570,6 +3630,7 @@ void __wine_process_init(void) NTSTATUS status; ANSI_STRING func_name; void (* DECLSPEC_NORETURN CDECL init_func)(void); @@ -229,7 +232,7 @@ index da83b27..9493770 100644 thread_init(); -@@ -3514,6 +3575,10 @@ void __wine_process_init(void) +@@ -3579,6 +3640,10 @@ void __wine_process_init(void) load_global_options(); @@ -241,10 +244,10 @@ index da83b27..9493770 100644 wine_dll_set_callback( load_builtin_callback ); diff --git a/include/winternl.h b/include/winternl.h -index c07cdec..4f04a28 100644 +index 9dfc440..ee89bc3 100644 --- a/include/winternl.h +++ b/include/winternl.h -@@ -2192,8 +2192,7 @@ typedef struct _LDR_MODULE +@@ -2198,8 +2198,7 @@ typedef struct _LDR_MODULE ULONG Flags; SHORT LoadCount; SHORT TlsIndex; @@ -254,7 +257,7 @@ index c07cdec..4f04a28 100644 ULONG TimeDateStamp; HANDLE ActivationContext; PVOID PatchInformation; -@@ -2203,6 +2202,9 @@ typedef struct _LDR_MODULE +@@ -2209,6 +2208,9 @@ typedef struct _LDR_MODULE PVOID ContextInformation; ULONG_PTR OriginalBase; LARGE_INTEGER LoadTime; @@ -265,5 +268,5 @@ index c07cdec..4f04a28 100644 typedef struct _LDR_DLL_LOADED_NOTIFICATION_DATA -- -2.7.4 +1.9.1 diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 3518eb60..ad6c83ba 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "699eb8cdba8fe236f038550e2bd68a4cd2cab055" + echo "ca29ac4650f7f9a96cfaa75a7919ef007306cbbb" } # Show version information diff --git a/patches/winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch b/patches/winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch index 02fe9ebe..faeef5ee 100644 --- a/patches/winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch +++ b/patches/winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch @@ -1,17 +1,17 @@ -From b630ee635fa0f7f5223335b619a2b86f7141be0f Mon Sep 17 00:00:00 2001 +From 1d5ed7be366c36c9ca16a8783e4fb7dfc7e9bc73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Thu, 25 May 2017 07:02:46 +0200 -Subject: kernel32/tests: Add basic tests for fake dlls. +Subject: [PATCH] kernel32/tests: Add basic tests for fake dlls. --- dlls/kernel32/tests/loader.c | 91 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c -index 484b602..5387ed5 100644 +index 1e3b00e..cb5b8ed 100644 --- a/dlls/kernel32/tests/loader.c +++ b/dlls/kernel32/tests/loader.c -@@ -1340,6 +1340,96 @@ static void test_filenames(void) +@@ -1564,6 +1564,96 @@ static void test_filenames(void) DeleteFileA( long_path ); } @@ -108,14 +108,14 @@ index 484b602..5387ed5 100644 /* Verify linking style of import descriptors */ static void test_ImportDescriptors(void) { -@@ -3576,6 +3666,7 @@ START_TEST(loader) +@@ -3978,6 +4068,7 @@ START_TEST(loader) + return; } - test_Loader(); + test_FakeDLL(); test_filenames(); test_ResolveDelayLoadedAPI(); test_ImportDescriptors(); -- -2.7.4 +1.9.1