From: Kees Cook <[email protected]>
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 <[email protected]>
>> ---
>>  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

Thanks,
Al

Reply via email to