From 0d8bf72a36eb78c1a9bf721b9af3055f62cfc3dc Mon Sep 17 00:00:00 2001 From: "Felix S. Klock II" Date: Fri, 19 Feb 2021 13:25:26 -0500 Subject: [PATCH] Created experimental build.print_step_rusage setting Intended to piggy-back on output from existing build.print_step_timings setting. --- config.toml.example | 6 ++++++ src/bootstrap/builder.rs | 4 ++++ src/bootstrap/config.rs | 3 +++ 3 files changed, 13 insertions(+) diff --git a/config.toml.example b/config.toml.example index f3bc98d78ae..ba382aac828 100644 --- a/config.toml.example +++ b/config.toml.example @@ -290,6 +290,12 @@ changelog-seen = 2 # tracking over time) #print-step-timings = false +# Print out resource usage data for each rustbuild step, as defined by the Unix +# struct rusage. (Note that this setting is completely unstable: the data it +# captures, what platforms it supports, the format of its associated output, and +# this setting's very existence, are all subject to change.) +#print-step-rusage = false + # ============================================================================= # General install configuration options # ============================================================================= diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs index 61554a316d0..c0175a0710f 100644 --- a/src/bootstrap/builder.rs +++ b/src/bootstrap/builder.rs @@ -1259,6 +1259,10 @@ impl<'a> Builder<'a> { cargo.env("RUSTC_PRINT_STEP_TIMINGS", "1"); } + if self.config.print_step_rusage { + cargo.env("RUSTC_PRINT_STEP_RUSAGE", "1"); + } + if self.config.backtrace_on_ice { cargo.env("RUSTC_BACKTRACE_ON_ICE", "1"); } diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs index d50d605d5c6..b2af8e59b7c 100644 --- a/src/bootstrap/config.rs +++ b/src/bootstrap/config.rs @@ -161,6 +161,7 @@ pub struct Config { pub verbose_tests: bool, pub save_toolstates: Option, pub print_step_timings: bool, + pub print_step_rusage: bool, pub missing_tools: bool, // Fallback musl-root for all targets @@ -380,6 +381,7 @@ struct Build { configure_args: Option>, local_rebuild: Option, print_step_timings: Option, + print_step_rusage: Option, check_stage: Option, doc_stage: Option, build_stage: Option, @@ -679,6 +681,7 @@ impl Config { set(&mut config.configure_args, build.configure_args); set(&mut config.local_rebuild, build.local_rebuild); set(&mut config.print_step_timings, build.print_step_timings); + set(&mut config.print_step_rusage, build.print_step_rusage); // See https://github.com/rust-lang/compiler-team/issues/326 config.stage = match config.cmd {