Kbuild: Add a option to enable dwarf4 v2
authorAndi Kleen <ak@linux.intel.com>
Wed, 30 Jul 2014 18:50:19 +0000 (20:50 +0200)
committerMichal Marek <mmarek@suse.cz>
Wed, 30 Jul 2014 20:56:04 +0000 (22:56 +0200)
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>
Makefile
lib/Kconfig.debug

index e5a2694..2fd21a5 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -691,6 +691,9 @@ KBUILD_CFLAGS       += -g
 endif
 KBUILD_AFLAGS  += -Wa,-gdwarf-2
 endif
+ifdef CONFIG_DEBUG_INFO_DWARF4
+KBUILD_CFLAGS  += $(call cc-option, -gdwarf-4,)
+endif
 
 ifdef CONFIG_DEBUG_INFO_REDUCED
 KBUILD_CFLAGS  += $(call cc-option, -femit-struct-debug-baseonly) \
index 910355d..d70f203 100644 (file)
@@ -158,6 +158,15 @@ config DEBUG_INFO_SPLIT
          to know about the .dwo files and include them.
          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
        bool "Enable __deprecated logic"
        default y