The compiler_builtins is now a normal crates.io crate: https://crates.io/crates/compiler_builtins. Since compiler_buitlins depends on libcore, but no sysroot exists yet when building liballoc, it has a special rustc-std-workspace-core feature that overwrites the core dependency with an empty crates.io crate called rustc-std-workspace-core. This makes it possible to override the core dependency through a patch section in the Cargo.toml of liballoc.
For time reasons, this PR takes a different approach: Instead of using the rustc-std-workspace-core feature and a patch section to build core together with liballoc, we keep on building core first and then set the sysroot in RUSTFLAGS when compiling liballoc. This way, both liballoc and compiler_builtins use the core library that we built in the previous step.
https://github.com/rust-lang/rust/pull/56092 changed the build process of the sysroot in the following way:
The compiler_builtins is now a normal crates.io crate: https://crates.io/crates/compiler_builtins. Since compiler_buitlins depends on libcore, but no sysroot exists yet when building liballoc, it has a special
rustc-std-workspace-core
feature that overwrites the core dependency with an empty crates.io crate called rustc-std-workspace-core. This makes it possible to override thecore
dependency through apatch
section in the Cargo.toml of liballoc.For time reasons, this PR takes a different approach: Instead of using the
rustc-std-workspace-core
feature and apatch
section to buildcore
together with liballoc, we keep on buildingcore
first and then set the sysroot in RUSTFLAGS when compiling liballoc. This way, both liballoc and compiler_builtins use the core library that we built in the previous step.Fixes #22