
On Tue, Aug 19, 2003 at 09:54:54AM -0400, Shalom Naumann wrote:
Hi. I just updated the kernel (with YOU) and it said that I have to reinstall my GeForce 2 drivers. I read the instructions in the HOWTO. I did all those cp commands and whatnot, but when I tried make install: shalom@naumann:~/Documents/downloads/NVIDIA-Linux-x86-1.0-4496-pkg2/usr/src/nv> su -c "make install" Password:
You appear to be compiling the NVIDIA kernel module with a compiler different from the one that was used to compile the running kernel. This may be perfectly fine, but there are cases where this can lead to unexpected behaviour and system crashes.
If you know what you are doing and want to override this check, you can do so by setting IGNORE_CC_MISMATCH.
In any other case, set the CC environment variable to the name of the compiler that was used to compile the kernel.
*** Failed cc sanity check. Bailing out! *** make: *** [gcc-check] Error 1 shalom@naumann:~/Documents/downloads/NVIDIA-Linux-x86-1.0-4496-pkg2/usr/src/nv> cc --version cc (GCC) 3.3 20030226 (prerelease) (SuSE Linux) Copyright (C) 2002 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
shalom@naumann:~/Documents/downloads/NVIDIA-Linux-x86-1.0-4496-pkg2/usr/src/nv>
What version was used to compile the kernel? How do I fix this problem?
I updated the HOWTO in the meantime. [...] 2) Use the nvidia installer. export IGNORE_CC_MISMATCH=yes sh NVIDIA-Linux-x86-1.0-4363.run [...] Hope this helps. BTW, here is what my developper contact at nvidia wrote to me some days ago about this issue: ---------------------------------------------------------------------- [...] Hi Stefan. OK, if that's the problem, then it's probably just our bug. Because some data structures in the kernel change based on the version of gcc you use, we've tried to enforce that you build the NVIDIA kernel module with the same compiler that is used to build the kernel. We used to try to extract the compiler version with this Makefile ugliness: # determine gcc versions used (kernel, nvidia.o) module_cc:=$(shell $(CC) -v 2>&1 | tail -n 1) version="^Linux version [^(]* (.*@.*) (\(.*\)) .*" kernel_cc:=$(shell cat /proc/version | sed "s/"$(version)"/\1/") module_cc:=$(shell echo "$(module_cc)" | cut -d ' ' -f 3) kernel_cc:=$(shell echo "$(kernel_cc)" | cut -d ' ' -f 3) [...] gcc-check: @if [ -z $(IGNORE_CC_MISMATCH) ]; then \ if [ "$(kernel_cc)" != "$(module_cc)" ]; then \ [...] \ fi \ fi Unfortunately, that sed script is very fragile. For the next driver release, this will instead be done with: VERSION="^Linux version.* (.*) (\(gcc.*\)).*" KERNEL=$(cat /proc/version | sed "s/$VERSION/\1/") MODULE=$($* -v 2>&1 | tail -n 1) if test "$KERNEL" != "$MODULE"; then # # The kernel seems to have been built with a different version # of the C compiler, which may be a problem. # exit 1 else exit 0 fi [...] ---------------------------------------------------------------------- Best regards, Stefan Public Key available ---------------------------------------------------- Stefan Dirsch (Res. & Dev.) SuSE Linux AG Tel: 0911-740530 Deutschherrnstr. 15-19 FAX: +49 911 741 77 55 D-90429 Nürnberg http://www.suse.de Germany ----------------------------------------------------