Makefile.debug: re-enable debug info for .S files

Alexey reported that the fraction of unknown filename instances in
kallsyms grew from ~0.3% to ~10% recently; Bill and Greg tracked it down
to assembler defined symbols, which regressed as a result of:

commit b8a9092330 ("Kbuild: do not emit debug info for assembly with LLVM_IAS=1")

In that commit, I allude to restoring debug info for assembler defined
symbols in a follow up patch, but it seems I forgot to do so in

commit a66049e2cf ("Kbuild: make DWARF version a choice")

Link: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=31bf18645d98b4d3d7357353be840e320649a67d
Fixes: b8a9092330 ("Kbuild: do not emit debug info for assembly with LLVM_IAS=1")
Reported-by: Alexey Alexandrov <aalexand@google.com>
Reported-by: Bill Wendling <morbo@google.com>
Reported-by: Greg Thelen <gthelen@google.com>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Suggested-by: Masahiro Yamada <masahiroy@kernel.org>
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
This commit is contained in:
Nick Desaulniers 2022-09-19 10:45:47 -07:00 committed by Masahiro Yamada
parent 61f2b7c749
commit 32ef9e5054
2 changed files with 14 additions and 11 deletions

View File

@ -264,8 +264,10 @@ config DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT
config DEBUG_INFO_DWARF4 config DEBUG_INFO_DWARF4
bool "Generate DWARF Version 4 debuginfo" bool "Generate DWARF Version 4 debuginfo"
select DEBUG_INFO select DEBUG_INFO
depends on !CC_IS_CLANG || (CC_IS_CLANG && (AS_IS_LLVM || (AS_IS_GNU && AS_VERSION >= 23502)))
help help
Generate DWARF v4 debug info. This requires gcc 4.5+ and gdb 7.0+. Generate DWARF v4 debug info. This requires gcc 4.5+, binutils 2.35.2
if using clang without clang's integrated assembler, and gdb 7.0+.
If you have consumers of DWARF debug info that are not ready for If you have consumers of DWARF debug info that are not ready for
newer revisions of DWARF, you may wish to choose this or have your newer revisions of DWARF, you may wish to choose this or have your

View File

@ -1,18 +1,19 @@
DEBUG_CFLAGS := -g DEBUG_CFLAGS :=
debug-flags-y := -g
ifdef CONFIG_DEBUG_INFO_SPLIT ifdef CONFIG_DEBUG_INFO_SPLIT
DEBUG_CFLAGS += -gsplit-dwarf DEBUG_CFLAGS += -gsplit-dwarf
endif endif
ifndef CONFIG_AS_IS_LLVM debug-flags-$(CONFIG_DEBUG_INFO_DWARF4) += -gdwarf-4
KBUILD_AFLAGS += -Wa,-gdwarf-2 debug-flags-$(CONFIG_DEBUG_INFO_DWARF5) += -gdwarf-5
endif ifeq ($(CONFIG_CC_IS_CLANG)$(CONFIG_AS_IS_GNU),yy)
# Clang does not pass -g or -gdwarf-* option down to GAS.
ifndef CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT # Add -Wa, prefix to explicitly specify the flags.
dwarf-version-$(CONFIG_DEBUG_INFO_DWARF4) := 4 KBUILD_AFLAGS += $(addprefix -Wa$(comma), $(debug-flags-y))
dwarf-version-$(CONFIG_DEBUG_INFO_DWARF5) := 5
DEBUG_CFLAGS += -gdwarf-$(dwarf-version-y)
endif endif
DEBUG_CFLAGS += $(debug-flags-y)
KBUILD_AFLAGS += $(debug-flags-y)
ifdef CONFIG_DEBUG_INFO_REDUCED ifdef CONFIG_DEBUG_INFO_REDUCED
DEBUG_CFLAGS += -fno-var-tracking DEBUG_CFLAGS += -fno-var-tracking
@ -27,5 +28,5 @@ KBUILD_AFLAGS += -gz=zlib
KBUILD_LDFLAGS += --compress-debug-sections=zlib KBUILD_LDFLAGS += --compress-debug-sections=zlib
endif endif
KBUILD_CFLAGS += $(DEBUG_CFLAGS) KBUILD_CFLAGS += $(DEBUG_CFLAGS)
export DEBUG_CFLAGS export DEBUG_CFLAGS