public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "H. Peter Anvin" <hpa@zytor.com>
To: David Woodhouse <dwmw2@infradead.org>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>,
	linux-kernel@vger.kernel.org
Subject: Re: Recent changes to sysctl.h breaks glibc
Date: Mon, 19 May 2003 18:09:19 -0700	[thread overview]
Message-ID: <3EC9803F.6010701@zytor.com> (raw)
In-Reply-To: <1053392095.21582.48.camel@imladris.demon.co.uk>

David Woodhouse wrote:
> 
> To a large extent, however, it merely grows. And in a lot of cases when
> it grows due to new syscalls, new interfaces, etc., you have to add
> matching code to glibc to use them _anyway_, so it's no problem for
> glibc's version of the headers to lag behind until the appropriate
> support is added.
> 

... unless you need the new feature, may it be an ioctl to support your
device driver, or whatnot.

Most ABI changes do not require

> You are, however, correct that the correct fix is to have completely
> separate headers which define the ABI. Then the real kernel headers in
> include/linux and include/asm can include them, and C libraries can also
> use them without contamination.
> 
> This requires that someone sit down and cut'n'paste large amounts of
> structures and definitions from include/linux/*.h into the new header
> files. I've been tempted to do that on occasion but what's held me up
> has been the fact that there isn't yet a consensus on how it should be
> laid out.

I maintain the proposal I have given before:

<linux/abi/*.h> as the header file namespace;
<linux/*.h> <asm/*.h> namespaces reserved for compatibility (once the
migration is complete these are owned by the libc)

Types use the __kernel_* namespace *only*; structures use struct __kernel_*.

Some form of export of the expected syscall ABI as well as syscall
numbering.

> For compatibility with older libc, one approach would be to add a new
> directory to the include path which matches the existing layout
> (linux/usrinclude/linux, linux/usrinclude/asm-*), and use #include_next
> from the actual kernel headers to pull in those files.
>
> Alternatively, we could go further and take the opportunity to rearrange
> stuff further; I'm not sure what we really gain from that though other
> than extra pain.

I don't think the <linux/*.h> namespace as its currently laid out is
very functional for exporting ABIs, so I'd like to

A bigger issue is if this really should be done in C.  A worthwhile
thought: if this is done correctly then most or all of the 64/32 compat
code (or any other arch1-on-arch2 compatibility) should be able to be
automatically generated.  If not, it almost certainly isn't done
correctly...

> If Linus would approve a strategy for rearranging the headers such that
> people can work on it without suspecting that they're just wasting their
> time, I think it could get done for 2.6.
> 
> It's not the kind of thing you do in private and present as a fait
> accomplis -- if it isn't quite right, you end up having to do the whole
> thing from scratch, afaict.

Agreed.

	-hpa


  reply	other threads:[~2003-05-20  0:57 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-05-18 20:21 Recent changes to sysctl.h breaks glibc Martin Schlemmer
2003-05-18 20:49 ` William Lee Irwin III
2003-05-18 21:12   ` Martin Schlemmer
2003-05-19  5:38     ` Christoph Hellwig
2003-05-19 10:43       ` Martin Schlemmer
2003-05-19 10:51         ` William Lee Irwin III
2003-05-19 11:14           ` Martin Schlemmer
2003-05-19 11:21             ` William Lee Irwin III
2003-05-19 11:33             ` Arjan van de Ven
2003-05-19 11:43             ` Christoph Hellwig
2003-05-19 12:52               ` Martin Schlemmer
2003-05-19 21:14           ` H. Peter Anvin
2003-05-19 22:44             ` William Lee Irwin III
2003-05-19 22:46               ` H. Peter Anvin
2003-05-19 22:56                 ` William Lee Irwin III
2003-05-19 23:04                   ` H. Peter Anvin
2003-05-20  6:06                   ` Martin Schlemmer
2003-05-19 11:45         ` Christoph Hellwig
2003-05-19 12:56           ` Martin Schlemmer
2003-05-19 13:06             ` Christoph Hellwig
2003-05-19 16:56               ` Sam Ravnborg
2003-05-19 17:41                 ` Linus Torvalds
2003-05-19 21:16                   ` H. Peter Anvin
2003-05-19 22:18                     ` Eric W. Biederman
2003-05-19 22:31                       ` H. Peter Anvin
2003-05-19 22:20                         ` Alan Cox
2003-05-19 23:28                           ` Andries Brouwer
2003-05-20 10:35                             ` Lionel Elie Mamane
2003-05-19 23:30                           ` H. Peter Anvin
2003-05-19 23:05                         ` Eric W. Biederman
2003-05-19 23:17                           ` H. Peter Anvin
2003-05-19 23:55                             ` Eric W. Biederman
2003-05-20  0:24                               ` Valdis.Kletnieks
2003-05-20  0:40                                 ` Eric W. Biederman
2003-05-20  1:11                                   ` Valdis.Kletnieks
2003-05-20 22:10                                     ` H. Peter Anvin
2003-05-20  0:30                               ` H. Peter Anvin
2003-05-20  0:54                             ` David Woodhouse
2003-05-20  1:09                               ` H. Peter Anvin [this message]
2003-05-20  1:42                                 ` Miles Bader
2003-05-20  4:12                                   ` H. Peter Anvin
2003-05-20  4:24                                     ` Miles Bader
2003-05-20  6:37                                 ` Eric W. Biederman
2003-05-20  7:24                                   ` H. Peter Anvin
2003-05-20 19:04                                     ` Eric W. Biederman
2003-05-20  7:44                               ` Riley Williams
2003-05-20 14:01                                 ` Chris Friesen
2003-05-20 17:06                                   ` H. Peter Anvin
2003-05-21  4:39                                     ` Martin Schlemmer
2003-05-21  5:38                                       ` H. Peter Anvin
2003-05-21  5:58                                         ` Eric W. Biederman
2003-05-19 18:05               ` David Ford
2003-05-19 17:44                 ` Alan Cox
2003-05-20  2:21                   ` David Ford
2003-05-19 18:24                 ` Christoph Hellwig
2003-05-19 17:59           ` David Ford
2003-05-19 18:06             ` Arjan van de Ven
2003-05-19 18:23               ` David Ford
2003-05-19 18:34                 ` Arjan van de Ven
2003-05-19 19:43                   ` Martin Schlemmer
2003-05-19 21:21                     ` H. Peter Anvin
2003-05-19 21:35               ` Sam Ravnborg
2003-05-19 21:37                 ` Arjan van de Ven
  -- strict thread matches above, loose matches on Subject: below --
2003-05-19 19:54 Mudama, Eric
2003-05-19 20:36 ` Martin Schlemmer

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=3EC9803F.6010701@zytor.com \
    --to=hpa@zytor.com \
    --cc=dwmw2@infradead.org \
    --cc=ebiederm@xmission.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