public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* Re: [gcc r12-6398] [Ada] Reduce runtime dependencies on stage1
       [not found] <20220110094108.2755D3891C1E@sourceware.org>
@ 2022-01-18  9:48 ` Thomas Schwinge
  2022-01-18 10:41   ` Arnaud Charlet
  0 siblings, 1 reply; 5+ messages in thread
From: Thomas Schwinge @ 2022-01-18  9:48 UTC (permalink / raw)
  To: Arnaud Charlet, Pierre-Marie de Rodat, gcc-patches

[-- Attachment #1: Type: text/plain, Size: 5949 bytes --]

Hi!

On 2022-01-10T09:41:08+0000, Pierre-Marie de Rodat via Gcc-cvs <gcc-cvs@gcc.gnu.org> wrote:
> https://gcc.gnu.org/g:a6eae6a9bbf83ada3aab7f5a2a74e7024889d237
>
> commit r12-6398-ga6eae6a9bbf83ada3aab7f5a2a74e7024889d237
> Author: Arnaud Charlet <charlet@adacore.com>
> Date:   Mon Nov 29 10:15:26 2021 +0000
>
>     [Ada] Reduce runtime dependencies on stage1
>
>     gcc/ada/
>
>             * gcc-interface/Make-lang.in (ADA_GENERATED_FILES): Remove
>             s-casuti.ad?, s-crtl.ad?, s-os_lib.ad?.  Update list of object
>             files accordingly.

OK to push (after more testing) the attached
'Revert parts of "[Ada] Reduce runtime dependencies on stage1"', for the
reason detailed therein?  Should the comment before 'GNAT1_C_OBJS' be
re-instated/adjusted, too?  Would appreciate a careful review, as I don't
really know what I'm doing there.  ;-)


Grüße
 Thomas


> Diff:
> ---
>  gcc/ada/gcc-interface/Make-lang.in | 55 ++++++++++++++++++--------------------
>  1 file changed, 26 insertions(+), 29 deletions(-)
>
> diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in
> index c6d8134b12b..40e7a9f670c 100644
> --- a/gcc/ada/gcc-interface/Make-lang.in
> +++ b/gcc/ada/gcc-interface/Make-lang.in
> @@ -271,8 +271,7 @@ GCC_LLINK=$(LLINKER) $(GCC_LINKERFLAGS) $(LDFLAGS)
>  # Languages-specific object files for Ada.
>
>  # Object files from C sources that are used by gnat1
> -# Most of the non-gigi files are needed because of s-crtl.o and s-os_lib.o
> -# But adadecode.o should not be needed with sufficiently recent compilers
> +# adadecode.o should not be needed with sufficiently recent compilers
>  GNAT1_C_OBJS =   \
>   ada/cuintp.o    \
>   ada/decl.o      \
> @@ -281,15 +280,9 @@ GNAT1_C_OBJS =   \
>   ada/utils2.o    \
>   ada/trans.o     \
>   ada/targtyps.o  \
> - ada/adadecode.o \
> - ada/adaint.o    \
> - ada/argv.o      \
> - ada/cio.o       \
> - ada/cstreams.o  \
> - ada/env.o       \
> - ada/errno.o     \
> + ada/version.o   \
>   ada/targext.o   \
> - ada/version.o
> + ada/adadecode.o
>
>  # Object files from Ada sources that are used by gnat1
>  GNAT_ADA_OBJS =      \
> @@ -465,14 +458,17 @@ GNAT_ADA_OBJS = \
>   ada/g-graphs.o      \
>   ada/g-lists.o       \
>   ada/g-sets.o        \
> - ada/s-casuti.o      \
> - ada/s-crtl.o        \
> - ada/s-os_lib.o      \
>   ada/s-pehage.o      \
>   ada/s-utf_32.o
>
>  ifeq ($(STAGE1),False)
>  GNAT1_C_OBJS+=    \
> + ada/adaint.o     \
> + ada/argv.o       \
> + ada/cio.o        \
> + ada/cstreams.o   \
> + ada/env.o        \
> + ada/errno.o      \
>   ada/init.o       \
>   ada/initialize.o \
>   ada/raise.o      \
> @@ -504,6 +500,8 @@ GNAT_ADA_OBJS+= \
>   ada/libgnat/s-assert.o      \
>   ada/libgnat/s-bitops.o      \
>   ada/libgnat/s-carun8.o      \
> + ada/libgnat/s-casuti.o \
> + ada/libgnat/s-crtl.o        \
>   ada/libgnat/s-conca2.o      \
>   ada/libgnat/s-conca3.o      \
>   ada/libgnat/s-conca4.o      \
> @@ -521,6 +519,7 @@ GNAT_ADA_OBJS+= \
>   ada/libgnat/s-imgint.o      \
>   ada/libgnat/s-mastop.o      \
>   ada/libgnat/s-memory.o      \
> + ada/libgnat/s-os_lib.o      \
>   ada/libgnat/s-parame.o      \
>   ada/libgnat/s-purexc.o      \
>   ada/libgnat/s-restri.o      \
> @@ -621,6 +620,7 @@ GNATBIND_OBJS = \
>   ada/switch-b.o   \
>   ada/switch.o     \
>   ada/table.o      \
> + ada/targext.o    \
>   ada/targparm.o   \
>   ada/types.o      \
>   ada/uintp.o      \
> @@ -632,18 +632,9 @@ GNATBIND_OBJS = \
>   ada/g-lists.o    \
>   ada/g-graphs.o   \
>   ada/g-sets.o     \
> - ada/s-casuti.o   \
> - ada/s-os_lib.o   \
>   ada/s-resfil.o   \
> - ada/s-utf_32.o   \
> - ada/adaint.o     \
> - ada/argv.o       \
> - ada/cio.o        \
> - ada/cstreams.o   \
> - ada/env.o        \
> - ada/errno.o      \
> - ada/targext.o    \
> - ada/version.o
> + ada/version.o    \
> + ada/s-utf_32.o
>
>  ifeq ($(STAGE1),False)
>  GNATBIND_OBJS +=  \
> @@ -666,6 +657,7 @@ GNATBIND_OBJS +=  \
>   ada/libgnat/s-addope.o   \
>   ada/libgnat/s-assert.o   \
>   ada/libgnat/s-carun8.o   \
> + ada/libgnat/s-casuti.o   \
>   ada/libgnat/s-conca2.o   \
>   ada/libgnat/s-conca3.o   \
>   ada/libgnat/s-conca4.o   \
> @@ -683,6 +675,7 @@ GNATBIND_OBJS +=  \
>   ada/libgnat/s-imgint.o   \
>   ada/libgnat/s-mastop.o   \
>   ada/libgnat/s-memory.o   \
> + ada/libgnat/s-os_lib.o   \
>   ada/libgnat/s-parame.o   \
>   ada/libgnat/s-restri.o   \
>   ada/libgnat/s-secsta.o   \
> @@ -699,7 +692,13 @@ GNATBIND_OBJS +=  \
>   ada/libgnat/s-wchcnv.o   \
>   ada/libgnat/s-wchcon.o   \
>   ada/libgnat/s-wchjis.o   \
> - ada/libgnat/s-wchstw.o
> + ada/libgnat/s-wchstw.o   \
> + ada/adaint.o     \
> + ada/argv.o       \
> + ada/cio.o        \
> + ada/cstreams.o   \
> + ada/env.o        \
> + ada/errno.o
>  endif
>
>  # Language-independent object files.
> @@ -1186,10 +1185,8 @@ ADA_GENERATED_FILES = \
>    ada/gnat.ads ada/g-dynhta.ads ada/g-dynhta.adb \
>    ada/g-dyntab.ads ada/g-dyntab.adb ada/g-graphs.ads ada/g-graphs.adb \
>    ada/g-lists.ads ada/g-lists.adb ada/g-sets.ads ada/g-sets.adb \
> -  ada/s-casuti.ads ada/s-casuti.adb \
> -  ada/s-crtl.ads ada/s-rident.ads ada/s-pehage.ads ada/s-pehage.adb \
> -  ada/s-os_lib.ads ada/s-os_lib.adb ada/s-resfil.ads ada/s-resfil.adb \
> -  ada/s-utf_32.ads ada/s-utf_32.adb
> +  ada/s-rident.ads ada/s-pehage.ads ada/s-pehage.adb \
> +  ada/s-resfil.ads ada/s-resfil.adb ada/s-utf_32.ads ada/s-utf_32.adb
>
>  # Only used to manually trigger the creation of the generated files.
>  .PHONY:


-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Revert-parts-of-Ada-Reduce-runtime-dependencies-on-s.patch --]
[-- Type: text/x-diff, Size: 4254 bytes --]

