Re: [PATCH v2 mips-next 2/4] MIPS: vmlinux.lds.S: add ".gnu.attributes" to DISCARDS

From: Kees Cook
Date: Wed Jan 06 2021 - 17:07:59 EST


On Wed, Jan 06, 2021 at 08:08:19PM +0000, Alexander Lobakin wrote:
> Discard GNU attributes at link time as kernel doesn't use it at all.
> Solves a dozen of the following ld warnings (one per every file):
>
> mips-alpine-linux-musl-ld: warning: orphan section `.gnu.attributes'
> from `arch/mips/kernel/head.o' being placed in section
> `.gnu.attributes'
> mips-alpine-linux-musl-ld: warning: orphan section `.gnu.attributes'
> from `init/main.o' being placed in section `.gnu.attributes'
>
> Misc: sort DISCARDS section entries alphabetically.

Hmm, I wonder what is causing the appearance of .eh_frame? With help I
tracked down all the causes of this on x86, arm, and arm64, so that's
why it's not in the asm-generic DISCARDS section. I suspect this could
be cleaned up for mips too?

Similarly for .gnu.attributes. What is generating that? (Or, more
specifically, why is it both being generated AND discarded?)

-Kees

>
> Signed-off-by: Alexander Lobakin <alobakin@xxxxx>
> ---
> arch/mips/kernel/vmlinux.lds.S | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S
> index 83e27a181206..5d6563970ab2 100644
> --- a/arch/mips/kernel/vmlinux.lds.S
> +++ b/arch/mips/kernel/vmlinux.lds.S
> @@ -221,9 +221,10 @@ SECTIONS
> /* ABI crap starts here */
> *(.MIPS.abiflags)
> *(.MIPS.options)
> + *(.eh_frame)
> + *(.gnu.attributes)
> *(.options)
> *(.pdr)
> *(.reginfo)
> - *(.eh_frame)
> }
> }
> --
> 2.30.0
>
>

--
Kees Cook