[RFC PATCH] objtool: Skip unannotated intra-function call warning for bl+mflr pattern

Nathan Chancellor nathan at kernel.org
Tue Feb 25 04:09:22 AEDT 2025


On Mon, Feb 24, 2025 at 02:19:14PM +0100, Christophe Leroy wrote:
> Well, this problem already exists on clang 18 it seems:
> 
> 00000004 <btext_map>:
>    4:   7c 08 02 a6     mflr    r0
>    8:   94 21 ff e0     stwu    r1,-32(r1)
>    c:   93 c1 00 18     stw     r30,24(r1)
>   10:   90 01 00 24     stw     r0,36(r1)
>   14:   93 a1 00 14     stw     r29,20(r1)
>   18:   48 00 00 05     bl      1c <btext_map+0x18>
>   1c:   38 a0 00 00     li      r5,0
>   20:   7f c8 02 a6     mflr    r30
> 
> While GCC generates:
> 
> 00000418 <btext_map>:
>  418:   94 21 ff e0     stwu    r1,-32(r1)
>  41c:   7c 08 02 a6     mflr    r0
>  420:   42 9f 00 05     bcl     20,4*cr7+so,424 <btext_map+0xc>
>  424:   39 20 00 00     li      r9,0
>  428:   93 c1 00 18     stw     r30,24(r1)
>  42c:   7f c8 02 a6     mflr    r30
> 
> So lets make the kernel tolerate it allthough it should be fixed on clang at
> the end.
> 
> I can't find any related issue in the clang issues database
> (https://github.com/llvm/llvm-project/issues), should we open one ?

Yes please, especially if you happen to have a simplified reproducer
(but no worries if not). I can make sure it gets labeled for the PowerPC
backend folks to take a look at.

Cheers,
Nathan


More information about the Linuxppc-dev mailing list