From d89b21968dd813ecc3357ba6d63633bcce3a409d Mon Sep 17 00:00:00 2001
From: Thomas Schwinge <thomas@codesourcery.com>
Date: Tue, 18 Jan 2022 00:01:01 +0100
Subject: [PATCH] Revert parts of "[Ada] Reduce runtime dependencies on stage1"

... to avoid:

    [...]
    mkdir -p ada/
    gcc-4.8 -std=gnu99 -c -g -O2    -gnatpg -gnatwns -gnata -W -Wall -I- -I. -Iada/generated -Iada -I[...]/source-gcc/gcc/ada [...]/source-gcc/gcc/ada/osint.adb -o ada/osint.o
    osint.adb:438:31: "strlen" not declared in "CRTL"
    osint.adb:441:14: "strncpy" not declared in "CRTL"
    osint.adb:675:21: "strlen" not declared in "CRTL"
    osint.adb:728:16: "Open_Append" is undefined
    osint.adb:1108:41: "int64" not declared in "CRTL"
    osint.adb:3126:28: "strlen" not declared in "CRTL"
    osint.adb:3129:11: "strncpy" not declared in "CRTL"
    make[1]: *** [ada/osint.o] Error 1
    mkdir -p ada/
    gcc-4.8 -std=gnu99 -c -g -O2    -gnatpg -gnatwns -gnata -W -Wall -I- -I. -Iada/generated -Iada -I[...]/source-gcc/gcc/ada [...]/source-gcc/gcc/ada/gnat1drv.adb -o ada/gnat1drv.o
    gnat1drv.adb:1121:44: "Current_Time_String" not declared in "OS_Lib"
    gnat1drv.adb:1381:10: (style) misplaced "then"
    make[1]: *** [ada/gnat1drv.o] Error 1
    make[1]: Target `all' not remade because of errors.
    make[1]: Leaving directory `[...]/build-gcc/gcc'
    make: *** [all-gcc] Error 2

    $ gcc-4.8 --version | head -n 1
    gcc-4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4

