Skip dsymutil
by default for compiler bootstrap
`dsymutil` adds time to builds on Apple platforms for no clear benefit, and also makes it more difficult for debuggers to find debug info. The compiler currently defaults to running `dsymutil` to preserve its historical default, but when compiling the compiler itself, we skip it by default since we know it's safe to do so in that case.
This commit is contained in:
parent
1f5bc176b0
commit
e628fcfcb5
@ -426,6 +426,14 @@ changelog-seen = 2
|
||||
# FIXME(#61117): Some tests fail when this option is enabled.
|
||||
#debuginfo-level-tests = 0
|
||||
|
||||
# Whether to run `dsymutil` on Apple platforms to gather debug info into .dSYM
|
||||
# bundles. `dsymutil` adds time to builds for no clear benefit, and also makes
|
||||
# it more difficult for debuggers to find debug info. The compiler currently
|
||||
# defaults to running `dsymutil` to preserve its historical default, but when
|
||||
# compiling the compiler itself, we skip it by default since we know it's safe
|
||||
# to do so in that case.
|
||||
#run-dsymutil = false
|
||||
|
||||
# Whether or not `panic!`s generate backtraces (RUST_BACKTRACE)
|
||||
#backtrace = true
|
||||
|
||||
|
@ -1126,6 +1126,19 @@ impl<'a> Builder<'a> {
|
||||
},
|
||||
);
|
||||
|
||||
// `dsymutil` adds time to builds on Apple platforms for no clear benefit, and also makes
|
||||
// it more difficult for debuggers to find debug info. The compiler currently defaults to
|
||||
// running `dsymutil` to preserve its historical default, but when compiling the compiler
|
||||
// itself, we skip it by default since we know it's safe to do so in that case.
|
||||
// See https://github.com/rust-lang/rust/issues/79361 for more info on this flag.
|
||||
if target.contains("apple") {
|
||||
if self.config.rust_run_dsymutil {
|
||||
rustflags.arg("-Zrun-dsymutil=yes");
|
||||
} else {
|
||||
rustflags.arg("-Zrun-dsymutil=no");
|
||||
}
|
||||
}
|
||||
|
||||
if self.config.cmd.bless() {
|
||||
// Bless `expect!` tests.
|
||||
cargo.env("UPDATE_EXPECT", "1");
|
||||
|
@ -123,6 +123,7 @@ pub struct Config {
|
||||
pub rust_debuginfo_level_std: u32,
|
||||
pub rust_debuginfo_level_tools: u32,
|
||||
pub rust_debuginfo_level_tests: u32,
|
||||
pub rust_run_dsymutil: bool,
|
||||
pub rust_rpath: bool,
|
||||
pub rustc_parallel: bool,
|
||||
pub rustc_default_linker: Option<String>,
|
||||
@ -466,6 +467,7 @@ struct Rust {
|
||||
debuginfo_level_std: Option<u32>,
|
||||
debuginfo_level_tools: Option<u32>,
|
||||
debuginfo_level_tests: Option<u32>,
|
||||
run_dsymutil: Option<bool>,
|
||||
backtrace: Option<bool>,
|
||||
incremental: Option<bool>,
|
||||
parallel_compiler: Option<bool>,
|
||||
@ -830,6 +832,7 @@ impl Config {
|
||||
debuginfo_level_std = rust.debuginfo_level_std;
|
||||
debuginfo_level_tools = rust.debuginfo_level_tools;
|
||||
debuginfo_level_tests = rust.debuginfo_level_tests;
|
||||
config.rust_run_dsymutil = rust.run_dsymutil.unwrap_or(false);
|
||||
optimize = rust.optimize;
|
||||
ignore_git = rust.ignore_git;
|
||||
set(&mut config.rust_new_symbol_mangling, rust.new_symbol_mangling);
|
||||
|
Loading…
Reference in New Issue
Block a user