https://fedoraproject.org/wiki/Changes/F37MingwUCRT == Summary == This proposal is to add the UCRT target & support from Fedora to the MinGW cross-toolchains. == Owner == * Name: [[User:elmarco| Marc-André Lureau]] * Email: marcandre.lureau@xxxxxxxxxx == Detailed Description == The current mingw32 and mingw64 cross-toolchains provided by Fedora target the MSVCRT (Microsoft Visual C++ Runtime). Since Visual Studio 15 & Windows 10, the default and recommended runtime is UCRT. See also [https://www.msys2.org/docs/environments/#msvcrt-vs-ucrt MSVCRT vs UCRT]. A new toolchain target triple `x86_64-w64-mingw32ucrt` and associated binaries will be added. Fedora MinGW macros will be provided to target UCRT, with ucrt64-* prefix (ex: `ucrt64-meson`) mingw-* libraries will be progressively adjusted to add the produced ucrt64-* binaries. Since mingw-*.spec are very repetitive and cumbersome to modify (each mingw32, mingw64, ucrt package has to be defined manually, and this is tedious and error-prone), a custom MinGW/Fedora tool or solution will be proposed. In the meantime, packages can be modified to add manually the new target. [https://lists.fedoraproject.org/archives/list/mingw@xxxxxxxxxxxxxxxxxxxxxxx/thread/JCJCOYRVD2J5UIK5TJXHNVDHNEBZWL43/ UCRT plans on mingw@xxxxxxxxxxxxxxxxxxxxxxx ] == Benefit to Fedora == This change will allow to cross-compile projects to Windows with the up to date C runtime & headers, and better c99 support. This should allow to more easily mix binaries produced from different versions or compilers as well. == Scope == * Proposal owners: ** update the mingw filesystem, binutils, headers, gcc & winpthreads packages ** bootstrap the new toolchain ** propose a solution to simplify library packaging with the different targets ** update some common library packages, such as mingw-zlib * Other developers: ** Progressively adjust the mingw-* packages to produce ucrt64- packages, following the updated guidelines. * Release engineering: * Policies and guidelines: https://fedoraproject.org/wiki/Packaging:MinGW packaging guideline will be adjusted. * Trademark approval: N/A (not needed for this Change) * Alignment with Objectives: == Upgrade/compatibility impact == None == How To Test == <pre> $ x86_64-w64-mingw32ucrt-gcc test.c $ /usr/bin/mingw-objdump -p a.exe | grep DLL vma: Hint Time Forward DLL First DLL Name: KERNEL32.dll DLL Name: api-ms-win-crt-time-l1-1-0.dll DLL Name: api-ms-win-crt-math-l1-1-0.dll DLL Name: api-ms-win-crt-runtime-l1-1-0.dll DLL Name: api-ms-win-crt-environment-l1-1-0.dll DLL Name: api-ms-win-crt-private-l1-1-0.dll DLL Name: api-ms-win-crt-heap-l1-1-0.dll DLL Name: api-ms-win-crt-locale-l1-1-0.dll DLL Name: api-ms-win-crt-stdio-l1-1-0.dll DLL Name: api-ms-win-crt-string-l1-1-0.dll </pre> == User Experience == Windows binaries produced by Fedora cross-toolchain will target a more modern and compatible C runtime, bringing hopefully better compatibility & safety. == Dependencies == None == Contingency Plan == * Contingency mechanism: N/A (not a System Wide Change) * Contingency deadline: N/A (not a System Wide Change) * Blocks release? No (not a System Wide Change) == Documentation == N/A (not a System Wide Change) == Release Notes == The new MinGW toolchain and tools are available to compile binaries targeting the Windows UCRT. -- Ben Cotton He / Him / His Fedora Program Manager Red Hat TZ=America/Indiana/Indianapolis _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure