clang kernel PPC32 build failure, undefined reference to `__umoddi3'
Nick Desaulniers
ndesaulniers at google.com
Thu Aug 4 05:01:35 AEST 2022
Thanks for the report; tracking the issue here:
https://github.com/ClangBuiltLinux/linux/issues/1679
clang-15 got more aggressive about eliminating loops outright; some
cases can be replaced with division/remainder. LLVM is missing
support for expanding 64b division by constant for 32b targets; WIP.
On Wed, Aug 3, 2022 at 11:54 AM Christophe Leroy
<christophe.leroy at csgroup.eu> wrote:
>
> Looks like since recently some clang builds fails for missing reference
> to `__umoddi3`.
>
> See exemple at:
> - https://github.com/ruscur/linux-ci/actions/runs/2789193140
> -
> https://patchwork.ozlabs.org/project/linuxppc-dev/patch/eca9251f1e1f82c4c46ec6380ddb28356ab3fdfe.1659527244.git.christophe.leroy@csgroup.eu/
>
> From fs/mpage.o:
>
> 00000170 <do_mpage_readpage>:
> ...
> 69c: 38 60 00 00 li r3,0
> 6a0: 38 a0 00 00 li r5,0
> 6a4: 38 c0 00 05 li r6,5
> 6a8: 7d c4 73 78 mr r4,r14
> 6ac: 92 e1 00 10 stw r23,16(r1)
> 6b0: 3a a0 00 00 li r21,0
> 6b4: 93 81 00 18 stw r28,24(r1)
> 6b8: 3b 80 00 05 li r28,5
> 6bc: 92 01 00 14 stw r16,20(r1)
> 6c0: 92 21 00 1c stw r17,28(r1)
> 6c4: 48 00 00 01 bl 6c4 <do_mpage_readpage+0x554>
> 6c4: R_PPC_REL24 __umoddi3
>
>
>
> I don't understand why calling __umoddi3 when the arguments are
> obviously 32 bits are r3 and r5 are zero.
>
> Christophe
--
Thanks,
~Nick Desaulniers
More information about the Linuxppc-dev
mailing list