As stated in the summary, net-wireless/broadcom-sta-5.100.82.38-r1 fails to build against gentoo-sources-3.2.1-r2. The relevant error seems to be: /var/tmp/portage/net-wireless/broadcom-sta-5.100.82.38-r1/work/src/wl/sys/wl_linux.c:328:2: error: unknown field 'ndo_set_multicast_list' specified in initializer It seems that the net_device_ops structure no longer has an ndo_set_multicast_list member. Unfortunately, I don't know enough about this part of the kernel to produce a patch. I have no idea how critical the wl_set_multicast_list function is to the correct function of the device :-(. Simply removing that initializer from the code makes things compile (so this is the only issue that needs addressing), but as I mentioned, I don't know if this is critical functionality or not. Reproducible: Always * Package: net-wireless/broadcom-sta-5.100.82.38-r1 * Repository: gentoo * Maintainer: matsuu@gentoo.org * USE: amd64 elibc_glibc kernel_linux multilib userland_GNU * FEATURES: preserve-libs sandbox splitdebug * Determining the location of the kernel source code * Found kernel source directory: * /usr/src/linux * Found sources for kernel version: * 3.2.1-gentoo-r2 * Checking for suitable kernel configuration options... [ ok ] >>> Unpacking source... >>> Unpacking hybrid-portsrc_x86_64-v5_100_82_38.tar.gz to /var/tmp/portage/net-wireless/broadcom-sta-5.100.82.38-r1/work >>> Source unpacked in /var/tmp/portage/net-wireless/broadcom-sta-5.100.82.38-r1/work >>> Preparing source in /var/tmp/portage/net-wireless/broadcom-sta-5.100.82.38-r1/work ... * Applying broadcom-sta-5.10.91.9-license.patch ... [ ok ] * Applying broadcom-sta-5.100.82.38-gcc.patch ... [ ok ] * Applying broadcom-sta-5.100.82.38-linux-2.6.37.patch ... [ ok ] >>> Source prepared. >>> Configuring source in /var/tmp/portage/net-wireless/broadcom-sta-5.100.82.38-r1/work ... >>> Source configured. >>> Compiling source in /var/tmp/portage/net-wireless/broadcom-sta-5.100.82.38-r1/work ... ln: failed to create symbolic link `Module.symvers': File exists * Preparing wl module make -j5 HOSTCC=x86_64-pc-linux-gnu-gcc CROSS_COMPILE=x86_64-pc-linux-gnu- 'LDFLAGS=-m elf_x86_64' -C /usr/src/linux M=/var/tmp/portage/net-wireless/broadcom-sta-5.100.82.38-r1/work wl.ko make: Entering directory `/usr/src/linux-3.2.1-gentoo-r2' CC [M] /var/tmp/portage/net-wireless/broadcom-sta-5.100.82.38-r1/work/src/shared/linux_osl.o CC [M] /var/tmp/portage/net-wireless/broadcom-sta-5.100.82.38-r1/work/src/wl/sys/wl_linux.o CC [M] /var/tmp/portage/net-wireless/broadcom-sta-5.100.82.38-r1/work/src/wl/sys/wl_iw.o /var/tmp/portage/net-wireless/broadcom-sta-5.100.82.38-r1/work/src/wl/sys/wl_linux.c:328:2: error: unknown field 'ndo_set_multicast_list' specified in initializer /var/tmp/portage/net-wireless/broadcom-sta-5.100.82.38-r1/work/src/wl/sys/wl_linux.c:328:2: warning: initialization from incompatible pointer type make[1]: *** [/var/tmp/portage/net-wireless/broadcom-sta-5.100.82.38-r1/work/src/wl/sys/wl_linux.o] Error 1 make[1]: *** Waiting for unfinished jobs.... make: *** [wl.ko] Error 2 make: Leaving directory `/usr/src/linux-3.2.1-gentoo-r2' emake failed * ERROR: net-wireless/broadcom-sta-5.100.82.38-r1 failed (compile phase): * Unable to emake HOSTCC=x86_64-pc-linux-gnu-gcc CROSS_COMPILE=x86_64-pc-linux-gnu- LDFLAGS=-m elf_x86_64 -C /usr/src/linux M=/var/tmp/portage/net-wireless/broadcom-sta-5.100.82.38-r1/work wl.ko * * Call stack: * ebuild.sh, line 85: Called src_compile * environment, line 3178: Called linux-mod_src_compile * environment, line 2398: Called die * The specific snippet of code: * eval "emake HOSTCC=\"$(tc-getBUILD_CC)\" CROSS_COMPILE=${CHOST}- LDFLAGS=\"$(get_abi_LDFLAGS)\" ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS} " || die "Unable to emake HOSTCC="$(tc-getBUILD_CC)" CROSS_COMPILE=${CHOST}- LDFLAGS="$(get_abi_LDFLAGS)" ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS}"; * * If you need support, post the output of 'emerge --info =net-wireless/broadcom-sta-5.100.82.38-r1', * the complete build log and the output of 'emerge -pqv =net-wireless/broadcom-sta-5.100.82.38-r1'. * The complete build log is located at '/var/tmp/portage/net-wireless/broadcom-sta-5.100.82.38-r1/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/net-wireless/broadcom-sta-5.100.82.38-r1/temp/environment'. * S: '/var/tmp/portage/net-wireless/broadcom-sta-5.100.82.38-r1/work'
As a follow up, according to this site (http://www.broadcom.com/support/802.11/linux_sta.php) the latest version of the driver is 5.100.82.112. I haven't downloaded it yet, but it may be an already fixed problem. I'll try compiling it and see. This may end up just needing to be a version bump request.
unfortunately, the same issue occurs with 5.100.82.112.
I encountered the same bug when upgrading from my somewhat outdated 2.6 kernel to 3.2.1-r2 and can confirm its existance. I also managed to workaround the issue locally by finding and reverting the offending change in the linux kernel, which allowed broadcom-sta to compile and result in a working wireless driver: http://patchwork.ozlabs.org/patch/110211/ The entire fix in steps: 1: Download patch at http://patchwork.ozlabs.org/patch/110211/raw/ 2: (un)patch the kernel: cd /usr/src/linux patch -u -p1 -R -i /path/to/net-next-2.6-3-3-net-remove-ndo_set_multicast_list-callback.patch 3: rebuild the kernel and modules 4: rebuild broadcom-sta (also rebuild all other kernel-dependent drivers) 5: install the new kernel binary 6: reboot for profit
This is fixed in bug 390627 for net-wireless/broadcom-sta-5.100.82.112-r2.
(In reply to comment #4) > This is fixed in bug 390627 for net-wireless/broadcom-sta-5.100.82.112-r2. We need to get a newer stable version then
x86 stable
amd64 ok
amd64 stable. Last arch, closing.