[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20191230171202.GG30412@brightrain.aerifal.cx>
Date: Mon, 30 Dec 2019 12:12:02 -0500
From: Rich Felker <dalias@...c.org>
To: Daniel Kolesa <daniel@...aforge.org>
Cc: David Miller <davem@...emloft.net>, musl@...ts.openwall.com,
AWilcox@...cox-Tech.com, netdev@...r.kernel.org,
linux-api@...r.kernel.org
Subject: Re: [musl] Re: [PATCH] uapi: Prevent redefinition of struct iphdr
On Thu, Dec 26, 2019 at 12:13:37PM +0100, Daniel Kolesa wrote:
> On Thu, Dec 26, 2019, at 04:49, David Miller wrote:
> > From: Rich Felker <dalias@...c.org>
> > Date: Wed, 25 Dec 2019 20:05:15 -0500
> >
> > > On Wed, Dec 25, 2019 at 04:34:11PM -0800, David Miller wrote:
> > >> I find it really strange that this, therefore, only happens for musl
> > >> and we haven't had thousands of reports of this conflict with glibc
> > >> over the years.
> > >
> > > It's possible that there's software that's including just one of the
> > > headers conditional on __GLIBC__, and including both otherwise, or
> > > something like that. Arguably this should be considered unsupported
> > > usage; there are plenty of headers where that doesn't work and
> > > shouldn't be expected to.
> >
> > I don't buy that, this is waaaaaay too common a header to use.
>
> In case of net-tools, only <linux/ip.h> is included, and never
> <netinet/ip.h> directly. Chances are in musl the indirect include
> tree happens to be different and conflicting, while in glibc it is
> not.
musl has no indirect inclusion of netinet/ip.h from standard headers,
but does include it from netinet/ip_icmp.h. It seems glibc only does
this conditional on __USE_MISC, which doesn't make much sense to me
since this is not a standardized header with namespace rules, but
normally __USE_MISC is defined anyway on glibc so I kinda doubt this
is the difference.
Any other ideas?
Rich
Powered by blists - more mailing lists