This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] uapi glibc compat: fix cases where glibc net/if.h is included before linux/if.h
- From: Mikko Rapeli <mikko dot rapeli at iki dot fi>
- To: David Miller <davem at davemloft dot net>
- Cc: shemming at brocade dot com, linux-api at vger dot kernel dot org, linux-kernel at vger dot kernel dot org, jwboyer at fedoraproject dot org, pablo at netfilter dot org, netdev at vger dot kernel dot org, netfilter-devel at vger dot kernel dot org, libc-alpha at sourceware dot org
- Date: Fri, 26 Feb 2016 09:25:13 +0200
- Subject: Re: [PATCH] uapi glibc compat: fix cases where glibc net/if.h is included before linux/if.h
- Authentication-results: sourceware.org; auth=none
- References: <CA+5PVA4P2avVr+m=ittQUyBou9kT2nbK0-Jeo+3coAFyQXTT_A at mail dot gmail dot com> <1454853801-18064-1-git-send-email-mikko dot rapeli at iki dot fi> <20160217 dot 104620 dot 239734387234680136 dot davem at davemloft dot net>
(Adding libc-alpha list, review of https://lkml.org/lkml/2016/2/7/89 )
On Wed, Feb 17, 2016 at 10:46:20AM -0500, David Miller wrote:
> From: Mikko Rapeli <mikko.rapeli@iki.fi>
> Date: Sun, 7 Feb 2016 16:03:21 +0200
>
> > @@ -68,6 +72,8 @@
> > * @IFF_ECHO: echo sent packets. Volatile.
> > */
> > enum net_device_flags {
> > +/* for compatibility with glibc net/if.h */
> > +#if __UAPI_DEF_IF_NET_DEVICE_FLAGS
> > IFF_UP = 1<<0, /* sysfs */
> > IFF_BROADCAST = 1<<1, /* volatile */
> > IFF_DEBUG = 1<<2, /* sysfs */
> > @@ -84,11 +90,14 @@ enum net_device_flags {
> > IFF_PORTSEL = 1<<13, /* sysfs */
> > IFF_AUTOMEDIA = 1<<14, /* sysfs */
> > IFF_DYNAMIC = 1<<15, /* sysfs */
> > +#endif /* __UAPI_DEF_IF_NET_DEVICE_FLAGS */
> > IFF_LOWER_UP = 1<<16, /* volatile */
> > IFF_DORMANT = 1<<17, /* volatile */
> > IFF_ECHO = 1<<18, /* volatile */
> > };
>
> This is going to get messy is IFF_LOWER_UP, IFF_DORMANT, and IFF_ECHO
> get added the the glibc header. Why not just handle it now with
> another __UAPI_DEF_FOO guard so that the additions to net/if.h can
> deal with this case too.
Do you mean that the enum should be protected with a single guard or
should I have one guard for current conflicts and one for the future
if glibc headers include IFF_LOWER_UP and others?
-Mikko