lkml.org 
[lkml]   [2021]   [Feb]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v7 1/2] Kbuild: make DWARF version a choice
On 2021-02-04, Masahiro Yamada wrote:
>On Sat, Jan 30, 2021 at 10:52 AM Nathan Chancellor <nathan@kernel.org> wrote:
>>
>> On Fri, Jan 29, 2021 at 04:44:00PM -0800, Nick Desaulniers wrote:
>> > Modifies CONFIG_DEBUG_INFO_DWARF4 to be a member of a choice which is
>> > the default. Does so in a way that's forward compatible with existing
>> > configs, and makes adding future versions more straightforward.
>> >
>> > GCC since ~4.8 has defaulted to this DWARF version implicitly.
>> >
>> > Suggested-by: Arvind Sankar <nivedita@alum.mit.edu>
>> > Suggested-by: Fangrui Song <maskray@google.com>
>> > Suggested-by: Nathan Chancellor <nathan@kernel.org>
>> > Suggested-by: Masahiro Yamada <masahiroy@kernel.org>
>> > Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
>>
>> One comment below:
>>
>> Reviewed-by: Nathan Chancellor <nathan@kernel.org>
>>
>> > ---
>> > Makefile | 5 ++---
>> > lib/Kconfig.debug | 16 +++++++++++-----
>> > 2 files changed, 13 insertions(+), 8 deletions(-)
>> >
>> > diff --git a/Makefile b/Makefile
>> > index 95ab9856f357..d2b4980807e0 100644
>> > --- a/Makefile
>> > +++ b/Makefile
>> > @@ -830,9 +830,8 @@ ifneq ($(LLVM_IAS),1)
>> > KBUILD_AFLAGS += -Wa,-gdwarf-2
>>
>> It is probably worth a comment somewhere that assembly files will still
>> have DWARF v2.
>
>I agree.
>Please noting the reason will be helpful.
>
>Could you summarize Jakub's comment in short?
>https://patchwork.kernel.org/project/linux-kbuild/patch/20201022012106.1875129-1-ndesaulniers@google.com/#23727667
>
>
>
>
>
>
>One more question.
>
>
>Can we remove -g option like follows?
>
>
> ifdef CONFIG_DEBUG_INFO_SPLIT
> DEBUG_CFLAGS += -gsplit-dwarf
>-else
>-DEBUG_CFLAGS += -g
> endif

GCC 11/Clang 12 -gsplit-dwarf no longer imply -g2
(https://reviews.llvm.org/D80391). May be worth checking whether
-gsplit-dwarf is used without a debug info enabling option.

>
>
>
>
>In the current mainline code,
>-g is the only debug option
>if CONFIG_DEBUG_INFO_DWARF4 is disabled.
>
>
>The GCC manual says:
>https://gcc.gnu.org/onlinedocs/gcc-10.2.0/gcc/Debugging-Options.html#Debugging-Options
>
>
>-g
>
> Produce debugging information in the operating system’s
> native format (stabs, COFF, XCOFF, or DWARF).
> GDB can work with this debugging information.
>
>
>Of course, we expect the -g option will produce
>the debug info in the DWARF format.
>
>
>
>
>
>With this patch set applied, it is very explicit.
>
>Only the format type, but also the version.
>
>The compiler will be given either
>-gdwarf-4 or -gdwarf-5,
>making the -g option redundant, I think.

-gdwarf-N does imply -g2 but personally I'd not suggest remove it if it
already exists. The non-orthogonality is the reason Clang has
-fdebug-default-version (https://reviews.llvm.org/D69822).

>
>
>
>
>
>
>
>
>>
>> > endif
>> >
>> > -ifdef CONFIG_DEBUG_INFO_DWARF4
>> > -DEBUG_CFLAGS += -gdwarf-4
>> > -endif
>> > +dwarf-version-$(CONFIG_DEBUG_INFO_DWARF4) := 4
>> > +DEBUG_CFLAGS += -gdwarf-$(dwarf-version-y)
>> >
>> > ifdef CONFIG_DEBUG_INFO_REDUCED
>> > DEBUG_CFLAGS += $(call cc-option, -femit-struct-debug-baseonly) \
>> > diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
>> > index e906ea906cb7..94c1a7ed6306 100644
>> > --- a/lib/Kconfig.debug
>> > +++ b/lib/Kconfig.debug
>> > @@ -256,13 +256,19 @@ config DEBUG_INFO_SPLIT
>> > to know about the .dwo files and include them.
>> > Incompatible with older versions of ccache.
>> >
>> > +choice
>> > + prompt "DWARF version"
>> > + help
>> > + Which version of DWARF debug info to emit.
>> > +
>> > config DEBUG_INFO_DWARF4
>> > - bool "Generate dwarf4 debuginfo"
>> > + bool "Generate DWARF Version 4 debuginfo"
>> > 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.
>> > + Generate DWARF v4 debug info. This requires gcc 4.5+ and gdb 7.0+.
>> > + It makes the debug information larger, but it significantly
>> > + improves the success of resolving variables in gdb on optimized code.
>> > +
>> > +endchoice # "DWARF version"
>> >
>> > config DEBUG_INFO_BTF
>> > bool "Generate BTF typeinfo"
>> > --
>> > 2.30.0.365.g02bc693789-goog
>> >
>
>
>
>--
>Best Regards
>Masahiro Yamada

\
 
 \ /
  Last update: 2021-02-04 04:35    [W:0.477 / U:0.112 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site