1 Reply Latest reply on Feb 27, 2017 2:14 AM by jpsollie

    Error fglrx-15.302 on 4.9.6-gentoo-r1

    jgarcia900506

      Help me please!

       

      Hello, I have a gentoo with source 4.9.6-gentoo-r1, when I run amd-driver-installer-15.302-x86.x86_64.run, but the installer finish at next error:

       

       

      Supported adapter detected.

      Check if system has the tools required for installation.

      Uninstalling any previously installed drivers.

      [Message] Kernel Module : Trying to install a precompiled kernel module.

      [Message] Kernel Module : Precompiled kernel module version mismatched.

      [Message] Kernel Module : Found kernel module build environment, generating kernel module now.

      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/4.9.6-gentoo-r1/build SUBDIRS=/lib64/modules/fglrx/build_mod/2.6.x modules

      make[1]: se entra en el directorio '/usr/src/linux-4.9.6-gentoo-r1'

        CC [M]  /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.o

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c: En la función ‘firegl_major_proc_read’:

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:634:9: error: no se descarta el valor void como debería de ser

           len = seq_printf(m, "%d\n", major);

               ^

      In file included from ./arch/x86/include/asm/processor.h:15:0,

                       from ./arch/x86/include/asm/cpufeature.h:4,

                       from ./arch/x86/include/asm/thread_info.h:52,

                       from ./include/linux/thread_info.h:58,

                       from ./arch/x86/include/asm/preempt.h:6,

                       from ./include/linux/preempt.h:59,

                       from ./include/linux/spinlock.h:50,

                       from ./include/linux/seqlock.h:35,

                       from ./include/linux/time.h:5,

                       from ./include/linux/stat.h:18,

                       from ./include/linux/module.h:10,

                       from /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:109:

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c: En la función ‘KCL_LockUserPages’:

      ./arch/x86/include/asm/current.h:17:17: aviso: el paso del argumento 1 de ‘get_user_pages’ crea un entero desde un puntero sin una conversión

      #define current get_current()

                       ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:3223:26: nota: in expansion of macro ‘current’

           ret = get_user_pages(current, current->mm, vaddr, page_cnt, 1, 0, (struct page **)page_list, NULL);

                                ^

      In file included from ./include/linux/scatterlist.h:7:0,

                       from ./include/linux/dmapool.h:14,

                       from ./include/linux/pci.h:1269,

                       from /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:117:

      ./include/linux/mm.h:1280:6: nota: se esperaba ‘long unsigned int’ pero el argumento es de tipo ‘struct task_struct *’

      long get_user_pages(unsigned long start, unsigned long nr_pages,

            ^

      In file included from ./arch/x86/include/asm/processor.h:15:0,

                       from ./arch/x86/include/asm/cpufeature.h:4,

                       from ./arch/x86/include/asm/thread_info.h:52,

                       from ./include/linux/thread_info.h:58,

                       from ./arch/x86/include/asm/preempt.h:6,

                       from ./include/linux/preempt.h:59,

                       from ./include/linux/spinlock.h:50,

                       from ./include/linux/seqlock.h:35,

                       from ./include/linux/time.h:5,

                       from ./include/linux/stat.h:18,

                       from ./include/linux/module.h:10,

                       from /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:109:

      ./arch/x86/include/asm/current.h:17:17: aviso: el paso del argumento 2 de ‘get_user_pages’ crea un entero desde un puntero sin una conversión

      #define current get_current()

                       ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:3223:35: nota: in expansion of macro ‘current’

           ret = get_user_pages(current, current->mm, vaddr, page_cnt, 1, 0, (struct page **)page_list, NULL);

                                         ^

      In file included from ./include/linux/scatterlist.h:7:0,

                       from ./include/linux/dmapool.h:14,

                       from ./include/linux/pci.h:1269,

                       from /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:117:

      ./include/linux/mm.h:1280:6: nota: se esperaba ‘long unsigned int’ pero el argumento es de tipo ‘struct mm_struct *’

      long get_user_pages(unsigned long start, unsigned long nr_pages,

            ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:3223:55: aviso: el paso del argumento 4 de ‘get_user_pages’ crea un puntero desde un entero sin una conversión

           ret = get_user_pages(current, current->mm, vaddr, page_cnt, 1, 0, (struct page **)page_list, NULL);

                                                             ^

      In file included from ./include/linux/scatterlist.h:7:0,

                       from ./include/linux/dmapool.h:14,

                       from ./include/linux/pci.h:1269,

                       from /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:117:

      ./include/linux/mm.h:1280:6: nota: se esperaba ‘struct page **’ pero el argumento es de tipo ‘unsigned int’

      long get_user_pages(unsigned long start, unsigned long nr_pages,

            ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:3223:65: aviso: el paso del argumento 5 de ‘get_user_pages’ crea un puntero desde un entero sin una conversión

           ret = get_user_pages(current, current->mm, vaddr, page_cnt, 1, 0, (struct page **)page_list, NULL);

                                                                       ^

      In file included from ./include/linux/scatterlist.h:7:0,

                       from ./include/linux/dmapool.h:14,

                       from ./include/linux/pci.h:1269,

                       from /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:117:

      ./include/linux/mm.h:1280:6: nota: se esperaba ‘struct vm_area_struct **’ pero el argumento es de tipo ‘int’

      long get_user_pages(unsigned long start, unsigned long nr_pages,

            ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:3223:11: error: demasiados argumentos para la función ‘get_user_pages’

           ret = get_user_pages(current, current->mm, vaddr, page_cnt, 1, 0, (struct page **)page_list, NULL);

                 ^

      In file included from ./include/linux/scatterlist.h:7:0,

                       from ./include/linux/dmapool.h:14,

                       from ./include/linux/pci.h:1269,

                       from /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:117:

      ./include/linux/mm.h:1280:6: nota: se declara aquí

      long get_user_pages(unsigned long start, unsigned long nr_pages,

            ^

      In file included from ./arch/x86/include/asm/processor.h:15:0,

                       from ./arch/x86/include/asm/cpufeature.h:4,

                       from ./arch/x86/include/asm/thread_info.h:52,

                       from ./include/linux/thread_info.h:58,

                       from ./arch/x86/include/asm/preempt.h:6,

                       from ./include/linux/preempt.h:59,

                       from ./include/linux/spinlock.h:50,

                       from ./include/linux/seqlock.h:35,

                       from ./include/linux/time.h:5,

                       from ./include/linux/stat.h:18,

                       from ./include/linux/module.h:10,

                       from /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:109:

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c: En la función ‘KCL_LockReadOnlyUserPages’:

      ./arch/x86/include/asm/current.h:17:17: aviso: el paso del argumento 1 de ‘get_user_pages’ crea un entero desde un puntero sin una conversión

      #define current get_current()

                       ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:3241:26: nota: in expansion of macro ‘current’

           ret = get_user_pages(current, current->mm, vaddr, page_cnt, 0, 0, (struct page **)page_list, NULL);

                                ^

      In file included from ./include/linux/scatterlist.h:7:0,

                       from ./include/linux/dmapool.h:14,

                       from ./include/linux/pci.h:1269,

                       from /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:117:

      ./include/linux/mm.h:1280:6: nota: se esperaba ‘long unsigned int’ pero el argumento es de tipo ‘struct task_struct *’

      long get_user_pages(unsigned long start, unsigned long nr_pages,

            ^

      In file included from ./arch/x86/include/asm/processor.h:15:0,

                       from ./arch/x86/include/asm/cpufeature.h:4,

                       from ./arch/x86/include/asm/thread_info.h:52,

                       from ./include/linux/thread_info.h:58,

                       from ./arch/x86/include/asm/preempt.h:6,

                       from ./include/linux/preempt.h:59,

                       from ./include/linux/spinlock.h:50,

                       from ./include/linux/seqlock.h:35,

                       from ./include/linux/time.h:5,

                       from ./include/linux/stat.h:18,

                       from ./include/linux/module.h:10,

                       from /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:109:

      ./arch/x86/include/asm/current.h:17:17: aviso: el paso del argumento 2 de ‘get_user_pages’ crea un entero desde un puntero sin una conversión

      #define current get_current()

                       ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:3241:35: nota: in expansion of macro ‘current’

           ret = get_user_pages(current, current->mm, vaddr, page_cnt, 0, 0, (struct page **)page_list, NULL);

                                         ^

      In file included from ./include/linux/scatterlist.h:7:0,

                       from ./include/linux/dmapool.h:14,

                       from ./include/linux/pci.h:1269,

                       from /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:117:

      ./include/linux/mm.h:1280:6: nota: se esperaba ‘long unsigned int’ pero el argumento es de tipo ‘struct mm_struct *’

      long get_user_pages(unsigned long start, unsigned long nr_pages,

            ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:3241:55: aviso: el paso del argumento 4 de ‘get_user_pages’ crea un puntero desde un entero sin una conversión

           ret = get_user_pages(current, current->mm, vaddr, page_cnt, 0, 0, (struct page **)page_list, NULL);

                                                             ^

      In file included from ./include/linux/scatterlist.h:7:0,

                       from ./include/linux/dmapool.h:14,

                       from ./include/linux/pci.h:1269,

                       from /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:117:

      ./include/linux/mm.h:1280:6: nota: se esperaba ‘struct page **’ pero el argumento es de tipo ‘unsigned int’

      long get_user_pages(unsigned long start, unsigned long nr_pages,

            ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:3241:11: error: demasiados argumentos para la función ‘get_user_pages’

           ret = get_user_pages(current, current->mm, vaddr, page_cnt, 0, 0, (struct page **)page_list, NULL);

                 ^

      In file included from ./include/linux/scatterlist.h:7:0,

                       from ./include/linux/dmapool.h:14,

                       from ./include/linux/pci.h:1269,

                       from /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:117:

      ./include/linux/mm.h:1280:6: nota: se declara aquí

      long get_user_pages(unsigned long start, unsigned long nr_pages,

            ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c: En la función ‘KCL_UnlockUserPages’:

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:3252:9: error: declaración implícita de la función ‘page_cache_release’ [-Werror=implicit-function-declaration]

               page_cache_release((struct page*)page_list[i]);

               ^

      In file included from ./include/linux/bitops.h:36:0,

                       from ./include/linux/kernel.h:10,

                       from ./include/linux/list.h:8,

                       from ./include/linux/module.h:9,

                       from /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:109:

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c: En la función ‘kcl_mem_pat_setup’:

      ./arch/x86/include/asm/bitops.h:337:29: aviso: se pasa el argumento 2 de ‘constant_test_bit’ desde un tipo de puntero incompatible

         ? constant_test_bit((nr), (addr)) \

                                   ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.h:654:21: nota: in expansion of macro ‘test_bit’

      #define cpu_has_pge test_bit(X86_FEATURE_PGE, &boot_cpu_data.x86_capability)

                           ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:4521:9: nota: in expansion of macro ‘cpu_has_pge’

           if (cpu_has_pge)

               ^

      ./arch/x86/include/asm/bitops.h:308:29: nota: se esperaba ‘const volatile long unsigned int *’ pero el argumento es de tipo ‘__u32 (*)[19]’

      static __always_inline bool constant_test_bit(long nr, const volatile unsigned long *addr)

                                   ^

      ./arch/x86/include/asm/bitops.h:338:29: aviso: se pasa el argumento 2 de ‘variable_test_bit’ desde un tipo de puntero incompatible

         : variable_test_bit((nr), (addr)))

                                   ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.h:654:21: nota: in expansion of macro ‘test_bit’

      #define cpu_has_pge test_bit(X86_FEATURE_PGE, &boot_cpu_data.x86_capability)

                           ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:4521:9: nota: in expansion of macro ‘cpu_has_pge’

           if (cpu_has_pge)

               ^

      ./arch/x86/include/asm/bitops.h:314:29: nota: se esperaba ‘const volatile long unsigned int *’ pero el argumento es de tipo ‘__u32 (*)[19]’

      static __always_inline bool variable_test_bit(long nr, volatile const unsigned long *addr)

                                   ^

      ./arch/x86/include/asm/bitops.h:337:29: aviso: se pasa el argumento 2 de ‘constant_test_bit’ desde un tipo de puntero incompatible

         ? constant_test_bit((nr), (addr)) \

                                   ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.h:654:21: nota: in expansion of macro ‘test_bit’

      #define cpu_has_pge test_bit(X86_FEATURE_PGE, &boot_cpu_data.x86_capability)

                           ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:4535:9: nota: in expansion of macro ‘cpu_has_pge’

           if (cpu_has_pge)

               ^

      ./arch/x86/include/asm/bitops.h:308:29: nota: se esperaba ‘const volatile long unsigned int *’ pero el argumento es de tipo ‘__u32 (*)[19]’

      static __always_inline bool constant_test_bit(long nr, const volatile unsigned long *addr)

                                   ^

      ./arch/x86/include/asm/bitops.h:338:29: aviso: se pasa el argumento 2 de ‘variable_test_bit’ desde un tipo de puntero incompatible

         : variable_test_bit((nr), (addr)))

                                   ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.h:654:21: nota: in expansion of macro ‘test_bit’

      #define cpu_has_pge test_bit(X86_FEATURE_PGE, &boot_cpu_data.x86_capability)

                           ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:4535:9: nota: in expansion of macro ‘cpu_has_pge’

           if (cpu_has_pge)

               ^

      ./arch/x86/include/asm/bitops.h:314:29: nota: se esperaba ‘const volatile long unsigned int *’ pero el argumento es de tipo ‘__u32 (*)[19]’

      static __always_inline bool variable_test_bit(long nr, volatile const unsigned long *addr)

                                   ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c: En la función ‘kcl_mem_pat_restore’:

      ./arch/x86/include/asm/bitops.h:337:29: aviso: se pasa el argumento 2 de ‘constant_test_bit’ desde un tipo de puntero incompatible

         ? constant_test_bit((nr), (addr)) \

                                   ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.h:654:21: nota: in expansion of macro ‘test_bit’

      #define cpu_has_pge test_bit(X86_FEATURE_PGE, &boot_cpu_data.x86_capability)

                           ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:4562:9: nota: in expansion of macro ‘cpu_has_pge’

           if (cpu_has_pge)

               ^

      ./arch/x86/include/asm/bitops.h:308:29: nota: se esperaba ‘const volatile long unsigned int *’ pero el argumento es de tipo ‘__u32 (*)[19]’

      static __always_inline bool constant_test_bit(long nr, const volatile unsigned long *addr)

                                   ^

      ./arch/x86/include/asm/bitops.h:338:29: aviso: se pasa el argumento 2 de ‘variable_test_bit’ desde un tipo de puntero incompatible

         : variable_test_bit((nr), (addr)))

                                   ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.h:654:21: nota: in expansion of macro ‘test_bit’

      #define cpu_has_pge test_bit(X86_FEATURE_PGE, &boot_cpu_data.x86_capability)

                           ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:4562:9: nota: in expansion of macro ‘cpu_has_pge’

           if (cpu_has_pge)

               ^

      ./arch/x86/include/asm/bitops.h:314:29: nota: se esperaba ‘const volatile long unsigned int *’ pero el argumento es de tipo ‘__u32 (*)[19]’

      static __always_inline bool variable_test_bit(long nr, volatile const unsigned long *addr)

                                   ^

      ./arch/x86/include/asm/bitops.h:337:29: aviso: se pasa el argumento 2 de ‘constant_test_bit’ desde un tipo de puntero incompatible

         ? constant_test_bit((nr), (addr)) \

                                   ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.h:654:21: nota: in expansion of macro ‘test_bit’

      #define cpu_has_pge test_bit(X86_FEATURE_PGE, &boot_cpu_data.x86_capability)

                           ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:4575:9: nota: in expansion of macro ‘cpu_has_pge’

           if (cpu_has_pge)

               ^

      ./arch/x86/include/asm/bitops.h:308:29: nota: se esperaba ‘const volatile long unsigned int *’ pero el argumento es de tipo ‘__u32 (*)[19]’

      static __always_inline bool constant_test_bit(long nr, const volatile unsigned long *addr)

                                   ^

      ./arch/x86/include/asm/bitops.h:338:29: aviso: se pasa el argumento 2 de ‘variable_test_bit’ desde un tipo de puntero incompatible

         : variable_test_bit((nr), (addr)))

                                   ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.h:654:21: nota: in expansion of macro ‘test_bit’

      #define cpu_has_pge test_bit(X86_FEATURE_PGE, &boot_cpu_data.x86_capability)

                           ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:4575:9: nota: in expansion of macro ‘cpu_has_pge’

           if (cpu_has_pge)

               ^

      ./arch/x86/include/asm/bitops.h:314:29: nota: se esperaba ‘const volatile long unsigned int *’ pero el argumento es de tipo ‘__u32 (*)[19]’

      static __always_inline bool variable_test_bit(long nr, volatile const unsigned long *addr)

                                   ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c: En la función ‘KCL_fpu_save_init’:

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:6458:49: error: ‘XSTATE_FP’ no se declaró aquí (primer uso en esta función)

             if (!(fpu->state.xsave.header.xfeatures & XSTATE_FP))

                                                       ^

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:6458:49: nota: cada identificador sin declarar se reporta sólo una vez para cada función en el que aparece

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c: En el nivel principal:

      /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.c:6448:12: aviso: se define ‘KCL_fpu_save_init’ pero no se usa [-Wunused-function]

      static int KCL_fpu_save_init(struct task_struct *tsk)

                  ^

      cc1: algunos avisos se tratan como errores

      make[2]: *** [scripts/Makefile.build:294: /lib64/modules/fglrx/build_mod/2.6.x/firegl_public.o] Error 1

      make[1]: *** [Makefile:1490: _module_/lib64/modules/fglrx/build_mod/2.6.x] Error 2

      make[1]: se sale del directorio '/usr/src/linux-4.9.6-gentoo-r1'

      make: *** [Makefile:88: kmod_build] Error 2

      build failed with return value 2

      [Error] Kernel Module : Failed to compile kernel module - please consult readme.

       

      someone know where get any patch to solve error!