Skip to content

Commit 992fb9e

Browse files
committed
This commit changes run method behavior, corrected command output and failure cases
- Add AsRef impl for build, builder and config for execution context - Correct vanilla command translation to new execution context - Added gitinfo method config
1 parent 0b97080 commit 992fb9e

32 files changed

+232
-282
lines changed

src/bootstrap/src/core/build_steps/clean.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ macro_rules! clean_crate_tree {
8686

8787
// NOTE: doesn't use `run_cargo` because we don't want to save a stamp file,
8888
// and doesn't use `stream_cargo` to avoid passing `--message-format` which `clean` doesn't accept.
89-
cargo.run(builder.context());
89+
cargo.run(builder);
9090
}
9191
}
9292
)+ }

src/bootstrap/src/core/build_steps/compile.rs

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -520,7 +520,7 @@ pub fn std_cargo(builder: &Builder<'_>, target: TargetSelection, stage: u32, car
520520
let mut cmd = command(builder.rustc(cargo.compiler()));
521521
cmd.arg("--target").arg(target.rustc_target_arg());
522522
cmd.arg("--print=deployment-target");
523-
let output = cmd.run_capture_stdout(builder.context()).stdout();
523+
let output = cmd.run_capture_stdout(builder).stdout();
524524

525525
let (env_var, value) = output.split_once('=').unwrap();
526526
// Unconditionally set the env var (if it was set in the environment
@@ -853,7 +853,7 @@ fn copy_sanitizers(
853853
}
854854

855855
fn apple_darwin_update_library_name(builder: &Builder<'_>, library_path: &Path, new_name: &str) {
856-
command("install_name_tool").arg("-id").arg(new_name).arg(library_path).run(builder.context());
856+
command("install_name_tool").arg("-id").arg(new_name).arg(library_path).run(builder);
857857
}
858858

859859
fn apple_darwin_sign_file(builder: &Builder<'_>, file_path: &Path) {
@@ -862,7 +862,7 @@ fn apple_darwin_sign_file(builder: &Builder<'_>, file_path: &Path) {
862862
.arg("-s")
863863
.arg("-")
864864
.arg(file_path)
865-
.run(builder.context());
865+
.run(builder);
866866
}
867867

868868
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
@@ -930,7 +930,7 @@ impl Step for StartupObjects {
930930
.arg("-o")
931931
.arg(dst_file)
932932
.arg(src_file)
933-
.run(builder.context());
933+
.run(builder);
934934
}
935935

936936
let obj = sysroot_dir.join((*file).to_string() + ".o");
@@ -1725,7 +1725,7 @@ pub fn compiler_file(
17251725
cmd.args(builder.cc_handled_clags(target, c));
17261726
cmd.args(builder.cc_unhandled_cflags(target, GitRepo::Rustc, c));
17271727
cmd.arg(format!("-print-file-name={file}"));
1728-
let out = cmd.run_capture_stdout(builder.context()).stdout();
1728+
let out = cmd.run_capture_stdout(builder).stdout();
17291729
PathBuf::from(out.trim())
17301730
}
17311731

@@ -1968,10 +1968,8 @@ impl Step for Assemble {
19681968
if !builder.config.dry_run() && builder.config.llvm_tools_enabled {
19691969
trace!("LLVM tools enabled");
19701970

1971-
let llvm_bin_dir = command(llvm_config)
1972-
.arg("--bindir")
1973-
.run_capture_stdout(builder.context())
1974-
.stdout();
1971+
let llvm_bin_dir =
1972+
command(llvm_config).arg("--bindir").run_capture_stdout(builder).stdout();
19751973
let llvm_bin_dir = Path::new(llvm_bin_dir.trim());
19761974

19771975
// Since we've already built the LLVM tools, install them to the sysroot.
@@ -2542,7 +2540,7 @@ pub fn strip_debug(builder: &Builder<'_>, target: TargetSelection, path: &Path)
25422540
}
25432541

25442542
let previous_mtime = t!(t!(path.metadata()).modified());
2545-
command("strip").arg("--strip-debug").arg(path).run_capture(builder.context());
2543+
command("strip").arg("--strip-debug").arg(path).run_capture(builder);
25462544

25472545
let file = t!(fs::File::open(path));
25482546

src/bootstrap/src/core/build_steps/dist.rs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ fn make_win_dist(
183183
//Ask gcc where it keeps its stuff
184184
let mut cmd = command(builder.cc(target));
185185
cmd.arg("-print-search-dirs");
186-
let gcc_out = cmd.run_capture_stdout(builder.context()).stdout();
186+
let gcc_out = cmd.run_capture_stdout(builder).stdout();
187187

188188
let mut bin_path: Vec<_> = env::split_paths(&env::var_os("PATH").unwrap_or_default()).collect();
189189
let mut lib_path = Vec::new();
@@ -1629,7 +1629,7 @@ impl Step for Extended {
16291629
.arg(pkg.join(component))
16301630
.arg("--nopayload")
16311631
.arg(pkg.join(component).with_extension("pkg"));
1632-
cmd.run(builder.context());
1632+
cmd.run(builder);
16331633
};
16341634

16351635
let prepare = |name: &str| {
@@ -1678,7 +1678,7 @@ impl Step for Extended {
16781678
.arg("--package-path")
16791679
.arg(&pkg);
16801680
let _time = timeit(builder);
1681-
cmd.run(builder.context());
1681+
cmd.run(builder);
16821682
}
16831683

16841684
if target.is_windows() {
@@ -1747,7 +1747,7 @@ impl Step for Extended {
17471747
.arg("var.RustcDir")
17481748
.arg("-out")
17491749
.arg(exe.join("RustcGroup.wxs"))
1750-
.run(builder.context());
1750+
.run(builder);
17511751
if built_tools.contains("rust-docs") {
17521752
command(&heat)
17531753
.current_dir(&exe)
@@ -1764,7 +1764,7 @@ impl Step for Extended {
17641764
.arg(exe.join("DocsGroup.wxs"))
17651765
.arg("-t")
17661766
.arg(etc.join("msi/squash-components.xsl"))
1767-
.run(builder.context());
1767+
.run(builder);
17681768
}
17691769
command(&heat)
17701770
.current_dir(&exe)
@@ -1781,7 +1781,7 @@ impl Step for Extended {
17811781
.arg(exe.join("CargoGroup.wxs"))
17821782
.arg("-t")
17831783
.arg(etc.join("msi/remove-duplicates.xsl"))
1784-
.run(builder.context());
1784+
.run(builder);
17851785
command(&heat)
17861786
.current_dir(&exe)
17871787
.arg("dir")
@@ -1795,7 +1795,7 @@ impl Step for Extended {
17951795
.arg("var.StdDir")
17961796
.arg("-out")
17971797
.arg(exe.join("StdGroup.wxs"))
1798-
.run(builder.context());
1798+
.run(builder);
17991799
if built_tools.contains("rust-analyzer") {
18001800
command(&heat)
18011801
.current_dir(&exe)
@@ -1812,7 +1812,7 @@ impl Step for Extended {
18121812
.arg(exe.join("RustAnalyzerGroup.wxs"))
18131813
.arg("-t")
18141814
.arg(etc.join("msi/remove-duplicates.xsl"))
1815-
.run(builder.context());
1815+
.run(builder);
18161816
}
18171817
if built_tools.contains("clippy") {
18181818
command(&heat)
@@ -1830,7 +1830,7 @@ impl Step for Extended {
18301830
.arg(exe.join("ClippyGroup.wxs"))
18311831
.arg("-t")
18321832
.arg(etc.join("msi/remove-duplicates.xsl"))
1833-
.run(builder.context());
1833+
.run(builder);
18341834
}
18351835
if built_tools.contains("rustfmt") {
18361836
command(&heat)
@@ -1848,7 +1848,7 @@ impl Step for Extended {
18481848
.arg(exe.join("RustFmtGroup.wxs"))
18491849
.arg("-t")
18501850
.arg(etc.join("msi/remove-duplicates.xsl"))
1851-
.run(builder.context());
1851+
.run(builder);
18521852
}
18531853
if built_tools.contains("miri") {
18541854
command(&heat)
@@ -1866,7 +1866,7 @@ impl Step for Extended {
18661866
.arg(exe.join("MiriGroup.wxs"))
18671867
.arg("-t")
18681868
.arg(etc.join("msi/remove-duplicates.xsl"))
1869-
.run(builder.context());
1869+
.run(builder);
18701870
}
18711871
command(&heat)
18721872
.current_dir(&exe)
@@ -1883,7 +1883,7 @@ impl Step for Extended {
18831883
.arg(exe.join("AnalysisGroup.wxs"))
18841884
.arg("-t")
18851885
.arg(etc.join("msi/remove-duplicates.xsl"))
1886-
.run(builder.context());
1886+
.run(builder);
18871887
if target.is_windows_gnu() {
18881888
command(&heat)
18891889
.current_dir(&exe)
@@ -1898,7 +1898,7 @@ impl Step for Extended {
18981898
.arg("var.GccDir")
18991899
.arg("-out")
19001900
.arg(exe.join("GccGroup.wxs"))
1901-
.run(builder.context());
1901+
.run(builder);
19021902
}
19031903

19041904
let candle = |input: &Path| {
@@ -1936,7 +1936,7 @@ impl Step for Extended {
19361936
if target.is_windows_gnu() {
19371937
cmd.arg("-dGccDir=rust-mingw");
19381938
}
1939-
cmd.run(builder.context());
1939+
cmd.run(builder);
19401940
};
19411941
candle(&xform(&etc.join("msi/rust.wxs")));
19421942
candle(&etc.join("msi/ui.wxs"));
@@ -2011,7 +2011,7 @@ impl Step for Extended {
20112011
cmd.arg("-sice:ICE57");
20122012

20132013
let _time = timeit(builder);
2014-
cmd.run(builder.context());
2014+
cmd.run(builder);
20152015

20162016
if !builder.config.dry_run() {
20172017
t!(move_file(exe.join(&filename), distdir(builder).join(&filename)));
@@ -2155,7 +2155,7 @@ fn maybe_install_llvm(
21552155
let mut cmd = command(llvm_config);
21562156
cmd.arg("--libfiles");
21572157
builder.verbose(|| println!("running {cmd:?}"));
2158-
let files = cmd.run_capture_stdout(builder.context()).stdout();
2158+
let files = cmd.run_capture_stdout(builder).stdout();
21592159
let build_llvm_out = &builder.llvm_out(builder.config.build);
21602160
let target_llvm_out = &builder.llvm_out(target);
21612161
for file in files.trim_end().split(' ') {

src/bootstrap/src/core/build_steps/doc.rs

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ impl<P: Step> Step for RustbookSrc<P> {
166166
.arg(&out)
167167
.arg("--rust-root")
168168
.arg(&builder.src)
169-
.run(builder.context());
169+
.run(builder);
170170

171171
for lang in &self.languages {
172172
let out = out.join(lang);
@@ -182,7 +182,7 @@ impl<P: Step> Step for RustbookSrc<P> {
182182
.arg(&out)
183183
.arg("-l")
184184
.arg(lang)
185-
.run(builder.context());
185+
.run(builder);
186186
}
187187
}
188188

@@ -309,7 +309,7 @@ fn invoke_rustdoc(
309309
cmd.arg("--disable-minification");
310310
}
311311

312-
cmd.run(builder.context());
312+
cmd.run(builder);
313313
}
314314

315315
#[derive(Debug, Clone, Hash, PartialEq, Eq)]
@@ -402,7 +402,7 @@ impl Step for Standalone {
402402
} else {
403403
cmd.arg("--markdown-css").arg("rust.css");
404404
}
405-
cmd.run(builder.context());
405+
cmd.run(builder);
406406
}
407407

408408
// We open doc/index.html as the default if invoked as `x.py doc --open`
@@ -499,7 +499,7 @@ impl Step for Releases {
499499
cmd.arg("--disable-minification");
500500
}
501501

502-
cmd.run(builder.context());
502+
cmd.run(builder);
503503
}
504504

505505
// We open doc/RELEASES.html as the default if invoked as `x.py doc --open RELEASES.md`
@@ -745,7 +745,7 @@ fn doc_std(
745745
format!("library{} in {} format", crate_description(requested_crates), format.as_str());
746746
let _guard = builder.msg_doc(compiler, description, target);
747747

748-
cargo.into_cmd().run(builder.context());
748+
cargo.into_cmd().run(builder);
749749
builder.cp_link_r(&out_dir, out);
750750
}
751751

@@ -875,7 +875,7 @@ impl Step for Rustc {
875875
let proc_macro_out_dir = builder.stage_out(compiler, Mode::Rustc).join("doc");
876876
symlink_dir_force(&builder.config, &out, &proc_macro_out_dir);
877877

878-
cargo.into_cmd().run(builder.context());
878+
cargo.into_cmd().run(builder);
879879

880880
if !builder.config.dry_run() {
881881
// Sanity check on linked compiler crates
@@ -1002,7 +1002,7 @@ macro_rules! tool_doc {
10021002
symlink_dir_force(&builder.config, &out, &proc_macro_out_dir);
10031003

10041004
let _guard = builder.msg_doc(compiler, stringify!($tool).to_lowercase(), target);
1005-
cargo.into_cmd().run(builder.context());
1005+
cargo.into_cmd().run(builder);
10061006

10071007
if !builder.config.dry_run() {
10081008
// Sanity check on linked doc directories
@@ -1095,11 +1095,7 @@ impl Step for ErrorIndex {
10951095
builder.info(&format!("Documenting error index ({})", self.target));
10961096
let out = builder.doc_out(self.target);
10971097
t!(fs::create_dir_all(&out));
1098-
tool::ErrorIndex::command(builder)
1099-
.arg("html")
1100-
.arg(out)
1101-
.arg(&builder.version)
1102-
.run(builder.context());
1098+
tool::ErrorIndex::command(builder).arg("html").arg(out).arg(&builder.version).run(builder);
11031099
}
11041100
}
11051101

@@ -1135,7 +1131,7 @@ impl Step for UnstableBookGen {
11351131
cmd.arg(builder.src.join("src"));
11361132
cmd.arg(out);
11371133

1138-
cmd.run(builder.context());
1134+
cmd.run(builder);
11391135
}
11401136
}
11411137

@@ -1233,7 +1229,7 @@ impl Step for RustcBook {
12331229
self.compiler.host,
12341230
self.target,
12351231
);
1236-
cmd.run(builder.context());
1232+
cmd.run(builder);
12371233
drop(doc_generator_guard);
12381234

12391235
// Run rustbook/mdbook to generate the HTML pages.

src/bootstrap/src/core/build_steps/format.rs

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ fn get_rustfmt_version(build: &Builder<'_>) -> Option<(String, BuildStamp)> {
6161
let mut cmd = command(build.config.initial_rustfmt.as_ref()?);
6262
cmd.arg("--version");
6363

64-
let output = cmd.allow_failure().run_capture(build.context());
64+
let output = cmd.allow_failure().run_capture(build);
6565
if output.is_failure() {
6666
return None;
6767
}
@@ -171,27 +171,24 @@ pub fn format(build: &Builder<'_>, check: bool, all: bool, paths: &[PathBuf]) {
171171
override_builder.add(&format!("!{ignore}")).expect(&ignore);
172172
}
173173
}
174-
let git_available = helpers::git(None)
175-
.allow_failure()
176-
.arg("--version")
177-
.run_capture(build.context())
178-
.is_success();
174+
let git_available =
175+
helpers::git(None).allow_failure().arg("--version").run_capture(build).is_success();
179176

180177
let mut adjective = None;
181178
if git_available {
182179
let in_working_tree = helpers::git(Some(&build.src))
183180
.allow_failure()
184181
.arg("rev-parse")
185182
.arg("--is-inside-work-tree")
186-
.run_capture(build.context())
183+
.run_capture(build)
187184
.is_success();
188185
if in_working_tree {
189186
let untracked_paths_output = helpers::git(Some(&build.src))
190187
.arg("status")
191188
.arg("--porcelain")
192189
.arg("-z")
193190
.arg("--untracked-files=normal")
194-
.run_capture_stdout(build.context())
191+
.run_capture_stdout(build)
195192
.stdout();
196193
let untracked_paths: Vec<_> = untracked_paths_output
197194
.split_terminator('\0')

src/bootstrap/src/core/build_steps/gcc.rs

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -236,9 +236,7 @@ fn build_gcc(metadata: &Meta, builder: &Builder<'_>, target: TargetSelection) {
236236
root.clone()
237237
};
238238

239-
command(src_dir.join("contrib/download_prerequisites"))
240-
.current_dir(&src_dir)
241-
.run(builder.context());
239+
command(src_dir.join("contrib/download_prerequisites")).current_dir(&src_dir).run(builder);
242240
let mut configure_cmd = command(src_dir.join("configure"));
243241
configure_cmd
244242
.current_dir(out_dir)
@@ -268,18 +266,14 @@ fn build_gcc(metadata: &Meta, builder: &Builder<'_>, target: TargetSelection) {
268266
.map_or_else(|| cxx.clone(), |ccache| format!("{ccache} {cxx}"));
269267
configure_cmd.env("CXX", cxx);
270268
}
271-
configure_cmd.run(builder.context());
269+
configure_cmd.run(builder);
272270

273271
command("make")
274272
.current_dir(out_dir)
275273
.arg("--silent")
276274
.arg(format!("-j{}", builder.jobs()))
277-
.run_capture_stdout(builder.context());
278-
command("make")
279-
.current_dir(out_dir)
280-
.arg("--silent")
281-
.arg("install")
282-
.run_capture_stdout(builder.context());
275+
.run_capture_stdout(builder);
276+
command("make").current_dir(out_dir).arg("--silent").arg("install").run_capture_stdout(builder);
283277
}
284278

285279
/// Configures a Cargo invocation so that it can build the GCC codegen backend.

0 commit comments

Comments
 (0)