Simplify trim-paths feature by merging all debuginfo options together
This commit is contained in:
parent
c5e7f45b62
commit
777c6b46cc
8 changed files with 17 additions and 70 deletions
|
@ -990,22 +990,12 @@ bitflags::bitflags! {
|
|||
const MACRO = 1 << 0;
|
||||
/// Apply remappings to printed compiler diagnostics
|
||||
const DIAGNOSTICS = 1 << 1;
|
||||
/// Apply remappings to debug information only when they are written to
|
||||
/// compiled executables or libraries, but not when they are in split
|
||||
/// debuginfo files
|
||||
const UNSPLIT_DEBUGINFO = 1 << 2;
|
||||
/// Apply remappings to debug information only when they are written to
|
||||
/// split debug information files, but not in compiled executables or
|
||||
/// libraries
|
||||
const SPLIT_DEBUGINFO = 1 << 3;
|
||||
/// Apply remappings to the paths pointing to split debug information
|
||||
/// files. Does nothing when these files are not generated.
|
||||
const SPLIT_DEBUGINFO_PATH = 1 << 4;
|
||||
/// Apply remappings to debug informations
|
||||
const DEBUGINFO = 1 << 3;
|
||||
|
||||
/// An alias for macro,unsplit-debuginfo,split-debuginfo-path. This
|
||||
/// ensures all paths in compiled executables or libraries are remapped
|
||||
/// but not elsewhere.
|
||||
const OBJECT = Self::MACRO.bits() | Self::UNSPLIT_DEBUGINFO.bits() | Self::SPLIT_DEBUGINFO_PATH.bits();
|
||||
/// An alias for `macro` and `debuginfo`. This ensures all paths in compiled
|
||||
/// executables or libraries are remapped but not elsewhere.
|
||||
const OBJECT = Self::MACRO.bits() | Self::DEBUGINFO.bits();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -433,7 +433,8 @@ mod desc {
|
|||
"a `,` separated combination of `bti`, `b-key`, `pac-ret`, or `leaf`";
|
||||
pub const parse_proc_macro_execution_strategy: &str =
|
||||
"one of supported execution strategies (`same-thread`, or `cross-thread`)";
|
||||
pub const parse_remap_path_scope: &str = "comma separated list of scopes: `macro`, `diagnostics`, `unsplit-debuginfo`, `split-debuginfo`, `split-debuginfo-path`, `object`, `all`";
|
||||
pub const parse_remap_path_scope: &str =
|
||||
"comma separated list of scopes: `macro`, `diagnostics`, `debuginfo`, `object`, `all`";
|
||||
pub const parse_inlining_threshold: &str =
|
||||
"either a boolean (`yes`, `no`, `on`, `off`, etc), or a non-negative number";
|
||||
pub const parse_llvm_module_flag: &str = "<key>:<type>:<value>:<behavior>. Type must currently be `u32`. Behavior should be one of (`error`, `warning`, `require`, `override`, `append`, `appendunique`, `max`, `min`)";
|
||||
|
@ -1156,9 +1157,7 @@ mod parse {
|
|||
*slot |= match s {
|
||||
"macro" => RemapPathScopeComponents::MACRO,
|
||||
"diagnostics" => RemapPathScopeComponents::DIAGNOSTICS,
|
||||
"unsplit-debuginfo" => RemapPathScopeComponents::UNSPLIT_DEBUGINFO,
|
||||
"split-debuginfo" => RemapPathScopeComponents::SPLIT_DEBUGINFO,
|
||||
"split-debuginfo-path" => RemapPathScopeComponents::SPLIT_DEBUGINFO_PATH,
|
||||
"debuginfo" => RemapPathScopeComponents::DEBUGINFO,
|
||||
"object" => RemapPathScopeComponents::OBJECT,
|
||||
"all" => RemapPathScopeComponents::all(),
|
||||
_ => return false,
|
||||
|
|
|
@ -887,37 +887,7 @@ impl Session {
|
|||
}
|
||||
|
||||
pub fn should_prefer_remapped_for_codegen(&self) -> bool {
|
||||
let has_split_debuginfo = match self.split_debuginfo() {
|
||||
SplitDebuginfo::Off => false,
|
||||
SplitDebuginfo::Packed => true,
|
||||
SplitDebuginfo::Unpacked => true,
|
||||
};
|
||||
|
||||
let remap_path_scopes = &self.opts.unstable_opts.remap_path_scope;
|
||||
let mut prefer_remapped = false;
|
||||
|
||||
if remap_path_scopes.contains(RemapPathScopeComponents::UNSPLIT_DEBUGINFO) {
|
||||
prefer_remapped |= !has_split_debuginfo;
|
||||
}
|
||||
|
||||
if remap_path_scopes.contains(RemapPathScopeComponents::SPLIT_DEBUGINFO) {
|
||||
prefer_remapped |= has_split_debuginfo;
|
||||
}
|
||||
|
||||
prefer_remapped
|
||||
}
|
||||
|
||||
pub fn should_prefer_remapped_for_split_debuginfo_paths(&self) -> bool {
|
||||
let has_split_debuginfo = match self.split_debuginfo() {
|
||||
SplitDebuginfo::Off => false,
|
||||
SplitDebuginfo::Packed | SplitDebuginfo::Unpacked => true,
|
||||
};
|
||||
|
||||
self.opts
|
||||
.unstable_opts
|
||||
.remap_path_scope
|
||||
.contains(RemapPathScopeComponents::SPLIT_DEBUGINFO_PATH)
|
||||
&& has_split_debuginfo
|
||||
self.opts.unstable_opts.remap_path_scope.contains(RemapPathScopeComponents::DEBUGINFO)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue