On Sat, Jan 29, 2022 at 12:32 PM Ben Cotton <bcotton@xxxxxxxxxx> wrote: > > 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. > I like this, I wonder if it makes sense to do something like how kernel module packaging works with kmodtool and things to generate subpackages for all the variants and have macros to trigger builds for all flavors... -- 真実はいつも一つ!/ Always, there's only one truth! _______________________________________________ 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