Skip to content

Commit

Permalink
linker: also pass debuginfo compression flags
Browse files Browse the repository at this point in the history
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
durin42 committed Oct 13, 2023
1 parent eb0f3ed commit 3215725
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 3215725

Please sign in to comment.