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.le...@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.le...@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