From: Russell King <rmk+lkml@arm.linux.org.uk>
To: "Jörn Engel" <joern@infradead.org>, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Permanently fix kernel configuration include mess (was: Missing #include <config.h>)
Date: Tue, 13 Sep 2005 15:50:12 +0100 [thread overview]
Message-ID: <20050913155012.C23643@flint.arm.linux.org.uk> (raw)
In-Reply-To: <20050913150825.A23643@flint.arm.linux.org.uk>; from rmk+lkml@arm.linux.org.uk on Tue, Sep 13, 2005 at 03:08:26PM +0100
On Tue, Sep 13, 2005 at 03:08:26PM +0100, Russell King wrote:
> On Tue, Sep 13, 2005 at 02:56:23PM +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.
>
> I'm still of the opinion that we should add
>
> -imacros include/linux/config.h
>
> to the gcc command line and stop bothering with trying to get
> linux/config.h included into the right files and not in others.
> (which then means we can eliminate linux/config.h from all files.)
>
> From what you can see below, missing includes of it can remain
> for months, and it can cause bugs which are rather non-obvious.
Well, fixing all the ARM related config.h include mess, the patch
comes out at 53K with this diffstat summary:
150 files changed, 142 insertions(+), 91 deletions(-)
I really think we should stop being crazy and apply something like
the patch below instead. Afterwards, we may optionally want to re-
educate people to not include linux/config.h after all.
======
Subject: [KBUILD] Permanently fix kernel configuration include mess.
Include autoconf.h into every kernel compilation via the gcc
command line using -imacros. This ensures that we have the
kernel configuration included from the start, rather than
relying on each file having #include <linux/config.h> as
appropriate. History has shown that this is something which
is difficult to get right.
Since we now include the kernel configuration automatically,
make configcheck becomes meaningless, so remove it.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -346,7 +346,8 @@ AFLAGS_KERNEL =
# Use LINUXINCLUDE when you must reference the include/ directory.
# Needed to be compatible with the O= option
LINUXINCLUDE := -Iinclude \
- $(if $(KBUILD_SRC),-Iinclude2 -I$(srctree)/include)
+ $(if $(KBUILD_SRC),-Iinclude2 -I$(srctree)/include) \
+ -imacros include/linux/autoconf.h
CPPFLAGS := -D__KERNEL__ $(LINUXINCLUDE)
@@ -1247,11 +1248,6 @@ tags: FORCE
# Scripts to check various things for consistency
# ---------------------------------------------------------------------------
-configcheck:
- find * $(RCS_FIND_IGNORE) \
- -name '*.[hcS]' -type f -print | sort \
- | xargs $(PERL) -w scripts/checkconfig.pl
-
includecheck:
find * $(RCS_FIND_IGNORE) \
-name '*.[hcS]' -type f -print | sort \
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core
next prev parent reply other threads:[~2005-09-13 14:50 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-09-13 13:56 Missing #include <config.h> Jörn Engel
2005-09-13 14:08 ` Russell King
2005-09-13 14:12 ` Christoph Hellwig
2005-09-13 17:57 ` Geert Uytterhoeven
2005-09-13 18:02 ` Russell King
2005-09-13 14:50 ` Russell King [this message]
2005-09-13 16:59 ` [PATCH] Permanently fix kernel configuration include mess (was: Missing #include <config.h>) Joern Engel
2005-09-13 18:04 ` Russell King
2005-09-13 19:10 ` [PATCH] Permanently fix kernel configuration include mess Brian Gerst
2005-09-13 19:33 ` Josh Boyer
2005-09-13 20:10 ` Alexey Dobriyan
2005-09-14 8:39 ` [PATCH] Permanently fix kernel configuration include mess (was: Missing #include <config.h>) Andrew Morton
2005-09-14 8:48 ` Russell King
2005-09-14 13:48 ` Sergey Vlasov
2005-09-14 14:02 ` Christoph Hellwig
2005-09-14 17:04 ` Sam Ravnborg
2005-09-13 14:12 ` Missing #include <config.h> Josh Boyer
2005-09-13 14:28 ` Russell King
2005-09-13 14:40 ` Josh Boyer
2005-09-13 16:22 ` Doug Maxey
2005-09-13 17:55 ` Geert Uytterhoeven
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050913155012.C23643@flint.arm.linux.org.uk \
--to=rmk+lkml@arm.linux.org.uk \
--cc=joern@infradead.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.