https://bugs.winehq.org/show_bug.cgi?id=53590
Bug ID: 53590 Summary: GetFileInformationByHandleEx() not fully implemented causing boost::directory_iterator failures with boost v1.79 and newer Product: Wine Version: 7.15 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: kernel32 Assignee: wine-bugs@winehq.org Reporter: reserv0@yahoo.com Distribution: ---
Created attachment 72974 --> https://bugs.winehq.org/attachment.cgi?id=72974 Repro test
Greetings,
I am using boost::directory_iterator in a project of mine, and noticed that stating with boost v1.79 (which implementation changed to use GetFileInformationByHandleEx), Wine (currently using v7.15, but it happens with former versions) is causing "not implemented" boost errors on directory iterator creation.
This can easily be reproduced by running 'tut4.exe C:' (example program from boost/filesystem).
I am attaching a pre-built tut4.exe here with the log I get from it.
https://bugs.winehq.org/show_bug.cgi?id=53590
--- Comment #1 from reserv0@yahoo.com --- *Pokes*
Any reaction?...
Note that this bug will impact, at one point or another, the official Second Life viewer (i.e. when Linden Lab will update the boost libraries they currently build it against, which could happen soon, since they are in the process of migrating their build compiler from VS2017 to VS2022, and will then likely rebuild all the "pre-built" libraries they use to build their client software)...
https://bugs.winehq.org/show_bug.cgi?id=53590
reserv0@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|7.15 |7.19
https://bugs.winehq.org/show_bug.cgi?id=53590
--- Comment #2 from Nikolay Sivov bunglehead@gmail.com --- This seems to help https://gitlab.winehq.org/wine/wine/-/merge_requests/1178 . Could you test?
https://bugs.winehq.org/show_bug.cgi?id=53590
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |NEW
--- Comment #3 from Nikolay Sivov bunglehead@gmail.com --- Confirming.
https://bugs.winehq.org/show_bug.cgi?id=53590
--- Comment #4 from Nikolay Sivov bunglehead@gmail.com --- Please retest with wine 7.20, this should be fixed now with https://source.winehq.org/git/wine.git/commit/404e590e06b4443d76bedfa1bc9f3c....
https://bugs.winehq.org/show_bug.cgi?id=53590
Zeb Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |z.figura12@gmail.com
--- Comment #5 from Zeb Figura z.figura12@gmail.com --- That's not going to be enough; FileIdExtdDirectoryInformation isn't actually implemented in ntdll.
https://bugs.winehq.org/show_bug.cgi?id=53590
--- Comment #6 from Nikolay Sivov bunglehead@gmail.com --- It is enough for this demo program. What I think happens is that fallback path is triggered properly now in boost, it probably depends on correct error values for unimplemented classes.
https://bugs.winehq.org/show_bug.cgi?id=53590
--- Comment #7 from Zeb Figura z.figura12@gmail.com --- (In reply to Nikolay Sivov from comment #6)
It is enough for this demo program. What I think happens is that fallback path is triggered properly now in boost, it probably depends on correct error values for unimplemented classes.
Ah, makes sense, thanks.
https://bugs.winehq.org/show_bug.cgi?id=53590
--- Comment #8 from reserv0@yahoo.com --- Sorry for the late reply, but I am encountering issues with Wine v7.20...
The Second Life viewer refuses to start with it, while it was working with v7.19 and former Wine releases. I get a bunch of failed dll errors, for DLLs that are yet present in c:\WINDOWS\System32\ E.g.: 0084:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005 0084:fixme:xinput:pdo_pnp IRP_MN_QUERY_ID type 5, not implemented! 0084:fixme:xinput:pdo_pnp IRP_MN_QUERY_ID type 5, not implemented! 0084:fixme:xinput:pdo_pnp IRP_MN_QUERY_ID type 5, not implemented! 0084:fixme:xinput:pdo_pnp IRP_MN_QUERY_ID type 5, not implemented! 010c:err:module:load_apiset_dll failed to load apiset: c000000f 010c:err:module:import_dll Library api-ms-win-crt-stdio-l1-1-0.dll (which is needed by L"C:\Program Files\SecondLifePuppetry\libcrypto-1_1-x64.dll") not found 010c:err:module:import_dll Library api-ms-win-crt-convert-l1-1-0.dll (which is needed by L"C:\Program Files\SecondLifePuppetry\libcrypto-1_1-x64.dll") not found 010c:err:module:import_dll Library api-ms-win-crt-string-l1-1-0.dll (which is needed by L"C:\Program Files\SecondLifePuppetry\libcrypto-1_1-x64.dll") not found 010c:err:module:import_dll Library api-ms-win-crt-time-l1-1-0.dll (which is needed by L"C:\Program Files\SecondLifePuppetry\libcrypto-1_1-x64.dll") not found 010c:err:module:import_dll Library api-ms-win-crt-utility-l1-1-0.dll (which is needed by L"C:\Program Files\SecondLifePuppetry\libcrypto-1_1-x64.dll") not found 010c:err:module:import_dll Library api-ms-win-crt-runtime-l1-1-0.dll (which is needed by L"C:\Program Files\SecondLifePuppetry\libcrypto-1_1-x64.dll") not found 010c:err:module:import_dll Library api-ms-win-crt-filesystem-l1-1-0.dll (which is needed by L"C:\Program Files\SecondLifePuppetry\libcrypto-1_1-x64.dll") not found 010c:err:module:import_dll Library api-ms-win-crt-heap-l1-1-0.dll (which is needed by L"C:\Program Files\SecondLifePuppetry\libcrypto-1_1-x64.dll") not found 010c:err:module:import_dll Library api-ms-win-crt-environment-l1-1-0.dll (which is needed by L"C:\Program Files\SecondLifePuppetry\libcrypto-1_1-x64.dll") not found
So, I cannot for now test and see if the fix would work with a viewer compiled against newer boost libraries...
https://bugs.winehq.org/show_bug.cgi?id=53590
--- Comment #9 from reserv0@yahoo.com --- OK, I solved the issue with the DLLs: it was due to a bad packaging, because Wine 7.20 adds more DLLs (likely newly PE-converted *.so libraries), but its installation script places them in the wrong directory (/usr/lib/wine/[i386|x86_86]-unix/ instead of /usr/lib/wine/[i386|x86_86]-windows/), meaning the said DLLs are not found at runtime and weere causing more DLL loading failures. The misplaced DLLs are: apisetschema.dll, icmp.dll, lz32.dll, mferror.dll, msimsg.dll, normaliz.dll, security.dll, sfc.dll, shdoclc.dll, tzres.dll, usp10.dll, wmi.dll You might want to fix the install script for v7.21...
Anyway... Back to boost diriterator business !
I could test a viewer linked against boost v1.80 and, good news, it indeed seems to work just fine with Wine 7.20 now !
Problem solved, I guess. :-)
https://bugs.winehq.org/show_bug.cgi?id=53590
Zeb Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |404e590e06b4443d76bedfa1bc9 | |f3c25dda6d8cb Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #10 from Zeb Figura z.figura12@gmail.com --- Marking fixed; thanks for testing.
https://bugs.winehq.org/show_bug.cgi?id=53590
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #11 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 7.21.