[libcxx-commits] [libcxx] [llvm] [libcxx] [ci] Test mingw environments with msvcrt.dll, too (PR #115783)

Martin Storsjö via libcxx-commits libcxx-commits at lists.llvm.org
Tue Nov 12 09:48:30 PST 2024


mstorsjo wrote:

> I don't want to oppose this change just for the sake of it, but reading the PR description made it look like `msvcrt.dll` is really a legacy thing that is being moved away from (and has a bunch of things that don't work like locales). This makes me wonder whether we should even strive to support it. What is your take on that?

It's a legacy configuration indeed, and it's not as functional as UCRT. Many users do move away from it - however I don't see being able to entirely drop it within any foreseeable future either. (Note, my toolchain distribution is "upstream-only", I don't carry any downstream patches on anything, as I make sure to work entirely upstream.)

So I do want to keep supporting it - with a slightly different definition of "support"; i.e. quite expected that everything doesn't work as it should, but building libcxx _should_ work at the very least, and plain basic things should work.

In the vast majority of cases, this configuration isn't something that costs us extra maintainance - within the whole libcxx, we have one single `#if` (ok, spread out in 2 files) relating to this, other than that things work exactly the same as with UCRT. So by adding this CI configuration, we get build test coverage for that particular detail (which otherwise is untested in the upstream CI so far).

If we keep it as a build-only CI configuration, it's quite cheap wrt CPU time on the CI. If we want to, we can also add running of tests with it; it requires adding a handful of extra `XFAIL`s but nothing really terrible actually (I have patches set up for that on top of this, if we want to go that way).

https://github.com/llvm/llvm-project/pull/115783


More information about the libcxx-commits mailing list