From: David Woodhouse <dwmw2@infradead.org>
To: Adrian Bunk <bunk@stusta.de>
Cc: linux-kernel@vger.kernel.org, sam@ravnborg.org
Subject: Re: [PATCH] 'make headers_install' kbuild target.
Date: Sat, 22 Apr 2006 16:30:12 +0100 [thread overview]
Message-ID: <1145719812.11909.333.camel@pmac.infradead.org> (raw)
In-Reply-To: <20060422132032.GB5010@stusta.de>
On Sat, 2006-04-22 at 15:20 +0200, Adrian Bunk wrote:
> On Sat, Apr 22, 2006 at 01:48:43PM +0100, David Woodhouse wrote:
> > On Sat, 2006-04-22 at 14:38 +0200, Adrian Bunk wrote:
> > > What was the recommended way for getting userspace header at last
> > > year's kernel summit?
> >
> > It was said that we need _incremental_ changes, and this is an attempt
> > to satisfy that request.
Let me expand on that...
There are a number of steps which we need to take.
1. Identify those files which contain stuff which should be
user-visible. I've done a first pass of this for arch-independent files
and asm-powerpc already. We need it done for other architectures.
2. Examine the contents of those files, and separate private parts from
parts which should be user-visible. This can be by splitting them into
separate files, or by using ifdefs -- it doesn't matter conceptually at
_this_ stage as long as the important work of _reading_ the code and
identifying it as either public or private is done. All else can be
scripted after that.
This much is undisputed -- _everyone_ agrees that it's necessary. We can
do that, and we can have a fairly simple post-processing stage which
creates a set of 'sanitised' kernel headers which we can inspect, and
which we can compare between releases. This is _also_ the bulk of the
real work. It's where we actually have to look at the code and _think_
about it.
But it's not _all_ we want to do, ideally. Ideally we want to take it
further...
3. Eliminate all the #ifdef __KERNEL__. Ifdefs are horrid -- we all know
that. We should split public bits into entirely separate files. Once
it's marked with #ifdef __KERNEL__ after stage #2, it's fairly simple to
split the files up -- it's scriptable; doesn't really need much thought.
4. Clean up the directory structure. It really ought to be just a copy
of certain directories, rather than picking selected files from
include/linux et al. Again, once we _have_ the public files marked in
some way, it's trivial to move them around once we agree where they
should go.
Linus has said he doesn't want to jump straight in at #4 and start
moving things around en masse. Adrian, you seem to be saying you won't
help _unless_ you can send patches which mix #2 and #4 instead of doing
it incrementally.
Now, I'm perfectly happy with patches which do that, if you can actually
get them merged. The export step can happily pick up the headers you've
moved to include/kabi/ and put them back where userspace expects to see
them for now.
In fact, I think it's best to hold off on #4 for now -- not only because
Linus won't take the patches, but because once we've done steps 1-3
above, we'll have a _much_ clearer idea of what we have left and how it
should best be laid out. Maybe once we've moved the crap out of the way
we'll end up wanting chrdev/*.h, ioctl/*.h, sockopt/*.h etc....
But even though I think it's premature, I still don't _mind_ moving
stuff into kabi/ -- because as I said it's _trivial_ to move stuff
around after it's been cleaned up. That part isn't the interesting part
of the problem, and I'm uninterested in arguing about it.
--
dwmw2
next prev parent reply other threads:[~2006-04-22 18:53 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-22 2:17 David Woodhouse
2006-04-22 9:33 ` Adrian Bunk
2006-04-22 12:03 ` David Woodhouse
2006-04-22 12:38 ` Adrian Bunk
2006-04-22 12:48 ` David Woodhouse
2006-04-22 13:20 ` Adrian Bunk
2006-04-22 13:36 ` David Woodhouse
2006-04-22 14:11 ` Adrian Bunk
2006-04-22 14:26 ` David Woodhouse
2006-04-22 14:44 ` Adrian Bunk
2006-04-22 14:56 ` David Woodhouse
2006-04-22 15:30 ` David Woodhouse [this message]
2006-04-22 21:13 ` Arnd Bergmann
2006-04-23 7:09 ` Arjan van de Ven
2006-04-23 16:51 ` Arnd Bergmann
2006-04-23 17:00 ` Joshua Hudson
2006-04-22 14:14 ` Sam Ravnborg
2006-04-22 14:20 ` Adrian Bunk
2006-04-22 14:28 ` Sam Ravnborg
2006-04-22 14:47 ` David Woodhouse
2006-04-22 14:50 ` Adrian Bunk
2006-04-28 18:15 ` Rob Landley
2006-04-28 18:27 ` David Woodhouse
2006-04-28 19:59 ` Rob Landley
2006-04-22 14:35 ` David Woodhouse
2006-04-23 20:47 ` David Woodhouse
2006-04-24 0:12 ` David Woodhouse
2006-04-28 18:13 ` Rob Landley
2006-04-28 18:22 ` 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=1145719812.11909.333.camel@pmac.infradead.org \
--to=dwmw2@infradead.org \
--cc=bunk@stusta.de \
--cc=linux-kernel@vger.kernel.org \
--cc=sam@ravnborg.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
all inboxes | Powered by JetHome®