antoineco / broadcom-wl

Broadcom Linux hybrid wireless driver (64-bit)
https://www.broadcom.com/support/download-search?pg=Wireless+Embedded+Solutions+and+RF+Components&pf=Legacy+Wireless&pa=Driver&dk=BCM4312&l=true
161 stars 47 forks source link

Makefile does not compile on kernel 4.15.14 #6

Closed arun-gurung closed 6 years ago

arun-gurung commented 6 years ago

I updated to latest 4.15.14 rpm-package and now broadcom-wl will not compile. As I said, it compiles on 4.15.13.

This kernel comes from elrepo-kernel yum repository. http://elrepo.org/tiki/kernel-ml

antoineco commented 6 years ago

Maybe similar to #4. Any build logs?

arun-gurung commented 6 years ago
KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
make[1]: Entering directory `/usr/src/kernels/4.15.14-1.el7.elrepo.x86_64'
CFG80211 API is prefered for this kernel version
Using CFG80211 API
  CC [M]  /tmp/broadcom-wl-master/src/wl/sys/wl_linux.o
/tmp/broadcom-wl-master/src/wl/sys/wl_linux.c: In function ‘wl_init_timer’:
/tmp/broadcom-wl-master/src/wl/sys/wl_linux.c:2355:2: error: implicit declaration of function ‘init_timer’ [-Werror=implicit-function-declaration]
  init_timer(&t->timer);
  ^
/tmp/broadcom-wl-master/src/wl/sys/wl_linux.c:2356:10: error: ‘struct timer_list’ has no member named ‘data’
  t->timer.data = (ulong) t;
          ^
/tmp/broadcom-wl-master/src/wl/sys/wl_linux.c:2357:20: warning: assignment from incompatible pointer type [enabled by default]
  t->timer.function = wl_timer;
                    ^
/tmp/broadcom-wl-master/src/wl/sys/wl_linux.c: In function ‘wl_monitor’:
/tmp/broadcom-wl-master/src/wl/sys/wl_linux.c:2918:10: error: ‘struct net_device’ has no member named ‘last_rx’
  skb->dev->last_rx = jiffies;
          ^
cc1: some warnings being treated as errors
make[2]: *** [/tmp/broadcom-wl-master/src/wl/sys/wl_linux.o] Error 1
make[1]: *** [_module_/tmp/broadcom-wl-master] Error 2
make[1]: Leaving directory `/usr/src/kernels/4.15.14-1.el7.elrepo.x86_64'
make: *** [all] Error 2
arun-gurung commented 6 years ago

I updated today to mainline kernel 4.15.15 from elrepo and similar build error occurs.

KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
make[1]: Entering directory `/usr/src/kernels/4.15.15-1.el7.elrepo.x86_64'
CFG80211 API is prefered for this kernel version
Using CFG80211 API
  CC [M]  /tmp/broadcom-wl-master/src/shared/linux_osl.o
/tmp/broadcom-wl-master/src/shared/linux_osl.c: In function ‘osl_os_get_image_block’:
/tmp/broadcom-wl-master/src/shared/linux_osl.c:1079:2: warning: passing argument 2 of ‘kernel_read’ makes pointer from integer without a cast [enabled by default]
  rdlen = kernel_read(fp, fp->f_pos, buf, len);
  ^
In file included from ./include/linux/huge_mm.h:7:0,
                 from ./include/linux/mm.h:463,
                 from /tmp/broadcom-wl-master/src/include/linuxver.h:65,
                 from /tmp/broadcom-wl-master/src/shared/linux_osl.c:25:
./include/linux/fs.h:2843:16: note: expected ‘void *’ but argument is of type ‘loff_t’
 extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
                ^
/tmp/broadcom-wl-master/src/shared/linux_osl.c:1079:2: warning: passing argument 3 of ‘kernel_read’ makes integer from pointer without a cast [enabled by default]
  rdlen = kernel_read(fp, fp->f_pos, buf, len);
  ^
In file included from ./include/linux/huge_mm.h:7:0,
                 from ./include/linux/mm.h:463,
                 from /tmp/broadcom-wl-master/src/include/linuxver.h:65,
                 from /tmp/broadcom-wl-master/src/shared/linux_osl.c:25:
./include/linux/fs.h:2843:16: note: expected ‘size_t’ but argument is of type ‘char *’
 extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
                ^
/tmp/broadcom-wl-master/src/shared/linux_osl.c:1079:2: warning: passing argument 4 of ‘kernel_read’ makes pointer from integer without a cast [enabled by default]
  rdlen = kernel_read(fp, fp->f_pos, buf, len);
  ^
In file included from ./include/linux/huge_mm.h:7:0,
                 from ./include/linux/mm.h:463,
                 from /tmp/broadcom-wl-master/src/include/linuxver.h:65,
                 from /tmp/broadcom-wl-master/src/shared/linux_osl.c:25:
./include/linux/fs.h:2843:16: note: expected ‘loff_t *’ but argument is of type ‘int’
 extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
                ^
  CC [M]  /tmp/broadcom-wl-master/src/wl/sys/wl_linux.o
/tmp/broadcom-wl-master/src/wl/sys/wl_linux.c: In function ‘wl_init_timer’:
/tmp/broadcom-wl-master/src/wl/sys/wl_linux.c:2355:2: error: implicit declaration of function ‘init_timer’ [-Werror=implicit-function-declaration]
  init_timer(&t->timer);
  ^
/tmp/broadcom-wl-master/src/wl/sys/wl_linux.c:2356:10: error: ‘struct timer_list’ has no member named ‘data’
  t->timer.data = (ulong) t;
          ^
/tmp/broadcom-wl-master/src/wl/sys/wl_linux.c:2357:20: warning: assignment from incompatible pointer type [enabled by default]
  t->timer.function = wl_timer;
                    ^
/tmp/broadcom-wl-master/src/wl/sys/wl_linux.c: In function ‘wl_monitor’:
/tmp/broadcom-wl-master/src/wl/sys/wl_linux.c:2918:10: error: ‘struct net_device’ has no member named ‘last_rx’
  skb->dev->last_rx = jiffies;
          ^
cc1: some warnings being treated as errors
make[2]: *** [/tmp/broadcom-wl-master/src/wl/sys/wl_linux.o] Error 1
make[1]: *** [_module_/tmp/broadcom-wl-master] Error 2
make[1]: Leaving directory `/usr/src/kernels/4.15.15-1.el7.elrepo.x86_64'
make: *** [all] Error 2
antoineco commented 6 years ago

Are you sure you're building the correct branch? I just got this kernel today from my OS repo, and everything built just fine:

DKMS make.log for broadcom-wl-6.30.223.271 for kernel 4.15.14-300.fc27.x86_64 (x86_64)
Wed Apr  4 09:10:32 CEST 2018
Wireless Extension is the only possible API for this kernel version
Using Wireless Extension API
KBUILD_NOPEDANTIC=1 make -C /lib/modules/4.15.14-300.fc27.x86_64/build M=`pwd`
make[1]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
make[1]: Entering directory '/usr/src/kernels/4.15.14-300.fc27.x86_64'
CFG80211 API is prefered for this kernel version
Using CFG80211 API
  CC [M]  /var/lib/dkms/broadcom-wl/6.30.223.271/build/src/shared/linux_osl.o
  CC [M]  /var/lib/dkms/broadcom-wl/6.30.223.271/build/src/wl/sys/wl_linux.o
  CC [M]  /var/lib/dkms/broadcom-wl/6.30.223.271/build/src/wl/sys/wl_iw.o
  CC [M]  /var/lib/dkms/broadcom-wl/6.30.223.271/build/src/wl/sys/wl_cfg80211_hybrid.o
  LD [M]  /var/lib/dkms/broadcom-wl/6.30.223.271/build/wl.o
  Building modules, stage 2.
CFG80211 API is prefered for this kernel version
Using CFG80211 API
  MODPOST 1 modules
  CC      /var/lib/dkms/broadcom-wl/6.30.223.271/build/wl.mod.o
  LD [M]  /var/lib/dkms/broadcom-wl/6.30.223.271/build/wl.ko
make[1]: Leaving directory '/usr/src/kernels/4.15.14-300.fc27.x86_64'
arun-gurung commented 6 years ago

I don't understand, because programming is over my head. I just installed the latest kernel from the repo and get the error.

antoineco commented 6 years ago

This Git repository has two branches:

Your build log suggests that you're currently on the master Git branch, according to the line numbers and function declarations, which is wrong. Please checkout patch-linux4.7 and try again.

arun-gurung commented 6 years ago

Thanks, you are right! I had used the master instead of patch-linux4.7, but now it compiles.