From: Mike Frysinger <vapier@gentoo.org>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: David Miller <davem@davemloft.net>,
netdev@vger.kernel.org, klibc@zytor.com
Subject: Re: [klibc] [patch] import socket defines
Date: Fri, 11 Jan 2008 04:02:58 -0500 [thread overview]
Message-ID: <200801110403.00003.vapier@gentoo.org> (raw)
In-Reply-To: <4787221F.3030201@zytor.com>
[-- Attachment #1: Type: text/plain, Size: 2778 bytes --]
On Friday 11 January 2008, H. Peter Anvin wrote:
> Mike Frysinger wrote:
> >> all this stuff is ABI constants, and the only reason glibc
> >> doesn't use them is that glibc prefers to use enums over #defines.
> >
> > a proper libc defines things in their headers according to the POSIX
> > specs rather than relying on others to do it for them. if you want to
> > argue about linux-specific ABI pieces being exported, then you probably
> > have a valid point, but socket.h is hardly that.
>
> Have you looked at it?!!? It's full of ABI constants, and that's what I
> care about. POSIX doesn't define, say, AF_UNIX; that's an ABI specific.
i guess it depends on how you define "define" :P. no, POSIX does not state
the specific numerical value (ABI) for the define (API), but POSIX does
require sys/socket.h provide the macro AF_UNIX.
> > so if the only consumer is klibc and you're against adding these things
> > to it, special case it for __KLIBC__.
>
> No, let's split the header so that there are *no* libc knowledge in the
> kernel. For the kernel to have knowledge about the specifics of any
> particular libc (klibc, glibc, or any other) is stupid, and that's the
> whole reason we're in this spot to begin with.
we're in this spot at the moment to appease klibc only. is there any other
libc out there that is not providing its own complete sys/socket.h but
instead relying on linux/socket.h ? glibc/uClibc rely on linux/socket.h only
for the kernel's definition of sockaddr.
> Again, I don't particularly care about what they're named, but the whole
> point is
>
> #include <linux/foo.h>
>
> if you want the subset and
>
> #include <linux/bar.h>
>
> if you want the whole set.
i looked more at glibc/uClibc and my primary/original concern (and what i
thought what David was raising and you confirming) was that building of glibc
was broken and glibc headers would need updates. that does not seem to be
the case. the breakage here is for packages that include both sys/socket.h
(directly/indirectly) and linux/socket.h (directly/indirectly).
due to the way the network headers depend on each other, this case is trivial
to induce. but i dont think linux/socket.h is any more special than the
current retarded conflicts we have between the network headers from the libc
(which are required by POSIX and beyond) and the kernel headers.
> No libc specifics, and no feature test macros, which I think we can both
> agree are uglier than hell.
i think in general, all of the network related headers under linux/ are
fubared for userspace.
> I thought the naming worked out nicer with <linux/sockaddr.h>
placing the sockaddr definitions into linux/sockaddr.h makes sense.
-mike
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 835 bytes --]
next prev parent reply other threads:[~2008-01-11 9:03 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <200801012029.21432.vapier@gentoo.org>
[not found] ` <477AF86E.1080309@zytor.com>
[not found] ` <200801020830.43449.vapier@gentoo.org>
2008-01-02 18:09 ` [klibc] [patch] import socket defines H. Peter Anvin
2008-01-11 6:16 ` David Miller
2008-01-11 6:23 ` Mike Frysinger
2008-01-11 6:41 ` H. Peter Anvin
2008-01-11 6:47 ` David Miller
2008-01-11 7:02 ` H. Peter Anvin
2008-01-11 7:07 ` Mike Frysinger
2008-01-11 7:10 ` H. Peter Anvin
2008-01-11 7:42 ` H. Peter Anvin
2008-01-11 7:57 ` Mike Frysinger
2008-01-11 8:00 ` H. Peter Anvin
2008-01-11 9:02 ` Mike Frysinger [this message]
2008-01-11 9:28 ` Mike Frysinger
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=200801110403.00003.vapier@gentoo.org \
--to=vapier@gentoo.org \
--cc=davem@davemloft.net \
--cc=hpa@zytor.com \
--cc=klibc@zytor.com \
--cc=netdev@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;
as well as URLs for NNTP newsgroup(s).