https://bugs.winehq.org/show_bug.cgi?id=53354 Bug ID: 53354 Summary: Wine should provide icu.dll Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs(a)winehq.org Reporter: osmanx(a)problemloesungsmaschine.de Distribution: --- Created attachment 72742 --> https://bugs.winehq.org/attachment.cgi?id=72742 tzdb.exe Windows since at least version Windows 10 19H1 ships a icu.dll in the system directory. The VS2022 (and I think also VS2019) C++ standard library in C++20 mode uses this DLL to implement the timezone database as specified by the C++ standard. The standard library loads this DLL dynamically with LoadLibraryExW (see <https://github.com/microsoft/STL/blob/ef62d3fa0b8e4e2406b9bb74e916e1ca8a1df802/stl/src/tzdb.cpp#L66>) and throws a std::system_error (see <https://github.com/microsoft/STL/blob/ef62d3fa0b8e4e2406b9bb74e916e1ca8a1df802/stl/src/tzdb.cpp#L354> and <https://github.com/microsoft/STL/blob/ef62d3fa0b8e4e2406b9bb74e916e1ca8a1df802/stl/src/tzdb.cpp#L455>) when it cannot load it. In order to provide compatibility with modern Windows versions, IMHO Wine should thus ship a compatible icu.dll. A similar issue also exists for older Windows versions even on the Microsoft side (see <https://github.com/microsoft/STL/issues/1911>). This issue arose since I recently modernized timezone handling in OpenMPT by using C++20 chrono. For now, I have worked around the problem in OpenMPT. See <https://bugs.openmpt.org/view.php?id=1618> and <https://source.openmpt.org/browse/openmpt?op=comp&compare[]=/trunk/OpenMPT/@17667&compare[]=/trunk/OpenMPT/@17668>. Simple test case: ``` // cl /std:c++20 /permissive- /EHsc /O2 /W4 tzdb.cpp #include <chrono> #include <iostream> #include <stdexcept> #include <windows.h> int main() { try { std::chrono::get_tzdb_list(); } catch (const std::exception & e) { std::cerr << "FAIL: " << e.what() << std::endl; return 1; } std::cout << "OK" << std::endl; return 0; } ``` tzdb.exe attached. -- 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.