Re: Missing #include <config.h>

Russell King
2005-09-13T14:28:42Z

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>.

We have "make configcheck" to help us find <linux/config.h> screwups.
Unfortunately, it seems from the output that no one runs it anymore.

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core