Skip to content

Commit

Permalink
Rollup merge of rust-lang#89759 - jyn514:x-build-assemble, r=Mark-Sim…
Browse files Browse the repository at this point in the history
…ulacrum

Assemble the compiler when running `x.py build`

Previously, there was no way to actually get binaries in
`build/$TARGET/stage1/bin` without building the standard library. This
makes it possible to build just the compiler. This can be useful when
the standard library isn't actually necessary for trying out your tests
(e.g. a bug that can be reproduced with only a `no_core` crate).

Closes rust-lang#73519.
  • Loading branch information
the8472 authored Oct 13, 2021
2 parents 0a998f8 + 31265c6 commit 1ed61f5
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 3 deletions.
2 changes: 1 addition & 1 deletion src/bootstrap/builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -370,7 +370,7 @@ impl<'a> Builder<'a> {
match kind {
Kind::Build => describe!(
compile::Std,
compile::Rustc,
compile::Assemble,
compile::CodegenBackend,
compile::StartupObjects,
tool::BuildManifest,
Expand Down
11 changes: 9 additions & 2 deletions src/bootstrap/compile.rs
Original file line number Diff line number Diff line change
Expand Up @@ -528,7 +528,7 @@ impl Step for Rustc {
const DEFAULT: bool = false;

fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
run.path("compiler/rustc")
run.never()
}

fn make_run(run: RunConfig<'_>) {
Expand Down Expand Up @@ -1023,9 +1023,16 @@ pub struct Assemble {

impl Step for Assemble {
type Output = Compiler;
const ONLY_HOSTS: bool = true;

fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
run.never()
run.path("compiler/rustc")
}

fn make_run(run: RunConfig<'_>) {
run.builder.ensure(Assemble {
target_compiler: run.builder.compiler(run.builder.top_stage + 1, run.target),
});
}

/// Prepare a new compiler from the artifacts in `stage`
Expand Down

0 comments on commit 1ed61f5

Please sign in to comment.