I don’t know what timescale you were thinking, but my long-term roadmap for cross-compilation “done right” is:
- stdlib deps RFC
- needs-provides for panic and allocating
-
cargo build -p std
just works. - Cargo always use metadata of hashed content of package with deterministic tarball hash (content-addressed, so works for all dependency types).
- Mozilla signs that metadata of stdlib crates, Cargo tells stable rust to use unstable features on mozilla-signed crates.
- Cargo learns how to use global target dir—deterministic as described above metadata helps avoid collisions, sysroot mock binary source becomes just another cargo target dir as far as Cargo is concerned
- Done! std will be transparently built only the first time compiling for a new target.