![](https://seccdn.libravatar.org/avatar/ce7105fe79aeae3451cc72c7f1b8e95c.jpg?s=120&d=mm&r=g)
Hallo Liste; ich konnte es nicht lassen und mußte heute gleich mal den aktuellen Mantel-Kernel mit einer SuSE-9.1 ausprobieren. Leider musste ich dabei feststellen, das der gcc-3.3.3 von SuSE-9.1 die Treiber-Sourcen von NVidia nicht mag: make[1]: Entering directory `/usr/src/linux-2.6.5-10.6' CHK include/linux/version.h *** Warning: Overriding SUBDIRS on the command line can cause *** inconsistencies make[2]: `arch/i386/kernel/asm-offsets.s' is up to date. CHK include/asm-i386/asm_offsets.h echo \#define NV_COMPILER \"`cc -v 2>&1 | tail -n 1`\"
/root/NVIDIA-Linux-x86-1.0-5336-pkg1/usr/src/nv/nv_compiler.h CC [M] /root/NVIDIA-Linux-x86-1.0-5336-pkg1/usr/src/nv/nv.o /root/NVIDIA-Linux-x86-1.0-5336-pkg1/usr/src/nv/nv.c: In function `nvos_malloc_pages': /root/NVIDIA-Linux-x86-1.0-5336-pkg1/usr/src/nv/nv.c:385: warning: use of cast expressions as lvalues is deprecated [ weitere gleichartige Warnungen] /root/NVIDIA-Linux-x86-1.0-5336-pkg1/usr/src/nv/nv.c: At top level: /root/NVIDIA-Linux-x86-1.0-5336-pkg1/usr/src/nv/nv.c:2010: error: conflicting types for `nv_set_hotkey_occurred_flag' /root/NVIDIA-Linux-x86-1.0-5336-pkg1/usr/src/nv/nv.h:350: error: previous declaration of `nv_set_hotkey_occurred_flag' /root/NVIDIA-Linux-x86-1.0-5336-pkg1/usr/src/nv/nv.c:2197: error: conflicting types for `nv_find_nv_mapping' /root/NVIDIA-Linux-x86-1.0-5336-pkg1/usr/src/nv/nv.h:339: error: previous declaration of `nv_find_nv_mapping' /root/NVIDIA-Linux-x86-1.0-5336-pkg1/usr/src/nv/nv.c:2269: error: conflicting types for `nv_find_agp_kernel_mapping' /root/NVIDIA-Linux-x86-1.0-5336-pkg1/usr/src/nv/nv.h:341: error: previous declaration of `nv_find_agp_kernel_mapping' [weitere gleichartige Fehler ] make[2]: *** [/root/NVIDIA-Linux-x86-1.0-5336-pkg1/usr/src/nv/nv.o] Error 1 make[1]: *** [/root/NVIDIA-Linux-x86-1.0-5336-pkg1/usr/src/nv] Error 2 make[1]: Leaving directory `/usr/src/linux-2.6.5-10.6' nvidia.ko failed to build! make: *** [module] Error 1
Ein Blick in die Sourcen zeigt das Nvidia in nvtypes.h typedef void VOID; definiert und dann in nvdia.h VOID verwendet z.B. : VOID NV_API_CALL nv_set_hotkey_occurred_flag (VOID); in nvidia.c aber void z.B : void nv_set_hotkey_occurred_flag(void) { [...] Ein zum Vergleich herangzogener gcc-3.3.1 (aus der 9.0) macht diese Probleme nicht. Wo liegt nun der Fehler ? Beim gcc-3.3.3 oder bei Nvidia ? Und wie baut SuSE die mitgelieferten fertigen Treiber Module ?