[PATCH] msvcp100: Add Concurrency::_GetCombinableSize stub.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=41419 Signed-off-by: Gijs Vermeulen <gijsvrm(a)gmail.com> --- dlls/concrt140/concrt140.spec | 4 ++-- dlls/msvcp100/msvcp100.spec | 4 ++-- dlls/msvcp110/msvcp110.spec | 4 ++-- dlls/msvcp120/msvcp120.spec | 4 ++-- dlls/msvcp120_app/msvcp120_app.spec | 4 ++-- dlls/msvcp90/misc.c | 8 ++++++++ 6 files changed, 18 insertions(+), 10 deletions(-) diff --git a/dlls/concrt140/concrt140.spec b/dlls/concrt140/concrt140.spec index 7fe53b5d73..2c74669f47 100644 --- a/dlls/concrt140/concrt140.spec +++ b/dlls/concrt140/concrt140.spec @@ -336,8 +336,8 @@ @ thiscall -arch=i386 ?_DoYield@?$_SpinWait@$0A@@details(a)Concurrency@@IAEXXZ(ptr) msvcr120.?_DoYield@?$_SpinWait@$0A@@details(a)Concurrency@@IAEXXZ @ cdecl -arch=win64 ?_DoYield@?$_SpinWait@$0A@@details(a)Concurrency@@IEAAXXZ(ptr) msvcr120.?_DoYield@?$_SpinWait@$0A@@details(a)Concurrency@@IEAAXXZ @ cdecl ?_Get(a)_CurrentScheduler@details(a)Concurrency@@SA?AV_Scheduler(a)23@XZ(ptr) msvcr120.?_Get(a)_CurrentScheduler@details(a)Concurrency@@SA?AV_Scheduler(a)23@XZ -@ stub -arch=win32 ?_GetCombinableSize(a)details@Concurrency@@YAIXZ -@ stub -arch=win64 ?_GetCombinableSize(a)details@Concurrency@@YA_KXZ +@ cdecl -arch=win32 ?_GetCombinableSize(a)details@Concurrency@@YAIXZ() msvcp120.?_GetCombinableSize(a)details@Concurrency@@YAIXZ +@ cdecl -arch=win64 ?_GetCombinableSize(a)details@Concurrency@@YA_KXZ() msvcp120.?_GetCombinableSize(a)details@Concurrency@@YA_KXZ @ stub -arch=win32 ?_GetConcRTTraceInfo(a)Concurrency@@YAPBU_CONCRT_TRACE_INFO(a)details@1(a)XZ @ stub -arch=win64 ?_GetConcRTTraceInfo(a)Concurrency@@YAPEBU_CONCRT_TRACE_INFO(a)details@1(a)XZ @ cdecl ?_GetConcurrency(a)details@Concurrency@@YAIXZ() msvcr120.?_GetConcurrency(a)details@Concurrency@@YAIXZ diff --git a/dlls/msvcp100/msvcp100.spec b/dlls/msvcp100/msvcp100.spec index adfc7d794b..74e1ccf64b 100644 --- a/dlls/msvcp100/msvcp100.spec +++ b/dlls/msvcp100/msvcp100.spec @@ -821,8 +821,8 @@ @ cdecl -arch=win64 ?_Fput@?$num_put(a)GV?$ostreambuf_iterator(a)GU?$char_traits(a)G@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator(a)GU?$char_traits(a)G@std@@@2(a)V32@AEAVios_base(a)2@GPEBD_K333(a)Z(ptr ptr ptr ptr long str long long long long) num_put_short__Fput @ cdecl -arch=win32 ?_Fput@?$num_put(a)_WV?$ostreambuf_iterator(a)_WU?$char_traits(a)_W@std@@@std@@@std@@ABA?AV?$ostreambuf_iterator(a)_WU?$char_traits(a)_W@std@@@2(a)V32@AAVios_base(a)2@_WPBDIIII(a)Z(ptr ptr long ptr ptr long str long long long long) num_put_wchar__Fput @ cdecl -arch=win64 ?_Fput@?$num_put(a)_WV?$ostreambuf_iterator(a)_WU?$char_traits(a)_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator(a)_WU?$char_traits(a)_W@std@@@2(a)V32@AEAVios_base(a)2@_WPEBD_K444(a)Z(ptr ptr ptr ptr long str long long long long) num_put_wchar__Fput -@ stub -arch=win32 ?_GetCombinableSize(a)details@Concurrency@@YAIXZ -@ stub -arch=win64 ?_GetCombinableSize(a)details@Concurrency@@YA_KXZ +@ cdecl -arch=win32 ?_GetCombinableSize(a)details@Concurrency@@YAIXZ() _GetCombinableSize +@ cdecl -arch=win64 ?_GetCombinableSize(a)details@Concurrency@@YA_KXZ() _GetCombinableSize @ stub ?_GetCurrentThreadId(a)details@Concurrency@@YAKXZ @ cdecl -arch=win32 ?_Getcat@?$codecvt(a)DDH@std@@SAIPAPBVfacet(a)locale@2(a)PBV42@@Z(ptr ptr) codecvt_char__Getcat @ cdecl -arch=win64 ?_Getcat@?$codecvt(a)DDH@std@@SA_KPEAPEBVfacet(a)locale@2(a)PEBV42@@Z(ptr ptr) codecvt_char__Getcat diff --git a/dlls/msvcp110/msvcp110.spec b/dlls/msvcp110/msvcp110.spec index fbffd1422b..61668fb8d1 100644 --- a/dlls/msvcp110/msvcp110.spec +++ b/dlls/msvcp110/msvcp110.spec @@ -1227,8 +1227,8 @@ @ cdecl -arch=win64 ?_Fput@?$num_put(a)_WV?$ostreambuf_iterator(a)_WU?$char_traits(a)_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator(a)_WU?$char_traits(a)_W@std@@@2(a)V32@AEAVios_base(a)2@_WPEBD_K444(a)Z(ptr ptr ptr ptr long str long long long long) num_put_wchar__Fput @ stub -arch=win32 ?_Future_error_map(a)std@@YAPBDH(a)Z @ stub -arch=win64 ?_Future_error_map(a)std@@YAPEBDH(a)Z -@ stub -arch=win32 ?_GetCombinableSize(a)details@Concurrency@@YAIXZ -@ stub -arch=win64 ?_GetCombinableSize(a)details@Concurrency@@YA_KXZ +@ cdecl -arch=win32 ?_GetCombinableSize(a)details@Concurrency@@YAIXZ() _GetCombinableSize +@ cdecl -arch=win64 ?_GetCombinableSize(a)details@Concurrency@@YA_KXZ() _GetCombinableSize @ stub ?_GetCurrentThreadId(a)details@Concurrency@@YAKXZ @ stub ?_GetNextAsyncId(a)details@Concurrency@@YAIXZ @ stub -arch=win32 ?_Get_future_error_what(a)std@@YAPBDH(a)Z diff --git a/dlls/msvcp120/msvcp120.spec b/dlls/msvcp120/msvcp120.spec index 3dda358ef9..45d10132fd 100644 --- a/dlls/msvcp120/msvcp120.spec +++ b/dlls/msvcp120/msvcp120.spec @@ -1192,8 +1192,8 @@ @ cdecl -arch=win64 ?_Fput@?$num_put(a)_WV?$ostreambuf_iterator(a)_WU?$char_traits(a)_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator(a)_WU?$char_traits(a)_W@std@@@2(a)V32@AEAVios_base(a)2@_WPEBD_K444(a)Z(ptr ptr ptr ptr long str long long long long) num_put_wchar__Fput @ stub -arch=win32 ?_Future_error_map(a)std@@YAPBDH(a)Z @ stub -arch=win64 ?_Future_error_map(a)std@@YAPEBDH(a)Z -@ stub -arch=win32 ?_GetCombinableSize(a)details@Concurrency@@YAIXZ -@ stub -arch=win64 ?_GetCombinableSize(a)details@Concurrency@@YA_KXZ +@ cdecl -arch=win32 ?_GetCombinableSize(a)details@Concurrency@@YAIXZ() _GetCombinableSize +@ cdecl -arch=win64 ?_GetCombinableSize(a)details@Concurrency@@YA_KXZ() _GetCombinableSize @ cdecl -arch=win32 ?_Getcat@?$codecvt(a)DDH@std@@SAIPAPBVfacet(a)locale@2(a)PBV42@@Z(ptr ptr) codecvt_char__Getcat @ cdecl -arch=win64 ?_Getcat@?$codecvt(a)DDH@std@@SA_KPEAPEBVfacet(a)locale@2(a)PEBV42@@Z(ptr ptr) codecvt_char__Getcat @ cdecl -arch=win32 ?_Getcat@?$codecvt(a)GDH@std@@SAIPAPBVfacet(a)locale@2(a)PBV42@@Z(ptr ptr) codecvt_short__Getcat diff --git a/dlls/msvcp120_app/msvcp120_app.spec b/dlls/msvcp120_app/msvcp120_app.spec index 1db54a7f66..49b80706a2 100644 --- a/dlls/msvcp120_app/msvcp120_app.spec +++ b/dlls/msvcp120_app/msvcp120_app.spec @@ -1192,8 +1192,8 @@ @ cdecl -arch=win64 ?_Fput@?$num_put(a)_WV?$ostreambuf_iterator(a)_WU?$char_traits(a)_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator(a)_WU?$char_traits(a)_W@std@@@2(a)V32@AEAVios_base(a)2@_WPEBD_K444(a)Z(ptr ptr ptr ptr long str long long long long) msvcp120.?_Fput@?$num_put(a)_WV?$ostreambuf_iterator(a)_WU?$char_traits(a)_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator(a)_WU?$char_traits(a)_W@std@@@2(a)V32@AEAVios_base(a)2@_WPEBD_K444(a)Z @ stub -arch=win32 ?_Future_error_map(a)std@@YAPBDH(a)Z @ stub -arch=win64 ?_Future_error_map(a)std@@YAPEBDH(a)Z -@ stub -arch=win32 ?_GetCombinableSize(a)details@Concurrency@@YAIXZ -@ stub -arch=win64 ?_GetCombinableSize(a)details@Concurrency@@YA_KXZ +@ cdecl -arch=win32 ?_GetCombinableSize(a)details@Concurrency@@YAIXZ() msvcp120.?_GetCombinableSize(a)details@Concurrency@@YAIXZ +@ cdecl -arch=win64 ?_GetCombinableSize(a)details@Concurrency@@YA_KXZ() msvcp120.?_GetCombinableSize(a)details@Concurrency@@YA_KXZ @ cdecl -arch=win32 ?_Getcat@?$codecvt(a)DDH@std@@SAIPAPBVfacet(a)locale@2(a)PBV42@@Z(ptr ptr) msvcp120.?_Getcat@?$codecvt(a)DDH@std@@SAIPAPBVfacet(a)locale@2(a)PBV42@@Z @ cdecl -arch=win64 ?_Getcat@?$codecvt(a)DDH@std@@SA_KPEAPEBVfacet(a)locale@2(a)PEBV42@@Z(ptr ptr) msvcp120.?_Getcat@?$codecvt(a)DDH@std@@SA_KPEAPEBVfacet(a)locale@2(a)PEBV42@@Z @ cdecl -arch=win32 ?_Getcat@?$codecvt(a)GDH@std@@SAIPAPBVfacet(a)locale@2(a)PBV42@@Z(ptr ptr) msvcp120.?_Getcat@?$codecvt(a)GDH@std@@SAIPAPBVfacet(a)locale@2(a)PBV42@@Z diff --git a/dlls/msvcp90/misc.c b/dlls/msvcp90/misc.c index b9fd9d0608..3374c917ad 100644 --- a/dlls/msvcp90/misc.c +++ b/dlls/msvcp90/misc.c @@ -2190,6 +2190,14 @@ MSVCP_bool __cdecl is_current_task_group_canceling(void) { return Context_IsCurrentTaskCollectionCanceling(); } + +/* ?_GetCombinableSize(a)details@Concurrency@@YAIXZ */ +/* ?_GetCombinableSize(a)details@Concurrency@@YA_KXZ */ +MSVCP_size_t __cdecl _GetCombinableSize(void) +{ + FIXME("() stub\n"); + return 0; +} #endif #if _MSVCP_VER >= 140 -- 2.13.7
Hi Gijs, On 07/18/18 01:49, Gijs Vermeulen wrote:
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=41419 This patch is causing the application to run into another unimplemented function (??0_ReaderWriterLock(a)details@Concurrency@@QAE(a)XZ). Because of that it's hard to say if such a stub is working. The value returned by _GetCombinableSize is used later in malloc and memset. I bet that the application will crash later trying to access/modify the memory. We should probably at least return 11 in the stub (this is what the function returns if a simple test is written).
I don't think we want to add a stub for function that we don't understand unless it lets the application run. Thanks, Piotr
participants (2)
-
Gijs Vermeulen -
Piotr Caban