After upgrading to the 3.4.0 SuSE kernel, the fglrx compile fails. The module compiled correctly prior to the upgrade, and there were no other changes (other than the matching kernel source, and header files).:
Used CPUs/Cores for compilation => [ [1;32m 1 [0m]
********************************************************************************
* *
* Kernel: 3.4.0-25-desktop *
* Source: /lib/modules/3.4.0-25-desktop/build *
* Include: /lib/modules/3.4.0-25-desktop/source/include *
* *
********************************************************************************
file /lib/modules/3.4.0-25-desktop/source/include/../arch/x86/include/asm/compat.h says:COMPAT_ALLOC_USER_SPACE=arch_compat_alloc_user_space
/usr/src/kernel-modules/fglrx/2.6.x /usr/bin
rm -rf *.c *.h *.o *.ko *.a .??* *.symvers
make: Entering directory `/usr/src/linux-3.4.0-25-obj/x86_64/desktop'
/usr/src/linux-3.4.0-25/arch/x86/Makefile:96: CONFIG_X86_X32 enabled but no binutils support
LD /usr/src/kernel-modules/fglrx/2.6.x/built-in.o
CC
/usr/src/kernel-modules/fglrx/2.6.x/firegl_public.c: In function 'KCL_GetInitKerPte':
/usr/src/kernel-modules/fglrx/2.6.x/firegl_public.c:2357:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/2.6.x/firegl_public.c:2358:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/2.6.x/firegl_public.c:2359:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/2.6.x/firegl_public.c: In function 'KCL_GetPageTableByVirtAddr':
/usr/src/kernel-modules/fglrx/2.6.x/firegl_public.c:2404:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/2.6.x/firegl_public.c:2407:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/2.6.x/firegl_public.c:2408:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/2.6.x/firegl_public.c: In function 'KCL_TestAndClearPageDirtyFlag':
/usr/src/kernel-modules/fglrx/2.6.x/firegl_public.c:2582:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/2.6.x/firegl_public.c: In function 'kasInitExecutionLevels':
/usr/src/kernel-modules/fglrx/2.6.x/firegl_public.c:4157:5: error: 'cpu_possible_map' undeclared (first use in this function)
/usr/src/kernel-modules/fglrx/2.6.x/firegl_public.c:4157:5: note: each undeclared identifier is reported only once for each function it appears in
/usr/src/kernel-modules/fglrx/2.6.x/firegl_public.c:4157:5: warning: left-hand operand of comma expression has no effect
make[3]: *** [/usr/src/kernel-modules/fglrx/2.6.x/firegl_public.o] Error 1
make[2]: *** [_module_/usr/src/kernel-modules/fglrx/2.6.x] Error 2
make[1]: *** [sub-make] Error 2
make: *** [all] Error 2
make: Leaving directory `/usr/src/linux-3.4.0-25-obj/x86_64/desktop'
******************************
Build of kernel module failed!
******************************
rm -rf *.c *.h *.o *.ko *.a .??* *.symvers
/usr/bin
Calling 'depmod -a 3.4.0-25-desktop' this may take a while...
Summary report:
================================================================================
Kernel => 3.4.0-25-desktop
Detected => RPM package
Build => [ [1;31m FAILURE [0m]
Install => [ [1;31m FAILURE [0m]
Confirm the error. openSUSE 12.1, Linux kernel 3.4.0 from openSUSE Kernel GIT, x86_64 arch. I found a patch there: http://forums.gentoo.org/viewtopic-p-7047942.html?sid=2e674e74fa6724abe47c5d488d227f89#7047942
I'm sorry, it is not work on amd64. It compiles, but failed to load. "Unknown
symbol old_rsp". I removed #ifndef and #endif in this patch, and it works on my AMD64 too. The
reason may be in the next line: "CONFIG_X86_X32 enabled but no binutils
support":
linux-athlon64:/home/zenitur # /usr/bin/fglrx-kernel-build.sh --force
Used CPUs/Cores for compilation => [ 2 ]
********************************************************************************
* *
* Kernel: 3.4.0-0-desktop *
* Source: /lib/modules/3.4.0-0-desktop/build *
* Include: /lib/modules/3.4.0-0-desktop/source/include *
* *
********************************************************************************
file /lib/modules/3.4.0-0-desktop/source/include/../arch/x86/include/asm/compat.h says:COMPAT_ALLOC_USER_SPACE=arch_compat_alloc_user_space
/usr/src/kernel-modules/fglrx/2.6.x /home/zenitur
rm -rf *.c *.h *.o *.ko *.a .??* *.symvers
make: Entering directory `/usr/src/linux-3.4.0-0-obj/x86_64/desktop'
/4/zenitur/rpmbuild/BUILD/kernel-desktop-3.4.0/linux-3.4/arch/x86/Makefile:96: CONFIG_X86_X32 enabled but no binutils support
LD /usr/src/kernel-modules/fglrx/2.6.x/built-in.o
CC
CC
/usr/src/kernel-modules/fglrx/2.6.x/firegl_public.c: In function 'KCL_GetInitKerPte':
/usr/src/kernel-modules/fglrx/2.6.x/firegl_public.c:2357:5: warning: return makes integer from pointer without a cast [enabled by default]
/usr/src/kernel-modules/fglrx/2.6.x/firegl_public.c:2358:5: warning: return makes integer from pointer without a cast [enabled by default]
/usr/src/kernel-modules/fglrx/2.6.x/firegl_public.c:2359:5: warning: return makes integer from pointer without a cast [enabled by default]
/usr/src/kernel-modules/fglrx/2.6.x/firegl_public.c: In function 'KCL_GetPageTableByVirtAddr':
/usr/src/kernel-modules/fglrx/2.6.x/firegl_public.c:2404:5: warning: return makes integer from pointer without a cast [enabled by default]
/usr/src/kernel-modules/fglrx/2.6.x/firegl_public.c:2407:5: warning: return makes integer from pointer without a cast [enabled by default]
/usr/src/kernel-modules/fglrx/2.6.x/firegl_public.c:2408:5: warning: return makes integer from pointer without a cast [enabled by default]
/usr/src/kernel-modules/fglrx/2.6.x/firegl_public.c: In function 'KCL_TestAndClearPageDirtyFlag':
/usr/src/kernel-modules/fglrx/2.6.x/firegl_public.c:2582:5: warning: return makes integer from pointer without a cast [enabled by default]
CC
CC
CC
CC
CC
CC
CC
CC
CC
LD
Building modules, stage 2.
MODPOST 1 modules
CC /usr/src/kernel-modules/fglrx/2.6.x/fglrx.mod.o
LD
make: Leaving directory `/usr/src/linux-3.4.0-0-obj/x86_64/desktop'
make: Entering directory `/usr/src/linux-3.4.0-0-obj/x86_64/desktop'
/4/zenitur/rpmbuild/BUILD/kernel-desktop-3.4.0/linux-3.4/arch/x86/Makefile:96: CONFIG_X86_X32 enabled but no binutils support
INSTALL /usr/src/kernel-modules/fglrx/2.6.x/fglrx.ko
DEPMOD 3.4.0-0-desktop
make: Leaving directory `/usr/src/linux-3.4.0-0-obj/x86_64/desktop'
rm -rf *.c *.h *.o *.ko *.a .??* *.symvers
/home/zenitur
Calling 'depmod -a 3.4.0-0-desktop' this may take a while...
Summary report:
================================================================================
Kernel => 3.4.0-0-desktop
Detected => RPM package
Build => [ OK ]
Install => [ OK ]
linux-athlon64:/home/zenitur #
According to the Linux driver team -- "This problem should have been fixed in latest code. So upcoming Catalyst (probably 12.5) will fix this problem."
Cheers!
Kristen
Additional information and work arounds can be found here: