https://bugs.winehq.org/show_bug.cgi?id=49412
Bug ID: 49412 Summary: Wine 5.10 breaks League Of Legends Product: Wine-staging Version: 5.10 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: matias.nicolas.zc@gmail.com CC: leslie_alistair@hotmail.com, z.figura12@gmail.com Regression SHA1: 7b78338b078a7a55c5851a91064ef70836f4c996 Distribution: ---
Created attachment 67491 --> https://bugs.winehq.org/attachment.cgi?id=67491 Pass syscall_dispatcher to NtCreateThreadEx
First of all, this is not the same as Bug 49373, that one doesn't affect the alternative patch from Bug 47198.
Stating with wine 35b063a4 + staging 7b78338b, the game doesn't start. The following message appears in the terminal every couple of seconds (with different thread ids):
``` 0184:err:ntdll:RtlpWaitForCriticalSection section 0x7bd07a40 "loader.c: loader_section" wait timed out in thread 0184, blocked by 0024, retrying (60 sec) ``` __________________________________________________
This can be reproduced by running the following executable, no need to have an account: `wine League of Legends/Game/League of Legends.exe`
Tested with wine 67ef5151 + staging 02913f75 (the last staging commit at the moment of testing) The game also needs the alternative patch from Bug 47198 + `echo 0 > /proc/sys/abi/vsyscall32`
I have an updated patch for Bug 47198 that applies over wine-git+staging in my copr repo: https://copr-dist-git.fedorainfracloud.org/cgit/manizuca/wine-lol/wine.git/t...
__________________________________________________
As i said, this bug is present since wine 35b063a4 with the staging rebasing from 7b78338b
Specifically, the `WOW32Reserved` assignation from the `0003-winebuild-Generate-syscall-thunks-for-ntdll-exports` patch was moved to loader.c, since the thread creation function was moved to the Unix library, but apparently that assignation needs to be in thread creation function.
The attached patch moves back that assignation, by passing a syscall_dispatcher reference to the Unix library. Sadly, starting with wine 33c750f5, NtCreateThreadEx is called from unix/server.c. Since i couldn't find how to get syscall_dispatcher from there, I'm reverting that commit to make League Of Legends work.
In summary, I can make LoL work with wine-git + staging + reverting 33c750f5 + the attached patch + the alternative patch from Bug 49373