This fixes the bootstrap failure with Ada on Cygwin since the switch to C++11. The configure checks detect that fileno_unlocked () is present, but when Ada's cstreams.c is compiled in C++11 mode, <stdio.h> does not declare it, causing a hard error.
Fixed by defining _GNU_SOURCE before including <stdio.h>. Ok for the master branch? gcc/ada/ 2021-02-03 Mikael Pettersson <mikpeli...@gmail.com> PR bootstrap/98590 * cstreams.c: Ensure fileno_unlocked() is visible on Cygwin. diff --git a/gcc/ada/cstreams.c b/gcc/ada/cstreams.c index 4e00dedbbd6..9d2f41c5269 100644 --- a/gcc/ada/cstreams.c +++ b/gcc/ada/cstreams.c @@ -37,6 +37,11 @@ #define _FILE_OFFSET_BITS 64 /* the define above will make off_t a 64bit type on GNU/Linux */ +/* tell Cygwin's <stdio.h> to expose fileno_unlocked() to work around PR98590 */ +#if defined(__CYGWIN__) && !defined(__CYGWIN32__) && !defined(_GNU_SOURCE) +#define _GNU_SOURCE +#endif + #include <stdio.h> #include <sys/types.h> #include <sys/stat.h>
From 7a277d8c2a6c1d4ccfbb0ca350e4b1f35a3e575c Mon Sep 17 00:00:00 2001 From: Mikael Pettersson <mikpeli...@gmail.com> Date: Wed, 3 Feb 2021 17:25:42 +0100 Subject: [PATCH] Ensure fileno_unlocked() is visible on Cygwin. --- gcc/ada/cstreams.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gcc/ada/cstreams.c b/gcc/ada/cstreams.c index 4e00dedbbd6..9d2f41c5269 100644 --- a/gcc/ada/cstreams.c +++ b/gcc/ada/cstreams.c @@ -37,6 +37,11 @@ #define _FILE_OFFSET_BITS 64 /* the define above will make off_t a 64bit type on GNU/Linux */ +/* tell Cygwin's <stdio.h> to expose fileno_unlocked() to work around PR98590 */ +#if defined(__CYGWIN__) && !defined(__CYGWIN32__) && !defined(_GNU_SOURCE) +#define _GNU_SOURCE +#endif + #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> -- 2.26.2