[DRBD-user] drbd 9.0.26 and newer fails to build on 5.4 kernels

Natanael Copa ncopa at alpinelinux.org
Fri Feb 19 19:38:53 CET 2021


Hi,

I tried to update the kernel for alpine 3.12-stable branch from 5.4.84
to 5.4.99. The 3rd part kernel module drbd 9.0.22-2 failed to build so
I updated it to 9.0.27-1. This passed on the x86_64 machine I tested
built it on so I pushed it.

But it failed on 32 bit arm builders:

...
In file included from ./include/linux/module.h:27,
                 from /home/buildozer/aports/main/drbd-lts/src/drbd-9.0.27-1/drbd/drbd_req.h:16,
                 from /home/buildozer/aports/main/drbd-lts/src/drbd-9.0.27-1/drbd/drbd_state.c:22:
./arch/arm/include/asm/module.h:59: warning: "MODULE_ARCH_VERMAGIC" redefined
   59 | #define MODULE_ARCH_VERMAGIC \
      | 
In file included from /home/buildozer/aports/main/drbd-lts/src/drbd-9.0.27-1/drbd/drbd_state.c:19:
./include/linux/vermagic.h:28: note: this is the location of the previous definition
   28 | #define MODULE_ARCH_VERMAGIC ""
      | 
  GEN     /home/buildozer/aports/main/drbd-lts/src/drbd-9.0.27-1/drbd/drbd_buildtag.c 
  CC [M]  /home/buildozer/aports/main/drbd-lts/src/drbd-9.0.27-1/drbd/drbd_buildtag.o
  LD [M]  /home/buildozer/aports/main/drbd-lts/src/drbd-9.0.27-1/drbd/drbd.o
  Building modules, stage 2.
  MODPOST 2 modules
ERROR: "__aeabi_ldivmod" [/home/buildozer/aports/main/drbd-lts/src/drbd-9.0.27-1/drbd/drbd.ko] undefined!
ERROR: "__aeabi_uldivmod" [/home/buildozer/aports/main/drbd-lts/src/drbd-9.0.27-1/drbd/drbd.ko] undefined!
make[3]: *** [scripts/Makefile.modpost:94: __modpost] Error 1
make[2]: *** [Makefile:1639: modules] Error 2
make[1]: *** [Makefile:132: kbuild] Error 2
make[1]: Leaving directory '/home/buildozer/aports/main/drbd-lts/src/drbd-9.0.27-1/drbd'
make: *** [Makefile:131: module] Error 2
>>> ERROR: drbd-lts: build failed

And on 32 bit x86:

  GEN     /home/buildozer/aports/main/drbd-lts/src/drbd-9.0.27-1/drbd/drbd_buildtag.c 
  CC [M]  /home/buildozer/aports/main/drbd-lts/src/drbd-9.0.27-1/drbd/drbd_buildtag.o
  LD [M]  /home/buildozer/aports/main/drbd-lts/src/drbd-9.0.27-1/drbd/drbd.o
  Building modules, stage 2.
  MODPOST 2 modules
ERROR: "__udivdi3" [/home/buildozer/aports/main/drbd-lts/src/drbd-9.0.27-1/drbd/drbd.ko] undefined!
ERROR: "__divdi3" [/home/buildozer/aports/main/drbd-lts/src/drbd-9.0.27-1/drbd/drbd.ko] undefined!
make[3]: *** [scripts/Makefile.modpost:94: __modpost] Error 1
make[2]: *** [Makefile:1639: modules] Error 2
make[1]: *** [Makefile:132: kbuild] Error 2
make[1]: Leaving directory '/home/buildozer/aports/main/drbd-lts/src/drbd-9.0.27-1/drbd'
make: *** [Makefile:131: module] Error 2
>>> ERROR: drbd-lts: build failed

I read that this can happen if do_div() is not used and libgcc is not
linked in (which I assume we shouldnt on kernel). I tried to look at
the git log if I could find anything evident but couldn't find anything.

So I tried to find older version. Turns out that the lastest version
that compiles with 5.4 kernel is 9.0.25-2, but it only compiles with
5.4.84 kernel and not the 5.4.99.

Does anyone have a clue how to solve this? If not, I guess I have to
try git bisect it.


PS. Please CC me, I'm not subscribed to the mailing list.



More information about the drbd-user mailing list