Skip to content

Commit 1239b99

Browse files
committed
Port RemoteTestServer to ToolTarget
1 parent 63f7241 commit 1239b99

File tree

2 files changed

+17
-10
lines changed

2 files changed

+17
-10
lines changed

src/bootstrap/src/core/build_steps/test.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2929,7 +2929,8 @@ impl Step for RemoteCopyLibs {
29292929

29302930
builder.info(&format!("REMOTE copy libs to emulator ({target})"));
29312931

2932-
let remote_test_server = builder.ensure(tool::RemoteTestServer { compiler, target });
2932+
let remote_test_server =
2933+
builder.ensure(tool::RemoteTestServer { build_compiler: compiler, target });
29332934

29342935
// Spawn the emulator and wait for it to come online
29352936
let tool = builder.tool_exe(Tool::RemoteTestClient);

src/bootstrap/src/core/build_steps/tool.rs

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ impl Step for ToolBuild {
133133
builder.std(self.build_compiler, target);
134134
}
135135
}
136-
Mode::ToolBootstrap => {} // uses downloaded stage0 compiler libs
136+
Mode::ToolBootstrap | Mode::ToolTarget => {} // uses downloaded stage0 compiler libs
137137
_ => panic!("unexpected Mode for tool build"),
138138
}
139139

@@ -196,7 +196,7 @@ impl Step for ToolBuild {
196196
Kind::Build,
197197
self.mode,
198198
self.tool,
199-
self.build_compiler.stage,
199+
self.build_compiler.stage + 1,
200200
&self.build_compiler.host,
201201
&self.target,
202202
);
@@ -367,12 +367,14 @@ pub(crate) fn get_tool_rustc_compiler(
367367

368368
/// Returns a compiler that is able to compile a `ToolTarget` tool for the given `target`.
369369
pub(crate) fn get_tool_target_compiler(builder: &Builder<'_>, target: TargetSelection) -> Compiler {
370-
if builder.host_target == target {
370+
let compiler = if builder.host_target == target {
371371
builder.compiler(0, builder.host_target)
372372
} else {
373373
// FIXME: should this be builder.top_stage to avoid rebuilds?
374-
builder.compiler(1, target)
375-
}
374+
builder.compiler(1, builder.host_target)
375+
};
376+
builder.std(compiler, target);
377+
compiler
376378
}
377379

378380
/// Links a built tool binary with the given `name` from the build directory to the
@@ -647,7 +649,7 @@ impl Step for ErrorIndex {
647649

648650
#[derive(Debug, Clone, Hash, PartialEq, Eq)]
649651
pub struct RemoteTestServer {
650-
pub compiler: Compiler,
652+
pub build_compiler: Compiler,
651653
pub target: TargetSelection,
652654
}
653655

@@ -660,17 +662,17 @@ impl Step for RemoteTestServer {
660662

661663
fn make_run(run: RunConfig<'_>) {
662664
run.builder.ensure(RemoteTestServer {
663-
compiler: run.builder.compiler(run.builder.top_stage, run.builder.config.host_target),
665+
build_compiler: get_tool_target_compiler(run.builder, run.target),
664666
target: run.target,
665667
});
666668
}
667669

668670
fn run(self, builder: &Builder<'_>) -> ToolBuildResult {
669671
builder.ensure(ToolBuild {
670-
build_compiler: self.compiler,
672+
build_compiler: self.build_compiler,
671673
target: self.target,
672674
tool: "remote-test-server",
673-
mode: Mode::ToolStd,
675+
mode: Mode::ToolTarget,
674676
path: "src/tools/remote-test-server",
675677
source_type: SourceType::InTree,
676678
extra_features: Vec::new(),
@@ -679,6 +681,10 @@ impl Step for RemoteTestServer {
679681
artifact_kind: ToolArtifactKind::Binary,
680682
})
681683
}
684+
685+
fn metadata(&self) -> Option<StepMetadata> {
686+
Some(StepMetadata::build("remote-test-server", self.target).built_by(self.build_compiler))
687+
}
682688
}
683689

684690
#[derive(Debug, Clone, Hash, PartialEq, Eq, Ord, PartialOrd)]

0 commit comments

Comments
 (0)