This reverts parts of commit a6eae6a9bbf83ada3aab7f5a2a74e7024889d237.

	gcc/ada/
	* gcc-interface/Make-lang.in (ADA_GENERATED_FILES): Add back
	s-crtl.ad?, s-os_lib.ad?.  Update list of object files accordingly.
---
 gcc/ada/gcc-interface/Make-lang.in | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in
index 40e7a9f670c..7dabaae4ed0 100644
--- a/gcc/ada/gcc-interface/Make-lang.in
+++ b/gcc/ada/gcc-interface/Make-lang.in
@@ -282,7 +282,8 @@ GNAT1_C_OBJS =   \
  ada/targtyps.o  \
  ada/version.o   \
  ada/targext.o   \
- ada/adadecode.o
+ ada/adadecode.o \
+ ada/adaint.o
 
 # Object files from Ada sources that are used by gnat1
 GNAT_ADA_OBJS =	\
@@ -458,12 +459,13 @@ GNAT_ADA_OBJS =	\
  ada/g-graphs.o	\
  ada/g-lists.o	\
  ada/g-sets.o	\
+ ada/s-crtl.o	\
+ ada/s-os_lib.o	\
  ada/s-pehage.o	\
  ada/s-utf_32.o
 
 ifeq ($(STAGE1),False)
 GNAT1_C_OBJS+=    \
