Bug report: __get_cpu_var not defined breaks dkms build step

Discussion created by bugtrackerplz on Jun 12, 2015
Latest reply on Jun 12, 2015 by praecorloth



The linux drivers don't build on new versions of linux. They fail during the dkms step.


This seems to be because the __get_cpu_var has been removed from the kernel:



This issue is discuss has been reported on the internet:



and appears to have existed for 4 months but isn't discussed here (I wonder why )


It was a bit of pain to debug this since the installer doesn't collect logging output and helpfully deletes the build files after it finishes. I ended up quickly copying the build files while it ran.


sudo bash  make.sh --nohints --uname_r=3.19.0-16-generic --norootcheck    
[sudo] password for tom:
AMD kernel module generator version 2.1
doing Makefile based build for kernel 2.6.x and higher
rm -rf *.c *.h *.o *.ko *.a .??* *.symvers
make -C /lib/modules/3.19.0-16-generic/build SUBDIRS=/tmp/stuff/14.501.1003/build/2.6.x modules
make[1]: Entering directory '/usr/src/linux-headers-3.19.0-16-generic'
  CC [M]  /tmp/stuff/14.501.1003/build/2.6.x/firegl_public.o
/tmp/stuff/14.501.1003/build/2.6.x/firegl_public.c: In function ‘kasSetExecutionLevel’:
/tmp/stuff/14.501.1003/build/2.6.x/firegl_public.c:4819:5: error: implicit declaration of function ‘__get_cpu_var’ [-Werror=implicit-function-declaration]
     orig_level = __get_cpu_var(kasExecutionLevel);
/tmp/stuff/14.501.1003/build/2.6.x/firegl_public.c:4820:38: error: lvalue required as left operand of assignment
     __get_cpu_var(kasExecutionLevel) = level;
/tmp/stuff/14.501.1003/build/2.6.x/firegl_public.c: At top level:
/tmp/stuff/14.501.1003/build/2.6.x/firegl_public.c:6396:12: warning: ‘KCL_fpu_save_init’ defined but not used [-Wunused-function]
static int KCL_fpu_save_init(struct task_struct *tsk)
cc1: some warnings being treated as errors
scripts/Makefile.build:257: recipe for target '/tmp/stuff/14.501.1003/build/2.6.x/firegl_public.o' failed
make[2]: *** [/tmp/stuff/14.501.1003/build/2.6.x/firegl_public.o] Error 1
Makefile:1394: recipe for target '_module_/tmp/stuff/14.501.1003/build/2.6.x' failed
make[1]: *** [_module_/tmp/stuff/14.501.1003/build/2.6.x] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-3.19.0-16-generic'
Makefile:88: recipe for target 'kmod_build' failed
make: *** [kmod_build] Error 2
build failed with return value 2