From: hpa@zytor.com (H. Peter Anvin)
To: linux-kernel@vger.kernel.org
Subject: Re: [RFC] Splitting kernel headers and deprecating __KERNEL__
Date: Tue, 30 Nov 2004 00:51:49 +0000 (UTC) [thread overview]
Message-ID: <cogg75$3a6$1@terminus.zytor.com> (raw)
In-Reply-To: A697CF5A-4267-11D9-8DB8-000393ACC76E@mac.com
Followup to: <A697CF5A-4267-11D9-8DB8-000393ACC76E@mac.com>
By author: Kyle Moffett <mrmacman_g4@mac.com>
In newsgroup: linux.dev.kernel
>
> On Nov 29, 2004, at 15:01, H. Peter Anvin wrote:
> > Most people seem to have suggested include/linux-abi for this; I would
> > personally prefer include/linux-abi/arch for the second.
>
> It seems like there are two ways to adjust the headers. We could move
> the private headers to a new directory (include/kernel?), or we could
> move
> the public headers to a new directory (include/linux-abi?). I am
> willing to
> work on some simple and trivial patches to begin doing either one, if we
> can reach an agreement as to which one is preferrable (and what to call
> the new directory.)
>
If we can preserve compatibility, moving the private headers to a
separate place makes sense. However, preserving compatibility is not
a good thing, because a lot of the brokenness is in how things are
exported. Thus, you want libc to be able to have a linux/* wrapper
for backwards compatibility.
My first choice would be to put the ABI headers in linux/abi.
> > Good, except your "struct winsize" is bad; you're stepping on
> > namespace which belongs to userspace. Since we can't use typedefs on
> > struct tags, I suggest:
> >
> > struct __kstruct_winsize {
> > /* ... */
> > };
> >
> > .. and userspace can do:
> >
> > #define __kstruct_winsize winsize
>
> My initial suggestion would be to leave the types as-is, primarily for
> the reasons in Linus' earlier email, but also for simplicity and to
> prevent inadvertent breakage.
True; I hadn't considered the weirdness of the namespace pollution
issue. However, the issue with struct tags remain.
Note also that not all ABI issues can be well-described in C headers,
and certainly not the way it currently is. Syscall numbers and ioctl
APIs are examples there (I do some hideously ugly hacks in klibc to
try to auto-derive as much of the ABI as possible; this is part of
making klibc very easy to port to new architectures and keeps
maintenance in one place.) However, cleaning up the headers is a
major step forward.
> >> (3) Remove all #if(n)def __KERNEL__ clauses.
> >>
> >> (4) Remove the -D__KERNEL__ from the master kernel Makefile.
> >
> > Bad! There is code in the kernel which can compile in userspace for
> > testing. This is highly valuable and should be kept.
>
> I would propose that if we decide to move the public headers instead of
> the internal kernel headers, we autogenerate headers for installation
> that have a #warning wrapper if __KERNEL__ isn't defined.
-hpa
next prev parent reply other threads:[~2004-11-30 0:52 UTC|newest]
Thread overview: 185+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-11-25 15:13 [RFC] Splitting kernel headers and deprecating __KERNEL__ David Howells
2004-11-25 15:23 ` David Woodhouse
2004-11-25 16:54 ` Matthew Wilcox
2004-11-25 18:17 ` David Woodhouse
2004-11-27 3:24 ` Greg KH
2004-11-28 23:37 ` Paul Mackerras
2004-11-29 1:28 ` Linus Torvalds
2004-11-29 4:36 ` Jeff Garzik
2004-11-29 4:57 ` Al Viro
2004-11-29 5:27 ` Tim Hockin
2004-11-29 7:51 ` Arjan van de Ven
2004-12-05 0:49 ` Rob Landley
2004-12-05 2:26 ` Andries Brouwer
2004-12-05 13:19 ` David Greaves
2004-12-05 15:57 ` Andries Brouwer
2004-12-05 23:05 ` Rob Landley
2004-12-06 9:56 ` Andries Brouwer
2004-11-29 9:42 ` David Woodhouse
2004-11-30 8:08 ` Alex Riesen
2004-11-30 8:57 ` Alex Riesen
2004-12-01 11:46 ` Ralf Baechle
2004-12-02 1:21 ` H. Peter Anvin
2004-11-29 9:53 ` Paul Mackerras
2004-11-29 9:57 ` Arjan van de Ven
2004-11-29 10:01 ` David Woodhouse
2004-11-29 11:41 ` Mariusz Mazur
2004-11-29 17:09 ` Alexandre Oliva
2004-11-29 17:41 ` Linus Torvalds
2004-11-29 22:44 ` Al Viro
2004-12-01 11:36 ` Roman Zippel
[not found] ` <oract0thnj.fsf@livre.redhat.lsd.ic.unicamp.br>
2004-11-29 23:00 ` Linus Torvalds
2004-11-30 0:45 ` H. Peter Anvin
2004-11-30 5:31 ` Herbert Poetzl
2004-11-30 6:44 ` bert hubert
2004-11-30 21:22 ` Alexandre Oliva
2004-11-30 22:22 ` Linus Torvalds
2004-11-30 22:57 ` Alexandre Oliva
2004-11-30 23:12 ` Linus Torvalds
2004-12-01 19:41 ` Alexandre Oliva
2004-12-01 19:54 ` Matthew Wilcox
2004-12-02 3:58 ` Linus Torvalds
2004-12-02 4:28 ` Bernd Eckenfels
2004-12-02 5:11 ` Peter Williams
2004-12-02 11:30 ` Tomas Carnecky
2004-12-02 22:17 ` Peter Williams
2004-12-02 9:29 ` Pekka Enberg
2004-12-02 15:35 ` Linus Torvalds
2004-12-02 21:46 ` Pekka Enberg
2004-11-30 15:33 ` David Howells
2004-11-30 15:51 ` Linus Torvalds
2004-11-30 16:18 ` David Howells
2004-11-30 20:47 ` Alexandre Oliva
2004-11-30 20:56 ` Linus Torvalds
2004-11-30 21:30 ` Alexandre Oliva
2004-11-30 21:39 ` Alexandre Oliva
2004-11-30 23:33 ` Matthew Wilcox
2004-11-30 22:25 ` Linus Torvalds
2004-11-30 22:34 ` David Woodhouse
2004-11-30 22:51 ` Linus Torvalds
2004-11-30 23:50 ` David Woodhouse
2004-12-01 0:10 ` Linus Torvalds
2004-12-01 0:18 ` Linus Torvalds
2004-12-01 8:10 ` Arjan van de Ven
2004-12-01 0:24 ` David Woodhouse
2004-12-01 0:37 ` Linus Torvalds
2004-12-01 0:47 ` David Woodhouse
2004-12-01 0:57 ` Linus Torvalds
2004-12-01 1:06 ` David Woodhouse
2004-12-01 1:23 ` Linus Torvalds
2004-12-01 6:48 ` BAIN
2004-12-01 2:02 ` cdrom.h (was Re: [RFC] Splitting kernel headers...) Matthew Wilcox
2004-11-30 22:52 ` [RFC] Splitting kernel headers and deprecating __KERNEL__ Mariusz Mazur
2004-11-30 23:05 ` Linus Torvalds
2004-11-30 23:05 ` Alexandre Oliva
2004-11-30 15:35 ` David Woodhouse
2004-11-30 15:58 ` Linus Torvalds
2004-11-30 16:28 ` David Woodhouse
2004-11-30 16:53 ` Linus Torvalds
2004-11-30 17:52 ` David Woodhouse
2004-11-30 18:21 ` Linus Torvalds
2004-11-30 20:28 ` Mariusz Mazur
2004-11-30 20:47 ` Linus Torvalds
2004-11-30 22:33 ` Sam Ravnborg
2004-11-30 22:44 ` Mariusz Mazur
2004-11-30 23:03 ` Al Viro
2004-11-30 23:08 ` Mariusz Mazur
2004-12-01 5:23 ` Sam Ravnborg
2004-12-01 10:52 ` Mariusz Mazur
2004-12-01 18:08 ` Sam Ravnborg
2004-11-30 23:13 ` Alexandre Oliva
2004-11-30 23:36 ` Chris Friesen
2004-12-01 5:50 ` H. Peter Anvin
2004-11-30 22:48 ` Matt Mackall
2004-11-30 22:51 ` Christoph Hellwig
2004-11-30 23:09 ` Chris Friesen
2004-11-30 23:35 ` Matt Mackall
2004-12-01 0:23 ` Miquel van Smoorenburg
2004-11-30 22:55 ` Linus Torvalds
2004-11-30 23:29 ` Matt Mackall
2004-12-03 1:03 ` Krzysztof Halasa
2004-11-30 23:51 ` David Woodhouse
2004-11-30 17:55 ` Al Viro
2004-11-30 16:33 ` David Howells
2004-11-30 16:57 ` Linus Torvalds
2004-12-14 5:51 ` Werner Almesberger
2004-12-14 15:49 ` Linus Torvalds
2004-12-14 16:50 ` Werner Almesberger
2004-12-14 17:58 ` Linus Torvalds
2004-12-14 21:46 ` Werner Almesberger
2004-12-14 21:58 ` Linus Torvalds
2004-12-14 23:49 ` Krzysztof Halasa
2004-12-15 0:09 ` Werner Almesberger
2004-12-16 0:58 ` Krzysztof Halasa
2004-12-14 19:23 ` Horst von Brand
2004-12-14 19:45 ` Sam Ravnborg
2004-12-14 19:58 ` Linus Torvalds
2004-12-14 20:25 ` Andreas Schwab
2004-12-14 20:33 ` Linus Torvalds
2004-12-14 16:55 ` Andreas Schwab
2004-12-14 17:59 ` Linus Torvalds
2004-11-26 11:52 ` David Howells
2004-11-27 20:39 ` Sam Ravnborg
2004-11-25 18:20 ` Alexandre Oliva
2004-11-25 21:01 ` Matthew Wilcox
2004-11-25 22:35 ` David Woodhouse
2004-11-26 11:42 ` Alexandre Oliva
2004-11-27 0:13 ` Andreas Steinmetz
2004-11-27 0:26 ` David Woodhouse
2004-11-27 0:30 ` Andreas Steinmetz
2004-11-27 0:38 ` David Woodhouse
2004-11-26 11:47 ` Alexandre Oliva
2004-11-26 11:53 ` David Woodhouse
2004-11-27 16:12 ` Krzysztof Halasa
2004-11-26 11:58 ` David Howells
2004-11-26 12:00 ` David Woodhouse
2004-11-26 14:19 ` Matthew Wilcox
2004-11-26 14:33 ` David Woodhouse
2004-11-27 12:10 ` Alexander Stohr
2004-11-27 3:46 ` Adam Heath
2004-11-30 12:18 ` Horst von Brand
2004-11-29 16:34 ` Alexandre Oliva
2004-11-25 18:45 ` Matthew Wilcox
2004-11-26 23:56 ` Grzegorz Kulewski
2004-11-27 1:27 ` Tomas Carnecky
2004-11-27 1:41 ` Grzegorz Kulewski
2004-11-27 2:03 ` Tomas Carnecky
2004-11-29 11:08 ` David Howells
2004-11-27 3:07 ` Kyle Moffett
2004-11-27 4:29 ` Tonnerre
2004-11-27 3:51 ` Matthew Wilcox
2004-11-27 16:47 ` Randy.Dunlap
2004-11-27 17:16 ` David Woodhouse
2004-11-27 22:53 ` Arnd Bergmann
2004-11-27 23:12 ` David Woodhouse
2004-11-27 23:27 ` Randy.Dunlap
2004-11-27 23:32 ` David Woodhouse
2004-11-27 23:56 ` Arnd Bergmann
2004-11-28 7:13 ` Arjan van de Ven
2004-11-28 12:03 ` Arnd Bergmann
2004-11-28 12:19 ` Arjan van de Ven
2004-11-28 16:34 ` Kevin Puetz
2004-11-28 12:28 ` Wichert Akkerman
2004-11-28 12:44 ` Arjan van de Ven
2004-11-28 16:21 ` Jakub Jelinek
2004-11-28 7:20 ` Christoph Hellwig
2004-11-27 4:05 ` Chris Friesen
2004-11-27 4:30 ` Tomas Carnecky
2004-11-27 21:03 ` Sam Ravnborg
2004-11-27 21:11 ` Andreas Steinmetz
2004-11-27 21:19 ` Sam Ravnborg
2004-11-27 21:49 ` Andreas Steinmetz
2004-11-27 23:21 ` Arnd Bergmann
2004-11-28 13:24 ` Andreas Steinmetz
2004-11-28 13:40 ` Arnd Bergmann
2004-11-29 20:01 ` H. Peter Anvin
2004-11-30 0:34 ` Kyle Moffett
2004-11-30 0:51 ` H. Peter Anvin [this message]
2004-12-14 7:07 ` Werner Almesberger
-- strict thread matches above, loose matches on Subject: below --
2004-11-27 19:43 Dan Kegel
2004-11-27 21:06 ` Sam Ravnborg
[not found] <34Xo6-2P0-19@gated-at.bofh.it>
[not found] ` <35i9f-2vZ-25@gated-at.bofh.it>
[not found] ` <35iLS-2Uo-1@gated-at.bofh.it>
[not found] ` <35kb6-46Q-25@gated-at.bofh.it>
2004-11-28 0:55 ` ak
2004-11-28 13:32 ` Arnd Bergmann
2004-11-30 1:43 Jean Tourrilhes
2004-11-30 4:22 ` Linus Torvalds
2004-11-30 6:51 ` H. Peter Anvin
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='cogg75$3a6$1@terminus.zytor.com' \
--to=hpa@zytor.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox