On Thu, May 19, 2016 at 05:26:29PM +0200, Nicolas Dichtel wrote: > These structures are defined only if __USE_MISC is set in glibc net/if.h > headers, ie when _BSD_SOURCE or _SVID_SOURCE are defined.
Also, reading /usr/include/features.h from Debian glibc 2.22-4: ... The `-ansi' switch to the GNU C compiler, and standards conformance options such as `-std=c99', define __STRICT_ANSI__. If none of these are defined, or if _DEFAULT_SOURCE is defined, the default is to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to 200809L, as well as enabling miscellaneous functions from BSD and SVID. If more than one of these are defined, they accumulate. For example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together give you ISO C, 1003.1, and 1003.2, but nothing else. ... /* _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for _DEFAULT_SOURCE. ... In the compile test I go with the defaults. I guess I should test all of these feature variants and in the future check deeper into the glibc ifdefs. > CC: Jan Engelhardt <jeng...@inai.de> > CC: Josh Boyer <jwbo...@fedoraproject.org> > CC: Stephen Hemminger <shemm...@brocade.com> > CC: Waldemar Brodkorb <m...@waldemar-brodkorb.de> > CC: Gabriel Laskar <gabr...@lse.epita.fr> > CC: Mikko Rapeli <mikko.rap...@iki.fi> > Fixes: 4a91cb61bb99 ("uapi glibc compat: fix compile errors when glibc > net/if.h included before linux/if.h") > Signed-off-by: Nicolas Dichtel <nicolas.dich...@6wind.com> Signed-off-by: Mikko Rapeli <mikko.rap...@iki.fi> > --- > include/uapi/linux/libc-compat.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/include/uapi/linux/libc-compat.h > b/include/uapi/linux/libc-compat.h > index d5e38c73377c..e4f048ee7043 100644 > --- a/include/uapi/linux/libc-compat.h > +++ b/include/uapi/linux/libc-compat.h > @@ -52,7 +52,7 @@ > #if defined(__GLIBC__) > > /* Coordinate with glibc net/if.h header. */ > -#if defined(_NET_IF_H) > +#if defined(_NET_IF_H) && defined(__USE_MISC) > > /* GLIBC headers included first so don't define anything > * that would already be defined. */ > -- > 2.8.1 >