[Development] MinGW with UCRT and Qt

Martin Storsjö martin at martin.st
Thu Feb 10 09:50:54 CET 2022


On Thu, 10 Feb 2022, Björn Schäpers wrote:

> Am 10.02.2022 um 05:06 schrieb Thiago Macieira:
>> On Wednesday, 9 February 2022 16:35:00 PST Björn Schäpers wrote:
>>>
>>> What would be the best way for that? I don't think you want a #if
>>> defined(Q_CC_MSVC) || defined(_UCRT), or do you?
>> No, an #ifdef _UCRT should suffice.
>
> I'm not sure I understood correctly. Should there only be an #ifdef _UCRT? 
> Does 
> MSVC also define that? I couldn't find anything that suggests that.

It's not MSVC itself that defines _UCRT, but their headers do - 
vcruntime.h defines it. So yes, checking for _UCRT should be enough for 
detecting such a CRT for both MSVC and mingw, in general.

(For other features that are new in UCRT, there's no guarantee that all of 
them are hooked up in mingw-w64 headers yet though.)

>>>   Are there any plans to adapt to UCRT MinGW?
>> Once it's officially supported by upstream, with default toolchain builds, 
> we
>> should switch.
>>
> What is upstream in this case? As far as I can see in msys2 they're heavy 
> working on getting everything (64 bit) to UCRT.

Indeed, official releases regarding mingw-w64 toolchains is a very fuzzy 
area.

mingw-w64 only formally is distributed as source. There used to be 
someone's binary toolchain builds that were uploaded on sourceforge in the 
mingw-w64 project (in a "personal builds" folder) that often were seen as 
the official ones, but those builds stopped when that person stopped 
producing them (around GCC 8 I think?).

But there's really no single canonical build of it, mingw-w64 is a source 
distribution that anyone can configure/bundle/build as they like.

(Those releases also were mainly labelled by the GCC version included, 
which often is mistaken as the mingw-w64 version - which makes things much 
more confusing when declaring what version of mingw-w64 has complete 
enough headers for feature X or Y.)

IIRC Cristian Adam also has forked this and is producing new similar 
builds, at https://github.com/cristianadam/mingw-builds/releases. (I don't 
think those are available configured with UCRT though.)

// Martin


More information about the Development mailing list