[libcxx-commits] [libcxx] [llvm] [libcxx] [ci] Add a test configuration with an incomplete sysroot (PR #107089)

Martin Storsjö via libcxx-commits libcxx-commits at lists.llvm.org
Tue Sep 3 04:31:55 PDT 2024


mstorsjo wrote:

This was earlier posted for review in https://reviews.llvm.org/D150766.

Since that version, the setup of this test environment has gotten simpler, since we're running the Windows tests on GitHub Actions runners, where each run is in a separate clean container, where we're installing the toolchain ourselves. So it's easier to unconditionally remove things from the toolchain, to properly simulate the incomplete sysroot setup.

The previous review asked whether this really is Windows specific - it isn't. It should certainly be possible to have the same situation in a Linux environment too. But exactly which files to remove from a full working environment, in order to simulate this from-scratch bringup stage, is quite environment specific. It's much easier to do with a cross compiler that come with their own sysroot, rather than a native toolchain that uses whatever it can find in `/usr` etc. (The Windows based mingw toolchains have their sysroots bundled just like cross compilers, even if it's not technically cross compilation.)

So to test the same on Linux, you'd probably need to have a standalone cross toolchain setup (targeting e.g. musl or so?). And we don't have that readily available, as far as I know. While this testing setup uses the exact same tooling we're already using, and gives at least some sort of test coverage for this important scenario.

Right now, there are discussions in #90332 about things that do touch upon the from-scratch incomplete sysroot cases - having even some sort of test coverage of that in the CI setup would be valuable.

CC @petrhosek 

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


More information about the libcxx-commits mailing list