Re: ERROR: modpost: "__udivdi3" [fs/btrfs/btrfs.ko] undefined!

From: Qu Wenruo
Date: Tue Nov 03 2020 - 05:21:53 EST




On 2020/11/3 下午5:47, Geert Uytterhoeven wrote:
> On Tue, Nov 3, 2020 at 10:43 AM Naresh Kamboju
> <naresh.kamboju@xxxxxxxxxx> wrote:
>> Linux next 20201103 tag make modules failed for i386 and arm
>> architecture builds.
>>
>> Error log:
>> LD [M] fs/btrfs/btrfs.o
>> MODPOST Module.symvers
>> ERROR: modpost: "__udivdi3" [fs/btrfs/btrfs.ko] undefined!
>> scripts/Makefile.modpost:111: recipe for target 'Module.symvers' failed
>> make[2]: *** [Module.symvers] Error 1
>>
>> Full build log,
>> https://ci.linaro.org/view/lkft/job/openembedded-lkft-linux-next/DISTRO=lkft,MACHINE=intel-core2-32,label=docker-lkft/891/consoleText
>> https://ci.linaro.org/view/lkft/job/openembedded-lkft-linux-next/DISTRO=lkft,MACHINE=am57xx-evm,label=docker-lkft/891/consoleText
>>
>> --
>> Linaro LKFT
>> https://lkft.linaro.org
>
> Yeah, I had a look earlier today, thanks to the kisskb builder, and
> the btrfs people are working on a fix.
> Interestingly, the issue was reported in September, and still entered
> linux-next, so we all had a great time to look into it ;-)

Yeah, we all know that and how to fix it (just call do_div64() for u64 /
u32).
But at that time we're already working on a better solution, other than
using do_div64(), we use sectorsize_bits shift to replace the division,
and unfortunately the bit shift fix didn't get merged until recently.

Considering that patch is only designed to be merged after the bit shift
fix patch, we're not that concerned. (Until some other guys are
complaining about the linux-next branch).

Thanks,
Qu
>
> https://lore.kernel.org/linux-btrfs/202009160107.DZZO6Dfi%25lkp@xxxxxxxxx/
> https://lore.kernel.org/linux-btrfs/20201102073114.66750-1-wqu@xxxxxxxx/
>
> Gr{oetje,eeting}s,
>
> Geert
>

Attachment: signature.asc
Description: OpenPGP digital signature