dbef1811c8
Rust 1.74.0 introduced (unstable) support for the `-Zdebuginfo-compression` flag, thus use it. Note that the releases built by the Rust project (i.e. the ones provided by rustup) do not enable support for zstd in their bundled LLVM (yet, at least), thus the Rust compiler will warn, but the build will proceed: warning: unknown debuginfo compression algorithm zstd - will fall back to uncompressed debuginfo Link: https://github.com/rust-lang/rust/issues/120953 Link: https://github.com/rust-lang/rust/pull/115358 Reviewed-by: Alice Ryhl <aliceryhl@google.com> Link: https://lore.kernel.org/r/20240217002622.57322-1-ojeda@kernel.org [ Added note about zstd support in Rust-provided binaries. ] Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
53 lines
1.4 KiB
Makefile
53 lines
1.4 KiB
Makefile
DEBUG_CFLAGS :=
|
|
DEBUG_RUSTFLAGS :=
|
|
|
|
debug-flags-y := -g
|
|
|
|
ifdef CONFIG_DEBUG_INFO_SPLIT
|
|
DEBUG_CFLAGS += -gsplit-dwarf
|
|
endif
|
|
|
|
debug-flags-$(CONFIG_DEBUG_INFO_DWARF4) += -gdwarf-4
|
|
debug-flags-$(CONFIG_DEBUG_INFO_DWARF5) += -gdwarf-5
|
|
ifeq ($(CONFIG_CC_IS_CLANG)$(CONFIG_AS_IS_GNU),yy)
|
|
# Clang does not pass -g or -gdwarf-* option down to GAS.
|
|
# Add -Wa, prefix to explicitly specify the flags.
|
|
KBUILD_AFLAGS += $(addprefix -Wa$(comma), $(debug-flags-y))
|
|
endif
|
|
DEBUG_CFLAGS += $(debug-flags-y)
|
|
KBUILD_AFLAGS += $(debug-flags-y)
|
|
|
|
ifdef CONFIG_DEBUG_INFO_DWARF4
|
|
DEBUG_RUSTFLAGS += -Zdwarf-version=4
|
|
else ifdef CONFIG_DEBUG_INFO_DWARF5
|
|
DEBUG_RUSTFLAGS += -Zdwarf-version=5
|
|
endif
|
|
|
|
ifdef CONFIG_DEBUG_INFO_REDUCED
|
|
DEBUG_CFLAGS += -fno-var-tracking
|
|
DEBUG_RUSTFLAGS += -Cdebuginfo=1
|
|
ifdef CONFIG_CC_IS_GCC
|
|
DEBUG_CFLAGS += -femit-struct-debug-baseonly
|
|
endif
|
|
else
|
|
DEBUG_RUSTFLAGS += -Cdebuginfo=2
|
|
endif
|
|
|
|
ifdef CONFIG_DEBUG_INFO_COMPRESSED_ZLIB
|
|
DEBUG_CFLAGS += -gz=zlib
|
|
DEBUG_RUSTFLAGS += -Zdebuginfo-compression=zlib
|
|
KBUILD_AFLAGS += -gz=zlib
|
|
KBUILD_LDFLAGS += --compress-debug-sections=zlib
|
|
else ifdef CONFIG_DEBUG_INFO_COMPRESSED_ZSTD
|
|
DEBUG_CFLAGS += -gz=zstd
|
|
DEBUG_RUSTFLAGS += -Zdebuginfo-compression=zstd
|
|
KBUILD_AFLAGS += -gz=zstd
|
|
KBUILD_LDFLAGS += --compress-debug-sections=zstd
|
|
endif
|
|
|
|
KBUILD_CFLAGS += $(DEBUG_CFLAGS)
|
|
export DEBUG_CFLAGS
|
|
|
|
KBUILD_RUSTFLAGS += $(DEBUG_RUSTFLAGS)
|
|
export DEBUG_RUSTFLAGS
|