Message ID | 20210115210616.404156-2-ndesaulniers@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Kbuild: DWARF v5 support | expand |
On Fri, Jan 15, 2021 at 10:06 PM Nick Desaulniers <ndesaulniers@google.com> wrote: > > From: Masahiro Yamada <masahiroy@kernel.org> > > The -gdwarf-4 flag is supported by GCC 4.5+, and also by Clang. > > You can see it at https://godbolt.org/z/6ed1oW > > For gcc 4.5.3 pane, line 37: .value 0x4 > For clang 10.0.1 pane, line 117: .short 4 > > Given Documentation/process/changes.rst stating GCC 4.9 is the minimal > version, this cc-option is unneeded. > > Note > ---- > > CONFIG_DEBUG_INFO_DWARF4 controls the DWARF version only for C files. > > As you can see in the top Makefile, -gdwarf-4 is only passed to CFLAGS. > > ifdef CONFIG_DEBUG_INFO_DWARF4 > DEBUG_CFLAGS += -gdwarf-4 > endif > > This flag is used when compiling *.c files. > > On the other hand, the assembler is always given -gdwarf-2. > > KBUILD_AFLAGS += -Wa,-gdwarf-2 > > Hence, the debug info that comes from *.S files is always DWARF v2. > This is simply because GAS supported only -gdwarf-2 for a long time. > > Recently, GAS gained the support for --dwarf-[3|4|5] options. [1] > And, also we have Clang integrated assembler. So, the debug info > for *.S files might be improved if we want. > > In my understanding, the current code is intentional, not a bug. > > [1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=31bf18645d98b4d3d7357353be840e320649a67d > > Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> > Reviewed-by: Nathan Chancellor <natechancellor@gmail.com> > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Subject misses a "kbuild:" label like in all other patches. You have: "Remove $(cc-option,-gdwarf-4) dependency from CONFIG_DEBUG_INFO_DWARF4" - Sedat - > --- > lib/Kconfig.debug | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug > index 78361f0abe3a..dd7d8d35b2a5 100644 > --- a/lib/Kconfig.debug > +++ b/lib/Kconfig.debug > @@ -258,7 +258,6 @@ config DEBUG_INFO_SPLIT > > config DEBUG_INFO_DWARF4 > bool "Generate dwarf4 debuginfo" > - depends on $(cc-option,-gdwarf-4) > help > Generate dwarf4 debug info. This requires recent versions > of gcc and gdb. It makes the debug information larger. > -- > 2.30.0.284.gd98b1dd5eaa7-goog >
On Fri, Jan 15, 2021 at 1:48 PM Sedat Dilek <sedat.dilek@gmail.com> wrote: > > On Fri, Jan 15, 2021 at 10:06 PM Nick Desaulniers > <ndesaulniers@google.com> wrote: > > > > From: Masahiro Yamada <masahiroy@kernel.org> > > > > The -gdwarf-4 flag is supported by GCC 4.5+, and also by Clang. > > > > You can see it at https://godbolt.org/z/6ed1oW > > > > For gcc 4.5.3 pane, line 37: .value 0x4 > > For clang 10.0.1 pane, line 117: .short 4 > > > > Given Documentation/process/changes.rst stating GCC 4.9 is the minimal > > version, this cc-option is unneeded. > > > > Note > > ---- > > > > CONFIG_DEBUG_INFO_DWARF4 controls the DWARF version only for C files. > > > > As you can see in the top Makefile, -gdwarf-4 is only passed to CFLAGS. > > > > ifdef CONFIG_DEBUG_INFO_DWARF4 > > DEBUG_CFLAGS += -gdwarf-4 > > endif > > > > This flag is used when compiling *.c files. > > > > On the other hand, the assembler is always given -gdwarf-2. > > > > KBUILD_AFLAGS += -Wa,-gdwarf-2 > > > > Hence, the debug info that comes from *.S files is always DWARF v2. > > This is simply because GAS supported only -gdwarf-2 for a long time. > > > > Recently, GAS gained the support for --dwarf-[3|4|5] options. [1] > > And, also we have Clang integrated assembler. So, the debug info > > for *.S files might be improved if we want. > > > > In my understanding, the current code is intentional, not a bug. > > > > [1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=31bf18645d98b4d3d7357353be840e320649a67d > > > > Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> > > Reviewed-by: Nathan Chancellor <natechancellor@gmail.com> > > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> > > Subject misses a "kbuild:" label like in all other patches. > You have: > "Remove $(cc-option,-gdwarf-4) dependency from CONFIG_DEBUG_INFO_DWARF4" Ack, I wonder how that happened? Ah well, will fix in v6; thanks for the feedback. > > - Sedat - > > > --- > > lib/Kconfig.debug | 1 - > > 1 file changed, 1 deletion(-) > > > > diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug > > index 78361f0abe3a..dd7d8d35b2a5 100644 > > --- a/lib/Kconfig.debug > > +++ b/lib/Kconfig.debug > > @@ -258,7 +258,6 @@ config DEBUG_INFO_SPLIT > > > > config DEBUG_INFO_DWARF4 > > bool "Generate dwarf4 debuginfo" > > - depends on $(cc-option,-gdwarf-4) > > help > > Generate dwarf4 debug info. This requires recent versions > > of gcc and gdb. It makes the debug information larger. > > -- > > 2.30.0.284.gd98b1dd5eaa7-goog > >
On 2021-01-15, Nick Desaulniers wrote: >From: Masahiro Yamada <masahiroy@kernel.org> > >The -gdwarf-4 flag is supported by GCC 4.5+, and also by Clang. > >You can see it at https://godbolt.org/z/6ed1oW > > For gcc 4.5.3 pane, line 37: .value 0x4 > For clang 10.0.1 pane, line 117: .short 4 > >Given Documentation/process/changes.rst stating GCC 4.9 is the minimal >version, this cc-option is unneeded. > >Note >---- > >CONFIG_DEBUG_INFO_DWARF4 controls the DWARF version only for C files. > >As you can see in the top Makefile, -gdwarf-4 is only passed to CFLAGS. > > ifdef CONFIG_DEBUG_INFO_DWARF4 > DEBUG_CFLAGS += -gdwarf-4 > endif > >This flag is used when compiling *.c files. > >On the other hand, the assembler is always given -gdwarf-2. > > KBUILD_AFLAGS += -Wa,-gdwarf-2 > >Hence, the debug info that comes from *.S files is always DWARF v2. >This is simply because GAS supported only -gdwarf-2 for a long time. > >Recently, GAS gained the support for --dwarf-[3|4|5] options. [1] The gas commit description has a typo. The supported options are -gdwarf-[345] or --gdwarf-[345]. -gdwarf2 and --gdwarf2 are kept for compatibility. Looks good otherwise. >And, also we have Clang integrated assembler. So, the debug info >for *.S files might be improved if we want. > >In my understanding, the current code is intentional, not a bug. > >[1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=31bf18645d98b4d3d7357353be840e320649a67d > >Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> >Reviewed-by: Nathan Chancellor <natechancellor@gmail.com> >Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> >--- > lib/Kconfig.debug | 1 - > 1 file changed, 1 deletion(-) > >diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug >index 78361f0abe3a..dd7d8d35b2a5 100644 >--- a/lib/Kconfig.debug >+++ b/lib/Kconfig.debug >@@ -258,7 +258,6 @@ config DEBUG_INFO_SPLIT > > config DEBUG_INFO_DWARF4 > bool "Generate dwarf4 debuginfo" >- depends on $(cc-option,-gdwarf-4) > help > Generate dwarf4 debug info. This requires recent versions > of gcc and gdb. It makes the debug information larger. >-- >2.30.0.284.gd98b1dd5eaa7-goog >
On Fri, Jan 15, 2021 at 11:00 PM Fangrui Song <maskray@google.com> wrote: > > On 2021-01-15, Nick Desaulniers wrote: > >From: Masahiro Yamada <masahiroy@kernel.org> > > > >The -gdwarf-4 flag is supported by GCC 4.5+, and also by Clang. > > > >You can see it at https://godbolt.org/z/6ed1oW > > > > For gcc 4.5.3 pane, line 37: .value 0x4 > > For clang 10.0.1 pane, line 117: .short 4 > > > >Given Documentation/process/changes.rst stating GCC 4.9 is the minimal > >version, this cc-option is unneeded. > > > >Note > >---- > > > >CONFIG_DEBUG_INFO_DWARF4 controls the DWARF version only for C files. > > > >As you can see in the top Makefile, -gdwarf-4 is only passed to CFLAGS. > > > > ifdef CONFIG_DEBUG_INFO_DWARF4 > > DEBUG_CFLAGS += -gdwarf-4 > > endif > > > >This flag is used when compiling *.c files. > > > >On the other hand, the assembler is always given -gdwarf-2. > > > > KBUILD_AFLAGS += -Wa,-gdwarf-2 > > > >Hence, the debug info that comes from *.S files is always DWARF v2. > >This is simply because GAS supported only -gdwarf-2 for a long time. > > > >Recently, GAS gained the support for --dwarf-[3|4|5] options. [1] > > The gas commit description has a typo. The supported options are -gdwarf-[345] or --gdwarf-[345]. > -gdwarf2 and --gdwarf2 are kept for compatibility. > > Looks good otherwise. > Good catch Fangrui. Yesterday, I wondered - after a cut-n-paste from the patch's changelog - why I did not see anything --dwarfX related in my logs. - Sedat - > >And, also we have Clang integrated assembler. So, the debug info > >for *.S files might be improved if we want. > > > >In my understanding, the current code is intentional, not a bug. > > > >[1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=31bf18645d98b4d3d7357353be840e320649a67d > > > >Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> > >Reviewed-by: Nathan Chancellor <natechancellor@gmail.com> > >Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> > >--- > > lib/Kconfig.debug | 1 - > > 1 file changed, 1 deletion(-) > > > >diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug > >index 78361f0abe3a..dd7d8d35b2a5 100644 > >--- a/lib/Kconfig.debug > >+++ b/lib/Kconfig.debug > >@@ -258,7 +258,6 @@ config DEBUG_INFO_SPLIT > > > > config DEBUG_INFO_DWARF4 > > bool "Generate dwarf4 debuginfo" > >- depends on $(cc-option,-gdwarf-4) > > help > > Generate dwarf4 debug info. This requires recent versions > > of gcc and gdb. It makes the debug information larger. > >-- > >2.30.0.284.gd98b1dd5eaa7-goog > >
On Sat, Jan 16, 2021 at 6:51 AM Nick Desaulniers <ndesaulniers@google.com> wrote: > > On Fri, Jan 15, 2021 at 1:48 PM Sedat Dilek <sedat.dilek@gmail.com> wrote: > > > > On Fri, Jan 15, 2021 at 10:06 PM Nick Desaulniers > > <ndesaulniers@google.com> wrote: > > > > > > From: Masahiro Yamada <masahiroy@kernel.org> > > > > > > The -gdwarf-4 flag is supported by GCC 4.5+, and also by Clang. > > > > > > You can see it at https://godbolt.org/z/6ed1oW > > > > > > For gcc 4.5.3 pane, line 37: .value 0x4 > > > For clang 10.0.1 pane, line 117: .short 4 > > > > > > Given Documentation/process/changes.rst stating GCC 4.9 is the minimal > > > version, this cc-option is unneeded. > > > > > > Note > > > ---- > > > > > > CONFIG_DEBUG_INFO_DWARF4 controls the DWARF version only for C files. > > > > > > As you can see in the top Makefile, -gdwarf-4 is only passed to CFLAGS. > > > > > > ifdef CONFIG_DEBUG_INFO_DWARF4 > > > DEBUG_CFLAGS += -gdwarf-4 > > > endif > > > > > > This flag is used when compiling *.c files. > > > > > > On the other hand, the assembler is always given -gdwarf-2. > > > > > > KBUILD_AFLAGS += -Wa,-gdwarf-2 > > > > > > Hence, the debug info that comes from *.S files is always DWARF v2. > > > This is simply because GAS supported only -gdwarf-2 for a long time. > > > > > > Recently, GAS gained the support for --dwarf-[3|4|5] options. [1] > > > And, also we have Clang integrated assembler. So, the debug info > > > for *.S files might be improved if we want. > > > > > > In my understanding, the current code is intentional, not a bug. > > > > > > [1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=31bf18645d98b4d3d7357353be840e320649a67d > > > > > > Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> > > > Reviewed-by: Nathan Chancellor <natechancellor@gmail.com> > > > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> > > > > Subject misses a "kbuild:" label like in all other patches. > > You have: > > "Remove $(cc-option,-gdwarf-4) dependency from CONFIG_DEBUG_INFO_DWARF4" > > Ack, I wonder how that happened? Ah well, will fix in v6; thanks for > the feedback. I will apply this in my tree, adding "kbuild:" and fixing the typo pointed out by Fangrui. You do not need to resend this one. > > > > - Sedat - > > > > > --- > > > lib/Kconfig.debug | 1 - > > > 1 file changed, 1 deletion(-) > > > > > > diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug > > > index 78361f0abe3a..dd7d8d35b2a5 100644 > > > --- a/lib/Kconfig.debug > > > +++ b/lib/Kconfig.debug > > > @@ -258,7 +258,6 @@ config DEBUG_INFO_SPLIT > > > > > > config DEBUG_INFO_DWARF4 > > > bool "Generate dwarf4 debuginfo" > > > - depends on $(cc-option,-gdwarf-4) > > > help > > > Generate dwarf4 debug info. This requires recent versions > > > of gcc and gdb. It makes the debug information larger. > > > -- > > > 2.30.0.284.gd98b1dd5eaa7-goog > > > > > > > -- > Thanks, > ~Nick Desaulniers -- Best Regards Masahiro Yamada
On Sat, Jan 16, 2021 at 8:54 AM Masahiro Yamada <masahiroy@kernel.org> wrote: > > On Sat, Jan 16, 2021 at 6:51 AM Nick Desaulniers > <ndesaulniers@google.com> wrote: > > > > On Fri, Jan 15, 2021 at 1:48 PM Sedat Dilek <sedat.dilek@gmail.com> wrote: > > > > > > On Fri, Jan 15, 2021 at 10:06 PM Nick Desaulniers > > > <ndesaulniers@google.com> wrote: > > > > > > > > From: Masahiro Yamada <masahiroy@kernel.org> > > > > > > > > The -gdwarf-4 flag is supported by GCC 4.5+, and also by Clang. > > > > > > > > You can see it at https://godbolt.org/z/6ed1oW > > > > > > > > For gcc 4.5.3 pane, line 37: .value 0x4 > > > > For clang 10.0.1 pane, line 117: .short 4 > > > > > > > > Given Documentation/process/changes.rst stating GCC 4.9 is the minimal > > > > version, this cc-option is unneeded. > > > > > > > > Note > > > > ---- > > > > > > > > CONFIG_DEBUG_INFO_DWARF4 controls the DWARF version only for C files. > > > > > > > > As you can see in the top Makefile, -gdwarf-4 is only passed to CFLAGS. > > > > > > > > ifdef CONFIG_DEBUG_INFO_DWARF4 > > > > DEBUG_CFLAGS += -gdwarf-4 > > > > endif > > > > > > > > This flag is used when compiling *.c files. > > > > > > > > On the other hand, the assembler is always given -gdwarf-2. > > > > > > > > KBUILD_AFLAGS += -Wa,-gdwarf-2 > > > > > > > > Hence, the debug info that comes from *.S files is always DWARF v2. > > > > This is simply because GAS supported only -gdwarf-2 for a long time. > > > > > > > > Recently, GAS gained the support for --dwarf-[3|4|5] options. [1] > > > > And, also we have Clang integrated assembler. So, the debug info > > > > for *.S files might be improved if we want. > > > > > > > > In my understanding, the current code is intentional, not a bug. > > > > > > > > [1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=31bf18645d98b4d3d7357353be840e320649a67d > > > > > > > > Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> > > > > Reviewed-by: Nathan Chancellor <natechancellor@gmail.com> > > > > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> > > > > > > Subject misses a "kbuild:" label like in all other patches. > > > You have: > > > "Remove $(cc-option,-gdwarf-4) dependency from CONFIG_DEBUG_INFO_DWARF4" > > > > Ack, I wonder how that happened? Ah well, will fix in v6; thanks for > > the feedback. > > > > I will apply this in my tree, > adding "kbuild:" and fixing the typo pointed out by Fangrui. > > You do not need to resend this one. > Applied to linux-kbuild. > > > > > > > > > > > > - Sedat - > > > > > > > --- > > > > lib/Kconfig.debug | 1 - > > > > 1 file changed, 1 deletion(-) > > > > > > > > diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug > > > > index 78361f0abe3a..dd7d8d35b2a5 100644 > > > > --- a/lib/Kconfig.debug > > > > +++ b/lib/Kconfig.debug > > > > @@ -258,7 +258,6 @@ config DEBUG_INFO_SPLIT > > > > > > > > config DEBUG_INFO_DWARF4 > > > > bool "Generate dwarf4 debuginfo" > > > > - depends on $(cc-option,-gdwarf-4) > > > > help > > > > Generate dwarf4 debug info. This requires recent versions > > > > of gcc and gdb. It makes the debug information larger. > > > > -- > > > > 2.30.0.284.gd98b1dd5eaa7-goog > > > > > > > > > > > > -- > > Thanks, > > ~Nick Desaulniers > > > > -- > Best Regards > Masahiro Yamada
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 78361f0abe3a..dd7d8d35b2a5 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -258,7 +258,6 @@ config DEBUG_INFO_SPLIT config DEBUG_INFO_DWARF4 bool "Generate dwarf4 debuginfo" - depends on $(cc-option,-gdwarf-4) help Generate dwarf4 debug info. This requires recent versions of gcc and gdb. It makes the debug information larger.