Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
9f7e049
Distribute rustc_codegen_cranelift for arm64 macOS
bjorn3 Jun 30, 2024
64ec270
Promote Mac Catalyst targets to tier 2, and ship with rustup
madsmtm Jun 13, 2024
d12d122
rewrite and rename issue-14698 to rmake
Oneirical Jul 16, 2024
5a10ceb
rewrite and rename issue-33329 to ui test
Oneirical Jul 16, 2024
1a0baaa
rewrite and rename issue-107094 to rmake
Oneirical Jul 16, 2024
ead6aad
Make command output capturing more explicit
Kobzol Jul 7, 2024
1984a46
Make it easier to detect when bootstrap tries to read uncaptured stdo…
Kobzol Jul 7, 2024
5b0b4ff
Update wasi-sdk in CI to latest release
alexcrichton Jul 19, 2024
006c884
Fix two new failing tests
alexcrichton Jul 19, 2024
7b19389
rewrite test-benches to rmake
Oneirical Jul 19, 2024
2733494
rewrite c-unwind-abi-catch-panic to rmake
Oneirical Jul 19, 2024
2192a91
rewrite compiler-lookup-paths-2 to rmake
Oneirical Jul 19, 2024
59429e6
Rewrite `test-float-parse` in Rust
tgross35 Jul 20, 2024
51827ce
Move `test-float-parse` to the global workspace
tgross35 Jul 20, 2024
6062059
Expose `test-float-parse` via bootstrap
tgross35 Jul 20, 2024
7f7ec2d
Run `test-float-parse` as part of CI
tgross35 Jul 20, 2024
6c2944d
Rollup merge of #126450 - madsmtm:promote-mac-catalyst, r=Mark-Simula…
matthiaskrgr Jul 20, 2024
ef5b297
Rollup merge of #127177 - bjorn3:arm64_macos_cg_clif, r=Mark-Simulacrum
matthiaskrgr Jul 20, 2024
89049ae
Rollup merge of #127510 - tgross35:test-float-parse-update, r=Mark-Si…
matthiaskrgr Jul 20, 2024
5582a3e
Rollup merge of #127799 - Kobzol:bootstrap-cmd-refactor-7, r=onur-ozkan
matthiaskrgr Jul 20, 2024
f31c7a5
Rollup merge of #127820 - Oneirical:intestellar-travel, r=jieyouxu
matthiaskrgr Jul 20, 2024
863fcea
Rollup merge of #127977 - alexcrichton:update-wasi-sdk, r=Mark-Simula…
matthiaskrgr Jul 20, 2024
7c6d836
Rollup merge of #127985 - Oneirical:testibule-of-hell, r=Kobzol
matthiaskrgr Jul 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Make command output capturing more explicit
Now there are separate functions for running a command without capturing, running while capturing stdout
and running while capturing everything. This should help avoid situations where stdout/stderr is accessed
when it was not captured.
  • Loading branch information
Kobzol committed Jul 19, 2024
commit ead6aad53284bce051d861be0d66794c2785c4ad
6 changes: 3 additions & 3 deletions src/bootstrap/src/core/build_steps/compile.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1481,7 +1481,7 @@ pub fn compiler_file(
let mut cmd = command(compiler);
cmd.args(builder.cflags(target, GitRepo::Rustc, c));
cmd.arg(format!("-print-file-name={file}"));
let out = cmd.capture_stdout().run(builder).stdout();
let out = cmd.run_capture_stdout(builder).stdout();
PathBuf::from(out.trim())
}

