-
Notifications
You must be signed in to change notification settings - Fork 356
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Test that we can build a sysroot for at least all tier 2 targets? #3251
Comments
I'm looking into the thumbv8m.base issue RalfJung/rustc-build-sysroot#8 |
That is the rustc target policy. Miri has its own target policy, and we don't generally support tier 2 targets. I feel like supporting the tier 1 targets is keeping us sufficiently busy already. That said, if someone wants to be our tier 2 maintainer, and deal with nightly CI failures caused by tier 2 targets, then that's fine for me. :) We could add a new CI job to run these test builds. However, 62 targets would take about an hour, so we might have to find a way to cut this down to 20-30 targets. |
I was imagining this running as a nightly job that bothers me when it fails. Miri CI uses a runner with 2 cores right? I have a set of patches that lets you build N sysroots at once, which dramatically reduces the wall time if the builder has a handful of cores. |
Miri uses the default GHA runners, no idea how many cores they have. The sysroot build will already use the regular rustc build parallelism.
That's also an option of course. |
Yes, but that is not very parallel at all. On my desktop, the average number of CPUs used during I'll rig up a cron action of my own then we'll figure out if we want to move it into rust-lang. |
Just running |
You can skip tier 1 targets, we should already be covering them all with our other tests. (But how can those numbers be right? We don't have 25 tier 1 targets.) That seems completely feasible to have as another CI job then. But it can also be a nightly-only job if you prefer. |
We have 8 tier 1 targets, 16 tier 2 with host tools targets, and 63 tier 2 without host tools targets; so all of tier 1 and tier 2 is 87 targets. |
Ah, I thought the 62 (63?) above was all tier 2, not just tier 2 without host. |
@saethlin as far as I can tell, this is done? |
Yup, this was implemented in #3260 and a few follow-ups. |
We currently cannot build sysroots for the following targets which are documented as tier 2:
There are a variety of causes for this; netbsd was added to the tier 2 list by mistake and should be tier 3, the sgx target runs into a deny lint while building
backtrace
that-Zbuild-std
seems to evade somehow, and thethumbv8m
targets emit this, which is a bug in rustc-build-sysroot (the target name get mangled byPath::file_stem
):I think if these targets are documented to be tier 2 "guaranteed to build", we should at least be aware if cargo-miri cannot build sysroots for them. I am of course happy to just do all these builds myself and file bugs when I find issues, but it would be neat if such a check were maintained by the team. But such a build will take some time to run; currently we have 62 tier 2 targets.
Should we have an automated check for the build status of all our tier 2 targets? If so, where?
Decision: Let's add a nightly workflow to build all the sysroots for tier 2 targets.
When this was opened, we had a handful of targets documented as tier 2 that don't build:
i586-unknown-netbsd
from tier 2 to tier 3 platform support table rust#119588 moved this to tier 3 and was just deployedbacktrace
that doesn't interact correctly withcfg(miri)
, this will be fixed by Fix deny(unused) of an unused import with SGX + Miri backtrace-rs#581 (after a sync) but that PR is blocked on Fix CI backtrace-rs#582 (also resolved by Default to --cap-lints=warn RalfJung/rustc-build-sysroot#12)The text was updated successfully, but these errors were encountered: