mirror of
https://github.com/rust-lang/rust.git
synced 2025-05-14 02:49:40 +00:00
Auto merge of #134803 - clubby789:strip-debuginfo, r=Kobzol
Strip debuginfo from rustc-main and rustdoc r? `@Kobzol` Split from #134690
This commit is contained in:
commit
e5f0d6ffbd
@ -984,6 +984,7 @@ impl Step for Rustc {
|
||||
true, // Only ship rustc_driver.so and .rmeta files, not all intermediate .rlib files.
|
||||
);
|
||||
|
||||
let target_root_dir = stamp.parent().unwrap();
|
||||
// When building `librustc_driver.so` (like `libLLVM.so`) on linux, it can contain
|
||||
// unexpected debuginfo from dependencies, for example from the C++ standard library used in
|
||||
// our LLVM wrapper. Unless we're explicitly requesting `librustc_driver` to be built with
|
||||
@ -992,11 +993,16 @@ impl Step for Rustc {
|
||||
if builder.config.rust_debuginfo_level_rustc == DebuginfoLevel::None
|
||||
&& builder.config.rust_debuginfo_level_tools == DebuginfoLevel::None
|
||||
{
|
||||
let target_root_dir = stamp.parent().unwrap();
|
||||
let rustc_driver = target_root_dir.join("librustc_driver.so");
|
||||
strip_debug(builder, target, &rustc_driver);
|
||||
}
|
||||
|
||||
if builder.config.rust_debuginfo_level_rustc == DebuginfoLevel::None {
|
||||
// Due to LTO a lot of debug info from C++ dependencies such as jemalloc can make it into
|
||||
// our final binaries
|
||||
strip_debug(builder, target, &target_root_dir.join("rustc-main"));
|
||||
}
|
||||
|
||||
builder.ensure(RustcLink::from_rustc(
|
||||
self,
|
||||
builder.compiler(compiler.stage, builder.config.build),
|
||||
|
@ -5,7 +5,7 @@ use crate::core::build_steps::toolstate::ToolState;
|
||||
use crate::core::build_steps::{compile, llvm};
|
||||
use crate::core::builder;
|
||||
use crate::core::builder::{Builder, Cargo as CargoCommand, RunConfig, ShouldRun, Step};
|
||||
use crate::core::config::TargetSelection;
|
||||
use crate::core::config::{DebuginfoLevel, TargetSelection};
|
||||
use crate::utils::channel::GitInfo;
|
||||
use crate::utils::exec::{BootstrapCommand, command};
|
||||
use crate::utils::helpers::{add_dylib_path, exe, t};
|
||||
@ -671,6 +671,11 @@ impl Step for Rustdoc {
|
||||
|
||||
// don't create a stage0-sysroot/bin directory.
|
||||
if target_compiler.stage > 0 {
|
||||
if builder.config.rust_debuginfo_level_tools == DebuginfoLevel::None {
|
||||
// Due to LTO a lot of debug info from C++ dependencies such as jemalloc can make it into
|
||||
// our final binaries
|
||||
compile::strip_debug(builder, target, &tool_rustdoc);
|
||||
}
|
||||
let bin_rustdoc = bin_rustdoc();
|
||||
builder.copy_link(&tool_rustdoc, &bin_rustdoc);
|
||||
bin_rustdoc
|
||||
|
@ -89,6 +89,7 @@ ENV RUST_CONFIGURE_ARGS \
|
||||
--set rust.lto=thin \
|
||||
--set rust.codegen-units=1
|
||||
|
||||
# Note that `rust.debug` is set to true *only* for `opt-dist`
|
||||
ENV SCRIPT python3 ../x.py build --set rust.debug=true opt-dist && \
|
||||
./build/$HOSTS/stage0-tools-bin/opt-dist linux-ci -- python3 ../x.py dist \
|
||||
--host $HOSTS --target $HOSTS \
|
||||
|
Loading…
Reference in New Issue
Block a user