From 39ae2fb31641cca3f9c0780a50a7be6cf8ad9a6d Mon Sep 17 00:00:00 2001 From: Gus Wynn Date: Tue, 15 Sep 2020 11:46:39 -0700 Subject: [PATCH] add config option to add only debug! (and not trace!) calls --- compiler/rustc/Cargo.toml | 1 + compiler/rustc_driver/Cargo.toml | 1 + src/bootstrap/config.rs | 5 +++++ src/bootstrap/lib.rs | 2 ++ 4 files changed, 9 insertions(+) diff --git a/compiler/rustc/Cargo.toml b/compiler/rustc/Cargo.toml index 6e6c0c71a1f3b..7b381158f3fba 100644 --- a/compiler/rustc/Cargo.toml +++ b/compiler/rustc/Cargo.toml @@ -20,3 +20,4 @@ features = ['unprefixed_malloc_on_supported_platforms'] jemalloc = ['jemalloc-sys'] llvm = ['rustc_driver/llvm'] max_level_info = ['rustc_driver/max_level_info'] +max_level_debug = ['rustc_driver/max_level_debug'] diff --git a/compiler/rustc_driver/Cargo.toml b/compiler/rustc_driver/Cargo.toml index adfce1008e1ed..0d850491cb126 100644 --- a/compiler/rustc_driver/Cargo.toml +++ b/compiler/rustc_driver/Cargo.toml @@ -39,3 +39,4 @@ winapi = { version = "0.3", features = ["consoleapi", "debugapi", "processenv"] [features] llvm = ['rustc_interface/llvm'] max_level_info = ['tracing/max_level_info'] +max_level_debug = ['tracing/max_level_debug'] diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs index 7c8c729b5bfab..8c60befdc91bb 100644 --- a/src/bootstrap/config.rs +++ b/src/bootstrap/config.rs @@ -113,6 +113,7 @@ pub struct Config { pub rust_debug_assertions: bool, pub rust_debug_assertions_std: bool, pub rust_debug_logging: bool, + pub rust_trace_logging: bool, pub rust_debuginfo_level_rustc: u32, pub rust_debuginfo_level_std: u32, pub rust_debuginfo_level_tools: u32, @@ -394,6 +395,7 @@ struct Rust { debug_assertions: Option, debug_assertions_std: Option, debug_logging: Option, + trace_logging: Option, debuginfo_level: Option, debuginfo_level_rustc: Option, debuginfo_level_std: Option, @@ -603,6 +605,7 @@ impl Config { let mut debug_assertions = None; let mut debug_assertions_std = None; let mut debug_logging = None; + let mut trace_logging = None; let mut debuginfo_level = None; let mut debuginfo_level_rustc = None; let mut debuginfo_level_std = None; @@ -684,6 +687,7 @@ impl Config { debug_assertions = rust.debug_assertions; debug_assertions_std = rust.debug_assertions_std; debug_logging = rust.debug_logging; + trace_logging = rust.trace_logging; debuginfo_level = rust.debuginfo_level; debuginfo_level_rustc = rust.debuginfo_level_rustc; debuginfo_level_std = rust.debuginfo_level_std; @@ -802,6 +806,7 @@ impl Config { debug_assertions_std.unwrap_or(config.rust_debug_assertions); config.rust_debug_logging = debug_logging.unwrap_or(config.rust_debug_assertions); + config.rust_trace_logging = trace_logging.unwrap_or(config.rust_debug_logging); let with_defaults = |debuginfo_level_specific: Option| { debuginfo_level_specific.or(debuginfo_level).unwrap_or(if debug == Some(true) { diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs index 91b85f5af1d4b..432fa13233c3f 100644 --- a/src/bootstrap/lib.rs +++ b/src/bootstrap/lib.rs @@ -549,6 +549,8 @@ impl Build { // as well as tracing *ignoring* this feature when debug_assertions is on if !self.config.rust_debug_logging { features.push_str(" max_level_info"); + } else if !self.config.rust_trace_logging { + features.push_str(" max_level_debug"); } features