| 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 |