On 11/11/10 18:21, Bruno Haible wrote: > 2--- lib/fcntl.in.h.orig Fri Nov 12 03:19:39 2010 > +++ lib/fcntl.in.h Fri Nov 12 03:18:45 2010 > @@ -26,7 +26,13 @@ > /* Special invocation convention. */ > > #include <sys/types.h> > -#ifndef __GLIBC__ /* Avoid namespace pollution on glibc systems. */ > +/* On some systems other than glibc, <sys/stat.h> is a prerequisite of > + <fcntl.h>. On glibc systems, we would like to avoid namespace pollution. > + But on glibc systems, <fcntl.h> includes <sys/stat.h> inside an > + extern "C" { ... } block, which leads to errors in C++ mode with the > + overridden <sys/stat.h> from gnulib. These errors are known to be gone > + with g++ version >= 4.3. */ > +#if !defined __GLIBC__ || (defined __cplusplus && defined GNULIB_NAMESPACE > && !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))) > # include <sys/stat.h> > #endif > #...@include_next@ @NEXT_FCNTL_H@
This fails, of course, for GCC >= 5.0. Maybe not Real Soon, but still.....