mirror of
				https://kernel.googlesource.com/pub/scm/linux/kernel/git/stable/linux-stable.git
				synced 2025-10-27 18:20:10 +10:00 
			
		
		
		
	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
 |