As a temporary *workaround* in order to link the driver (for those of
us willing to use a "blob-ful" driver -- until a better solution is
found) under 6.15 and beyond, the driver may be linked by editing
/usr/src/broadcom-sta-6.30.223.271/Makefile to disable objtool during
the final processing of wl.o.  It's an ugly hack but it seems to work
for me.

Details are found in this link (lines 75-89):
https://gitlab.archlinux.org/archlinux/packaging/packages/broadcom-wl-dkms/-/blob/main/020-linux615.patch?ref_type=h

On Thu, 05 Jun 2025 13:28:30 +0200 Andreas Beckmann <[email protected]>
wrote:
> Followup-For: Bug #1106546
> Control: found -1 6.30.223.271-27
> 
> With the EXTRA_CFLAGS fixed, the module build is now failing while
> linking:
> 
> DKMS (dkms-3.2.0) make.log for broadcom-sta/6.30.223.271 for kernel
6.15-amd64 (x86_64)
> Thu Jun  5 00:59:08 UTC 2025
> 
> Building module(s)
> # command: make -j14 KERNELRELEASE=6.15-amd64 KVER=6.15-amd64
> CFG80211 API is prefered for this kernel version
> Makefile:91: Neither CFG80211 nor Wireless Extension is enabled in
kernel
> KBUILD_NOPEDANTIC=1 make -C /lib/modules/6.15-amd64/build M=`pwd`
> make[1]: Entering directory '/usr/src/linux-headers-6.15-amd64'
> make[2]: Entering directory '/var/lib/dkms/broadcom-
sta/6.30.223.271/build'
> CFG80211 API is prefered for this kernel version
> Using CFG80211 API
> Kernel architecture is X86_64
>   CC [M]  src/shared/linux_osl.o
>   CC [M]  src/wl/sys/wl_linux.o
>   CC [M]  src/wl/sys/wl_iw.o
>   CC [M]  src/wl/sys/wl_cfg80211_hybrid.o
> In file included from /usr/src/linux-headers-6.15-
common/include/linux/srcu.h:21,
>                  from /usr/src/linux-headers-6.15-
common/include/linux/notifier.h:16,
>                  from /usr/src/linux-headers-6.15-
common/arch/x86/include/asm/uprobes.h:13,
>                  from /usr/src/linux-headers-6.15-
common/include/linux/uprobes.h:65,
>                  from /usr/src/linux-headers-6.15-
common/include/linux/mm_types.h:16,
>                  from /usr/src/linux-headers-6.15-
common/include/linux/mmzone.h:22,
>                  from /usr/src/linux-headers-6.15-
common/include/linux/gfp.h:7,
>                  from /usr/src/linux-headers-6.15-
common/include/linux/umh.h:4,
>                  from /usr/src/linux-headers-6.15-
common/include/linux/kmod.h:9,
>                  from /usr/src/linux-headers-6.15-
common/include/linux/module.h:17,
>                  from ././src/include/linuxver.h:40,
>                  from src/wl/sys/wl_linux.c:27:
> src/wl/sys/wl_linux.c: In function 'wl_down':
> /usr/src/linux-headers-6.15-common/include/linux/workqueue.h:765:9:
warning: call to '__warn_flushing_systemwide_wq' declared with
attribute warning: Please avoid flushing system-wide workqueues. [-
Wattribute-warning]
>   765 |        
__warn_flushing_systemwide_wq();                                \
>       |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> src/wl/sys/wl_linux.c:1512:25: note: in expansion of macro
'flush_scheduled_work'
>  1512 |                         flush_scheduled_work();
>       |                         ^~~~~~~~~~~~~~~~~~~~
>   LD [M]  wl.o
> wl.o: warning: objtool: aes_cbc_encrypt_pad+0x4c: unannotated intra-
function call
> make[4]: *** [/usr/src/linux-headers-6.15-
common/scripts/Makefile.build:413: wl.o] Error 255
> make[4]: *** Deleting file 'wl.o'
> make[3]: *** [/usr/src/linux-headers-6.15-common/Makefile:2027: .]
Error 2
> make[2]: *** [/usr/src/linux-headers-6.15-common/Makefile:260: __sub-
make] Error 2
> make[2]: Leaving directory '/var/lib/dkms/broadcom-
sta/6.30.223.271/build'
> make[1]: *** [/usr/src/linux-headers-6.15-common/Makefile:260: __sub-
make] Error 2
> make[1]: Leaving directory '/usr/src/linux-headers-6.15-amd64'
> make: *** [Makefile:183: all] Error 2
> 
> # exit code: 2
> # elapsed time: 00:00:05
> ----------------------------------------------------------------
> 
> 
> This may be caused by the blob being linked in, but I haven't had
time
> to further investigate this (and it doesn't (yet) happen with

-- 
Craig Prevallet <[email protected]>

Reply via email to