Skip to content

[Enhancement] MinGW toolchain based on the UCRT #3417

@d-musique

Description

@d-musique

The MinGW-w64 12.x compiler toolchain, which is not currently available as a package, has introduced the support of Universal CRT.

See: https://github.com/mingw-w64/mingw-w64/blob/master/mingw-w64-doc/howto-build/ucrt-vs-msvcrt.txt

This feature improves on the old MSVCRT-based toolchain, by complying with the newer standards of the C language, and it makes the compiled binaries interoperable with other compilers, notably the proprietary one from MS.
The UCRT is the new default starting from MinGW-w64 12.x.

This update requires packaging effort because the specs need significant changes, possibly a reworked bootstrap.

https://github.com/OpenMandrivaAssociation/gcc
https://github.com/OpenMandrivaAssociation/mingw

A UCRT compiler has a target triple in the form x86_64-w64-mingw32ucrt.
There appears to be two ways to go from here:

  1. Introduce mingw32ucrt as a new cross compile target in gcc, and then introduce ucrt specific packages (libc), while keeping non-ucrt variants available
  2. Get rid of legacy mingw completely in favor of ucrt, and have ucrt support packages only

The "ucrt-ness" of the compiler and the runtimes go together.

It can be investigated whether clang is an option for building the libc and crt instead of gcc, since clang has support of a vast set of architectures, which includes the ucrt-based mingw.

Metadata

Metadata

Assignees

No one assigned

    Labels

    [RFC]Request for CommentsdevsDevsenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions