Browse Source

Kbuild: Add a option to enable dwarf4 v2

I found that a lot of unresolvable variables when using gdb on the
kernel become resolvable when dwarf4 is enabled. So add a Kconfig flag
to enable it.

It definitely increases the debug information size, but on the other
hand this isn't so bad when debug fusion is used.

v2: Use cc-option
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Andi Kleen 11 năm trước cách đây
mục cha
commit
bfaf2dd350
2 tập tin đã thay đổi với 12 bổ sung0 xóa
  1. 3 0
      Makefile
  2. 9 0
      lib/Kconfig.debug

+ 3 - 0
Makefile

@@ -691,6 +691,9 @@ KBUILD_CFLAGS	+= -g
 endif
 endif
 KBUILD_AFLAGS	+= -Wa,-gdwarf-2
 KBUILD_AFLAGS	+= -Wa,-gdwarf-2
 endif
 endif
+ifdef CONFIG_DEBUG_INFO_DWARF4
+KBUILD_CFLAGS	+= $(call cc-option, -gdwarf-4,)
+endif
 
 
 ifdef CONFIG_DEBUG_INFO_REDUCED
 ifdef CONFIG_DEBUG_INFO_REDUCED
 KBUILD_CFLAGS 	+= $(call cc-option, -femit-struct-debug-baseonly) \
 KBUILD_CFLAGS 	+= $(call cc-option, -femit-struct-debug-baseonly) \

+ 9 - 0
lib/Kconfig.debug

@@ -158,6 +158,15 @@ config DEBUG_INFO_SPLIT
 	  to know about the .dwo files and include them.
 	  to know about the .dwo files and include them.
 	  Incompatible with older versions of ccache.
 	  Incompatible with older versions of ccache.
 
 
+config DEBUG_INFO_DWARF4
+	bool "Generate dwarf4 debuginfo"
+	depends on DEBUG_INFO
+	help
+	  Generate dwarf4 debug info. This requires recent versions
+	  of gcc and gdb. It makes the debug information larger.
+	  But it significantly improves the success of resolving
+	  variables in gdb on optimized code.
+
 config ENABLE_WARN_DEPRECATED
 config ENABLE_WARN_DEPRECATED
 	bool "Enable __deprecated logic"
 	bool "Enable __deprecated logic"
 	default y
 	default y