diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 1cc0fd95..33a33246 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -298,6 +298,7 @@ patch_enable_all () enable_stdole32_idl_Typelib="$1" enable_stdole32_tlb_SLTG_Typelib="$1" enable_taskmgr_Memory_Usage="$1" + enable_ucrtbase__o_="$1" enable_uianimation_stubs="$1" enable_user32_DM_SETDEFID="$1" enable_user32_Dialog_Paint_Event="$1" @@ -1049,6 +1050,9 @@ patch_enable () taskmgr-Memory_Usage) enable_taskmgr_Memory_Usage="$2" ;; + ucrtbase-_o_) + enable_ucrtbase__o_="$2" + ;; uianimation-stubs) enable_uianimation_stubs="$2" ;; @@ -6191,6 +6195,24 @@ if test "$enable_taskmgr_Memory_Usage" -eq 1; then ) >> "$patchlist" fi +# Patchset ucrtbase-_o_ +# | +# | This patchset fixes the following Wine bugs: +# | * [#44469] Multiple apps using Windows 10 v1507+ UCRT crash due to multiple missing api-ms-win-crt- +# | private-l1-1-0.dll._o__xxx stubs/forwards (Win10 DISM pkgmgr.exe, MS DirectX Shader Compiler) +# | +# | Modified files: +# | * dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec, dlls/ucrtbase/ucrtbase.spec +# | +if test "$enable_ucrtbase__o_" -eq 1; then + patch_apply ucrtbase-_o_/0001-api-ms-win-crt-private-l1-1-0-Update-to-10.0.17134.1.patch + patch_apply ucrtbase-_o_/0002-ucrtbase-Forward-a-few-functions-for-dxil.dll-and-pk.patch + ( + printf '%s\n' '+ { "Fabian Maurer", "api-ms-win-crt-private-l1-1-0: Update to 10.0.17134.12 (WinBuild.160101.0800).", 1 },'; + printf '%s\n' '+ { "Fabian Maurer", "ucrtbase: Forward a few functions for dxil.dll and pkgmgr.exe.", 1 },'; + ) >> "$patchlist" +fi + # Patchset uianimation-stubs # | # | This patchset fixes the following Wine bugs: diff --git a/patches/ucrtbase-_o_/0001-api-ms-win-crt-private-l1-1-0-Update-to-10.0.17134.1.patch b/patches/ucrtbase-_o_/0001-api-ms-win-crt-private-l1-1-0-Update-to-10.0.17134.1.patch new file mode 100644 index 00000000..4040a593 --- /dev/null +++ b/patches/ucrtbase-_o_/0001-api-ms-win-crt-private-l1-1-0-Update-to-10.0.17134.1.patch @@ -0,0 +1,171 @@ +From 9113a99bada07a5482c25c86bcb309e45d584b5b Mon Sep 17 00:00:00 2001 +From: Fabian Maurer +Date: Sun, 2 Dec 2018 15:56:07 +0100 +Subject: [PATCH 1/2] api-ms-win-crt-private-l1-1-0: Update to 10.0.17134.12 + (WinBuild.160101.0800) + +Signed-off-by: Fabian Maurer +Signed-off-by: Zebediah Figura +--- + .../api-ms-win-crt-private-l1-1-0.spec | 31 ++++++++++++++++++- + 1 file changed, 30 insertions(+), 1 deletion(-) + +diff --git a/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec b/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec +index 60a9258cd1..9bddd3d98b 100644 +--- a/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec ++++ b/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec +@@ -15,6 +15,7 @@ + @ stub __BuildCatchObject + @ stub __BuildCatchObjectHelper + @ stdcall -arch=x86_64 __C_specific_handler(ptr long ptr ptr) ucrtbase.__C_specific_handler ++@ stub __C_specific_handler_noexcept + @ cdecl -arch=i386,x86_64,arm,arm64 __CxxDetectRethrow(ptr) ucrtbase.__CxxDetectRethrow + @ cdecl -arch=i386,x86_64,arm,arm64 __CxxExceptionFilter(ptr ptr long ptr) ucrtbase.__CxxExceptionFilter + @ cdecl -arch=i386,x86_64,arm,arm64 -norelay __CxxFrameHandler(ptr ptr ptr ptr) ucrtbase.__CxxFrameHandler +@@ -44,6 +45,7 @@ + @ stub __report_gsfailure + @ cdecl __std_exception_copy(ptr ptr) ucrtbase.__std_exception_copy + @ cdecl __std_exception_destroy(ptr) ucrtbase.__std_exception_destroy ++@ stub __std_terminate + @ cdecl __std_type_info_compare(ptr ptr) ucrtbase.__std_type_info_compare + @ cdecl __std_type_info_destroy_list(ptr) ucrtbase.__std_type_info_destroy_list + @ cdecl __std_type_info_hash(ptr) ucrtbase.__std_type_info_hash +@@ -51,6 +53,7 @@ + @ cdecl __unDName(ptr str long ptr ptr long) ucrtbase.__unDName + @ cdecl __unDNameEx(ptr str long ptr ptr ptr long) ucrtbase.__unDNameEx + @ cdecl __uncaught_exception() ucrtbase.__uncaught_exception ++@ stub __uncaught_exceptions + @ cdecl -arch=i386 -norelay _chkesp() ucrtbase._chkesp + @ cdecl -arch=i386 _except_handler2(ptr ptr ptr ptr) ucrtbase._except_handler2 + @ cdecl -arch=i386 _except_handler3(ptr ptr ptr ptr) ucrtbase._except_handler3 +@@ -87,6 +90,10 @@ + @ stub _o__W_Getmonths + @ stub _o__W_Gettnames + @ stub _o__Wcsftime ++@ stub _o____lc_codepage_func ++@ stub _o____lc_collate_cp_func ++@ stub _o____lc_locale_name_func ++@ stub _o____mb_cur_max_func + @ stub _o___acrt_iob_func + @ stub _o___conio_common_vcprintf + @ stub _o___conio_common_vcprintf_p +@@ -135,6 +142,10 @@ + @ stub _o___p__wpgmptr + @ stub _o___pctype_func + @ stub _o___pwctype_func ++@ stub _o___std_exception_copy ++@ stub _o___std_exception_destroy ++@ stub _o___std_type_info_destroy_list ++@ stub _o___std_type_info_name + @ stub _o___stdio_common_vfprintf + @ stub _o___stdio_common_vfprintf_p + @ stub _o___stdio_common_vfprintf_s +@@ -184,6 +195,7 @@ + @ stub _o__cabs + @ stub _o__callnewh + @ stub _o__calloc_base ++@ stub _o__cexit + @ stub _o__cgets + @ stub _o__cgets_s + @ stub _o__cgetws +@@ -195,11 +207,15 @@ + @ stub _o__chsize_s + @ stub _o__close + @ stub _o__commit ++@ stub _o__configthreadlocale ++@ stub _o__configure_narrow_argv + @ stub _o__configure_wide_argv ++@ stub _o__controlfp_s + @ stub _o__cputs + @ stub _o__cputws + @ stub _o__creat + @ stub _o__create_locale ++@ stub _o__crt_atexit + @ stub _o__ctime32_s + @ stub _o__ctime64_s + @ stub _o__cwait +@@ -231,6 +247,7 @@ + @ stub _o__execve + @ stub _o__execvp + @ stub _o__execvpe ++@ stub _o__exit + @ stub _o__expand + @ stub _o__fclose_nolock + @ stub _o__fcloseall +@@ -301,6 +318,8 @@ + @ stub _o__get_errno + @ stub _o__get_fmode + @ stub _o__get_heap_handle ++@ stub _o__get_initial_narrow_environment ++@ stub _o__get_initial_wide_environment + @ stub _o__get_invalid_parameter_handler + @ stub _o__get_narrow_winmain_command_line + @ stub _o__get_osfhandle +@@ -345,7 +364,9 @@ + @ stub _o__i64toa_s + @ stub _o__i64tow + @ stub _o__i64tow_s ++@ stub _o__initialize_narrow_environment + @ cdecl _o__initialize_onexit_table(ptr) ucrtbase._o__initialize_onexit_table ++@ stub _o__initialize_wide_environment + @ stub _o__invalid_parameter_noinfo + @ stub _o__invalid_parameter_noinfo_noreturn + @ stub _o__isatty +@@ -617,6 +638,7 @@ + @ stub _o__pclose + @ stub _o__pipe + @ stub _o__popen ++@ stub _o__purecall + @ stub _o__putc_nolock + @ stub _o__putch + @ stub _o__putch_nolock +@@ -638,9 +660,13 @@ + @ stub _o__scalbf + @ stub _o__searchenv + @ stub _o__searchenv_s ++@ stub _o__seh_filter_dll ++@ stub _o__seh_filter_exe + @ stub _o__set_abort_behavior ++@ stub _o__set_app_type + @ stub _o__set_doserrno + @ stub _o__set_errno ++@ stub _o__set_fmode + @ stub _o__set_invalid_parameter_handler + @ stub _o__set_new_handler + @ stub _o__set_new_mode +@@ -910,6 +936,7 @@ + @ stub _o_erfcl + @ stub _o_erff + @ stub _o_erfl ++@ stub _o_exit + @ stub _o_exp + @ stub _o_exp2 + @ stub _o_exp2f +@@ -1026,7 +1053,7 @@ + @ stub _o_mbstowcs + @ stub _o_mbstowcs_s + @ stub _o_mbtowc +-@ stub _o_memset ++@ stub _o_memcpy_s + @ stub _o_modf + @ stub _o_modff + @ stub _o_nan +@@ -1061,6 +1088,7 @@ + @ stub _o_remquo + @ stub _o_remquof + @ stub _o_remquol ++@ stub _o_rename + @ stub _o_rewind + @ stub _o_rint + @ stub _o_rintf +@@ -1076,6 +1104,7 @@ + @ stub _o_scalbnl + @ stub _o_set_terminate + @ stub _o_setbuf ++@ stub _o_setlocale + @ stub _o_setvbuf + @ stub _o_sin + @ stub _o_sinf +-- +2.19.2 + diff --git a/patches/ucrtbase-_o_/0002-ucrtbase-Forward-a-few-functions-for-dxil.dll-and-pk.patch b/patches/ucrtbase-_o_/0002-ucrtbase-Forward-a-few-functions-for-dxil.dll-and-pk.patch new file mode 100644 index 00000000..1b0aca99 --- /dev/null +++ b/patches/ucrtbase-_o_/0002-ucrtbase-Forward-a-few-functions-for-dxil.dll-and-pk.patch @@ -0,0 +1,265 @@ +From 0b5e33a0b9640085f0ca12efab9718189f0061bb Mon Sep 17 00:00:00 2001 +From: Fabian Maurer +Date: Sun, 2 Dec 2018 15:56:08 +0100 +Subject: [PATCH 2/2] ucrtbase: Forward a few functions for dxil.dll and + pkgmgr.exe + +Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=44469 +Signed-off-by: Fabian Maurer +Signed-off-by: Zebediah Figura +--- + .../api-ms-win-crt-private-l1-1-0.spec | 38 +++++++++---------- + dlls/ucrtbase/ucrtbase.spec | 38 +++++++++---------- + 2 files changed, 38 insertions(+), 38 deletions(-) + +diff --git a/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec b/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec +index 9bddd3d98b..77be3a5515 100644 +--- a/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec ++++ b/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec +@@ -127,11 +127,11 @@ + @ stub _o___libm_sse2_sinf + @ stub _o___libm_sse2_tan + @ stub _o___libm_sse2_tanf +-@ stub _o___p___argc ++@ cdecl _o___p___argc() ucrtbase._o___p___argc + @ stub _o___p___argv +-@ stub _o___p___wargv ++@ cdecl _o___p___wargv() ucrtbase._o___p___wargv + @ stub _o___p__acmdln +-@ stub _o___p__commode ++@ cdecl _o___p__commode() ucrtbase._o___p__commode + @ stub _o___p__environ + @ stub _o___p__fmode + @ stub _o___p__mbcasemap +@@ -144,7 +144,7 @@ + @ stub _o___pwctype_func + @ stub _o___std_exception_copy + @ stub _o___std_exception_destroy +-@ stub _o___std_type_info_destroy_list ++@ cdecl _o___std_type_info_destroy_list(ptr) ucrtbase._o___std_type_info_destroy_list + @ stub _o___std_type_info_name + @ stub _o___stdio_common_vfprintf + @ stub _o___stdio_common_vfprintf_p +@@ -207,15 +207,15 @@ + @ stub _o__chsize_s + @ stub _o__close + @ stub _o__commit +-@ stub _o__configthreadlocale ++@ cdecl _o__configthreadlocale(long) ucrtbase._o__configthreadlocale + @ stub _o__configure_narrow_argv +-@ stub _o__configure_wide_argv +-@ stub _o__controlfp_s ++@ cdecl _o__configure_wide_argv(long) ucrtbase._o__configure_wide_argv ++@ cdecl _o__controlfp_s(ptr long long) ucrtbase._o__controlfp_s + @ stub _o__cputs + @ stub _o__cputws + @ stub _o__creat + @ stub _o__create_locale +-@ stub _o__crt_atexit ++@ cdecl _o__crt_atexit(ptr) ucrtbase._o__crt_atexit + @ stub _o__ctime32_s + @ stub _o__ctime64_s + @ stub _o__cwait +@@ -319,7 +319,7 @@ + @ stub _o__get_fmode + @ stub _o__get_heap_handle + @ stub _o__get_initial_narrow_environment +-@ stub _o__get_initial_wide_environment ++@ cdecl _o__get_initial_wide_environment() ucrtbase._o__get_initial_wide_environment + @ stub _o__get_invalid_parameter_handler + @ stub _o__get_narrow_winmain_command_line + @ stub _o__get_osfhandle +@@ -366,7 +366,7 @@ + @ stub _o__i64tow_s + @ stub _o__initialize_narrow_environment + @ cdecl _o__initialize_onexit_table(ptr) ucrtbase._o__initialize_onexit_table +-@ stub _o__initialize_wide_environment ++@ cdecl _o__initialize_wide_environment() ucrtbase._o__initialize_wide_environment + @ stub _o__invalid_parameter_noinfo + @ stub _o__invalid_parameter_noinfo_noreturn + @ stub _o__isatty +@@ -660,16 +660,16 @@ + @ stub _o__scalbf + @ stub _o__searchenv + @ stub _o__searchenv_s +-@ stub _o__seh_filter_dll +-@ stub _o__seh_filter_exe ++@ cdecl _o__seh_filter_dll(long ptr) ucrtbase._o__seh_filter_dll ++@ cdecl _o__seh_filter_exe(long ptr) ucrtbase._o__seh_filter_exe + @ stub _o__set_abort_behavior +-@ stub _o__set_app_type ++@ cdecl _o__set_app_type(long) ucrtbase._o__set_app_type + @ stub _o__set_doserrno + @ stub _o__set_errno +-@ stub _o__set_fmode ++@ cdecl _o__set_fmode(long) ucrtbase._o__set_fmode + @ stub _o__set_invalid_parameter_handler + @ stub _o__set_new_handler +-@ stub _o__set_new_mode ++@ cdecl _o__set_new_mode(long) ucrtbase._o__set_new_mode + @ stub _o__set_thread_local_invalid_parameter_handler + @ stub _o__seterrormode + @ stub _o__setmbcp +@@ -919,7 +919,7 @@ + @ stub _o_bsearch + @ stub _o_bsearch_s + @ stub _o_btowc +-@ stub _o_calloc ++@ cdecl _o_calloc(long long) ucrtbase._o_calloc + @ stub _o_cbrt + @ stub _o_cbrtf + @ stub _o_ceil +@@ -936,7 +936,7 @@ + @ stub _o_erfcl + @ stub _o_erff + @ stub _o_erfl +-@ stub _o_exit ++@ cdecl _o_exit(long) ucrtbase._o_exit + @ stub _o_exp + @ stub _o_exp2 + @ stub _o_exp2f +@@ -967,7 +967,7 @@ + @ stub _o_fputws + @ stub _o_fread + @ stub _o_fread_s +-@ stub _o_free ++@ cdecl _o_free(ptr) ucrtbase._o_free + @ stub _o_freopen + @ stub _o_freopen_s + @ stub _o_frexp +@@ -1142,7 +1142,7 @@ + @ stub _o_tmpfile_s + @ stub _o_tmpnam_s + @ stub _o_tolower +-@ stub _o_toupper ++@ cdecl _o_toupper(long) ucrtbase._o_toupper + @ stub _o_towlower + @ stub _o_towupper + @ stub _o_ungetc +diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec +index 470979c24f..d3f72e891c 100644 +--- a/dlls/ucrtbase/ucrtbase.spec ++++ b/dlls/ucrtbase/ucrtbase.spec +@@ -791,11 +791,11 @@ + @ stub _o___libm_sse2_sinf + @ stub _o___libm_sse2_tan + @ stub _o___libm_sse2_tanf +-@ stub _o___p___argc ++@ cdecl _o___p___argc() MSVCRT___p___argc + @ stub _o___p___argv +-@ stub _o___p___wargv ++@ cdecl _o___p___wargv() MSVCRT___p___wargv + @ stub _o___p__acmdln +-@ stub _o___p__commode ++@ cdecl _o___p__commode() __p__commode + @ stub _o___p__environ + @ stub _o___p__fmode + @ stub _o___p__mbcasemap +@@ -808,7 +808,7 @@ + @ stub _o___pwctype_func + @ stub _o___std_exception_copy + @ stub _o___std_exception_destroy +-@ stub _o___std_type_info_destroy_list ++@ cdecl _o___std_type_info_destroy_list(ptr) MSVCRT_type_info_destroy_list + @ stub _o___std_type_info_name + @ stub _o___stdio_common_vfprintf + @ stub _o___stdio_common_vfprintf_p +@@ -871,15 +871,15 @@ + @ stub _o__chsize_s + @ stub _o__close + @ stub _o__commit +-@ stub _o__configthreadlocale ++@ cdecl _o__configthreadlocale(long) _configthreadlocale + @ stub _o__configure_narrow_argv +-@ stub _o__configure_wide_argv +-@ stub _o__controlfp_s ++@ cdecl _o__configure_wide_argv(long) _configure_wide_argv ++@ cdecl _o__controlfp_s(ptr long long) _controlfp_s + @ stub _o__cputs + @ stub _o__cputws + @ stub _o__creat + @ stub _o__create_locale +-@ stub _o__crt_atexit ++@ cdecl _o__crt_atexit(ptr) MSVCRT__crt_atexit + @ stub _o__ctime32_s + @ stub _o__ctime64_s + @ stub _o__cwait +@@ -983,7 +983,7 @@ + @ stub _o__get_fmode + @ stub _o__get_heap_handle + @ stub _o__get_initial_narrow_environment +-@ stub _o__get_initial_wide_environment ++@ cdecl _o__get_initial_wide_environment() _get_initial_wide_environment + @ stub _o__get_invalid_parameter_handler + @ stub _o__get_narrow_winmain_command_line + @ stub _o__get_osfhandle +@@ -1030,7 +1030,7 @@ + @ stub _o__i64tow_s + @ stub _o__initialize_narrow_environment + @ cdecl _o__initialize_onexit_table(ptr) MSVCRT__initialize_onexit_table +-@ stub _o__initialize_wide_environment ++@ cdecl _o__initialize_wide_environment() _initialize_wide_environment + @ stub _o__invalid_parameter_noinfo + @ stub _o__invalid_parameter_noinfo_noreturn + @ stub _o__isatty +@@ -1324,16 +1324,16 @@ + @ stub _o__scalbf + @ stub _o__searchenv + @ stub _o__searchenv_s +-@ stub _o__seh_filter_dll +-@ stub _o__seh_filter_exe ++@ cdecl _o__seh_filter_dll(long ptr) __CppXcptFilter ++@ cdecl _o__seh_filter_exe(long ptr) _XcptFilter + @ stub _o__set_abort_behavior +-@ stub _o__set_app_type ++@ cdecl _o__set_app_type(long) MSVCRT___set_app_type + @ stub _o__set_doserrno + @ stub _o__set_errno +-@ stub _o__set_fmode ++@ cdecl _o__set_fmode(long) MSVCRT__set_fmode + @ stub _o__set_invalid_parameter_handler + @ stub _o__set_new_handler +-@ stub _o__set_new_mode ++@ cdecl _o__set_new_mode(long) MSVCRT__set_new_mode + @ stub _o__set_thread_local_invalid_parameter_handler + @ stub _o__seterrormode + @ stub _o__setmbcp +@@ -1583,7 +1583,7 @@ + @ stub _o_bsearch + @ stub _o_bsearch_s + @ stub _o_btowc +-@ stub _o_calloc ++@ cdecl _o_calloc(long long) MSVCRT_calloc + @ stub _o_cbrt + @ stub _o_cbrtf + @ stub _o_ceil +@@ -1600,7 +1600,7 @@ + @ stub _o_erfcl + @ stub _o_erff + @ stub _o_erfl +-@ stub _o_exit ++@ cdecl _o_exit(long) MSVCRT_exit + @ stub _o_exp + @ stub _o_exp2 + @ stub _o_exp2f +@@ -1631,7 +1631,7 @@ + @ stub _o_fputws + @ stub _o_fread + @ stub _o_fread_s +-@ stub _o_free ++@ cdecl _o_free(ptr) MSVCRT_free + @ stub _o_freopen + @ stub _o_freopen_s + @ stub _o_frexp +@@ -1807,7 +1807,7 @@ + @ stub _o_tmpfile_s + @ stub _o_tmpnam_s + @ stub _o_tolower +-@ stub _o_toupper ++@ cdecl _o_toupper(long) MSVCRT__toupper + @ stub _o_towlower + @ stub _o_towupper + @ stub _o_ungetc +-- +2.19.2 + diff --git a/patches/ucrtbase-_o_/definition b/patches/ucrtbase-_o_/definition new file mode 100644 index 00000000..10daa36f --- /dev/null +++ b/patches/ucrtbase-_o_/definition @@ -0,0 +1 @@ +Fixes: [44469] Multiple apps using Windows 10 v1507+ UCRT crash due to multiple missing api-ms-win-crt-private-l1-1-0.dll._o__xxx stubs/forwards (Win10 DISM pkgmgr.exe, MS DirectX Shader Compiler)