OpenWRT 23.05.x SDK fails to build mac80211 due to genlmsg_multicast_allns argument mismatch

The issue has already been created.

Building mac80211 in OpenWRT SDK 23.05.x fails due to a mismatch in the function signature of genlmsg_multicast_allns . It appears that backports-6.1.110-1 is incompatible with the current kernel headers in OpenWRT 23.05.x.

Steps to reproduce

  1. Download and extract OpenWRT SDK for 23.05.5 (ath79, but likely affects all targets).
  2. Run:

./scripts/feeds update -a
./scripts/feeds install -a
make defconfig
make package/mac80211/compile V=sc

  1. The build fails with the following error:
error: too few arguments to function 'genlmsg_multicast_allns'
  mips-openwrt-linux-musl-gcc -Wp,-MMD,/home/lede-firmware/my_firmware/openwrt-sdk-23.05.5-ath79-mikrotik_gcc-12.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ath79_mikrotik/backports-6.1.110-1/net/wireless/.nl80211.o.d -nostdinc -isystem /home/lede-firmware/my_firmware/openwrt-sdk-23.05.5-ath79-mikrotik_gcc-12.3.0_musl.Linux-x86_64/staging_dir/toolchain-mips_24kc_gcc-12.3.0_musl/bin/../lib/gcc/mips-openwrt-linux-musl/12.3.0/include -I/home/lede-firmware/my_firmware/openwrt-sdk-23.05.5-ath79-mikrotik_gcc-12.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ath79_mikrotik/backports-6.1.110-1/backport-include/ -I/home/lede-firmware/my_firmware/openwrt-sdk-23.05.5-ath79-mikrotik_gcc-12.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ath79_mikrotik/backports-6.1.110-1/backport-include/uapi -I/home/lede-firmware/my_firmware/openwrt-sdk-23.05.5-ath79-mikrotik_gcc-12.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ath79_mikrotik/backports-6.1.110-1/include/ -I/home/lede-firmware/my_firmware/openwrt-sdk-23.05.5-ath79-mikrotik_gcc-12.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ath79_mikrotik/backports-6.1.110-1/include/uapi -include /home/lede-firmware/my_firmware/openwrt-sdk-23.05.5-ath79-mikrotik_gcc-12.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ath79_mikrotik/backports-6.1.110-1/backport-include/backport/backport.h -Wno-unused-but-set-variable -DCPTCFG_VERSION=\""v6.1.110-1-0-g965f73fc"\" -DCPTCFG_KERNEL_VERSION=\""v6.1.110-0-g5f55cad62cc9d"\" -DCPTCFG_KERNEL_NAME=\""Linux"\"   -I./arch/mips/include -I./arch/mips/include/generated  -I./include -I./arch/mips/include/uapi -I./arch/mips/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/compiler-version.h -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -DVMLINUX_LOAD_ADDRESS=0xffffffff80060000 -DLINKER_LOAD_ADDRESS=0x80060000 -DDATAOFFSET=0 -fmacro-prefix-map=./= -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu11 -mno-check-zero-division -mabi=32 -G 0 -mno-abicalls -fno-pic -pipe -mno-branch-likely -msoft-float -DGAS_HAS_SET_HARDFLOAT -Wa,-msoft-float -ffreestanding -EB -fno-stack-check -Wa,-mno-fix-loongson3-llsc -march=mips32r2 -mtune=34kc -Wa,--trap -DTOOLCHAIN_SUPPORTS_VIRT -DTOOLCHAIN_SUPPORTS_XPA -DTOOLCHAIN_SUPPORTS_CRC -DTOOLCHAIN_SUPPORTS_DSP -DTOOLCHAIN_SUPPORTS_GINV -I./arch/mips/include/asm/mach-ath79 -I./arch/mips/include/asm/mach-generic -fno-asynchronous-unwind-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 -fno-allow-store-data-races -Wframe-larger-than=1024 -fstack-protector -Werror -Wimplicit-fallthrough=5 -Wno-main -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-dangling-pointer -fomit-frame-pointer -fno-stack-clash-protection -g -fno-var-tracking -femit-struct-debug-baseonly -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -Wno-zero-length-bounds -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -Wno-alloc-size-larger-than -fno-strict-overflow -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wno-packed-not-aligned -ffile-prefix-map=/home/lede-firmware/my_firmware/openwrt-sdk-23.05.5-ath79-mikrotik_gcc-12.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl=target-mips_24kc_musl -fno-caller-saves -fno-pie -no-pie -std=gnu11 -I/home/lede-firmware/my_firmware/openwrt-sdk-23.05.5-ath79-mikrotik_gcc-12.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ath79_mikrotik/backports-6.1.110-1/include -ffile-prefix-map=/home/lede-firmware/my_firmware/openwrt-sdk-23.05.5-ath79-mikrotik_gcc-12.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ath79_mikrotik/backports-6.1.110-1=backports-6.1.110-1  -DMODULE -mno-long-calls  -DKBUILD_BASENAME='"nl80211"' -DKBUILD_MODNAME='"cfg80211"' -D__KBUILD_MODNAME=kmod_cfg80211 -c -o /home/lede-firmware/my_firmware/openwrt-sdk-23.05.5-ath79-mikrotik_gcc-12.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ath79_mikrotik/backports-6.1.110-1/net/wireless/nl80211.o /home/lede-firmware/my_firmware/openwrt-sdk-23.05.5-ath79-mikrotik_gcc-12.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ath79_mikrotik/backports-6.1.110-1/net/wireless/nl80211.c