- ada/adaint.o     \
  ada/argv.o       \
  ada/cio.o        \
  ada/cstreams.o   \
@@ -501,7 +503,6 @@ GNAT_ADA_OBJS+= \
  ada/libgnat/s-bitops.o	\
  ada/libgnat/s-carun8.o	\
  ada/libgnat/s-casuti.o \
- ada/libgnat/s-crtl.o	\
  ada/libgnat/s-conca2.o	\
  ada/libgnat/s-conca3.o	\
  ada/libgnat/s-conca4.o	\
@@ -519,7 +520,6 @@ GNAT_ADA_OBJS+= \
  ada/libgnat/s-imgint.o	\
  ada/libgnat/s-mastop.o	\
  ada/libgnat/s-memory.o	\
- ada/libgnat/s-os_lib.o	\
  ada/libgnat/s-parame.o	\
  ada/libgnat/s-purexc.o	\
  ada/libgnat/s-restri.o	\
@@ -632,9 +632,11 @@ GNATBIND_OBJS = \
  ada/g-lists.o    \
  ada/g-graphs.o   \
  ada/g-sets.o     \
+ ada/s-os_lib.o   \
  ada/s-resfil.o   \
  ada/version.o    \
- ada/s-utf_32.o
+ ada/s-utf_32.o   \
+ ada/adaint.o
 
 ifeq ($(STAGE1),False)
 GNATBIND_OBJS +=  \
@@ -675,7 +677,6 @@ GNATBIND_OBJS +=  \
  ada/libgnat/s-imgint.o   \
  ada/libgnat/s-mastop.o   \
  ada/libgnat/s-memory.o   \
- ada/libgnat/s-os_lib.o   \
  ada/libgnat/s-parame.o   \
  ada/libgnat/s-restri.o   \
  ada/libgnat/s-secsta.o   \
@@ -693,7 +694,6 @@ GNATBIND_OBJS +=  \
  ada/libgnat/s-wchcon.o   \
  ada/libgnat/s-wchjis.o   \
  ada/libgnat/s-wchstw.o   \
- ada/adaint.o     \
  ada/argv.o       \
  ada/cio.o        \
  ada/cstreams.o   \
@@ -1185,7 +1185,8 @@ ADA_GENERATED_FILES = \
   ada/gnat.ads ada/g-dynhta.ads ada/g-dynhta.adb \
   ada/g-dyntab.ads ada/g-dyntab.adb ada/g-graphs.ads ada/g-graphs.adb \
   ada/g-lists.ads ada/g-lists.adb ada/g-sets.ads ada/g-sets.adb \
-  ada/s-rident.ads ada/s-pehage.ads ada/s-pehage.adb \
+  ada/s-crtl.ads ada/s-rident.ads ada/s-pehage.ads ada/s-pehage.adb \
+  ada/s-os_lib.ads ada/s-os_lib.adb \
   ada/s-resfil.ads ada/s-resfil.adb ada/s-utf_32.ads ada/s-utf_32.adb
 
 # Only used to manually trigger the creation of the generated files.
-- 
2.25.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [gcc r12-6398] [Ada] Reduce runtime dependencies on stage1
  2022-01-18  9:48 ` [gcc r12-6398] [Ada] Reduce runtime dependencies on stage1 Thomas Schwinge
@ 2022-01-18 10:41   ` Arnaud Charlet
  2022-01-18 10:46     ` Arnaud Charlet
  0 siblings, 1 reply; 5+ messages in thread
From: Arnaud Charlet @ 2022-01-18 10:41 UTC (permalink / raw)
  To: Thomas Schwinge; +Cc: Arnaud Charlet, Pierre-Marie de Rodat, gcc-patches

Thomas,

> OK to push (after more testing) the attached
> 'Revert parts of "[Ada] Reduce runtime dependencies on stage1"', for the
> reason detailed therein?  Should the comment before 'GNAT1_C_OBJS' be
> re-instated/adjusted, too?  Would appreciate a careful review, as I don't
> really know what I'm doing there.  ;-)

Unfortunately it's not OK, these are the most annoying/delicate dependencies, so
we'd rather not reintroduce them. I'll instead update prerequisites to
document that GCC 5.1 or later is required to build GNAT.

Sorry for the inconvenience!

Arno

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [gcc r12-6398] [Ada] Reduce runtime dependencies on stage1
  2022-01-18 10:41   ` Arnaud Charlet
