Subject: Re: linux-next: build warnings after merge of the crc tree

From: Peter Zijlstra <[email-masked]>
Date: Mon, 17 Feb 2025 19:51:06 +0100

On Mon, Feb 17, 2025 at 10:16:11AM -0800, Eric Biggers wrote:
> On Mon, Feb 17, 2025 at 05:05:55PM +1100, Stephen Rothwell wrote:
> > Hi all,
> > 
> > After merging the crc tree, today's linux-next build (x86_84 allmodconfig)
> > produced these warnings:
> > 
> > vmlinux.o: warning: objtool: crc32_x86_init+0x1c0: relocation to !ENDBR: crc32_lsb_vpclmul_avx10_256+0x0
> > vmlinux.o: warning: objtool: crc64_x86_init+0x183: relocation to !ENDBR: crc64_msb_vpclmul_avx10_256+0x0
> > vmlinux.o: warning: objtool: crc_t10dif_x86_init+0x183: relocation to !ENDBR: crc16_msb_vpclmul_avx10_256+0x0
> > vmlinux.o: warning: objtool: __SCK__crc32_lsb_pclmul+0x0: data relocation to !ENDBR: crc32_lsb_pclmul_sse+0x0
> > vmlinux.o: warning: objtool: __SCK__crc64_lsb_pclmul+0x0: data relocation to !ENDBR: crc64_lsb_pclmul_sse+0x0
> > vmlinux.o: warning: objtool: __SCK__crc64_msb_pclmul+0x0: data relocation to !ENDBR: crc64_msb_pclmul_sse+0x0
> > vmlinux.o: warning: objtool: __SCK__crc16_msb_pclmul+0x0: data relocation to !ENDBR: crc16_msb_pclmul_sse+0x0
> > 
> > I have no idea what has caused these.  Just sending to the crc tree
> > owner (due to the symbol names) and Peter (since he made the only new
> > change to objtool - though it doesn't look vrey related).
> > 
> > -- 
> > Cheers,
> > Stephen Rothwell
> 
> Thanks.  I'm wondering if this means the crc assembly functions need to use
> SYM_TYPED_FUNC_START instead of SYM_FUNC_START.  But they are only called via
> static_calls, not indirect calls, so previously this didn't seem to be necessary
> even with CFI enabled.  I'll look into it.  Peter, any thoughts on this?

I removed the ENDBR from SYM_FUNC_START() because it is insufficient vs
CFI, so no point in having it there.

If these functions are not indirectly called and only ever used through
static_call() (as you say) you can adorn them with:

	ANNOTATE_NOENDBR

to tell objtool to STFU :-)