All of lore.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 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.