2021-02-05 20:26:20

by Nick Desaulniers

[permalink] [raw]
Subject: [PATCH v9 1/3] vmlinux.lds.h: add DWARF v5 sections

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: [email protected]
Link: https://bugzilla.redhat.com/show_bug.cgi?id=1922707
Reported-by: Chris Murphy <[email protected]>
Suggested-by: Fangrui Song <[email protected]>
Reviewed-by: Nathan Chancellor <[email protected]>
Tested-by: Sedat Dilek <[email protected]>
Signed-off-by: Nick Desaulniers <[email protected]>
---
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 \
--
2.30.0.365.g02bc693789-goog


2021-02-06 03:53:36

by Nick Desaulniers

[permalink] [raw]
Subject: Re: [PATCH v9 1/3] vmlinux.lds.h: add DWARF v5 sections

On Fri, Feb 5, 2021 at 4:00 PM Andrew Morton <[email protected]> wrote:
>
> On Fri, 5 Feb 2021 12:22:18 -0800 Nick Desaulniers <[email protected]> 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

2021-02-06 05:02:09

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH v9 1/3] vmlinux.lds.h: add DWARF v5 sections

On Fri, 5 Feb 2021 12:22:18 -0800 Nick Desaulniers <[email protected]> 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?

2021-02-06 15:07:03

by Mark Wielaard

[permalink] [raw]
Subject: Re: [PATCH v9 1/3] vmlinux.lds.h: add DWARF v5 sections

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: [email protected]
> Link: https://bugzilla.redhat.com/show_bug.cgi?id=1922707
> Reported-by: Chris Murphy <[email protected]>
> Suggested-by: Fangrui Song <[email protected]>
> Reviewed-by: Nathan Chancellor <[email protected]>
> Tested-by: Sedat Dilek <[email protected]>
> Signed-off-by: Nick Desaulniers <[email protected]>
> ---
> 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