[PATCH 0/1] MR2679: msvcrt110: Add stub _Cancellation_beacon::_Cancellation_beacon()
Required for Forza Horizon 4 and other games https://bugs.winehq.org/show_bug.cgi?id=54756 -- https://gitlab.winehq.org/wine/wine/-/merge_requests/2679
From: Vijay Kiran Kamuju <infyquest(a)gmail.com> --- dlls/msvcr110/msvcr110.spec | 6 +++--- dlls/msvcr120/msvcr120.spec | 6 +++--- dlls/msvcr120_app/msvcr120_app.spec | 6 +++--- dlls/msvcrt/concurrency.c | 14 ++++++++++++++ 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 4fc5a069fbb..10684f1c39d 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -17,9 +17,9 @@ @ stub -arch=arm ??0_CancellationTokenState(a)details@Concurrency@@AAA(a)XZ @ stub -arch=i386 ??0_CancellationTokenState(a)details@Concurrency@@AAE(a)XZ @ stub -arch=win64 ??0_CancellationTokenState(a)details@Concurrency@@AEAA(a)XZ -@ stub -arch=arm ??0_Cancellation_beacon(a)details@Concurrency@@QAA(a)XZ -@ stub -arch=i386 ??0_Cancellation_beacon(a)details@Concurrency@@QAE(a)XZ -@ stub -arch=win64 ??0_Cancellation_beacon(a)details@Concurrency@@QEAA(a)XZ +@ cdecl -arch=arm ??0_Cancellation_beacon(a)details@Concurrency@@QAA(a)XZ _Cancellation_beacon_ctor +@ thiscall -arch=i386 ??0_Cancellation_beacon(a)details@Concurrency@@QAE(a)XZ _Cancellation_beacon_ctor +@ cdecl -arch=win64 ??0_Cancellation_beacon(a)details@Concurrency@@QEAA(a)XZ _Cancellation_beacon_ctor @ cdecl -arch=arm ??0_Condition_variable(a)details@Concurrency@@QAA(a)XZ(ptr) _Condition_variable_ctor @ thiscall -arch=i386 ??0_Condition_variable(a)details@Concurrency@@QAE(a)XZ(ptr) _Condition_variable_ctor @ cdecl -arch=win64 ??0_Condition_variable(a)details@Concurrency@@QEAA(a)XZ(ptr) _Condition_variable_ctor diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 7b379830d4b..81a3c17dbb4 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -14,9 +14,9 @@ @ cdecl -arch=arm ??0SchedulerPolicy(a)Concurrency@@QAA(a)XZ(ptr) SchedulerPolicy_ctor @ thiscall -arch=i386 ??0SchedulerPolicy(a)Concurrency@@QAE(a)XZ(ptr) SchedulerPolicy_ctor @ cdecl -arch=win64 ??0SchedulerPolicy(a)Concurrency@@QEAA(a)XZ(ptr) SchedulerPolicy_ctor -@ stub -arch=arm ??0_Cancellation_beacon(a)details@Concurrency@@QAA(a)XZ -@ stub -arch=i386 ??0_Cancellation_beacon(a)details@Concurrency@@QAE(a)XZ -@ stub -arch=win64 ??0_Cancellation_beacon(a)details@Concurrency@@QEAA(a)XZ +@ cdecl -arch=arm ??0_Cancellation_beacon(a)details@Concurrency@@QAA(a)XZ _Cancellation_beacon_ctor +@ thiscall -arch=i386 ??0_Cancellation_beacon(a)details@Concurrency@@QAE(a)XZ _Cancellation_beacon_ctor +@ cdecl -arch=win64 ??0_Cancellation_beacon(a)details@Concurrency@@QEAA(a)XZ _Cancellation_beacon_ctor @ cdecl -arch=arm ??0_Condition_variable(a)details@Concurrency@@QAA(a)XZ(ptr) _Condition_variable_ctor @ thiscall -arch=i386 ??0_Condition_variable(a)details@Concurrency@@QAE(a)XZ(ptr) _Condition_variable_ctor @ cdecl -arch=win64 ??0_Condition_variable(a)details@Concurrency@@QEAA(a)XZ(ptr) _Condition_variable_ctor diff --git a/dlls/msvcr120_app/msvcr120_app.spec b/dlls/msvcr120_app/msvcr120_app.spec index 37282fc54f8..e53e4f31e8a 100644 --- a/dlls/msvcr120_app/msvcr120_app.spec +++ b/dlls/msvcr120_app/msvcr120_app.spec @@ -12,9 +12,9 @@ @ cdecl -arch=arm ??0SchedulerPolicy(a)Concurrency@@QAA(a)XZ(ptr) msvcr120.??0SchedulerPolicy(a)Concurrency@@QAA(a)XZ @ thiscall -arch=i386 ??0SchedulerPolicy(a)Concurrency@@QAE(a)XZ(ptr) msvcr120.??0SchedulerPolicy(a)Concurrency@@QAE(a)XZ @ cdecl -arch=win64 ??0SchedulerPolicy(a)Concurrency@@QEAA(a)XZ(ptr) msvcr120.??0SchedulerPolicy(a)Concurrency@@QEAA(a)XZ -@ stub -arch=arm ??0_Cancellation_beacon(a)details@Concurrency@@QAA(a)XZ -@ stub -arch=i386 ??0_Cancellation_beacon(a)details@Concurrency@@QAE(a)XZ -@ stub -arch=win64 ??0_Cancellation_beacon(a)details@Concurrency@@QEAA(a)XZ +@ cdecl -arch=arm ??0_Cancellation_beacon(a)details@Concurrency@@QAA(a)XZ _Cancellation_beacon_ctor +@ thiscall -arch=i386 ??0_Cancellation_beacon(a)details@Concurrency@@QAE(a)XZ _Cancellation_beacon_ctor +@ cdecl -arch=win64 ??0_Cancellation_beacon(a)details@Concurrency@@QEAA(a)XZ _Cancellation_beacon_ctor @ cdecl -arch=arm ??0_Condition_variable(a)details@Concurrency@@QAA(a)XZ(ptr) msvcr120.??0_Condition_variable(a)details@Concurrency@@QAA(a)XZ @ thiscall -arch=i386 ??0_Condition_variable(a)details@Concurrency@@QAE(a)XZ(ptr) msvcr120.??0_Condition_variable(a)details@Concurrency@@QAE(a)XZ @ cdecl -arch=win64 ??0_Condition_variable(a)details@Concurrency@@QEAA(a)XZ(ptr) msvcr120.??0_Condition_variable(a)details@Concurrency@@QEAA(a)XZ diff --git a/dlls/msvcrt/concurrency.c b/dlls/msvcrt/concurrency.c index fe156938e3a..91164675c25 100644 --- a/dlls/msvcrt/concurrency.c +++ b/dlls/msvcrt/concurrency.c @@ -330,6 +330,10 @@ typedef struct { CRITICAL_SECTION cs; } _ReentrantBlockingLock; +typedef struct { + void *unk; +} _Cancellation_beacon; + #define TICKSPERMSEC 10000 typedef struct { const vtable_ptr *vtable; @@ -3253,6 +3257,16 @@ void __cdecl Concurrency_wait(unsigned int time) } #if _MSVCR_VER>=110 +/* ??0_Cancellation_beacon(a)details@Concurrency@@QAA(a)XZ */ +/* ??0_Cancellation_beacon(a)details@Concurrency@@QAE(a)XZ */ +/* ??0_Cancellation_beacon(a)details@Concurrency@@QEAA(a)XZ */ +DEFINE_THISCALL_WRAPPER(_Cancellation_beacon_ctor, 4) +_Cancellation_beacon* __thiscall _Cancellation_beacon_ctor(_Cancellation_beacon *this) +{ + FIXME("(%p)\n", this); + return this; +} + /* ?_Trace_agents(a)Concurrency@@YAXW4Agents_EventType(a)1@_JZZ */ void WINAPIV _Trace_agents(/*enum Concurrency::Agents_EventType*/int type, __int64 id, ...) { -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/2679
Hi, It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated. The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=132068 Your paranoid android. === debian11 (build log) === Task: The win32 Wine build failed === debian11b (build log) === Task: The wow64 Wine build failed
participants (3)
-
Marvin -
Vijay Kiran Kamuju -
Vijay Kiran Kamuju (@infyquest)