Gate binary dependency information behind -Zbinary-dep-depinfo
diff --git a/src/librustc/session/config.rs b/src/librustc/session/config.rs
index 470a08f..9a84297 100644
--- a/src/librustc/session/config.rs
+++ b/src/librustc/session/config.rs
@@ -1468,6 +1468,8 @@
symbol_mangling_version: SymbolManglingVersion = (SymbolManglingVersion::Legacy,
parse_symbol_mangling_version, [TRACKED],
"which mangling version to use for symbol names"),
+ binary_dep_depinfo: bool = (false, parse_bool, [TRACKED],
+ "include artifacts (sysroot, crate dependencies) used during compilation in dep-info"),
}
pub fn default_lib_output() -> CrateType {
diff --git a/src/librustc/session/mod.rs b/src/librustc/session/mod.rs
index 664926a..c88ca13 100644
--- a/src/librustc/session/mod.rs
+++ b/src/librustc/session/mod.rs
@@ -545,6 +545,9 @@
pub fn print_llvm_passes(&self) -> bool {
self.opts.debugging_opts.print_llvm_passes
}
+ pub fn binary_dep_depinfo(&self) -> bool {
+ self.opts.debugging_opts.binary_dep_depinfo
+ }
/// Gets the features enabled for the current compilation session.
/// DO NOT USE THIS METHOD if there is a TyCtxt available, as it circumvents
diff --git a/src/librustc_interface/passes.rs b/src/librustc_interface/passes.rs
index 4692155..772395b 100644
--- a/src/librustc_interface/passes.rs
+++ b/src/librustc_interface/passes.rs
@@ -677,17 +677,19 @@
.map(|fmap| escape_dep_filename(&fmap.name))
.collect();
- for cnum in compiler.cstore.crates_untracked() {
- let metadata = compiler.cstore.crate_data_as_rc_any(cnum);
- let metadata = metadata.downcast_ref::<cstore::CrateMetadata>().unwrap();
- if let Some((path, _)) = &metadata.source.dylib {
- files.push(escape_dep_filename(&FileName::Real(path.clone())));
- }
- if let Some((path, _)) = &metadata.source.rlib {
- files.push(escape_dep_filename(&FileName::Real(path.clone())));
- }
- if let Some((path, _)) = &metadata.source.rmeta {
- files.push(escape_dep_filename(&FileName::Real(path.clone())));
+ if sess.binary_dep_depinfo() {
+ for cnum in compiler.cstore.crates_untracked() {
+ let metadata = compiler.cstore.crate_data_as_rc_any(cnum);
+ let metadata = metadata.downcast_ref::<cstore::CrateMetadata>().unwrap();
+ if let Some((path, _)) = &metadata.source.dylib {
+ files.push(escape_dep_filename(&FileName::Real(path.clone())));
+ }
+ if let Some((path, _)) = &metadata.source.rlib {
+ files.push(escape_dep_filename(&FileName::Real(path.clone())));
+ }
+ if let Some((path, _)) = &metadata.source.rmeta {
+ files.push(escape_dep_filename(&FileName::Real(path.clone())));
+ }
}
}