Re: Missing #include <config.h>

Josh Boyer
2005-09-13T14:40:22Z

On Tue, 2005-09-13 at 15:28 +0100, Russell King wrote:
> On Tue, Sep 13, 2005 at 09:12:33AM -0500, Josh Boyer wrote:
> > On Tue, 2005-09-13 at 14:56 +0100, JÃ¶rn Engel wrote:
> > > After spending some hours last night and this morning hunting a bug,
> > > I've found that a different include order made a difference. Some
> > > files don't work correctly, unless config.h is included before.
> > >
> > > Here is a very stupid bug checker for the problem class:
> > > $ rgrep CONFIG include/ | cut -d: -f1 | sort -u > g1
> > > $ rgrep CONFIG include/ | cut -d: -f1 | sort -u | xargs grep "config.h" | cut -d: -f1 | sort -u > g2
> > > $ diff -u g1 g2 | grep ^- > g3
> >
> > Your checker doesn't quite test for nested includes. E.g. if foo.h
> > includes bar.h, and bar.h includes config.h, then foo.h doesn't need to
> > include config.h explicitly.
>
> Unfortunately, we don't operate like that. If a file makes use of
> CONFIG_xxx then it must include <linux/config.h>.

Well, that rule makes things easier then, so Jörn's list would be pretty
complete.

Your proposal of using -imacros is even better though.

josh