Messages in this thread Patch in this message | | | From | Fāng-ruì Sòng <> | Date | Wed, 6 Jan 2021 14:43:08 -0800 | Subject | Re: [PATCH v2 mips-next 2/4] MIPS: vmlinux.lds.S: add ".gnu.attributes" to DISCARDS |
| |
On Wed, Jan 6, 2021 at 2:07 PM Kees Cook <keescook@chromium.org> wrote: > > 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?
On x86, 003602ad5516e59940de42e44c8d8033387bb363 "x86/*/Makefile: Use -fno-asynchronous-unwind-tables to suppress .eh_frame sections" noticed that some Makefiles redefined KBUILD_CFLAGS and dropped -fno-asynchronous-unwind-tables. Maybe mips has similar issues.
> Similarly for .gnu.attributes. What is generating that? (Or, more > specifically, why is it both being generated AND discarded?) > > -Kees
gcc/config/mips/mips.c https://github.com/gcc-mirror/gcc/blob/master/gcc/config/mips/mips.c#L9965 .gnu_attribute 4, 0 does not produce .gnu.attributes (SHT_GNU_ATTRIBUTES) but there are likely code paths that a non-zero value is used... So .gnu_attributes is likely needed to be excluded.
> > > > Signed-off-by: Alexander Lobakin <alobakin@pm.me> > > --- > > 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
-- 宋方睿
| |