From: Mike Frysinger <vapier@gentoo.org>
To: Pedro Alves <palves@redhat.com>
Cc: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>,
"Carlos O'Donell" <carlos@systemhalted.org>,
David Miller <davem@davemloft.net>,
libc-alpha@sourceware.org, bhutchings@solarflare.com,
amwang@redhat.com, tmb@mageia.org, eblake@redhat.com,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
libvirt-list@redhat.com, tgraf@suug.ch, schwab@suse.de
Subject: Re: Redefinition of struct in6_addr in <netinet/in.h> and <linux/in6.h>
Date: Sun, 20 Jan 2013 19:54:47 -0500 [thread overview]
Message-ID: <201301201954.51109.vapier@gentoo.org> (raw)
In-Reply-To: <50F95DF3.7080602@redhat.com>
[-- Attachment #1: Type: Text/Plain, Size: 1580 bytes --]
On Friday 18 January 2013 09:36:35 Pedro Alves wrote:
> On 01/18/2013 02:24 PM, YOSHIFUJI Hideaki wrote:
> >>>> It's simple enough to move all of the __GLIBC__ uses into
> >>>> libc-compat.h, then you control userspace libc coordination from one
> >>>> file.
> >>>
> >>> How about just deciding on a single macro/symbol both the
> >>> kernel and libc (any libc that needs this) define? Something
> >>> like both the kernel and userland doing:
> >>>
> >>> #ifndef __IPV6_BITS_DEFINED
> >>> #define __IPV6_BITS_DEFINED
> >>> ...
> >>> define in6_addr, sockaddr_in6, ipv6_mreq, whatnot
> >>> #endif
> >
> > Hmm, how should we handle future structs/enums then?
> > For example, if I want to have in6_flowlabel_req{} defined in
> > glibc, what should we do?
>
> Include the glibc header first? Or is this some other
> use case?
>
> The point wasn't that you'd have only one macro for all
> structs/enums (you could split into __IPV6_IN6_ADDR_DEFINED,
> __IPV6_SOCKADDR_IN6_DEFINED, etc.) but to have the kernel
> and libc agree on guard macros, instead of having the kernel
> do #ifdef __GLIBC__ and glibc doing #ifdef _NETINET_IN_H.
>
> But as Carlos says, the devil is in the details, and
> I sure am not qualified on the details here.
i shipped some kernel header versions in Gentoo where the linux network
headers would include the C library's header (as defined by POSIX) so the
structs that were the same would only come from glibc. the only reported
breakage was due to defines that the kernel provided but glibc did not.
-mike
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
next prev parent reply other threads:[~2013-01-21 0:50 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-13 18:38 if_bridge.h: include in6.h for struct in6_addr use Thomas Backlund
2013-01-13 20:05 ` Thomas Backlund
2013-01-14 23:57 ` [libvirt] " Eric Blake
2013-01-15 10:03 ` the patch "bridge: export multicast database via netlink" broke kernel 3.8 uapi (was: Re: [libvirt] if_bridge.h: include in6.h for struct in6_addr use) Thomas Backlund
2013-01-15 10:11 ` Cong Wang
2013-01-15 10:55 ` the patch "bridge: export multicast database via netlink" broke kernel 3.8 uapi Thomas Backlund
2013-01-16 5:51 ` Cong Wang
2013-01-16 6:06 ` Redefinition of struct in6_addr in <netinet/in.h> and <linux/in6.h> Cong Wang
2013-01-16 14:21 ` YOSHIFUJI Hideaki
2013-01-16 15:47 ` Ben Hutchings
2013-01-16 17:04 ` Mike Frysinger
2013-01-16 17:10 ` Ben Hutchings
2013-01-16 17:28 ` Mike Frysinger
2013-01-16 18:59 ` David Miller
2013-01-16 19:22 ` Mike Frysinger
2013-01-16 19:25 ` David Miller
2013-01-17 3:40 ` Cong Wang
[not found] ` <CANE52KhF17WRZTUbrjRDnwcbdN+V+69=ZqXjBwPjnswEO5iz7g@mail.gmail.com>
2013-01-17 6:59 ` Cong Wang
2013-01-17 7:02 ` Cong Wang
2013-01-16 18:57 ` David Miller
2013-01-16 19:29 ` Mike Frysinger
2013-01-17 2:15 ` Carlos O'Donell
2013-01-17 3:10 ` YOSHIFUJI Hideaki
2013-01-17 3:15 ` David Miller
2013-01-18 4:20 ` Mike Frysinger
2013-01-18 4:22 ` Carlos O'Donell
2013-01-18 4:34 ` Mike Frysinger
2013-01-18 10:44 ` Pedro Alves
2013-01-18 13:35 ` Carlos O'Donell
2013-01-18 14:24 ` YOSHIFUJI Hideaki
2013-01-18 14:36 ` Pedro Alves
2013-01-18 14:54 ` Carlos O'Donell
2013-01-21 0:54 ` Mike Frysinger [this message]
2013-01-17 3:22 ` YOSHIFUJI Hideaki
2013-01-18 4:13 ` Carlos O'Donell
2013-01-16 21:45 ` David Miller
2013-01-17 1:58 ` Carlos O'Donell
2013-01-17 2:05 ` David Miller
2013-01-17 10:57 ` Jan Engelhardt
2013-01-18 4:14 ` Mike Frysinger
2013-01-18 4:55 ` David Miller
2013-01-18 5:27 ` Mike Frysinger
2013-03-13 15:17 ` [libvirt] if_bridge.h: include in6.h for struct in6_addr use Kumar Gala
2013-03-13 16:24 ` Eric Blake
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=201301201954.51109.vapier@gentoo.org \
--to=vapier@gentoo.org \
--cc=amwang@redhat.com \
--cc=bhutchings@solarflare.com \
--cc=carlos@systemhalted.org \
--cc=davem@davemloft.net \
--cc=eblake@redhat.com \
--cc=libc-alpha@sourceware.org \
--cc=libvirt-list@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=palves@redhat.com \
--cc=schwab@suse.de \
--cc=tgraf@suug.ch \
--cc=tmb@mageia.org \
--cc=yoshfuji@linux-ipv6.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
all inboxes | Powered by JetHome®