public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Dave Jones <davej@redhat.com>
To: Adrian Bunk <bunk@stusta.de>
Cc: linux-kernel@vger.kernel.org,
	David Woodhouse <dwmw2@infradead.org>,
	torvalds@osdl.org, akpm@osdl.org
Subject: Re: RFC: cleaning up the in-kernel headers
Date: Tue, 11 Jul 2006 13:07:25 -0400	[thread overview]
Message-ID: <20060711170725.GD5362@redhat.com> (raw)
In-Reply-To: <20060711160639.GY13938@stusta.de>

On Tue, Jul 11, 2006 at 06:06:39PM +0200, Adrian Bunk wrote:
 > I'd like to cleanup the mess of the in-kernel headers, based on the 
 > following rules:
 > - every header should #include everything it uses
 > - remove unneeded #include's from headers
 > 
 > This would also remove all the implicit rules "before #include'ing 
 > header foo.h, you must #include header bar.h" you usually only see when 
 > the compilation fails.

You may want to add as a secondary goal, splitting up some of the
huge 3-headed monster include files like sched.h
(It's better than it used to be, but it still sucks, and that thing
#include's the world).  Worst, iirc module.h pulls it in, which means
everything built as a module is pulling in hundreds of includes
even though most of the time, it'll never use anything from the
indirect ones.

ghviz & hviz from http://www.kernel.org/pub/linux/kernel/people/acme/
are invaluable for eyeballing include dependancies btw.
They need graphviz installed, and run like so..

ghviz include/linux/sched.h 10

to produce a pretty graph.

 > There might be exceptions (e.g. for avoiding circular #include's) but 
 > these would be special cases.

In many cases, adding forward references is a lot cleaner than
adding dozens of indirect include dependancies.

		Dave

-- 
http://www.codemonkey.org.uk

  parent reply	other threads:[~2006-07-11 17:08 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-07-11 16:06 RFC: cleaning up the in-kernel headers Adrian Bunk
2006-07-11 16:28 ` David Woodhouse
2006-07-11 17:33   ` Christoph Hellwig
2006-07-11 19:34     ` Sam Ravnborg
2006-07-11 19:41       ` Sam Ravnborg
2006-07-11 20:41         ` Randy.Dunlap
2006-07-11 21:37           ` Jörn Engel
2006-07-11 22:01             ` H. Peter Anvin
2006-07-11 22:20               ` Jörn Engel
2006-07-11 22:39               ` Linus Torvalds
2006-07-11 22:40             ` Adrian Bunk
2006-07-11 21:04     ` David Woodhouse
2006-07-11 22:24   ` Adrian Bunk
2006-07-11 17:07 ` Dave Jones [this message]
2006-07-11 17:15   ` Joshua Hudson
2006-07-11 18:19     ` Dave Jones
2006-07-11 22:27   ` Adrian Bunk
2006-07-11 19:05 ` Russell King
2006-07-11 22:19   ` Adrian Bunk
2006-07-11 20:26 ` [PATCH] Fix broken kernel headers preventing ARM build Russell King
2006-07-13 19:05 ` RFC: cleaning up the in-kernel headers Christoph Lameter
2006-07-15  4:18   ` Steven Rostedt
2006-07-15  4:59     ` Christoph Lameter
2006-07-17  0:53       ` Steven Rostedt
2006-07-20 10:56         ` Adrian Bunk
2006-07-14  0:11 ` David Woodhouse

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=20060711170725.GD5362@redhat.com \
    --to=davej@redhat.com \
    --cc=akpm@osdl.org \
    --cc=bunk@stusta.de \
    --cc=dwmw2@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@osdl.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox