my patches won't compile under 2.4.7

Kirk Reiser
2001-07-25T19:46:14Z

As of 2.4.7 my patches to the kernel won't compile. It appears to be
something to do with devfs_fs_kernel.h being part of miscdevices.h. I
have sifted through the code but have not been able to determine
exactly why they won't work any more. Here is the error output from
my compile:

gcc -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i586 -c -o speakup.o speakup.c
In file included from /usr/src/linux/include/linux/locks.h:8,
from /usr/src/linux/include/linux/devfs_fs_kernel.h:6,
from /usr/src/linux/include/linux/miscdevice.h:4,
from speakup.c:63:
/usr/src/linux/include/linux/pagemap.h:35: `currcons' undeclared here (not in a function)
/usr/src/linux/include/linux/pagemap.h:35: parse error before `.'
make[4]: *** [speakup.o] Error 1

I'm not sure even where to start trying to describe what I've looked
at and what I don't understand. It appears that page_cache_alloc() is
now an inline function with an argument passed to it, where it used to
be a #define with no arguments. I see that struct misc_device now has
a new member devfs_handle but the other drivers I've looked at rtc.c
haven't changed their structure members to take this into account. It
seems nothing new is necessary because misc_register checks if it's
been set or not. The two error lines don't look to me to have anything
to do with any of these things either currcons isn't used in any of
the misc_device structure or anything I can see which might end up
calling page_cache_alloc(). Can anyone give me any ideas what I
should check to hunt down exactly what's going on here? It almost
looks like gcc is getting screwed up in it's parsing or something.

Any ideas will greatefully be accepted I'm lost!

Kirk

--

Kirk Reiser The Computer Braille Facility
e-mail: kirk@braille.uwo.ca University of Western Ontario
phone: (519) 661-3061