Well, I spoke too soon: /lib/modules/2.4.20smp-lowlat-pre/kernel/drivers/i2c/i2c-amd756.o: The module you are trying to load (/lib/modules/2.4.20smp-lowlat-pre/kernel/drivers/i2c/i2c-amd756.o) is compiled with a gcc version 2 compiler, while the kernel you are running is compiled with a gcc version 3 compiler. This is known to not work. Guess I need to keep working... On Tue, 2003-04-29 at 00:47, Martin Dengler wrote: > Christian's solution doesn't work perfectly with gcc 3.2.2. Since this > is an earlier version than his I wouldn't expect a fix, but I thought > I'd email in case this comes up again with other people and RedHat 9 > (pulled my hair out for a while). > > The problem seems to be that old headers from /usr/include/linux are > being picked up in 3.2.2 and I couldn't find a way to get gcc to use the > right ones. So I switched to gcc2.96 (on my Redhat 9, > compat-gcc-7.3-2.96.118 provides /usr/bin/gcc296) in the Makefile and > all worked fine. > > I am using lm_sensors-2.7.0 on RH9. The error I got from gcc-3.2.2 > after Christian's fix was: > > ---- > [snip] > gcc -M -MG -D__SMP__ -DMODVERSIONS -include > /lib/modules/2.4.20smp-lowlat-pre/build/include/linux/modversions.h > -D__KERNEL__ -DMODULE -DEXPORT_SYMTAB -fomit-frame-pointer -I. > -Ikernel/include -I/usr/local/include -idirafter > -I/lib/modules/2.4.20smp-lowlat-pre/build/include -O2 > kernel/busses/i2c-ali1535.c | \ > sed -e 's@^\(.*\)\.o:@kernel/busses/i2c-ali1535.d > kernel/busses/i2c-ali1535.o: Makefile '`dirname > kernel/busses/i2c-ali1535.d`/Module.mk' @' > kernel/busses/i2c-ali1535.d > In file included from /usr/include/linux/fs.h:23, > from /usr/include/linux/capability.h:17, > from /usr/include/linux/binfmts.h:5, > from /usr/include/linux/sched.h:9, > from kernel/busses/i2c-ali1535.c:63: > /usr/include/linux/string.h:8:2: warning: #warning Using kernel header > in userland! > In file included from /usr/include/linux/bitops.h:69, > from /usr/include/asm/system.h:7, > from /usr/include/linux/sched.h:16, > from kernel/busses/i2c-ali1535.c:63: > /usr/include/asm/bitops.h:327:2: warning: #warning This includefile is > not available on all architectures. > /usr/include/asm/bitops.h:328:2: warning: #warning Using kernel headers > in userspace: atomicity not guaranteed > make: *** No rule to make target `linux/modules/53c700.ver', needed by > `kernel/chips/vt1211.d'. Stop. > ---- > > This file appears to be a random (first in directory list order) file > which exists in my kernel headers directory > (/lib/modules/2.4.20smp-lowlat-pre/include/linux/modules/53c700.ver) but > is not found by gcc. Doh... > > Martin > > > > Mark D. Studebaker wrote: > ________________________________________________________________________ > that looks like an excellent solution. Thank you. > > Christian Hammers wrote: > > Hello > > > > I always got the following error when compiling lm_sensors-2.7.0: > > > > > >> gcc -DMODVERSIONS -include /lib/modules/2.4.20-bigvideo-1/build/include/linux/modversions.h -D__KERNEL__ -DMODULE -DEXPORT_SYMTAB -fomit-frame-pointer -I. -Ikernel/include -I/usr/local/include -I/lib/modules/2.4.20-bigvideo-1/build/include -O2 -c kernel/busses/i2c-amd8111.c -o kernel/busses/i2c-amd8111.o > > > > > >>> kernel/busses/i2c-amd8111.c:26:2: #error Your i2c is too old - i2c-2.7.0 or greater required! > > > > > > This is a compile problem as the include files of 2.7.0 are in > > /usr/local/include/linux/. gcc-3.2.3 just puts /usr/local/include at the > > end of the list although it is first on the command line and the info > > page says the list is scanned left to right. > > > >> GNU CPP version 3.2.3 20030316 (Debian prerelease) (cpplib) > >> (i386 Linux/ELF) > >> GNU C version 3.2.3 20030316 (Debian prerelease) (i386-linux) > >> compiled by GNU C version 3.2.3 20030316 (Debian prerelease). > >> ignoring nonexistent directory "/usr/i386-linux/include" > >> ignoring duplicate directory "/usr/local/include" > >> as it is a non-system directory that duplicates a system directory > >> #include "..." search starts here: > >> #include <...> search starts here: > >> . > >> kernel/include > >> /usr/local/include > >> /usr/lib/gcc-lib/i386-linux/3.2.3/include > >> /usr/include > >> /lib/modules/2.4.20-bigvideo-1/build/include > > > > > > As a fix I suggest: > > > > # diff -u Makefile.orig Makefile > > --- Makefile.orig 2003-03-19 18:20:38.000000000 +0100 > > +++ Makefile 2003-03-19 18:21:08.000000000 +0100 > > @@ -178,7 +178,7 @@ > > # PROGCPPFLAGS/PROGCFLAGS is to create non-kernel object files (which are linked into executables). > > # ARCPPFLAGS/ARCFLAGS are used to create archive object files (static libraries). > > # LIBCPPFLAGS/LIBCFLAGS are for shared library objects. > > -ALL_CPPFLAGS := -I. -Ikernel/include -I$(I2C_HEADERS) -I$(LINUX_HEADERS) > > +ALL_CPPFLAGS := -I. -Ikernel/include -I$(I2C_HEADERS) -idirafter $(LINUX_HEADERS) > > ALL_CFLAGS := -O2 > > > > ifeq ($(DEBUG),1) > > > > > > > > bye, > > > > -christian- > > > -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part Url : http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20030429/f456d945/attachment.bin