/home/lede-firmware/my_firmware/openwrt-sdk-23.05.5-ath79-mikrotik_gcc-12.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ath79_mikrotik/backports-6.1.110-1/net/wireless/nl80211.c: In function 'nl80211_common_reg_change_event':
/home/lede-firmware/my_firmware/openwrt-sdk-23.05.5-ath79-mikrotik_gcc-12.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ath79_mikrotik/backports-6.1.110-1/net/wireless/nl80211.c:17679:9: error: too few arguments to function 'genlmsg_multicast_allns'
17679 |         genlmsg_multicast_allns(&nl80211_fam, msg, 0,
      |         ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/lede-firmware/my_firmware/openwrt-sdk-23.05.5-ath79-mikrotik_gcc-12.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ath79_mikrotik/backports-6.1.110-1/backport-include/net/genetlink.h:3,
                 from /home/lede-firmware/my_firmware/openwrt-sdk-23.05.5-ath79-mikrotik_gcc-12.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ath79_mikrotik/backports-6.1.110-1/net/wireless/nl80211.c:25:
./include/net/genetlink.h:343:5: note: declared here
  343 | int genlmsg_multicast_allns(const struct genl_family *family,
      |     ^~~~~~~~~~~~~~~~~~~~~~~
/home/lede-firmware/my_firmware/openwrt-sdk-23.05.5-ath79-mikrotik_gcc-12.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ath79_mikrotik/backports-6.1.110-1/net/wireless/nl80211.c: In function 'nl80211_send_beacon_hint_event':
/home/lede-firmware/my_firmware/openwrt-sdk-23.05.5-ath79-mikrotik_gcc-12.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ath79_mikrotik/backports-6.1.110-1/net/wireless/nl80211.c:18304:9: error: too few arguments to function 'genlmsg_multicast_allns'
18304 |         genlmsg_multicast_allns(&nl80211_fam, msg, 0,
      |         ^~~~~~~~~~~~~~~~~~~~~~~
./include/net/genetlink.h:343:5: note: declared here
  343 | int genlmsg_multicast_allns(const struct genl_family *family,
      |     ^~~~~~~~~~~~~~~~~~~~~~~
make[8]: *** [scripts/Makefile.build:289: /home/lede-firmware/my_firmware/openwrt-sdk-23.05.5-ath79-mikrotik_gcc-12.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ath79_mikrotik/backports-6.1.110-1/net/wireless/nl80211.o] Error 1
make[7]: *** [scripts/Makefile.build:552: /home/lede-firmware/my_firmware/openwrt-sdk-23.05.5-ath79-mikrotik_gcc-12.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ath79_mikrotik/backports-6.1.110-1/net/wireless] Error 2
make[6]: *** [Makefile:1907: /home/lede-firmware/my_firmware/openwrt-sdk-23.05.5-ath79-mikrotik_gcc-12.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ath79_mikrotik/backports-6.1.110-1] Error 2
make[5]: *** [Makefile.build:13: modules] Error 2
make[4]: *** [Makefile.real:93: modules] Error 2
make[3]: *** [Makefile:120: modules] Error 2
make[3]: Leaving directory '/home/lede-firmware/my_firmware/openwrt-sdk-23.05.5-ath79-mikrotik_gcc-12.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ath79_mikrotik/backports-6.1.110-1'
make[2]: *** [Makefile:396: /home/lede-firmware/my_firmware/openwrt-sdk-23.05.5-ath79-mikrotik_gcc-12.3.0_musl.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-ath79_mikrotik/backports-6.1.110-1/.built] Error 2
make[2]: Leaving directory '/home/lede-firmware/my_firmware/openwrt-sdk-23.05.5-ath79-mikrotik_gcc-12.3.0_musl.Linux-x86_64/feeds/base/package/kernel/mac80211'
time: package/feeds/base/mac80211/regular/compile#4.50#1.25#15.41
    ERROR: package/feeds/base/mac80211 failed to build (build variant: regular).
make[1]: *** [package/Makefile:129: package/feeds/base/mac80211/compile] Error 1
make[1]: Leaving directory '/home/lede-firmware/my_firmware/openwrt-sdk-23.05.5-ath79-mikrotik_gcc-12.3.0_musl.Linux-x86_64'
make: *** [/home/lede-firmware/my_firmware/openwrt-sdk-23.05.5-ath79-mikrotik_gcc-12.3.0_musl.Linux-x86_64/include/toplevel.mk:226: package/mac80211/compile] Error 2

Do you mean the ath79 image builder?

No, I mean exactly SDK, which builds only packages, not images.

https://downloads.openwrt.org/releases/23.05.5/targets/ath79/mikrotik/openwrt-sdk-23.05.5-ath79-mikrotik_gcc-12.3.0_musl.Linux-x86_64.tar.xz

You can try any of 23.05.x

Yep I repro this... i'm investigating... it's strange...

Ok problem identified... it's a mix of thing but we we can handle this!

2 Likes

please test... need to wait additional feedback for this. Once it's accepted I will backport to stable branch. To test you can apply this patch to the sdk manually in the feeds/base directory

1 Like

Merged and backported to stable branch.

1 Like

Thanks a lot!

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.