2 Replies Latest reply on Jun 13, 2015 3:12 AM by praecorloth

    Bug report: __get_cpu_var not defined breaks dkms build step




      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