https://bugs.winehq.org/show_bug.cgi?id=53909
Bug ID: 53909 Summary: opengl32.dll can't be loaded if win32u.so is not initialized first Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: NEW Keywords: regression Severity: normal Priority: P2 Component: opengl Assignee: wine-bugs@winehq.org Reporter: jacek@codeweavers.com CC: rbernon@codeweavers.com Regression SHA1: 60eeb92ae0342a13e6e407a44d116b657b7e9ee5 Distribution: ---
Created attachment 73457 --> https://bugs.winehq.org/attachment.cgi?id=73457 test
We load unixlibs when corresponding PE file is mapped (and before its imports are mapped). For unixlibs that link to win32u.so, we need win32u.so to be loaded first, because system loader doesn't know where to find it. It's usually good enough, we needed some workarounds for Vulkan [1], but it doesn't work for opengl32.so. We may need to change ntdll's unixlib loading strategy or find a workaround for opengl32. I attached a simple test.
[1] https://gitlab.winehq.org/wine/wine/-/merge_requests/547