[Bug 44954] New: Star Citizen fails to load dll
https://bugs.winehq.org/show_bug.cgi?id=44954 Bug ID: 44954 Summary: Star Citizen fails to load dll Product: Wine-staging Version: 3.5 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs(a)winehq.org Reporter: holzminister(a)t-online.de CC: erich.e.hoover(a)wine-staging.com, michael(a)fds-team.de, sebastian(a)fds-team.de Distribution: --- This bug seems to be fixed with wine 3.1 https://bugs.winehq.org/show_bug.cgi?id=39319 But somehow I still get this bug when using wine-staging. 0034:fixme:module:find_dll_file skipping L"Z:\\mnt\\1\\Spiele\\Starcitizen\\StarCitizen\\LIVE\\Bin64\\icudt59.dll" because of wrong architecture 0034:fixme:module:find_dll_file skipping L"Z:\\mnt\\1\\Spiele\\Starcitizen\\StarCitizen\\LIVE\\Bin64\\icudt59.dll" because of wrong architecture 0034:fixme:module:find_dll_file skipping L"Z:\\mnt\\1\\Spiele\\Starcitizen\\StarCitizen\\LIVE\\Bin64\\icudt59.dll" because of wrong architecture 0034:fixme:module:find_dll_file skipping L"Z:\\mnt\\1\\Spiele\\Starcitizen\\StarCitizen\\LIVE\\Bin64\\icudt59.dll" because of wrong architecture 0034:fixme:module:find_dll_file skipping L"Z:\\mnt\\1\\Spiele\\Starcitizen\\StarCitizen\\LIVE\\Bin64\\icudt59.dll" because of wrong architecture 0034:err:module:import_dll Library icudt59.dll (which is needed by L"Z:\\mnt\\1\\Spiele\\Starcitizen\\StarCitizen\\LIVE\\Bin64\\icuuc59.dll") not found 0034:err:module:import_dll Library icuuc59.dll (which is needed by L"Z:\\mnt\\1\\Spiele\\Starcitizen\\StarCitizen\\LIVE\\Bin64\\StarCitizen.exe") not found 0034:fixme:module:find_dll_file skipping L"Z:\\mnt\\1\\Spiele\\Starcitizen\\StarCitizen\\LIVE\\Bin64\\icudt59.dll" because of wrong architecture 0034:fixme:module:find_dll_file skipping L"Z:\\mnt\\1\\Spiele\\Starcitizen\\StarCitizen\\LIVE\\Bin64\\icudt59.dll" because of wrong architecture 0034:fixme:module:find_dll_file skipping L"Z:\\mnt\\1\\Spiele\\Starcitizen\\StarCitizen\\LIVE\\Bin64\\icudt59.dll" because of wrong architecture 0034:fixme:module:find_dll_file skipping L"Z:\\mnt\\1\\Spiele\\Starcitizen\\StarCitizen\\LIVE\\Bin64\\icudt59.dll" because of wrong architecture 0034:fixme:module:find_dll_file skipping L"Z:\\mnt\\1\\Spiele\\Starcitizen\\StarCitizen\\LIVE\\Bin64\\icudt59.dll" because of wrong architecture 0034:err:module:import_dll Library icudt59.dll (which is needed by L"Z:\\mnt\\1\\Spiele\\Starcitizen\\StarCitizen\\LIVE\\Bin64\\icuuc59.dll") not found 0034:err:module:import_dll Library icuuc59.dll (which is needed by L"Z:\\mnt\\1\\Spiele\\Starcitizen\\StarCitizen\\LIVE\\Bin64\\icuin59.dll") not found 0034:err:module:import_dll Library icuin59.dll (which is needed by L"Z:\\mnt\\1\\Spiele\\Starcitizen\\StarCitizen\\LIVE\\Bin64\\StarCitizen.exe") not found 0034:err:module:attach_dlls Importing dlls for L"Z:\\mnt\\1\\Spiele\\Starcitizen\\StarCitizen\\LIVE\\Bin64\\StarCitizen.exe" failed, status c0000135 -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=44954 tokktokk <fdsfgs(a)krutt.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |fdsfgs(a)krutt.org -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=44954 Matthew <matthew(a)digivation.net> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |matthew(a)digivation.net --- Comment #1 from Matthew <matthew(a)digivation.net> --- I can confirm I see this on wine-staging 3.7 but not wine 3.7. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=44954 Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |leslie_alistair(a)hotmail.com --- Comment #2 from Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> --- Can you provide a log +shell,module,loaddll,seh -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=44954 --- Comment #3 from Matthew <matthew(a)digivation.net> --- Created attachment 61349 --> https://bugs.winehq.org/attachment.cgi?id=61349 Wine-staging 3.7 StarCitizen Log Attached is a log from wine-3.7 (Staging). The same command succeeds with wine-3.7 -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=44954 --- Comment #4 from Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> --- Thanks for the log Can you run the command following. file icudt59.dll -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=44954 --- Comment #5 from Matthew <matthew(a)digivation.net> --- (In reply to Alistair Leslie-Hughes from comment #4)
Thanks for the log
Can you run the command following. file icudt59.dll
[matthew(a)jupiter Bin64]$ file icudt59.dll icudt59.dll: PE32 executable (DLL) (GUI) Intel 80386, for MS Windows -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=44954 --- Comment #6 from Matthew <matthew(a)digivation.net> --- Per the comments on Bug #39319, this is a "32-bit resource-only dll loaded into a 64 bit process" (StarCitizen.exe: PE32+ executable (GUI) x86-64, for MS Windows). -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=44954 --- Comment #7 from Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> --- Created attachment 61356 --> https://bugs.winehq.org/attachment.cgi?id=61356 Check for resource only dll Can you please try this patch? Apply a top a wine-staging tree. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=44954 --- Comment #8 from Matthew <matthew(a)digivation.net> --- (In reply to Alistair Leslie-Hughes from comment #7)
Created attachment 61356 [details] Check for resource only dll
Can you please try this patch? Apply a top a wine-staging tree.
I applied wine-staging patches to the latest wine-git, then applied your patch ... except patch complained that the 'patch was previously applied.' I then did a clean clone, re-applied the patches, and verified that the is_resource_dll() function still exists in dlls/ntdll/loader.c Finally, I did a wow64 build of the code, and observed the same error. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=44954 --- Comment #9 from Matthew <matthew(a)digivation.net> --- I noticed that the is_resource_dll() function does not exist in vanilla wine, and is introduced in the ntdll-Loader_Machine_Type patchset. I disabled that patch and it's dependent patches (./patches/patchinstall.sh DESTDIR=../wine-patch2 --all -W ntdll-Loader_Machine_Type -W ntdll-DllRedirects -W uxtheme-GTK_Theming -W ntdll-Purist_Mode) and rebuilt my wine-staging test. The build without these patches successfully loaded the executable and 32bit resource dll files. This leads me to believe that the ntdll-Loader_Machine_Type patchset causes the regression. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=44954 --- Comment #10 from Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> --- (In reply to Matthew from comment #9)
I noticed that the is_resource_dll() function does not exist in vanilla wine, and is introduced in the ntdll-Loader_Machine_Type patchset. I disabled that patch and it's dependent patches (./patches/patchinstall.sh DESTDIR=../wine-patch2 --all -W ntdll-Loader_Machine_Type -W ntdll-DllRedirects -W uxtheme-GTK_Theming -W ntdll-Purist_Mode) and rebuilt my wine-staging test.
The build without these patches successfully loaded the executable and 32bit resource dll files.
This leads me to believe that the ntdll-Loader_Machine_Type patchset causes the regression.
Yes that is the exact patchset that is causing the issue. However, since it is fixing another issue. We need to workout why it's failing. However, not having Star Citizen, it's a bit of guess game. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=44954 --- Comment #11 from Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> --- Hi Matthew If you apply the staging patches, but change the function is_resource_dll to return !info.TransferAddress; Does that fix the issue? -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=44954 Toni <tonix64(a)inventati.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |tonix64(a)inventati.org --- Comment #12 from Toni <tonix64(a)inventati.org> --- might be reproducible without the game on a fresh wineprefix: using 3.7-staging, run wineboot, I can see at the end: 0009:fixme:module:find_dll_file skipping L"C:\\windows\\system32\\advapi32.dll" because of wrong architecture 0009:fixme:module:find_dll_file skipping L"C:\\windows\\system32\\advapi32.dll" because of wrong architecture deleting the wineprefix and running wineboot with 3.7 instead I don't see that, also I don't see it with WINEARCH=win32 either in 3.7 or 3.7-staging I think I've seen it with other applications when kickstarting the wineprefix with 3.x-staging (as far I tried 3.3-staging also does this, but 2.21-staging doesnt) -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=44954 --- Comment #13 from Matthew <matthew(a)digivation.net> --- OK - I grabbed a fresh copy of wine from git (HEAD), applied the wine-staging patches to it (HEAD as well), then applied your patch; the code was already present, but I reapplied the patch. Verified dlls/ndtll/loader.c contained the is_resource() function. Then ./configure --enable-win64; make -j9 Unfortunately, running ./wine64 <path to my exe> still results in a failure...(In reply to Alistair Leslie-Hughes from comment #11)
Hi Matthew
If you apply the staging patches, but change the function is_resource_dll to return !info.TransferAddress;
Does that fix the issue?
That did indeed resolve the issue - now the DLLs load and the executable continues. static BOOL is_resource_dll( HANDLE hfile ) { SECTION_IMAGE_INFORMATION info; SIZE_T ret; if(NtQuerySection(hfile, SectionImageInformation, &info, sizeof(info), &ret) == STATUS_SUCCESS) return !info.ImageContainsCode; return !info.ImageContainsCode; } -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=44954 --- Comment #14 from Matthew <matthew(a)digivation.net> --- (In reply to Alistair Leslie-Hughes from comment #11)
Hi Matthew
If you apply the staging patches, but change the function is_resource_dll to return !info.TransferAddress;
Does that fix the issue?
Alistair, I misread your patch test request, and modified my is_resource_dll to return "!info.ImageContainsCode" instead of "!info.TransferAddress". Applying the latest wine-staging patches to wine-3.8, containing your modification to the is_resource_dll function does not resolve the issue - I'm still failing to load the icu*.dll files. When is_resource_dll is modified to return !info.ImageContainsCode, the load will succeed - but I'm not sure if that's a valid change, as I have not had time to research the NtQuerySection function. Matthew -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=44954 --- Comment #15 from Matthew <matthew(a)digivation.net> --- I added some debugging FIXME's to the is_resource_dll() function and observed a couple of things: 1) During load, NtQuerySection never returns STATUS_SUCCESS for any dlls passed via is_resource_dll. All status returns = 0xC0000024, which maps to "STATUS_OBJECT_TYPE_MISMATCH" thus for this case it seems the new return code is never run. All returns of the new patched function are thus "FALSE." 2) The 'info.ImageContainsCode' flag seems to work correctly. Thanks, Matthew -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=44954 Jason <holzminister(a)t-online.de> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #16 from Jason <holzminister(a)t-online.de> --- This is fixed for me with wine-staging 3.9 Thank you! -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=44954 Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #17 from Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> --- Closing Fixed Staging 3.14 -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (1)
-
wine-bugs@winehq.org