Re: RFC: cleaning up the in-kernel headers

Jörn Engel
2006-07-11T21:41:06Z

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.

Problem 1 would be fairly simple, as the script could be changed
slightly to prune single #include lines from headers and see if they
still compile. But then there is problem 2.

One possibility to tackly problem 2 would be to create a set of config
files to use for automatic testing. Instead of compiling once, a
header must get compiled with every config in the set. Hopefully this
set would not grow too big.

And in the end, there is just so much you can automate. Humans have
to think about the changes before sending patches.

Jörn

--
Optimizations always bust things, because all optimizations are, in
the long haul, a form of cheating, and cheaters eventually get caught.
-- Larry Wall