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

    Bug report: __get_cpu_var not defined breaks dkms build step

    bugtrackerplz

      Hey,

       

      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:

         https://lkml.org/lkml/2014/8/17/121

       

      This issue is discuss has been reported on the internet:

          https://forums.gentoo.org/viewtopic-p-7729416.html?sid=8e4e2d7b97929d6c8abc20bb3512aac9

       

      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