2020-11-03 09:47:58

by Naresh Kamboju

[permalink] [raw]
Subject: ERROR: modpost: "__udivdi3" [fs/btrfs/btrfs.ko] undefined!

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


2020-11-03 09:51:02

by Geert Uytterhoeven

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

On Tue, Nov 3, 2020 at 10:43 AM Naresh Kamboju
<[email protected]> 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 ;-)

https://lore.kernel.org/linux-btrfs/202009160107.DZZO6Dfi%[email protected]/
https://lore.kernel.org/linux-btrfs/[email protected]/

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

2020-11-03 10:23:44

by Qu Wenruo

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



On 2020/11/3 下午5:47, Geert Uytterhoeven wrote:
> On Tue, Nov 3, 2020 at 10:43 AM Naresh Kamboju
> <[email protected]> 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%[email protected]/
> https://lore.kernel.org/linux-btrfs/[email protected]/
>
> Gr{oetje,eeting}s,
>
> Geert
>


Attachments:
signature.asc (499.00 B)
OpenPGP digital signature

2020-11-03 11:17:29

by David Sterba

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

On Tue, Nov 03, 2020 at 06:21:06PM +0800, Qu Wenruo wrote:
>
>
> On 2020/11/3 下午5:47, Geert Uytterhoeven wrote:
> > On Tue, Nov 3, 2020 at 10:43 AM Naresh Kamboju
> > <[email protected]> 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).

I've pushed updated for-next that uses the sectorsize_bits.