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?
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.
-Kees
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?
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)
*(.options) *(.pdr) *(.reginfo)*(.gnu.attributes)
}*(.eh_frame)
}
2.30.0
-- Kees Cook
Thanks, Al