Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=41419 Signed-off-by: Gijs Vermeulen gijsvrm@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@Concurrency@@IAEXXZ(ptr) msvcr120.?_DoYield@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ @ cdecl -arch=win64 ?_DoYield@?$_SpinWait@$0A@@details@Concurrency@@IEAAXXZ(ptr) msvcr120.?_DoYield@?$_SpinWait@$0A@@details@Concurrency@@IEAAXXZ @ cdecl ?_Get@_CurrentScheduler@details@Concurrency@@SA?AV_Scheduler@23@XZ(ptr) msvcr120.?_Get@_CurrentScheduler@details@Concurrency@@SA?AV_Scheduler@23@XZ -@ stub -arch=win32 ?_GetCombinableSize@details@Concurrency@@YAIXZ -@ stub -arch=win64 ?_GetCombinableSize@details@Concurrency@@YA_KXZ +@ cdecl -arch=win32 ?_GetCombinableSize@details@Concurrency@@YAIXZ() msvcp120.?_GetCombinableSize@details@Concurrency@@YAIXZ +@ cdecl -arch=win64 ?_GetCombinableSize@details@Concurrency@@YA_KXZ() msvcp120.?_GetCombinableSize@details@Concurrency@@YA_KXZ @ stub -arch=win32 ?_GetConcRTTraceInfo@Concurrency@@YAPBU_CONCRT_TRACE_INFO@details@1@XZ @ stub -arch=win64 ?_GetConcRTTraceInfo@Concurrency@@YAPEBU_CONCRT_TRACE_INFO@details@1@XZ @ cdecl ?_GetConcurrency@details@Concurrency@@YAIXZ() msvcr120.?_GetConcurrency@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@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEBD_K333@Z(ptr ptr ptr ptr long str long long long long) num_put_short__Fput @ cdecl -arch=win32 ?_Fput@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@ABA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AAVios_base@2@_WPBDIIII@Z(ptr ptr long ptr ptr long str long long long long) num_put_wchar__Fput @ cdecl -arch=win64 ?_Fput@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBD_K444@Z(ptr ptr ptr ptr long str long long long long) num_put_wchar__Fput -@ stub -arch=win32 ?_GetCombinableSize@details@Concurrency@@YAIXZ -@ stub -arch=win64 ?_GetCombinableSize@details@Concurrency@@YA_KXZ +@ cdecl -arch=win32 ?_GetCombinableSize@details@Concurrency@@YAIXZ() _GetCombinableSize +@ cdecl -arch=win64 ?_GetCombinableSize@details@Concurrency@@YA_KXZ() _GetCombinableSize @ stub ?_GetCurrentThreadId@details@Concurrency@@YAKXZ @ cdecl -arch=win32 ?_Getcat@?$codecvt@DDH@std@@SAIPAPBVfacet@locale@2@PBV42@@Z(ptr ptr) codecvt_char__Getcat @ cdecl -arch=win64 ?_Getcat@?$codecvt@DDH@std@@SA_KPEAPEBVfacet@locale@2@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@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBD_K444@Z(ptr ptr ptr ptr long str long long long long) num_put_wchar__Fput @ stub -arch=win32 ?_Future_error_map@std@@YAPBDH@Z @ stub -arch=win64 ?_Future_error_map@std@@YAPEBDH@Z -@ stub -arch=win32 ?_GetCombinableSize@details@Concurrency@@YAIXZ -@ stub -arch=win64 ?_GetCombinableSize@details@Concurrency@@YA_KXZ +@ cdecl -arch=win32 ?_GetCombinableSize@details@Concurrency@@YAIXZ() _GetCombinableSize +@ cdecl -arch=win64 ?_GetCombinableSize@details@Concurrency@@YA_KXZ() _GetCombinableSize @ stub ?_GetCurrentThreadId@details@Concurrency@@YAKXZ @ stub ?_GetNextAsyncId@details@Concurrency@@YAIXZ @ stub -arch=win32 ?_Get_future_error_what@std@@YAPBDH@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@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBD_K444@Z(ptr ptr ptr ptr long str long long long long) num_put_wchar__Fput @ stub -arch=win32 ?_Future_error_map@std@@YAPBDH@Z @ stub -arch=win64 ?_Future_error_map@std@@YAPEBDH@Z -@ stub -arch=win32 ?_GetCombinableSize@details@Concurrency@@YAIXZ -@ stub -arch=win64 ?_GetCombinableSize@details@Concurrency@@YA_KXZ +@ cdecl -arch=win32 ?_GetCombinableSize@details@Concurrency@@YAIXZ() _GetCombinableSize +@ cdecl -arch=win64 ?_GetCombinableSize@details@Concurrency@@YA_KXZ() _GetCombinableSize @ cdecl -arch=win32 ?_Getcat@?$codecvt@DDH@std@@SAIPAPBVfacet@locale@2@PBV42@@Z(ptr ptr) codecvt_char__Getcat @ cdecl -arch=win64 ?_Getcat@?$codecvt@DDH@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z(ptr ptr) codecvt_char__Getcat @ cdecl -arch=win32 ?_Getcat@?$codecvt@GDH@std@@SAIPAPBVfacet@locale@2@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@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBD_K444@Z(ptr ptr ptr ptr long str long long long long) msvcp120.?_Fput@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBD_K444@Z @ stub -arch=win32 ?_Future_error_map@std@@YAPBDH@Z @ stub -arch=win64 ?_Future_error_map@std@@YAPEBDH@Z -@ stub -arch=win32 ?_GetCombinableSize@details@Concurrency@@YAIXZ -@ stub -arch=win64 ?_GetCombinableSize@details@Concurrency@@YA_KXZ +@ cdecl -arch=win32 ?_GetCombinableSize@details@Concurrency@@YAIXZ() msvcp120.?_GetCombinableSize@details@Concurrency@@YAIXZ +@ cdecl -arch=win64 ?_GetCombinableSize@details@Concurrency@@YA_KXZ() msvcp120.?_GetCombinableSize@details@Concurrency@@YA_KXZ @ cdecl -arch=win32 ?_Getcat@?$codecvt@DDH@std@@SAIPAPBVfacet@locale@2@PBV42@@Z(ptr ptr) msvcp120.?_Getcat@?$codecvt@DDH@std@@SAIPAPBVfacet@locale@2@PBV42@@Z @ cdecl -arch=win64 ?_Getcat@?$codecvt@DDH@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z(ptr ptr) msvcp120.?_Getcat@?$codecvt@DDH@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z @ cdecl -arch=win32 ?_Getcat@?$codecvt@GDH@std@@SAIPAPBVfacet@locale@2@PBV42@@Z(ptr ptr) msvcp120.?_Getcat@?$codecvt@GDH@std@@SAIPAPBVfacet@locale@2@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@details@Concurrency@@YAIXZ */ +/* ?_GetCombinableSize@details@Concurrency@@YA_KXZ */ +MSVCP_size_t __cdecl _GetCombinableSize(void) +{ + FIXME("() stub\n"); + return 0; +} #endif
#if _MSVCP_VER >= 140
Hi Gijs,
On 07/18/18 01:49, Gijs Vermeulen wrote:
This patch is causing the application to run into another unimplemented function (??0_ReaderWriterLock@details@Concurrency@@QAE@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