There is a problem compiling mcd.c (not as a module) under linux-1.3.42.
It appears that the preprocessor test at line 136 is not working correctly
(i.e. CURRENT_VALID is being defined incorrectly).
Further investigation shows that patch-1.3.42 removes the include of
<linux/version.h> (where LINUX_VERSION_CODE is defined) from mcd.c.
The code instead includes <linux/module.h>, but this only includes
<linux/version.h> if we are compiling modules!
One solution is to include <linux/version.h> unconditionally in
mcd.c. I have done this and am running 1-3.42.
Hope this helps someone.