netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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 --]

  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).