Re: Missing #include <config.h>

From: Russell King
Date: Tue Sep 13 2005 - 09:29:02 EST


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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/