blob: 332c486f705f75edb63fd06f412c3563733e3814 [file] [log] [blame]
Nick Desaulniers32ef9e52022-09-19 10:45:47 -07001DEBUG_CFLAGS :=
Miguel Ojeda2f7ab122021-07-03 16:42:57 +02002DEBUG_RUSTFLAGS :=
3
Nick Desaulniers32ef9e52022-09-19 10:45:47 -07004debug-flags-y := -g
Masahiro Yamada6947fd92021-10-12 12:25:03 +09005
6ifdef CONFIG_DEBUG_INFO_SPLIT
7DEBUG_CFLAGS += -gsplit-dwarf
Masahiro Yamada6947fd92021-10-12 12:25:03 +09008endif
9
Nick Desaulniers32ef9e52022-09-19 10:45:47 -070010debug-flags-$(CONFIG_DEBUG_INFO_DWARF4) += -gdwarf-4
11debug-flags-$(CONFIG_DEBUG_INFO_DWARF5) += -gdwarf-5
12ifeq ($(CONFIG_CC_IS_CLANG)$(CONFIG_AS_IS_GNU),yy)
13# Clang does not pass -g or -gdwarf-* option down to GAS.
14# Add -Wa, prefix to explicitly specify the flags.
15KBUILD_AFLAGS += $(addprefix -Wa$(comma), $(debug-flags-y))
Masahiro Yamada6947fd92021-10-12 12:25:03 +090016endif
Nick Desaulniers32ef9e52022-09-19 10:45:47 -070017DEBUG_CFLAGS += $(debug-flags-y)
18KBUILD_AFLAGS += $(debug-flags-y)
Masahiro Yamada6947fd92021-10-12 12:25:03 +090019
20ifdef CONFIG_DEBUG_INFO_REDUCED
21DEBUG_CFLAGS += -fno-var-tracking
Miguel Ojeda2f7ab122021-07-03 16:42:57 +020022DEBUG_RUSTFLAGS += -Cdebuginfo=1
Masahiro Yamada6947fd92021-10-12 12:25:03 +090023ifdef CONFIG_CC_IS_GCC
24DEBUG_CFLAGS += -femit-struct-debug-baseonly
25endif
Miguel Ojeda2f7ab122021-07-03 16:42:57 +020026else
27DEBUG_RUSTFLAGS += -Cdebuginfo=2
Masahiro Yamada6947fd92021-10-12 12:25:03 +090028endif
29
30ifdef CONFIG_DEBUG_INFO_COMPRESSED
31DEBUG_CFLAGS += -gz=zlib
32KBUILD_AFLAGS += -gz=zlib
33KBUILD_LDFLAGS += --compress-debug-sections=zlib
34endif
35
Nick Desaulniers32ef9e52022-09-19 10:45:47 -070036KBUILD_CFLAGS += $(DEBUG_CFLAGS)
Masahiro Yamada6947fd92021-10-12 12:25:03 +090037export DEBUG_CFLAGS
Miguel Ojeda2f7ab122021-07-03 16:42:57 +020038
39KBUILD_RUSTFLAGS += $(DEBUG_RUSTFLAGS)
40export DEBUG_RUSTFLAGS