From af9b9f6bafdbbd56ff5a0df33697538cc4eb89ee Mon Sep 17 00:00:00 2001 From: Harmen Stoppels Date: Fri, 5 May 2023 14:14:48 +0200 Subject: binutils: enable debug section compression with zlib by default (#37359) --- var/spack/repos/builtin/packages/binutils/package.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/var/spack/repos/builtin/packages/binutils/package.py b/var/spack/repos/builtin/packages/binutils/package.py index cd11f0f8e5..0bec2ca1a2 100644 --- a/var/spack/repos/builtin/packages/binutils/package.py +++ b/var/spack/repos/builtin/packages/binutils/package.py @@ -110,6 +110,13 @@ class Binutils(AutotoolsPackage, GNUMirrorPackage): multi=True, description="Build shared libs, static libs or both", ) + variant( + "compress_debug_sections", + default="zlib", + values=(conditional("zstd", when="@2.40:"), "zlib", "none"), + description="Enable debug section compression by default in ld, gas, gold.", + when="@2.26:", + ) patch("cr16.patch", when="@:2.29.1") patch("update_symbol-2.26.patch", when="@2.26") @@ -250,6 +257,15 @@ class AutotoolsBuilder(spack.build_systems.autotools.AutotoolsBuilder): else: args.append("--disable-pgo-build") + # Compressed debug symbols by default. Note that the "default" flag only applies + # to 2.40: but since it is ignored in earlier versions, that is not a problem. + if self.spec.satisfies("compress_debug_sections=zlib"): + args.append("--enable-compressed-debug-sections=all") + args.append("--enable-default-compressed-debug-sections-algorithm=zlib") + elif self.spec.satisfies("compress_debug_sections=zstd"): + args.append("--enable-compressed-debug-sections=all") + args.append("--enable-default-compressed-debug-sections-algorithm=zstd") + # To avoid namespace collisions with Darwin/BSD system tools, # prefix executables with "g", e.g., gar, gnm; see Homebrew # https://github.com/Homebrew/homebrew-core/blob/master/Formula/binutils.rb -- cgit v1.2.3-60-g2f50