Expand Down Expand Up @@ -1842,7 +1842,7 @@ impl Step for Assemble {
builder.ensure(llvm::Llvm { target: target_compiler.host });
if !builder.config.dry_run() && builder.config.llvm_tools_enabled {
let llvm_bin_dir =
command(llvm_config).capture_stdout().arg("--bindir").run(builder).stdout();
command(llvm_config).arg("--bindir").run_capture_stdout(builder).stdout();
let llvm_bin_dir = Path::new(llvm_bin_dir.trim());

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

let previous_mtime = t!(t!(path.metadata()).modified());
command("strip").capture().arg("--strip-debug").arg(path).run(builder);
command("strip").arg("--strip-debug").arg(path).run_capture(builder);

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

Expand Down
6 changes: 3 additions & 3 deletions src/bootstrap/src/core/build_steps/dist.rs
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ fn make_win_dist(
//Ask gcc where it keeps its stuff
let mut cmd = command(builder.cc(target));
cmd.arg("-print-search-dirs");
let gcc_out = cmd.capture_stdout().run(builder).stdout();
let gcc_out = cmd.run_capture_stdout(builder).stdout();

let mut bin_path: Vec<_> = env::split_paths(&env::var_os("PATH").unwrap_or_default()).collect();
let mut lib_path = Vec::new();
Expand Down Expand Up @@ -1060,7 +1060,7 @@ impl Step for PlainSourceTarball {
cmd.arg("--sync").arg(manifest_path);
}

let config = cmd.capture().run(builder).stdout();
let config = cmd.run_capture(builder).stdout();

let cargo_config_dir = plain_dst_src.join(".cargo");
builder.create_dir(&cargo_config_dir);
Expand Down Expand Up @@ -2068,7 +2068,7 @@ fn maybe_install_llvm(
let mut cmd = command(llvm_config);
cmd.arg("--libfiles");
builder.verbose(|| println!("running {cmd:?}"));
let files = cmd.capture_stdout().run(builder).stdout();
let files = cmd.run_capture_stdout(builder).stdout();
let build_llvm_out = &builder.llvm_out(builder.config.build);
let target_llvm_out = &builder.llvm_out(target);
for file in files.trim_end().split(' ') {
Expand Down
10 changes: 4 additions & 6 deletions src/bootstrap/src/core/build_steps/format.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ fn get_rustfmt_version(build: &Builder<'_>) -> Option<(String, PathBuf)> {
});
cmd.arg("--version");

let output = cmd.capture().allow_failure().run(build);
let output = cmd.allow_failure().run_capture(build);
if output.is_failure() {
return None;
}
Expand Down Expand Up @@ -160,25 +160,23 @@ pub fn format(build: &Builder<'_>, check: bool, all: bool, paths: &[PathBuf]) {
}
}
let git_available =
helpers::git(None).capture().allow_failure().arg("--version").run(build).is_success();
helpers::git(None).allow_failure().arg("--version").run_capture(build).is_success();

let mut adjective = None;
if git_available {
let in_working_tree = helpers::git(Some(&build.src))
.capture()
.allow_failure()
.arg("rev-parse")
.arg("--is-inside-work-tree")
.run(build)
.run_capture(build)
.is_success();
if in_working_tree {
let untracked_paths_output = helpers::git(Some(&build.src))
.capture_stdout()
.arg("status")
.arg("--porcelain")
.arg("-z")
.arg("--untracked-files=normal")
.run(build)
.run_capture_stdout(build)
.stdout();
let untracked_paths: Vec<_> = untracked_paths_output
.split_terminator('\0')
Expand Down
6 changes: 3 additions & 3 deletions src/bootstrap/src/core/build_steps/llvm.rs
Original file line number Diff line number Diff line change
Expand Up @@ -480,7 +480,7 @@ impl Step for Llvm {
builder.ensure(Llvm { target: builder.config.build });
if !builder.config.dry_run() {
let llvm_bindir =
command(&llvm_config).capture_stdout().arg("--bindir").run(builder).stdout();
command(&llvm_config).arg("--bindir").run_capture_stdout(builder).stdout();
let host_bin = Path::new(llvm_bindir.trim());
cfg.define(
"LLVM_TABLEGEN",
Expand Down Expand Up @@ -531,7 +531,7 @@ impl Step for Llvm {
// Helper to find the name of LLVM's shared library on darwin and linux.
let find_llvm_lib_name = |extension| {
let version =
command(&res.llvm_config).capture_stdout().arg("--version").run(builder).stdout();
command(&res.llvm_config).arg("--version").run_capture_stdout(builder).stdout();
let major = version.split('.').next().unwrap();

match &llvm_version_suffix {
Expand Down Expand Up @@ -587,7 +587,7 @@ fn check_llvm_version(builder: &Builder<'_>, llvm_config: &Path) {
return;
}

let version = command(llvm_config).capture_stdout().arg("--version").run(builder).stdout();
let version = command(llvm_config).arg("--version").run_capture_stdout(builder).stdout();
let mut parts = version.split('.').take(2).filter_map(|s| s.parse::<u32>().ok());
if let (Some(major), Some(_minor)) = (parts.next(), parts.next()) {
if major >= 17 {
Expand Down
2 changes: 1 addition & 1 deletion src/bootstrap/src/core/build_steps/run.rs
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ impl Step for BuildManifest {
panic!("\n\nfailed to specify `dist.upload-addr` in `config.toml`\n\n")
});

let today = command("date").capture_stdout().arg("+%Y-%m-%d").run(builder).stdout();
let today = command("date").arg("+%Y-%m-%d").run_capture_stdout(builder).stdout();

cmd.arg(sign);
cmd.arg(distdir(builder));
Expand Down
11 changes: 4 additions & 7 deletions src/bootstrap/src/core/build_steps/setup.rs
Original file line number Diff line number Diff line change
Expand Up @@ -275,7 +275,7 @@ impl Step for Link {
}

fn rustup_installed(builder: &Builder<'_>) -> bool {
command("rustup").capture_stdout().arg("--version").run(builder).is_success()
command("rustup").arg("--version").run_capture_stdout(builder).is_success()
}

fn stage_dir_exists(stage_path: &str) -> bool {
Expand Down Expand Up @@ -313,10 +313,9 @@ fn attempt_toolchain_link(builder: &Builder<'_>, stage_path: &str) {

fn toolchain_is_linked(builder: &Builder<'_>) -> bool {
match command("rustup")
.capture_stdout()
.allow_failure()
.args(["toolchain", "list"])
.run(builder)
.run_capture_stdout(builder)
.stdout_if_ok()
{
Some(toolchain_list) => {
Expand All @@ -341,9 +340,8 @@ fn toolchain_is_linked(builder: &Builder<'_>) -> bool {

fn try_link_toolchain(builder: &Builder<'_>, stage_path: &str) -> bool {
command("rustup")
.capture_stdout()
.args(["toolchain", "link", "stage1", stage_path])
.run(builder)
.run_capture_stdout(builder)
.is_success()
}

Expand Down Expand Up @@ -481,9 +479,8 @@ impl Step for Hook {
// install a git hook to automatically run tidy, if they want
fn install_git_hook_maybe(builder: &Builder<'_>, config: &Config) -> io::Result<()> {
let git = helpers::git(Some(&config.src))
.capture()
.args(["rev-parse", "--git-common-dir"])
.run(builder)
.run_capture(builder)
.stdout();
let git = PathBuf::from(git.trim());
let hooks_dir = git.join("hooks");
Expand Down
3 changes: 1 addition & 2 deletions src/bootstrap/src/core/build_steps/suggest.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,9 @@ pub fn suggest(builder: &Builder<'_>, run: bool) {
let git_config = builder.config.git_config();
let suggestions = builder
.tool_cmd(Tool::SuggestTests)
.capture_stdout()
.env("SUGGEST_TESTS_GIT_REPOSITORY", git_config.git_repository)
.env("SUGGEST_TESTS_NIGHTLY_BRANCH", git_config.nightly_branch)
.run(builder)
.run_capture_stdout(builder)
.stdout();

let suggestions = suggestions
Expand Down
2 changes: 1 addition & 1 deletion src/bootstrap/src/core/build_steps/synthetic_targets.rs
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ fn create_synthetic_target(
// we cannot use nightly features. So `RUSTC_BOOTSTRAP` is needed here.
cmd.env("RUSTC_BOOTSTRAP", "1");

let output = cmd.capture().run(builder).stdout();
let output = cmd.run_capture(builder).stdout();
let mut spec: serde_json::Value = serde_json::from_slice(output.as_bytes()).unwrap();
let spec_map = spec.as_object_mut().unwrap();

Expand Down
Loading