summaryrefslogtreecommitdiff
path: root/scripts/Makefile.debug
blob: 107db997ce38991b9503fb68402b3ec7da6ea850 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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