Description
We (Android platform) build a custom version of rustc. Basically, we take the source distro, apply a few patches, and run x.py with a custom config.toml.
I am working on 2 things, which are related:
-
We want to build a Rust toolchain that runs on Windows (MinGW). For various reasons, we'd prefer to do this by cross-compiling (i.e. build a Windows rustc on a Linux machine).
-
We want to test our toolchain in our CI pipeline. For example, run
x.py test tests/ui
So, I had the following "clever" idea:
- Cross-compile a windows toolchain on Linux.
- Copy it to a Windows machine.
- In Windows,
x.py --stage 0 test tests/ui
with the stage 0 / bootstrap configured to use my new toolchain.
I got a very helpful warning that I probably shouldn't be doing this, and inviting me to file this issue. When I proceeded anyway, with COMPILETEST_FORCE_STAGE0=1
, I got a number of test failures (~200 out of ~13,000). (For comparison, when I ran x.py test tests/ui
the "right" way, the tests all passed, so I'm pretty confident the failures weren't due to our patches and custom configuration.)
Is there a correct, supported way to do this? That is, run tests "after-the-fact" on a toolchain you just built, possibly on a different machine? If not, I am willing to add support for it, if there is interest.
I found several things that seemed related, but not quite right:
- According to the docs,
./x.py test distcheck
applies to a source tarball, not a compiled toolchain. - The remote test server seems to be for testing different targets, not for when the toolchain itself is cross-compiled. It also seems like it would be very difficult to use in our CI pipeline. It also seems like it poses security issues in a production environment (opening a port allowing arbitrary code execution).