>From MandrakeLinux-9.0beta2-CD3.i586.iso
rpm: kernel-source-2.4.18-22mdk.i586.rpm

"make modules" doesn't work out of the box. I'm using Mandrake 8.1,
gcc version 2.96 20000731 (Mandrake Linux 8.1 2.96-0.62mdk) as my development
system.

After "make clean", "make depend", "make bzImage", "make modules", the build
fails at "drivers/char/ftape/compressor/zftape-compress.c".  The build output
is:

gcc -D__KERNEL__ -I/usr/src/linux-2.4.18-22mdk/include  -Wall -Wstrict-prototype
s -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe
 -mpreferred-stack-boundary=2 -march=i586 -DMODULE -DMODVERSIONS -include /usr/s
rc/linux-2.4.18-22mdk/include/linux/modversions.h  -nostdinc -I /usr/lib/gcc-lib
/i586-mandrake-linux-gnu/2.96/include -DKBUILD_BASENAME=zftape_compress  -c -o z
ftape-compress.o zftape-compress.c
In file included from /usr/src/linux-2.4.18-22mdk/include/linux/mm.h:4,
                 from zftape-compress.c:35:
/usr/src/linux-2.4.18-22mdk/include/linux/sched.h:6: nondigits in number and not
 hexadecimal
/usr/src/linux-2.4.18-22mdk/include/linux/sched.h:6: nondigits in number and not
 hexadecimal
/usr/src/linux-2.4.18-22mdk/include/linux/sched.h:6: parse error before `7b16c34
4'
/usr/src/linux-2.4.18-22mdk/include/linux/sched.h:6: warning: function declarati
on isn't a prototype
make[4]: *** [zftape-compress.o] Error 1
make[4]: Leaving directory `/usr/src/linux-2.4.18-22mdk/drivers/char/ftape/compr
essor'

It looks like the modversions macros have failed, because rhconfig.h or
linux/version.h isn't included prior to the include of "linux/sched.h"

I'm not at all sure what the right way to fix this is.  A simple program
like that has only one line:

#include <linux/sched.h>

will fail to compile with the compile 
line:

gcc -D__KERNEL__ -I/usr/src/linux-2.4.18-22mdk/include  -Wall -Wstrict-prototypes 
-Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe 
-mpreferred-stack-boundary=2 -march=i586 -DMODULE -DMODVERSIONS -include 
/usr/src/linux-2.4.18-22mdk/include/linux/modversions.h -g -nostdinc -I 
/usr/lib/gcc-lib/i586-mandrake-linux-gnu/2.96/include -c test.c

One way to fix it would be to include "linux/version.h" immediately before
the declaration of 'event' in "linux/sched.h".

What's the correct way to fix this??

Thanks.


Reply via email to