From: Kees Cook <keescook@chromium.org>
To: Alexander Lobakin <alobakin@pm.me>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
Nathan Chancellor <natechancellor@gmail.com>,
Fangrui Song <maskray@google.com>,
Jiaxun Yang <jiaxun.yang@flygoat.com>,
Alex Smith <alex.smith@imgtec.com>,
Ralf Baechle <ralf@linux-mips.org>,
Markos Chandras <markos.chandras@imgtec.com>,
linux-mips@vger.kernel.org, stable@vger.kernel.org,
linux-kernel@vger.kernel.org,
Sami Tolvanen <samitolvanen@google.com>
Subject: Re: [PATCH v2 mips-next 2/4] MIPS: vmlinux.lds.S: add ".gnu.attributes" to DISCARDS
Date: Wed, 6 Jan 2021 15:26:18 -0800 [thread overview]
Message-ID: <202101061518.67B9E0205@keescook> (raw)
In-Reply-To: <20210106223606.267756-1-alobakin@pm.me>
On Wed, Jan 06, 2021 at 10:36:38PM +0000, Alexander Lobakin wrote:
> From: Kees Cook <keescook@chromium.org>
> Date: Wed, 6 Jan 2021 14:07:07 -0800
>
> > 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?
>
> I could take a look and hunt it down. Could you please give some refs on
> what were the causes and solutions for the mentioned architectures?
Sure! Here are the ones I could find again:
34b4a5c54c42 ("arm64/kernel: Remove needless Call Frame Information annotations")
6e0a66d10c5b ("arm64/build: Remove .eh_frame* sections due to unwind tables")
d1c0272bc1c0 ("x86/boot/compressed: Remove, discard, or assert for unwanted sections")
> > Similarly for .gnu.attributes. What is generating that? (Or, more
> > specifically, why is it both being generated AND discarded?)
>
> On my setup, GNU Attributes consist of MIPS FP type (soft) and
> (if I'm correct) MIPS GNU Hash tables.
Ah, right, the soft-float markings sound correct to discard, IIUC.
> By the way. I've built the kernel with LLVM stack (and found several
> subjects for more patches) and, besides '.got', also got a fistful
> of '.data..compoundliteral*' symbols (drivers/mtd/nand/spi/,
> net/ipv6/ etc). Where should they be placed (rodata, rwdata, ...)
> or they are anomalies of some kind and should be fixed somehow?
Ah yeah, I've seen this before:
https://lore.kernel.org/lkml/202010051345.2Q0cvqdM-lkp@intel.com/
https://lore.kernel.org/lkml/CAKwvOd=s53vUELe311VSjxt2_eQd+RGNCf__n+cV+R=PQ_CdXQ@mail.gmail.com/
And it looks like LTO trips over it too:
https://lore.kernel.org/lkml/20201211184633.3213045-3-samitolvanen@google.com/
So I think the correct solution is to follow Sami's patch and add it to
vmlinux.lds.h:
-#define DATA_MAIN .data .data.[0-9a-zA-Z_]* .data..LPBX*
+#define DATA_MAIN .data .data.[0-9a-zA-Z_]* .data..L* .data..compoundliteral*
...
-#define RODATA_MAIN .rodata .rodata.[0-9a-zA-Z_]*
-#define BSS_MAIN .bss .bss.[0-9a-zA-Z_]*
+#define RODATA_MAIN .rodata .rodata.[0-9a-zA-Z_]* .rodata..L*
+#define BSS_MAIN .bss .bss.[0-9a-zA-Z_]* .bss..compoundliteral*
Can you include a patch for this in your series?
Thanks!
--
Kees Cook
next prev parent reply other threads:[~2021-01-06 23:27 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-06 20:07 [PATCH v2 mips-next 0/4] MIPS: vmlinux.lds.S sections fix & cleanup Alexander Lobakin
2021-01-06 20:08 ` [PATCH v2 mips-next 1/4] MIPS: vmlinux.lds.S: add missing PAGE_ALIGNED_DATA() section Alexander Lobakin
2021-01-06 20:08 ` [PATCH v2 mips-next 2/4] MIPS: vmlinux.lds.S: add ".gnu.attributes" to DISCARDS Alexander Lobakin
2021-01-06 22:07 ` Kees Cook
2021-01-06 22:36 ` Alexander Lobakin
2021-01-06 23:26 ` Kees Cook [this message]
2021-01-07 11:59 ` Alexander Lobakin
2021-01-06 22:43 ` Fāng-ruì Sòng
2021-01-06 20:08 ` [PATCH v2 mips-next 3/4] MIPS: vmlinux.lds.S: catch bad .got, .plt and .rel.dyn at link time Alexander Lobakin
2021-01-06 20:21 ` Fāng-ruì Sòng
2021-01-06 20:23 ` Nathan Chancellor
2021-01-06 20:28 ` Alexander Lobakin
2021-01-06 20:08 ` [PATCH v2 mips-next 4/4] MIPS: select ARCH_WANT_LD_ORPHAN_WARN Alexander Lobakin
2021-01-06 22:07 ` Kees Cook
2021-01-06 22:07 ` [PATCH v2 mips-next 1/4] MIPS: vmlinux.lds.S: add missing PAGE_ALIGNED_DATA() section Kees Cook
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202101061518.67B9E0205@keescook \
--to=keescook@chromium.org \
--cc=alex.smith@imgtec.com \
--cc=alobakin@pm.me \
--cc=jiaxun.yang@flygoat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@vger.kernel.org \
--cc=markos.chandras@imgtec.com \
--cc=maskray@google.com \
--cc=natechancellor@gmail.com \
--cc=ralf@linux-mips.org \
--cc=samitolvanen@google.com \
--cc=stable@vger.kernel.org \
--cc=tsbogend@alpha.franken.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.