@ 2022-01-18 10:46     ` Arnaud Charlet
  2022-05-27  9:32       ` Thomas Schwinge
  0 siblings, 1 reply; 5+ messages in thread
From: Arnaud Charlet @ 2022-01-18 10:46 UTC (permalink / raw)
  To: Thomas Schwinge; +Cc: Arnaud Charlet, Pierre-Marie de Rodat, gcc-patches

> Unfortunately it's not OK, these are the most annoying/delicate dependencies, so
> we'd rather not reintroduce them. I'll instead update prerequisites to
> document that GCC 5.1 or later is required to build GNAT.

Now pushed on master:

    Update prerequisites for GNAT

        * doc/install.texi: Update prerequisites for GNAT

diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index 54ad7c7..96b4dfc 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -263,7 +263,7 @@ name of the package depends on your distro) or you must build GCC as a
 @item @anchor{GNAT-prerequisite}GNAT

 In order to build GNAT, the Ada compiler, you need a working GNAT
-compiler (GCC version 4.7 or later).
+compiler (GCC version 5.1 or later).

 This includes GNAT tools such as @command{gnatmake} and
 @command{gnatlink}, since the Ada front end is written in Ada and

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [gcc r12-6398] [Ada] Reduce runtime dependencies on stage1
  2022-01-18 10:46     ` Arnaud Charlet
@ 2022-05-27  9:32       ` Thomas Schwinge
  2022-05-30  8:40         ` Arnaud Charlet
  0 siblings, 1 reply; 5+ messages in thread
From: Thomas Schwinge @ 2022-05-27  9:32 UTC (permalink / raw)
  To: Arnaud Charlet; +Cc: gcc-patches, bernd.edlinger

Hi!

(Before the GCC 12 release) I had reported that commit
r12-6398-ga6eae6a9bbf83ada3aab7f5a2a74e7024889d237
"[Ada] Reduce runtime dependencies on stage1" has broken GCC/Ada build
with GCC 4.8.  That's unfortunate, as I understand that GCC 4.8 is
generally the prerequisite compiler for GCC.  (..., and I like to do
certain build using that old version, to make sure that this still
works.)  (The issue later also got repoted by Bernd Edlinger in
<https://gcc.gnu.org/PR104710> "Ada-Bootstrap fails with gcc-4.8.4".)

I thus had suggested a patch to
'Revert parts of "[Ada] Reduce runtime dependencies on stage1"', but:

On 2022-01-18T10:46:48+0000, Arnaud Charlet via Gcc-patches <gcc-patches@gcc.gnu.org> wrote:
>> Unfortunately it's not OK, these are the most annoying/delicate dependencies, so
>> we'd rather not reintroduce them. I'll instead update prerequisites to
>> document that GCC 5.1 or later is required to build GNAT.
>
> Now pushed on master:
>
>     Update prerequisites for GNAT
>
>         * doc/install.texi: Update prerequisites for GNAT
>
> diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
> index 54ad7c7..96b4dfc 100644
> --- a/gcc/doc/install.texi
> +++ b/gcc/doc/install.texi
> @@ -263,7 +263,7 @@ name of the package depends on your distro) or you must build GCC as a
>  @item @anchor{GNAT-prerequisite}GNAT
>
>  In order to build GNAT, the Ada compiler, you need a working GNAT
> -compiler (GCC version 4.7 or later).
> +compiler (GCC version 5.1 or later).
>
>  This includes GNAT tools such as @command{gnatmake} and
>  @command{gnatlink}, since the Ada front end is written in Ada and

I've now tested that, but find that it doesn't work:

    [...]
    gcc -c -g  -gnatpg -gnatwns -gnata -W -Wall -I- -I. -Iada/generated -Iada -I[...]/source-gcc/gcc/ada [...]/source-gcc/gcc/ada/contracts.adb -o ada/contracts.o
    +===========================GNAT BUG DETECTED==============================+
    | 5.1.0 (x86_64-unknown-linux-gnu) Assert_Failure sinfo.adb:616            |
    | Error detected at contracts.adb:2231:22                                  |
    | Please submit a bug report; see http://gcc.gnu.org/bugs.html.            |
    | Use a subject line meaningful to you and us to track the bug.            |
    | Include the entire contents of this bug box in the report.               |
    | Include the exact command that you entered.                              |
    | Also include sources listed below.                                       |
    +==========================================================================+

    Please include these source files with error report
    Note that list may not be accurate in some cases,
    so please double check that the problem can still
    be reproduced with the set of files listed.
    Consider also -gnatd.n switch (see debug.adb).

    [...]/source-gcc/gcc/ada/contracts.adb
    [...]/source-gcc/gcc/ada/contracts.ads
    [...]/source-gcc/gcc/ada/types.ads
    [...]/source-gcc/gcc/ada/aspects.ads
    [...]/source-gcc/gcc/ada/namet.ads
    [...]/source-gcc/gcc/ada/alloc.ads
    [...]/source-gcc/gcc/ada/hostparm.ads
    [...]/source-gcc/gcc/ada/table.ads
    ada/snames.ads
    [...]/source-gcc/gcc/ada/atree.ads
    [...]/source-gcc/gcc/ada/sinfo.ads
    [...]/source-gcc/gcc/ada/uintp.ads
    [...]/source-gcc/gcc/ada/urealp.ads
    ada/sinfo-nodes.ads
    ada/seinfo.ads
    [...]/source-gcc/gcc/ada/output.ads
    [...]/source-gcc/gcc/ada/einfo.ads
    [...]/source-gcc/gcc/ada/stand.ads
    ada/einfo-entities.ads
    [...]/source-gcc/gcc/ada/einfo-utils.ads
    [...]/source-gcc/gcc/ada/elists.ads
    [...]/source-gcc/gcc/ada/errout.ads
    [...]/source-gcc/gcc/ada/err_vars.ads
    [...]/source-gcc/gcc/ada/erroutc.ads
    [...]/source-gcc/gcc/ada/exp_prag.ads
    [...]/source-gcc/gcc/ada/exp_tss.ads
    [...]/source-gcc/gcc/ada/exp_util.ads
    [...]/source-gcc/gcc/ada/rtsfind.ads
    [...]/source-gcc/gcc/ada/freeze.ads
    [...]/source-gcc/gcc/ada/lib.ads
    ada/gnat.ads
    [...]/source-gcc/gcc/ada/nlists.ads
    ada/nmake.ads
    [...]/source-gcc/gcc/ada/opt.ads
    [...]/source-gcc/gcc/ada/sem.ads
    [...]/source-gcc/gcc/ada/sem_aux.ads
    [...]/source-gcc/gcc/ada/sem_ch6.ads
    [...]/source-gcc/gcc/ada/sem_ch8.ads
    [...]/source-gcc/gcc/ada/sem_ch12.ads
    [...]/source-gcc/gcc/ada/inline.ads
    [...]/source-gcc/gcc/ada/warnsw.ads
    [...]/source-gcc/gcc/ada/sem_ch13.ads
    [...]/source-gcc/gcc/ada/sem_disp.ads
    [...]/source-gcc/gcc/ada/sem_prag.ads
    [...]/source-gcc/gcc/ada/sem_res.ads
    [...]/source-gcc/gcc/ada/sem_type.ads
    [...]/source-gcc/gcc/ada/sem_util.ads
    [...]/source-gcc/gcc/ada/sinfo-utils.ads
    [...]/source-gcc/gcc/ada/sinput.ads
    [...]/source-gcc/gcc/ada/casing.ads
    [...]/source-gcc/gcc/ada/stringt.ads
    [...]/source-gcc/gcc/ada/tbuild.ads

    compilation abandoned
    make[3]: *** [ada/contracts.o] Error 1
    make[3]: Target `all' not remade because of errors.
    make[3]: Leaving directory `[...]/build-gcc/gcc'
    make[2]: *** [all-stage1-gcc] Error 2
    [...]

That 'Assert_Failure sinfo.adb:616' is in 'gcc/ada/sinfo.adb':

    613     function Controlling_Argument
    614        (N : Node_Id) return Node_Id is
    615     begin
    616        pragma Assert (False
    617          or else NT (N).Nkind = N_Function_Call
    618          or else NT (N).Nkind = N_Procedure_Call_Statement);
    619        return Node1 (N);
    620     end Controlling_Argument;

..., which is unchanged over all of the GCC 5 releases; the same
'Assert_Failure' appears for all GCC 5 releases.

The offending 'contracts.adb:2231:22' code is in 'gcc/ada/contracts.adb':

  2226              elsif Scope (Type_Of_Formal) = Scope (Subp_Id) then
  2227                 declare
  2228                    Ignored : Boolean range False .. False;
  2229
  2230                    Typ_Property_Funcs : constant Subprogram_List :=
  2231                       Stable_Properties (Type_Of_Formal, Negated => Ignored);
  2232
  2233                    function Excluded_By_Aspect_Spec_Of_Subp
  2234                      (SPF_Id : Entity_Id) return Boolean;

..., which got added in commit
r11-5477-g23e3e22105723fde2a9161757611544f180ba805
"[Ada] Implement AI12-0187 (Stable properties of abstract data types)".

So, what is actually the prerequisite GCC/Ada compiler version to be able
to build GCC 12+ GCC/Ada?


Grüße
 Thomas
-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [gcc r12-6398] [Ada] Reduce runtime dependencies on stage1
  2022-05-27  9:32       ` Thomas Schwinge
