Re: F37 Change: MinGW UCRT target (Self-Contained Change proposal)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux