Re: RFC: cleaning up the in-kernel headers

H. Peter Anvin
2006-07-11T22:04:41Z

Jörn Engel wrote:
> On Tue, 11 July 2006 13:41:06 -0700, Randy.Dunlap wrote:
>> On Tue, 11 Jul 2006 21:41:07 +0200 Sam Ravnborg wrote:
>>
>>>> JÃrn Engel IIRC created a perl scrip that did this a year or two ago.
>>>> Try googling a bit.
>>> http://lkml.org/lkml/2003/10/1/74
>> That is version 2 of the script. There are also versions 3 & 4.
>>
>> http://marc.theaimsgroup.com/?l=linux-kernel&w=2&r=1&s=check+headers+for+complete+includes&q=t
>
> Boy, it took me a while to remember what I did back then. In
> principle, the script just compiles trivial c files with a single
> #include <linux/foo.h>
> inside.
>
> Not too bad in principle, but there were two problems I couldn't
> solve:
> 1. One of the goals should be to make a compile faster, not slower.
> Adding further includes hardly helps.
> 2. It is practically impossible to test every possible combination of
> #ifdefs in the various headers pulled in.
>

#1 I doubt the time taken to look at include files that are #ifndef'd in
their entirety is significant (I think there is special code in gcc to
handle this case fast.)

#2 is actually a non-issue. If each file is usable standalone (and have
a multiple inclusion guard), then the include order shouldn't matter.
Not that one can't create contrived cases where it would matter, but one
can't solve every problem...

-hpa