@ 2022-05-30  8:40         ` Arnaud Charlet
  0 siblings, 0 replies; 5+ messages in thread
From: Arnaud Charlet @ 2022-05-30  8:40 UTC (permalink / raw)
  To: Thomas Schwinge; +Cc: Arnaud Charlet, gcc-patches, bernd.edlinger

> >  In order to build GNAT, the Ada compiler, you need a working GNAT
> > -compiler (GCC version 4.7 or later).
> > +compiler (GCC version 5.1 or later).
> >
> >  This includes GNAT tools such as @command{gnatmake} and
> >  @command{gnatlink}, since the Ada front end is written in Ada and
> 
> I've now tested that, but find that it doesn't work:
> 
>     [...]
>     gcc -c -g  -gnatpg -gnatwns -gnata -W -Wall -I- -I. -Iada/generated -Iada -I[...]/source-gcc/gcc/ada [...]/source-gcc/gcc/ada/contracts.adb -o ada/contracts.o

Ah, that's unfortunate. I guess on my side I'm using a version of GNAT built
without assertions, so not failing on this.

> So, what is actually the prerequisite GCC/Ada compiler version to be able
> to build GCC 12+ GCC/Ada?

I'm afraid I don't have more info at this stage, I assume GCC 6.1 would work
(not tested, if someone could confirm that would be great).

Arno

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-05-30  8:40 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20220110094108.2755D3891C1E@sourceware.org>
2022-01-18  9:48 ` [gcc r12-6398] [Ada] Reduce runtime dependencies on stage1 Thomas Schwinge
2022-01-18 10:41   ` Arnaud Charlet
2022-01-18 10:46     ` Arnaud Charlet
2022-05-27  9:32       ` Thomas Schwinge
2022-05-30  8:40         ` Arnaud Charlet

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).