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.....