Make sure pdbs are copied along with exe and dlls when bootstrapping
This commit is contained in:
parent
ee88f46bb5
commit
2a66685ebf
|
@ -27,7 +27,7 @@ use crate::config::TargetSelection;
|
||||||
use crate::dist;
|
use crate::dist;
|
||||||
use crate::native;
|
use crate::native;
|
||||||
use crate::tool::SourceType;
|
use crate::tool::SourceType;
|
||||||
use crate::util::{exe, is_dylib, symlink_dir};
|
use crate::util::{exe, is_debug_info, is_dylib, symlink_dir};
|
||||||
use crate::{Compiler, DependencyType, GitRepo, Mode};
|
use crate::{Compiler, DependencyType, GitRepo, Mode};
|
||||||
|
|
||||||
#[derive(Debug, PartialOrd, Ord, Copy, Clone, PartialEq, Eq, Hash)]
|
#[derive(Debug, PartialOrd, Ord, Copy, Clone, PartialEq, Eq, Hash)]
|
||||||
|
@ -1049,7 +1049,8 @@ impl Step for Assemble {
|
||||||
let src_libdir = builder.sysroot_libdir(build_compiler, host);
|
let src_libdir = builder.sysroot_libdir(build_compiler, host);
|
||||||
for f in builder.read_dir(&src_libdir) {
|
for f in builder.read_dir(&src_libdir) {
|
||||||
let filename = f.file_name().into_string().unwrap();
|
let filename = f.file_name().into_string().unwrap();
|
||||||
if is_dylib(&filename) && !proc_macros.contains(&filename) {
|
if (is_dylib(&filename) || is_debug_info(&filename)) && !proc_macros.contains(&filename)
|
||||||
|
{
|
||||||
builder.copy(&f.path(), &rustc_libdir.join(&filename));
|
builder.copy(&f.path(), &rustc_libdir.join(&filename));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1166,6 +1167,7 @@ pub fn run_cargo(
|
||||||
if !(filename.ends_with(".rlib")
|
if !(filename.ends_with(".rlib")
|
||||||
|| filename.ends_with(".lib")
|
|| filename.ends_with(".lib")
|
||||||
|| filename.ends_with(".a")
|
|| filename.ends_with(".a")
|
||||||
|
|| is_debug_info(&filename)
|
||||||
|| is_dylib(&filename)
|
|| is_dylib(&filename)
|
||||||
|| (is_check && filename.ends_with(".rmeta")))
|
|| (is_check && filename.ends_with(".rmeta")))
|
||||||
{
|
{
|
||||||
|
|
|
@ -32,6 +32,12 @@ pub fn is_dylib(name: &str) -> bool {
|
||||||
name.ends_with(".dylib") || name.ends_with(".so") || name.ends_with(".dll")
|
name.ends_with(".dylib") || name.ends_with(".so") || name.ends_with(".dll")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns `true` if the file name given looks like a debug info file
|
||||||
|
pub fn is_debug_info(name: &str) -> bool {
|
||||||
|
// FIXME: consider split debug info on other platforms (e.g., Linux, macOS)
|
||||||
|
name.ends_with(".pdb")
|
||||||
|
}
|
||||||
|
|
||||||
/// Returns the corresponding relative library directory that the compiler's
|
/// Returns the corresponding relative library directory that the compiler's
|
||||||
/// dylibs will be found in.
|
/// dylibs will be found in.
|
||||||
pub fn libdir(target: TargetSelection) -> &'static str {
|
pub fn libdir(target: TargetSelection) -> &'static str {
|
||||||
|
|
Loading…
Reference in New Issue