Re: [PATCH v3 2/9] vmlinux.lds.h: Add .symtab, .strtab, and .shstrtab to STABS_DEBUG

From: Arvind Sankar
Date: Wed Jun 24 2020 - 11:39:37 EST


On Tue, Jun 23, 2020 at 06:49:33PM -0700, Kees Cook wrote:
> When linking vmlinux with LLD, the synthetic sections .symtab, .strtab,
> and .shstrtab are listed as orphaned. Add them to the STABS_DEBUG section
> so there will be no warnings when --orphan-handling=warn is used more
> widely. (They are added above comment as it is the more common

Nit 1: is "after .comment" better than "above comment"? It's above in the
sense of higher file offset, but it's below in readelf output.
Nit 2: These aren't actually debugging sections, no? Is it better to add
a new macro for it, and is there any plan to stop LLD from warning about
them?

> order[1].)
>
> ld.lld: warning: <internal>:(.symtab) is being placed in '.symtab'
> ld.lld: warning: <internal>:(.shstrtab) is being placed in '.shstrtab'
> ld.lld: warning: <internal>:(.strtab) is being placed in '.strtab'
>
> [1] https://lore.kernel.org/lkml/20200622224928.o2a7jkq33guxfci4@xxxxxxxxxx/
>
> Reported-by: Fangrui Song <maskray@xxxxxxxxxx>
> Reviewed-by: Fangrui Song <maskray@xxxxxxxxxx>
> Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
> ---
> include/asm-generic/vmlinux.lds.h | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
> index 1248a206be8d..8e71757f485b 100644
> --- a/include/asm-generic/vmlinux.lds.h
> +++ b/include/asm-generic/vmlinux.lds.h
> @@ -792,7 +792,10 @@
> .stab.exclstr 0 : { *(.stab.exclstr) } \
> .stab.index 0 : { *(.stab.index) } \
> .stab.indexstr 0 : { *(.stab.indexstr) } \
> - .comment 0 : { *(.comment) }
> + .comment 0 : { *(.comment) } \
> + .symtab 0 : { *(.symtab) } \
> + .strtab 0 : { *(.strtab) } \
> + .shstrtab 0 : { *(.shstrtab) }
>
> #ifdef CONFIG_GENERIC_BUG
> #define BUG_TABLE \
> --
> 2.25.1
>