2.1.31 doesn't build on Intel with glibc

Philip Blundell (phil@tazenda.demon.co.uk)
Fri, 4 Apr 1997 21:53:40 +0000 (GMT)

Compilation of arch/i386/boot/compressed/misc.c fails with 2.1.31, because
an include of <vmalloc.h> was added to <asm/io.h>. This sucks in a whole
load of other kernel headers, many of which rely on definitions that you
only get if STRICT_KERNEL_NAMES is not in force. Sadly, misc.c has
included <string.h>, which _does_ (indirectly) set STRICT_KERNEL_NAMES by
default under glibc.

A fudge is to move the #include <string.h> until after the two #include
<asm/...> lines in misc.c. But the kernel probably ought not to depend on
libc headers anyway.

Please watch out for this sort of thing when editing <asm/> or <linux/>
header files. Admittedly this was quite a subtle breakage, but similar
things have happened before, and I'm not at all convinced it's a good
thing that every program that wants the IO definitions has to suffer
everything that <vmalloc.h> includes. Kernel headers, particularly the
ones in <asm/>, should IMHO include as few other headers as possible.