Skip to content

Commit

Permalink
Auto merge of rust-lang#116702 - durin42:compress-debuginfo, r=compil…
Browse files Browse the repository at this point in the history
…er-errors

linker: also pass debuginfo compression flags

We support compressing debuginfo during codegen, but until this patch we didn't pass the flag to the linker. Doing so means we'll respect the requested compression even when building binaries or dylibs. This produces much smaller binaries: in my testing a debug build of ripgrep goes from 85M to 32M, and the target/ directory (after a clean build in both cases) goes from 508M to 329M just by enabling zlib compression of debuginfo.
  • Loading branch information
bors committed Oct 13, 2023
2 parents fcab248 + 3215725 commit 246c990
Showing 1 changed file with 9 additions and 0 deletions.
9 changes: 9 additions & 0 deletions compiler/rustc_codegen_ssa/src/back/linker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -626,6 +626,15 @@ impl<'a> Linker for GccLinker<'a> {
self.linker_arg("--strip-all");
}
}
match self.sess.opts.unstable_opts.debuginfo_compression {
config::DebugInfoCompression::None => {}
config::DebugInfoCompression::Zlib => {
self.linker_arg("--compress-debug-sections=zlib");
}
config::DebugInfoCompression::Zstd => {
self.linker_arg("--compress-debug-sections=zstd");
}
}
}

fn no_crt_objects(&mut self) {
Expand Down

0 comments on commit 246c990

Please sign in to comment.