diff mbox series

Fix Ada bootstrap failure on Cygwin since switch to C++11 (PR98590)

Message ID CAM43=SNZ5R2hhNtLgXCssDxwAkZ_nuYU1ezq4j2kc3856B+k-g@mail.gmail.com
State New
Headers show
Series Fix Ada bootstrap failure on Cygwin since switch to C++11 (PR98590) | expand

Commit Message

Mikael Pettersson Feb. 3, 2021, 4:43 p.m. UTC
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  <mikpelinux@gmail.com>

        PR bootstrap/98590
        * cstreams.c: Ensure fileno_unlocked() is visible on Cygwin.

 #include <sys/stat.h>

Comments

Arnaud Charlet Feb. 5, 2021, 8:35 a.m. UTC | #1
> 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  <mikpelinux@gmail.com>
> 
>         PR bootstrap/98590
>         * cstreams.c: Ensure fileno_unlocked() is visible on Cygwin.

We'd rather not have PR references in the source files, so please remove it 
(it will be there as part of the commit log and git annotate).

OK with the comment updated.

> 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>
Mikael Pettersson Feb. 5, 2021, 1:49 p.m. UTC | #2
On Fri, Feb 5, 2021 at 9:35 AM Arnaud Charlet <charlet@adacore.com> wrote:
>
> > 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  <mikpelinux@gmail.com>
> >
> >         PR bootstrap/98590
> >         * cstreams.c: Ensure fileno_unlocked() is visible on Cygwin.
>
> We'd rather not have PR references in the source files, so please remove it
> (it will be there as part of the commit log and git annotate).
>
> OK with the comment updated.

Thanks, here's the revised patch.

gcc/ada/

2021-02-05  Mikael Pettersson  <mikpelinux@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..7d64277110b 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() */
+#if defined(__CYGWIN__) && !defined(__CYGWIN32__) && !defined(_GNU_SOURCE)
+#define _GNU_SOURCE
+#endif
+
 #include <stdio.h>
 #include <sys/types.h>
 #include <sys/stat.h>
Arnaud Charlet Feb. 5, 2021, 1:59 p.m. UTC | #3
> > We'd rather not have PR references in the source files, so please remove it
> > (it will be there as part of the commit log and git annotate).
> >
> > OK with the comment updated.
> 
> Thanks, here's the revised patch.

OK, thanks.

> gcc/ada/
> 
> 2021-02-05  Mikael Pettersson  <mikpelinux@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..7d64277110b 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() */
> +#if defined(__CYGWIN__) && !defined(__CYGWIN32__) && !defined(_GNU_SOURCE)
> +#define _GNU_SOURCE
> +#endif
> +
>  #include <stdio.h>
>  #include <sys/types.h>
>  #include <sys/stat.h>
Mikael Pettersson Feb. 26, 2021, 3:24 p.m. UTC | #4
On Fri, Feb 5, 2021 at 2:59 PM Arnaud Charlet <charlet@adacore.com> wrote:
>
> > > We'd rather not have PR references in the source files, so please remove it
> > > (it will be there as part of the commit log and git annotate).
> > >
> > > OK with the comment updated.
> >
> > Thanks, here's the revised patch.
>
> OK, thanks.

I forgot to mention that I don't have commit rights to gcc, so can
someone please commit this for me? Thanks.

>
> > gcc/ada/
> >
> > 2021-02-05  Mikael Pettersson  <mikpelinux@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..7d64277110b 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() */
> > +#if defined(__CYGWIN__) && !defined(__CYGWIN32__) && !defined(_GNU_SOURCE)
> > +#define _GNU_SOURCE
> > +#endif
> > +
> >  #include <stdio.h>
> >  #include <sys/types.h>
> >  #include <sys/stat.h>
Jeff Law March 2, 2021, 10:20 p.m. UTC | #5
On 2/26/21 8:24 AM, Mikael Pettersson via Gcc-patches wrote:
> On Fri, Feb 5, 2021 at 2:59 PM Arnaud Charlet <charlet@adacore.com> wrote:
>>>> We'd rather not have PR references in the source files, so please remove it
>>>> (it will be there as part of the commit log and git annotate).
>>>>
>>>> OK with the comment updated.
>>> Thanks, here's the revised patch.
>> OK, thanks.
> I forgot to mention that I don't have commit rights to gcc, so can
> someone please commit this for me? Thanks.
Thanks.  Pushed to the trunk.

jeff
diff mbox series

Patch

From 7a277d8c2a6c1d4ccfbb0ca350e4b1f35a3e575c Mon Sep 17 00:00:00 2001
From: Mikael Pettersson <mikpelinux@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