diff mbox series

[v9,1/3] vmlinux.lds.h: add DWARF v5 sections

Message ID 20210205202220.2748551-2-ndesaulniers@google.com
State New
Headers show
Series [v9,1/3] vmlinux.lds.h: add DWARF v5 sections | expand

Commit Message

Nick Desaulniers Feb. 5, 2021, 8:22 p.m. UTC
We expect toolchains to produce these new debug info sections as part of
DWARF v5. Add explicit placements to prevent the linker warnings from
--orphan-section=warn.

Compilers may produce such sections with explicit -gdwarf-5, or based on
the implicit default version of DWARF when -g is used via DEBUG_INFO.
This implicit default changes over time, and has changed to DWARF v5
with GCC 11.

.debug_sup was mentioned in review, but without compilers producing it
today, let's wait to add it until it becomes necessary.

Cc: stable@vger.kernel.org
Link: https://bugzilla.redhat.com/show_bug.cgi?id=1922707
Reported-by: Chris Murphy <lists@colorremedies.com>
Suggested-by: Fangrui Song <maskray@google.com>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>

Tested-by: Sedat Dilek <sedat.dilek@gmail.com>

Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>

---
 include/asm-generic/vmlinux.lds.h | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

-- 
2.30.0.365.g02bc693789-goog

Comments

Andrew Morton Feb. 6, 2021, midnight UTC | #1
On Fri,  5 Feb 2021 12:22:18 -0800 Nick Desaulniers <ndesaulniers@google.com> wrote:

> We expect toolchains to produce these new debug info sections as part of

> DWARF v5. Add explicit placements to prevent the linker warnings from

> --orphan-section=warn.

> 

> Compilers may produce such sections with explicit -gdwarf-5, or based on

> the implicit default version of DWARF when -g is used via DEBUG_INFO.

> This implicit default changes over time, and has changed to DWARF v5

> with GCC 11.

> 

> .debug_sup was mentioned in review, but without compilers producing it

> today, let's wait to add it until it becomes necessary.

> 


There isn't anything in this changelog which explains why a -stable
backport was requested?  Or is there?  Irritating linker warnings? 
More than that?
Nick Desaulniers Feb. 6, 2021, 12:02 a.m. UTC | #2
On Fri, Feb 5, 2021 at 4:00 PM Andrew Morton <akpm@linux-foundation.org> wrote:
>

> On Fri,  5 Feb 2021 12:22:18 -0800 Nick Desaulniers <ndesaulniers@google.com> wrote:

>

> > We expect toolchains to produce these new debug info sections as part of

> > DWARF v5. Add explicit placements to prevent the linker warnings from

> > --orphan-section=warn.

> >

> > Compilers may produce such sections with explicit -gdwarf-5, or based on

> > the implicit default version of DWARF when -g is used via DEBUG_INFO.

> > This implicit default changes over time, and has changed to DWARF v5

> > with GCC 11.

> >

> > .debug_sup was mentioned in review, but without compilers producing it

> > today, let's wait to add it until it becomes necessary.

> >

>

> There isn't anything in this changelog which explains why a -stable

> backport was requested?  Or is there?  Irritating linker warnings?

> More than that?


Users adopting GCC 11 will start to see warnings from the linker due
to --orphan-section=warn when building the branches of the stable
tree.  Stable has IME accepted patches for permitting newer toolchains
to continue to compile warning free.
-- 
Thanks,
~Nick Desaulniers
Mark Wielaard Feb. 6, 2021, 3:02 p.m. UTC | #3
Hi Nick,

On Fri, 2021-02-05 at 12:22 -0800, Nick Desaulniers wrote:
> We expect toolchains to produce these new debug info sections as part of

> DWARF v5. Add explicit placements to prevent the linker warnings from

> --orphan-section=warn.

> 

> Compilers may produce such sections with explicit -gdwarf-5, or based on

> the implicit default version of DWARF when -g is used via DEBUG_INFO.

> This implicit default changes over time, and has changed to DWARF v5

> with GCC 11.

> 

> .debug_sup was mentioned in review, but without compilers producing it

> today, let's wait to add it until it becomes necessary.


I don't think that will be necessary. .debug_sup is for Dwarf
Supplemental file producers like dwz. Those would run after the linker.

> Cc: stable@vger.kernel.org

> Link: https://bugzilla.redhat.com/show_bug.cgi?id=1922707

> Reported-by: Chris Murphy <lists@colorremedies.com>

> Suggested-by: Fangrui Song <maskray@google.com>

> Reviewed-by: Nathan Chancellor <nathan@kernel.org>

> Tested-by: Sedat Dilek <sedat.dilek@gmail.com>

> Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>

> ---

>  include/asm-generic/vmlinux.lds.h | 7 ++++++-

>  1 file changed, 6 insertions(+), 1 deletion(-)

> 

> diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h

> index 34b7e0d2346c..1e7cde4bd3f9 100644

> --- a/include/asm-generic/vmlinux.lds.h

> +++ b/include/asm-generic/vmlinux.lds.h

> @@ -842,8 +842,13 @@

>  		/* DWARF 4 */						\

>  		.debug_types	0 : { *(.debug_types) }			\

>  		/* DWARF 5 */						\

> +		.debug_addr	0 : { *(.debug_addr) }			\

> +		.debug_line_str	0 : { *(.debug_line_str) }		\

> +		.debug_loclists	0 : { *(.debug_loclists) }		\

>  		.debug_macro	0 : { *(.debug_macro) }			\

> -		.debug_addr	0 : { *(.debug_addr) }

> +		.debug_names	0 : { *(.debug_names) }			\

> +		.debug_rnglists	0 : { *(.debug_rnglists) }		\

> +		.debug_str_offsets	0 : { *(.debug_str_offsets) }

>  

>  /* Stabs debugging sections. */

>  #define STABS_DEBUG							\


Looks good to me.

Cheers,

Mark
diff mbox series

Patch

diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index 34b7e0d2346c..1e7cde4bd3f9 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -842,8 +842,13 @@ 
 		/* DWARF 4 */						\
 		.debug_types	0 : { *(.debug_types) }			\
 		/* DWARF 5 */						\
+		.debug_addr	0 : { *(.debug_addr) }			\
+		.debug_line_str	0 : { *(.debug_line_str) }		\
+		.debug_loclists	0 : { *(.debug_loclists) }		\
 		.debug_macro	0 : { *(.debug_macro) }			\
-		.debug_addr	0 : { *(.debug_addr) }
+		.debug_names	0 : { *(.debug_names) }			\
+		.debug_rnglists	0 : { *(.debug_rnglists) }		\
+		.debug_str_offsets	0 : { *(.debug_str_offsets) }
 
 /* Stabs debugging sections. */
 #define STABS_DEBUG							\