https://bugs.winehq.org/show_bug.cgi?id=49660
Bug ID: 49660 Summary: Doom 2 over dosbox doesn't start Product: Wine Version: 5.14 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: ntdll Assignee: wine-bugs@winehq.org Reporter: ahiler@codeweavers.com Distribution: ---
Doom II from Steam runs via dosbox.exe. It comes with SDL.dll that seems to have one of the relocation/fixup entries broken.
00f4:trace:module:perform_relocations relocating from 68100000-6815F000 to 00220000-0027F000 00f4:warn:module:perform_relocations invalid address 00288000 in relocation 0027E4A0 00f4:warn:module:load_dll Failed to load module L"SDL.dll"; status=c0000005
DLL's preferred base: 0x68100000 DLL's virtual size: 0x0005f000
On my system libwine gets mapped in that range
6803b000-681a0000 r--p 0000d000 00:1a 1144057/home/l1/src/wine/libs/wine/libwine.so.1.0
which forces the loader to handle relocations and fixups the addreses which leads to the failure presented above.
Browsing support forums for the game seems like this is never an issue on Windows, so I've written a small program that VirutalAlloc(MEM_RESERVE) over SDL.dll's base range and then LoadLIbraryA("SDL.dll") to force relocation.
Exception thrown at 0x77CFEFA6 (ntdll.dll) in sdl_reloc_test.exe: 0xC0000005: Access violation writing location 0x017F8D58.
Conclusion: this range seem to be always available on Windows and we should extend preloader's low memory area over it.
https://bugs.winehq.org/show_bug.cgi?id=49660
Arek Hiler ahiler@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|ntdll |loader
--- Comment #1 from Arek Hiler ahiler@codeweavers.com --- https://www.winehq.org/pipermail/wine-devel/2020-August/171314.html
https://bugs.winehq.org/show_bug.cgi?id=49660
Brendan Shanks bshanks@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |bshanks@codeweavers.com
--- Comment #2 from Brendan Shanks bshanks@codeweavers.com --- https://bugs.winehq.org/show_bug.cgi?id=40944 may be the same problem? Hard to tell from the logs.
https://bugs.winehq.org/show_bug.cgi?id=49660
--- Comment #3 from Arek Hiler ahiler@codeweavers.com --- @Brendan - I've looked at it briefly while checking for duplicates. Doesn't seem to be the same problem.
The clear indicator for the issue in from this bug is:
00f4:warn:module:perform_relocations invalid address 00288000 in relocation 0027E4A0 00f4:warn:module:load_dll Failed to load module L"SDL.dll"; status=c0000005
which should show up without any extra debug flags. I haven't seen that or anything similar wrt dll loading in the bug you have linked. Either they are not related or the logs pasted there are not complete.