Hi Andreas,

On Mon, 13 May 2024 10:32:23 +0200 Andreas Beckmann <a...@debian.org> wrote:
> The module fails to build for several architectures and kernel versions:
> 
> Linux 6.6.*:
> https://ci.debian.net/packages/e/ezurio-qcacld-2.0-dkms/testing/amd64/45828215/#L3674
> 243s 
> /var/lib/dkms/ezurio-qcacld-2.0/0.0~git20230623.2cd31b6/build/CORE/HDD/src/wlan_hdd_cfg80211.c:
>  In function ‘__wlan_hdd_cfg80211_change_beacon’:
> 243s 
> /var/lib/dkms/ezurio-qcacld-2.0/0.0~git20230623.2cd31b6/build/CORE/HDD/src/wlan_hdd_cfg80211.c:19956:48:
>  error: invalid use of undefined type ‘struct cfg80211_ap_update’
> 
> struct cfg80211_ap_update was introduced in Linux 6.7, so I'd recommend
> to add
> 
>       # struct cfg80211_ap_update was added in "wifi: cfg80211: split struct
>       # cfg80211_ap_settings" bb55441c57ccc5cc2eab44e1a97698b9d708871d 
> (v6.7-rc1)
>       BUILD_EXCLUSIVE_KERNEL_MIN="6.7"
> 
> to dkms.conf.

thank you, this seems sensible!

> 
> i386, Linux 6.7.*:
> ERROR: modpost: "__udivdi3" 
> [/var/lib/dkms/ezurio-qcacld-2.0/0.0~git20230623.2cd31b6/build/wlan.ko] 
> undefined!
> 
> This probably affects more 32-bit platforms.
> 
> IIRC __udivdi3 is a compiler generated function call for 
>       (long long) a / (long long) b
> for architectures that don't have native support for long long
> arithmetic. This symbol is part of libgcc_s, but that cannot be linked
> into the kernel for obvious reasons.
> I do not know the solution for this case, but this is something affecting
> more out-of-tree kernel modules.

I'm inclined to just restrict the kernel to amd64, arm64 and riscv64 as the
relevant hardware is unlikely (or rather impossible) to be found on other
architectures. Or do you think that this would be a bed "solution"?

Thanks!

cheers, josch

Attachment: signature.asc
Description: signature

Reply via email to