From 7367cd5949ec066811979dbb60b51cbcc6c123b3 Mon Sep 17 00:00:00 2001 From: Arnaud Charlet Date: Wed, 6 Jan 2021 04:41:54 -0500 Subject: [Ada] Assert_Failure vs Assertion_Error gcc/ada/ * libgnat/s-assert.ads (Assert_Failure): Now a renaming of Assertion_Error. * libgnat/a-assert.ads (Assertion_Error): Now a first class citizen. Remove dependency on System.Assertions. * gcc-interface/a-assert.ads, gcc-interface/a-assert.adb: New. * gcc-interface/Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-assert.o from gcc-interface. --- gcc/ada/gcc-interface/Make-lang.in | 2 ++ 1 file changed, 2 insertions(+) (limited to 'gcc/ada/gcc-interface/Make-lang.in') diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in index d88c354..f5c8e6f 100644 --- a/gcc/ada/gcc-interface/Make-lang.in +++ b/gcc/ada/gcc-interface/Make-lang.in @@ -471,6 +471,7 @@ GNAT_ADA_OBJS = \ ada/stylesw.o \ ada/switch-c.o \ ada/switch.o \ + ada/gcc-interface/a-assert.o \ ada/gcc-interface/system.o \ ada/table.o \ ada/targparm.o \ @@ -629,6 +630,7 @@ GNATBIND_OBJS = \ ada/stylesw.o \ ada/switch-b.o \ ada/switch.o \ + ada/gcc-interface/a-assert.o \ ada/gcc-interface/system.o \ ada/table.o \ ada/targext.o \ -- cgit v1.1 From ec80b416554d3f41b5fd23cc86287af9b9a7d2d2 Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Wed, 6 Jan 2021 15:27:15 +0100 Subject: [Ada] Implement tiered support for floating-point output operations gcc/ada/ * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-dourea, s-imager, s-imgflt, s-imglfl and s-imgllf. (LIBGNAT_TARGET_PAIRS) [PowerPC/VxWorks]: Use s-dorepr__fma.adb. (LIBGNAT_TARGET_PAIRS) [PowerPC/VxWorksAE]: Likewise. (LIBGNAT_TARGET_PAIRS) [Aarch64/VxWorks]: Likewise. (LIBGNAT_TARGET_PAIRS) [Aarch64/QNX]: Likewise. (LIBGNAT_TARGET_PAIRS) [Aarch64/FreeBSD]: Likewise. (LIBGNAT_TARGET_PAIRS) [PowerPC/Linux]: Likewise. (LIBGNAT_TARGET_PAIRS) [Aarch64/Linux]: Likewise. (LIBGNAT_TARGET_PAIRS) [IA-64/Linux]: Likewise. (LIBGNAT_TARGET_PAIRS) [IA-64/HP-UX]: Likewise. (LIBGNAT_TARGET_PAIRS) [RISC-V/Linux]: Likewise. (LIBGNAT_TARGET_PAIRS) [PowerPC/Darwin]: Likewise. * exp_attr.adb (Expand_N_Attribute_Reference) [Attribute_Fore]: Use Fixed suffix and Long_Float type. * exp_imgv.adb (Expand_Image_Attribute): For floating-point types, use the routine of the corresponding root type. For ordinary fixed point types, use Fixed suffix and Long_Float type. (Expand_Value_Attribute): Revert latest change for Long_Long_Float. * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Remove libgnat units g-hesora.o and s-imgenu.o, add g-heasor.o, g-table.o and s-pehage.o. (GNATBIND_OBJS): Remove libgnat unit s-imgenu.o. * rtsfind.ads (RTU_Id): Add System_Img_Flt, System_Img_LFlt and System_Img_LLF. Remove System_Img_Real. (RE_Id): Rename RE_Fore_Real to RE_Fore_Fixed. Add RE_Image_Float, RE_Image_Long_Float and RE_Image_Long_Long_Float. Rename RE_Image_Ordinary_Fixed_Point to RE_Image_Fixed. (RE_Unit_Table): Adjust to above changes. * libgnat/a-nbnbre.adb (Fixed_Conversions): Use Long_Float instead of Long_Long_Float. * libgnat/a-textio.ads (Field): Remove obsolete comment. * libgnat/a-ticoau.ads (Aux): Adjust ancestor package. * libgnat/a-ticoau.adb: Remove with/use clause for System.Img_Real. (Puts): Call Aux.Set_Image instead of Set_Image_Real. * libgnat/a-ticoio.adb: Add with/use clauses for System.Img_Flt, System.Img_LFlt and System.Img_LLF. (Scalar_Float): Add third actual parameter. (Scalar_Long_Float): Likewise. (Scalar_Long_Long_Float): Likewise. * libgnat/a-tifiio.adb: Add with/use clauses for System.Img_LFlt and System.Val_LFlt. Remove the one for System.Val_LLF. Replace Long_Long_Float with Long_Float throughout. * libgnat/a-tifiio__128.adb: Likewise. * libgnat/a-tiflau.ads: Add Set_Image formal parameter. * libgnat/a-tiflau.adb: Add with/use clause for System.Img_Util, remove the one for System.Img_Real. (Put): Call Set_Image instead of Set_Image_Real. (Puts): Likewise. * libgnat/a-tiflio.adb: Add with/use clause for System.Img_Flt, System.Img_LFlt and System.Img_LLF. (Aux_Float): Add third actual parameter. (Aux_Long_Float): Likewise. (Aux_Long_Long_Float): Likewise. * libgnat/a-witeio.ads (Field): Remove obsolete comment. * libgnat/a-wtcoau.ads (Aux): Adjust ancestor package. * libgnat/a-wtcoau.adb: Remove with/use clause for System.Img_Real. (Puts): Call Aux.Set_Image instead of Set_Image_Real. * libgnat/a-wtcoio.adb: Add with/use clauses for System.Img_Flt, System.Img_LFlt and System.Img_LLF. (Scalar_Float): Add third actual parameter. (Scalar_Long_Float): Likewise. (Scalar_Long_Long_Float): Likewise. * libgnat/a-wtfiio.adb: Add with/use clauses for System.Img_LFlt and System.Val_LFlt. Remove the one for System.Val_LLF. Replace Long_Long_Float with Long_Float throughout. * libgnat/a-wtfiio__128.adb: Likewise. * libgnat/a-wtflau.ads: Add Set_Image formal parameter. * libgnat/a-wtflau.adb: Add with/use clause for System.Img_Util, remove the one for System.Img_Real. (Put): Call Set_Image instead of Set_Image_Real. (Puts): Likewise. * libgnat/a-wtflio.adb: Add with/use clause for System.Img_Flt, System.Img_LFlt and System.Img_LLF. (Aux_Float): Add third actual parameter. (Aux_Long_Float): Likewise. (Aux_Long_Long_Float): Likewise. * libgnat/a-ztexio.ads (Field): Remove obsolete comment. * libgnat/a-ztcoau.ads (Aux): Adjust ancestor package. * libgnat/a-ztcoau.adb: Remove with/use clause for System.Img_Real. (Puts): Call Aux.Set_Image instead of Set_Image_Real. * libgnat/a-ztcoio.adb: Add with/use clauses for System.Img_Flt, System.Img_LFlt and System.Img_LLF. (Scalar_Float): Add third actual parameter. (Scalar_Long_Float): Likewise. (Scalar_Long_Long_Float): Likewise. * libgnat/a-ztfiio.adb: Add with/use clauses for System.Img_LFlt and System.Val_LFlt. Remove the one for System.Val_LLF. Replace Long_Long_Float with Long_Float throughout. * libgnat/a-ztfiio__128.adb: Likewise. * libgnat/a-ztflau.ads: Add Set_Image formal parameter. * libgnat/a-ztflau.adb: Add with/use clause for System.Img_Util, remove the one for System.Img_Real. (Put): Call Set_Image instead of Set_Image_Real. (Puts): Likewise. * libgnat/a-ztflio.adb: Add with/use clause for System.Img_Flt, System.Img_LFlt and System.Img_LLF. (Aux_Float): Add third actual parameter. (Aux_Long_Float): Likewise. (Aux_Long_Long_Float): Likewise. * libgnat/s-dorepr.adb: New file. * libgnat/s-dorepr__fma.adb: Likewise. * libgnat/s-dourea.ads: Likewise. * libgnat/s-dourea.adb: Likewise. * libgnat/s-forrea.ads (Fore_Real): Rename into... (Fore_Fixed): ...this and take Long_Float parameters. * libgnat/s-forrea.adb (Fore_Real): Likewise. (Fore_Fixed): Likewise. * libgnat/s-imgrea.ads: Move to... (Set_Image_Real): Turn into mere renaming. * libgnat/s-imager.ads: ...here. (Image_Ordinary_Fixed_Point): Turn into... (Image_Fixed_Point): ...this. * libgnat/s-imgrea.adb: Add pragma No_Body. Move to... * libgnat/s-imager.adb: ...here. (Image_Ordinary_Fixed_Point): Turn into... (Image_Fixed_Point): ...this. (Is_Negative): Replace Long_Long_Float with Num. (Set_Image_Real): Likewise. Use Double_T instead of single Num throughout the algorithm. * libgnat/s-imgflt.ads: New file. * libgnat/s-imglfl.ads: Likewise. * libgnat/s-imgllf.ads: Likewise. * libgnat/s-imagef.ads: Adjust comment. * libgnat/s-imguti.ads (Max_Real_Image_Length): New named number. * libgnat/s-powflt.ads (Maxpow): Adjust. (Powten): Turn into an exact table of double Float. * libgnat/s-powlfl.ads (Maxpow): Adjust. (Powten): Turn into an exact table of double Long_Float. * libgnat/s-powllf.ads (Maxpow): Adjust. (Powten): Turn into an exact table of double Long_Long_Float. * libgnat/s-valrea.ads: Change order of formal parameters. * libgnat/s-valrea.adb: Add with clause for System.Double_Real. (Double_Real): New instantiation. (Fast2Sum): Delete. (Large_Powten): New function. (Integer_to_Real): Use Quick_Two_Sum instead of Fast2Sum. Convert the value to Double_T. Do the scaling in Double_T for base 10. * libgnat/s-valflt.ads: Remove with/use clasue for Interfaces, add it for System.Unsigned_Types. Use Unsigned. * libgnat/s-vallfl.ads: Remove with/use clasue for Interfaces, add it for System.Unsigned_Types. Use Long_Unsigned. * libgnat/s-valllf.ads: Remove with/use clasue for Interfaces, add it for System.Unsigned_Types. Use Long_Long_Unsigned. --- gcc/ada/gcc-interface/Make-lang.in | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'gcc/ada/gcc-interface/Make-lang.in') diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in index f5c8e6f..6c27239 100644 --- a/gcc/ada/gcc-interface/Make-lang.in +++ b/gcc/ada/gcc-interface/Make-lang.in @@ -319,12 +319,13 @@ GNAT_ADA_OBJS = \ ada/libgnat/g-byorma.o \ ada/libgnat/g-dynhta.o \ ada/libgnat/g-graphs.o \ - ada/libgnat/g-hesora.o \ + ada/libgnat/g-heasor.o \ ada/libgnat/g-htable.o \ ada/libgnat/g-lists.o \ ada/libgnat/g-sets.o \ ada/libgnat/g-spchge.o \ ada/libgnat/g-speche.o \ + ada/libgnat/g-table.o \ ada/libgnat/g-u3spch.o \ ada/get_targ.o \ ada/ghost.o \ @@ -380,12 +381,11 @@ GNAT_ADA_OBJS = \ ada/libgnat/s-crtl.o \ ada/libgnat/s-excdeb.o \ ada/libgnat/s-except.o \ + ada/libgnat/s-excmac.o \ ada/libgnat/s-exctab.o \ - ada/libgnat/s-excmac.o \ ada/libgnat/s-htable.o \ ada/libgnat/s-imenne.o \ - ada/libgnat/s-imgenu.o \ - ada/libgnat/s-imgint.o \ + ada/libgnat/s-imgint.o \ ada/libgnat/s-mastop.o \ ada/libgnat/s-memory.o \ ada/libgnat/s-os_lib.o \ -- cgit v1.1 From c11207d345f8d678d440a3ff0f335b2ed25513e7 Mon Sep 17 00:00:00 2001 From: Piotr Trojanek Date: Fri, 8 Jan 2021 19:53:41 +0100 Subject: [Ada] Speed up enumeration'Value with perfect hash function gcc/ada/ * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-imagen, s-imen16, s-imen32, s-imenu8, s-pehage, s-valuen, s-vaen16, s-vaen32 and s-vaenu8. Remove s-imenne, s-imgenu and s-valenu. * debug.adb (d_h): Document new usage. * einfo.ads (Lit_Hash): New attribute for enumeration types. (Set_Lit_Hash): Declare. * einfo.adb (Lit_Hash): New function. (Set_Lit_Hash): New procedure. (Write_Field21_Name): Print Lit_Hash for Enumeration_Kind. * exp_imgv.ads (Build_Enumeration_Image_Tables): Fix description and document the hash function and its tables. * exp_imgv.adb: Add with/use clauses for Debug. Add with clause for System.Perfect_Hash_Generators. (Append_Table_To): New helper routine. (Build_Enumeration_Image_Tables): Call it to build the tables. In the main unit, register the literals with the hash generator. If they are sufficiently many and -gnatd_h is not passed, generate a perfect hash function and its tables; otherwise, generate a dummy hash function. For the other units, generate only the declaration. In all cases, set Lit_Hash to the entity of the function, if any. (Expand_Value_Attribute): Pass the 'Unrestricted_Access of Lit_Hash, if any, as third argument to the Value_Enumeration_NN function. * gnat1drv.adb (Adjust_Global_Switches): force simpler implementation of 'Value in CodePeer_Mode. * lib.ads (Synchronize_Serial_Number): Add SN parameter. * lib.adb (Synchronize_Serial_Number): Assert that it is larger than the serial number of the current unit and set the latter to it only in this case. * rtsfind.ads (RTU_Id): Add System_Img_Enum_8, System_Img_Enum_16, System_Img_Enum_32, System_Val_Enum_8, System_Val_Enum_16 and System_Val_Enum_32. Remove System_Img_Enum, System_Img_Enum_New and System_Val_Enum. * sem_attr.adb (Analyze_Access_Attribute): Do not flag a compiler generated Unrestricted_Access attribute as illegal in a declare expression. (RE_Unit_Table): Adjust to above changes. * libgnat/g-heasor.ads: Add pragma Compiler_Unit_Warning. * libgnat/g-table.ads: Likewise. * libgnat/g-pehage.ads: Add with clause and local renaming for System.Perfect_Hash_Generators. (Optimization): Turn into derived type. (Verbose): Turn into renaming. (Too_Many_Tries): Likewise. (Table_Name): Move to System.Perfect_Hash_Generators. (Define): Likewise. (Value): Likewise. * libgnat/g-pehage.adb: Remove with clause for Ada.Directories, GNAT.Heap_Sort_G and GNAT.Table. Move bulk of implementation to System.Perfect_Hash_Generators, only keep the output part. * libgnat/s-imagen.ads: New generic unit. * libgnat/s-imagen.adb: New body. * libgnat/s-imen16.ads: New unit. * libgnat/s-imen32.ads: Likewise. * libgnat/s-imenu8.ads: Likewise. * libgnat/s-imenne.ads: Adjust description. * libgnat/s-imgenu.ads: Delete. * libgnat/s-imgenu.adb: Likewise. * libgnat/s-pehage.ads: New unit from GNAT.Perfect_Hash_Generators. * libgnat/s-pehage.adb: New body from GNAT.Perfect_Hash_Generators. * libgnat/s-valuen.ads: New generic unit. * libgnat/s-valuen.adb: New body. * libgnat/s-vaen16.ads: New unit. * libgnat/s-vaen32.ads: Likewise. * libgnat/s-vaenu8.ads: Likewise. * libgnat/s-valenu.ads: Delete. * libgnat/s-valenu.adb: Likewise. * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add s-pehage.o. (GNATBIND_OBJS): Remove s-imgenu.o. --- gcc/ada/gcc-interface/Make-lang.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gcc/ada/gcc-interface/Make-lang.in') diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in index 6c27239..6e873e2 100644 --- a/gcc/ada/gcc-interface/Make-lang.in +++ b/gcc/ada/gcc-interface/Make-lang.in @@ -390,6 +390,7 @@ GNAT_ADA_OBJS = \ ada/libgnat/s-memory.o \ ada/libgnat/s-os_lib.o \ ada/libgnat/s-parame.o \ + ada/libgnat/s-pehage.o \ ada/libgnat/s-purexc.o \ ada/libgnat/s-restri.o \ ada/libgnat/s-secsta.o \ @@ -585,7 +586,6 @@ GNATBIND_OBJS = \ ada/libgnat/s-exctab.o \ ada/libgnat/s-htable.o \ ada/libgnat/s-imenne.o \ - ada/libgnat/s-imgenu.o \ ada/libgnat/s-imgint.o \ ada/libgnat/s-mastop.o \ ada/libgnat/s-memory.o \ -- cgit v1.1 From 76f9c7f44fffb0b03266730b137313fe79f1c99e Mon Sep 17 00:00:00 2001 From: Bob Duff Date: Wed, 3 Feb 2021 05:31:16 -0500 Subject: [Ada] Variable-sized node types gcc/ada/ * atree.ads, atree.adb: Major rewrite to support variable-sized node types. Add pragmas Suppress and Assertion_Policy. We now have an extra level of indirection: Node_Offsets is a table mapping Node_Ids to the offset of the start of each node in Slots. Slots is a table containing one or more contiguous slots for each node. Each slot is a 32-bit unchecked union that can contain any mixture of 1, 2, 4, 8, and 32-bit fields that fits. The old low-level getters and setters (e.g. Flag123) are removed. * gen_il-fields.ads, gen_il-gen-gen_entities.adb, gen_il-gen-gen_nodes.adb, gen_il-gen.adb, gen_il-gen.ads, gen_il-main.adb, gen_il-types.ads, gen_il-utils.adb, gen_il-utils.ads, gen_il.adb, gen_il.ads: New gen_il program that generates various Ada and C++ files. In particular, the following files are generated by gen_il: einfo-entities.adb einfo-entities.ads, gnatvsn.ads, nmake.adb, nmake.ads, seinfo.ads, seinfo_tables.adb, seinfo_tables.ads, sinfo-nodes.adb, sinfo-nodes.ads, einfo.h, and sinfo.h. * sinfo-utils.adb, sinfo-utils.ads, einfo-utils.adb, einfo-utils.ads: New files containing code that needs to refer to Sinfo.Nodes and Einfo.Entities. This code is mostly moved here from Sinfo and Einfo to break cycles. * back_end.adb: Pass node_offsets_ptr and slots_ptr to gigi, instead of nodes_ptr and flags_ptr. The Nodes and Flags tables no longer exist. (Note that gigi never used the Flags table.) * sinfo-cn.ads (Change_Identifier_To_Defining_Identifier, Change_Character_Literal_To_Defining_Character_Literal, Change_Operator_Symbol_To_Defining_Operator_Symbol): Turn N into an IN formal. * sinfo-cn.adb: Update. Add assertions, which can be removed at some point. Rewrite to use higher-level facilities. Make sure vanishing fields are zeroed out. Add with/use for new packages. * sem_util.adb: Remove "Assert(False)" immediately followed by "raise Program_Error". Use higher-level facilities such as Walk_Sinfo_Fields instead of depending on low-level Set_FieldN routines that no longer exist. Use Get_Comes_From_Source_Default instead of Default_Node.Comes_From_Source (Default_Node no longer exists). Use Set_Basic_Convention instead of Basic_Set_Convention. Add with/use for new packages. * sem_util.ads: The Convention field had getter Convention and setter Basic_Set_Convention. Make that more uniform: there is now a field called Basic_Convention, with Basic_Convention and Set_Basic_Convention as getter/setter, and write Convention and Set_Convention here. * nlists.adb: Rewrite to use abstractions, rather then depending on low-level implementation details of Atree. Necessary because those details have changed. Add with/use for new packages. * sem_ch12.adb: Use higher-level facilities such as Walk_Sinfo_Fields instead of depending on low-level Set_FieldN routines that no longer exist. Add with/use for new packages. * exp_cg.adb, sem_ch10.adb, sem_ch4.adb, sem_eval.adb, sem_prag.adb, sem_warn.adb: Change expanded names to refer to the new packages for things that moved. Add with/use for new packages. * sem_ch3.adb: Likewise. Reinitialize vanishing fields. * exp_disp.adb: Likewise. Remove failing assertion. * sinfo.ads, einfo.ads: Remove code that is now generated into Sinfo.Nodes and Einfo.Entities. * sinfo.adb, einfo.adb: Replace bodies with "pragma No_Body;". We should delete these at some point, but No_Body makes make files easier. Some code is moved to Sinfo.Nodes, Einfo.Entities, Sinfo.Utils, and Einfo.Utils. Some is no longer necessary. * treepr.adb: Rewrite to use new tables. We no longer need treeprs.ads. * treepr.ads: Add comment. * types.ads: Move types Component_Alignment_Kind and Float_Rep_Kind here. * atree.h: Major update to match atree.ads changes. Add slot types, for use by getters/setters. * types.h: Move types Component_Alignment_Kind and Float_Rep_Kind here. * fe.h: Rewrite to deal with code that has changed or moved from Atree, Sinfo, Einfo. * nlists.h: Move some code to fe.h. * alloc.ads: Split Nodes_* constants into Node_Offsets and Slots, because Atree has two separate tables. Increase values. Remove Nodes_Release_Threshold. Improve comment. * debug.adb, gnat1drv.adb: Remove obsolete gnatd.A and gnatd.N switches. Add with/use for new packages. * opt.ads: Minor comment fix. * aspects.adb, checks.adb, comperr.adb, contracts.adb, cstand.adb, debug_a.adb, errout.adb, eval_fat.adb, exp_aggr.adb, exp_atag.adb, exp_attr.adb, exp_ch11.adb, exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb, exp_dist.adb, exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb, exp_prag.adb, exp_put_image.adb, exp_sel.adb, exp_smem.adb, exp_spark.adb, exp_strm.adb, exp_tss.adb, exp_unst.adb, exp_util.adb, exp_util.ads, expander.adb, freeze.adb, frontend.adb, get_targ.ads, ghost.adb, gnat_cuda.adb, impunit.adb, inline.adb, itypes.adb, itypes.ads, layout.adb, lib.adb, lib-load.adb, lib-writ.adb, lib-xref.adb, lib-xref.ads, lib-xref-spark_specific.adb, live.adb, par.adb, par_sco.adb, pprint.adb, repinfo.adb, restrict.adb, rtsfind.adb, scil_ll.adb, scn.adb, sem.adb, sem.ads, sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_case.adb, sem_cat.adb, sem_ch11.adb, sem_ch13.adb, sem_ch2.adb, sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_dim.adb, sem_disp.adb, sem_dist.adb, sem_elab.adb, sem_elim.adb, sem_intr.adb, sem_mech.adb, sem_res.adb, sem_scil.adb, sem_smem.adb, sem_type.adb, set_targ.ads, sinput.adb, sinput-l.adb, sprint.adb, style.adb, styleg.adb, tbuild.adb, tbuild.ads, uname.adb: Add with/use for new packages. * libgnat/a-stoubu.adb, libgnat/a-stouut.adb: Simplify to ease bootstrap. * libgnat/a-stobfi.adb, libgnat/a-stoufi.adb (Create_File, Create_New_File): Create file in binary format, to avoid introducing unwanted text conversions on Windows. Simplify to ease bootstrap. * libgnat/a-stteou__bootstrap.ads: New. * ceinfo.adb, csinfo.adb, nmake.adt, treeprs.adt, xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb: Delete. * Make-generated.in: Build and run the gen_il program to generate files. The files are generated in the ada/gen_il subdirectory, and then moved up to ada. We rely on gnatmake (as opposed to make) to build the gen_il program efficiently (i.e. don't do anything if the sources didn't change). * gcc-interface/Makefile.in (ADAFLAGS): Add -gnatU. (GNATMAKE_OBJS): Add new object files. (GENERATED_FILES_FOR_TOOLS): New variable. (../stamp-tools): Create a link for all GENERATED_FILES_FOR_TOOLS. * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add new object files. Remove ada/treeprs.o. (GNATBIND_OBJS): Add new object files. (ada.mostlyclean): Remove ada/sdefault.adb and add ada/stamp-gen_il. (ada.maintainer-clean): Remove ada/treeprs.ads. (update-sources): Remove obsolete target. (ada_generated_files): Rename to... (ADA_GENERATED_FILES): ... this. Add new source files. Add comment. * gcc-interface/trans.c: Remove obsolete Nodes_Ptr and Flags_ptr. Add Node_Offsets_Ptr and Slots_Ptr, which point to the corresponding tables in Atree. * gcc-interface/gigi.h (gigi): New parameters for initializing Node_Offsets_Ptr and Slots_Ptr. * gcc-interface/decl.c: Numeric_Kind, Discrete_Or_Fixed_Point_Kind, and Record_Kind were nonhierarchical, and were therefore removed for simplicity. Replace uses with calls to Is_In_... functions. gnattools/ * Makefile.in (GENERATED_FILES_FOR_TOOLS): New variable. ($(GCC_DIR)/stamp-tools): Walk it for the first copy operation. --- gcc/ada/gcc-interface/Make-lang.in | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) (limited to 'gcc/ada/gcc-interface/Make-lang.in') diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in index 6e873e2..969022e 100644 --- a/gcc/ada/gcc-interface/Make-lang.in +++ b/gcc/ada/gcc-interface/Make-lang.in @@ -272,6 +272,8 @@ GNAT_ADA_OBJS = \ ada/cstand.o \ ada/debug.o \ ada/debug_a.o \ + ada/einfo-entities.o \ + ada/einfo-utils.o \ ada/einfo.o \ ada/elists.o \ ada/err_vars.o \ @@ -424,6 +426,7 @@ GNAT_ADA_OBJS = \ ada/scng.o \ ada/scos.o \ ada/sdefault.o \ + ada/seinfo.o \ ada/sem.o \ ada/sem_aggr.o \ ada/sem_attr.o \ @@ -459,6 +462,8 @@ GNAT_ADA_OBJS = \ ada/sem_warn.o \ ada/set_targ.o \ ada/sinfo-cn.o \ + ada/sinfo-nodes.o \ + ada/sinfo-utils.o \ ada/sinfo.o \ ada/sinput-d.o \ ada/sinput-l.o \ @@ -478,7 +483,6 @@ GNAT_ADA_OBJS = \ ada/targparm.o \ ada/tbuild.o \ ada/treepr.o \ - ada/treeprs.o \ ada/ttypes.o \ ada/types.o \ ada/uintp.o \ @@ -526,6 +530,8 @@ GNATBIND_OBJS = \ ada/csets.o \ ada/cstreams.o \ ada/debug.o \ + ada/einfo-entities.o \ + ada/einfo-utils.o \ ada/einfo.o \ ada/elists.o \ ada/env.o \ @@ -618,7 +624,10 @@ GNATBIND_OBJS = \ ada/scng.o \ ada/sdefault.o \ ada/seh_init.o \ + ada/seinfo.o \ ada/sem_aux.o \ + ada/sinfo-nodes.o \ + ada/sinfo-utils.o \ ada/sinfo.o \ ada/sinput-c.o \ ada/sinput.o \ @@ -879,7 +888,7 @@ ada.mostlyclean: -$(RM) ada/*$(objext) ada/*.ali ada/b_gnat*.ads ada/b_gnat*.adb -$(RM) ada/*$(objext).gnatd.n -$(RM) ada/*$(coverageexts) - -$(RM) ada/sdefault.adb ada/stamp-sdefault ada/stamp-snames + -$(RM) ada/stamp-sdefault ada/stamp-snames ada/stamp-gen_il -$(RMDIR) ada/tools -$(RMDIR) ada/libgnat -$(RM) gnatbind$(exeext) gnat1$(exeext) @@ -907,7 +916,6 @@ ada.maintainer-clean: -$(RM) ada/einfo.h -$(RM) ada/nmake.adb -$(RM) ada/nmake.ads - -$(RM) ada/treeprs.ads -$(RM) ada/snames.ads ada/snames.adb ada/snames.h # Stage hooks: @@ -1033,11 +1041,6 @@ ada/b_gnatb.o : ada/b_gnatb.adb include $(srcdir)/ada/Make-generated.in -update-sources : ada/treeprs.ads ada/einfo.h ada/sinfo.h ada/nmake.adb \ - ada/nmake.ads - $(RM) $(addprefix $(srcdir)/ada/,$(notdir $^)) - $(CP) $^ $(srcdir)/ada - ada/sdefault.o : ada/libgnat/ada.ads ada/libgnat/a-except.ads ada/libgnat/a-unccon.ads \ ada/libgnat/a-uncdea.ads ada/alloc.ads ada/debug.ads ada/hostparm.ads ada/namet.ads \ ada/opt.ads ada/osint.ads ada/output.ads ada/sdefault.ads ada/sdefault.adb \ @@ -1099,13 +1102,23 @@ ada/mdll-fil.o : ada/mdll-fil.adb ada/mdll.ads ada/mdll-fil.ads ada/mdll-utl.o : ada/mdll-utl.adb ada/mdll.ads ada/mdll-utl.ads ada/sdefault.ads ada/types.ads $(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) $< $(ADA_OUTPUT_OPTION) -ada_generated_files = ada/sinfo.h ada/einfo.h ada/nmake.adb ada/nmake.ads \ - ada/treeprs.ads ada/snames.ads ada/snames.adb ada/snames.h \ - ada/generated/gnatvsn.ads +# All generated files. Perhaps we should build all of these in the same +# subdirectory, and get rid of ada/bldtools. +ADA_GENERATED_FILES = ada/sinfo.h ada/einfo.h ada/nmake.adb ada/nmake.ads \ + ada/snames.ads ada/snames.adb ada/snames.h \ + ada/generated/gnatvsn.ads \ + ada/seinfo.ads \ + ada/seinfo_tables.ads ada/seinfo_tables.adb \ + ada/sinfo-nodes.ads ada/sinfo-nodes.adb \ + ada/einfo-entities.ads ada/einfo-entities.adb + +# Only used to manually trigger the creation of the generated files. +.PHONY: +ada_generated_files: $(ADA_GENERATED_FILES) # When building from scratch we don't have dependency files, the only thing # we need to ensure is that the generated files are created first. -$(GNAT1_OBJS) $(GNATBIND_OBJS): | $(ada_generated_files) +$(GNAT1_OBJS) $(GNATBIND_OBJS): | $(ADA_GENERATED_FILES) # Manually include the auto-generated dependencies for the Ada host objects. ADA_DEPFILES = $(foreach obj,$(GNAT1_ADA_OBJS) $(GNATBIND_OBJS),\ -- cgit v1.1 From 0c54d25a7686406a11f44f58261a9e63821022b7 Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Tue, 11 May 2021 00:44:25 +0200 Subject: Fix missing version_string in Ada gcc/ada/ PR bootstrap/100506 * Make-generated.in: Replace version.c with ada/version.c. * gcc-interface/Make-lang.in: Add version.o to GNAT1_C_OBJS. Add version.o to GNAT_ADA_OBJS and GNATBIND_OBJS. * gcc-interface/Makefile.in: Add version.o to TOOLS_LIBS. * gnatvsn.adb: Start using a new C symbol gnat_version_string. * version.c: New file. --- gcc/ada/gcc-interface/Make-lang.in | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'gcc/ada/gcc-interface/Make-lang.in') diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in index 969022e..c8c02d3 100644 --- a/gcc/ada/gcc-interface/Make-lang.in +++ b/gcc/ada/gcc-interface/Make-lang.in @@ -247,7 +247,8 @@ GNAT1_C_OBJS = ada/adadecode.o ada/adaint.o ada/argv.o ada/cio.o \ ada/cstreams.o ada/env.o ada/init.o ada/initialize.o ada/raise.o \ ada/raise-gcc.o \ ada/seh_init.o ada/targext.o ada/cuintp.o ada/decl.o ada/rtfinal.o \ - ada/rtinit.o ada/misc.o ada/utils.o ada/utils2.o ada/trans.o ada/targtyps.o + ada/rtinit.o ada/misc.o ada/utils.o ada/utils2.o ada/trans.o ada/targtyps.o \ + ada/version.o # Object files from Ada sources that are used by gnat1 GNAT_ADA_OBJS = \ @@ -648,6 +649,7 @@ GNATBIND_OBJS = \ ada/uintp.o \ ada/uname.o \ ada/urealp.o \ + ada/version.o \ ada/widechar.o # Language-independent object files. -- cgit v1.1 From abcf5174979bcb91ac4c921eaa19a5b37f231ae4 Mon Sep 17 00:00:00 2001 From: Arnaud Charlet Date: Wed, 13 Jan 2021 08:49:15 -0500 Subject: [Ada] Use runtime from base compiler during stage1 gcc/ada/ * Make-generated.in: Add rule to copy runtime files needed during stage1. * raise.c: Remove obsolete symbols used during bootstrap. * gcc-interface/Make-lang.in: Do not use libgnat sources during stage1. (GNAT_ADA_OBJS, GNATBIND_OBJS): Split in two parts, the common part and the part only used outside of stage1. (ADA_GENERATED_FILES): Add runtime files needed during bootstrap when recent APIs are needed. (ada/b_gnatb.adb): Remove prerequisite. * gcc-interface/system.ads: Remove obsolete entries. --- gcc/ada/gcc-interface/Make-lang.in | 378 +++++++++++++++++++++---------------- 1 file changed, 219 insertions(+), 159 deletions(-) (limited to 'gcc/ada/gcc-interface/Make-lang.in') diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in index c8c02d3..896e760 100644 --- a/gcc/ada/gcc-interface/Make-lang.in +++ b/gcc/ada/gcc-interface/Make-lang.in @@ -58,17 +58,40 @@ WARN_ADAFLAGS= -W -Wall # need to be built by a recent/matching native so we might as well leave the # checks fully active. +STAGE1=False +GNATBIND_FLAGS= +GNATLIB= + ifeq ($(CROSS),) -ADAFLAGS= $(COMMON_ADAFLAGS) -gnatwns + ADAFLAGS=$(COMMON_ADAFLAGS) -gnatwns + + ifeq ($(if $(wildcard ../stage_current),$(shell cat ../stage_current),stage1),stage1) + STAGE1=True + GNATBIND_FLAGS=-t + endif else -ADAFLAGS= $(COMMON_ADAFLAGS) + ADAFLAGS=$(COMMON_ADAFLAGS) endif ALL_ADAFLAGS = \ $(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS) $(CHECKING_ADAFLAGS) $(WARN_ADAFLAGS) FORCE_DEBUG_ADAFLAGS = -g ADA_CFLAGS = -ADA_INCLUDES = -nostdinc -I- -I. -Iada/generated -Iada -Iada/gcc-interface -I$(srcdir)/ada -I$(srcdir)/ada/gcc-interface -Iada/libgnat -I$(srcdir)/ada/libgnat +COMMON_ADA_INCLUDES = -I- -I. -Iada/generated -Iada -I$(srcdir)/ada + +STAGE1_LIBS= + +ifeq ($(strip $(filter-out linux%,$(host_os))),) + STAGE1_LIBS=-ldl +endif + +ifeq ($(STAGE1),True) + ADA_INCLUDES=$(COMMON_ADA_INCLUDES) + GNATLIB=$(dir $(shell $(CC) -print-libgcc-file-name))adalib/libgnat.a $(STAGE1_LIBS) +else + ADA_INCLUDES=-nostdinc $(COMMON_ADA_INCLUDES) -Iada/libgnat -I$(srcdir)/ada/libgnat -Iada/gcc-interface -I$(srcdir)/ada/gcc-interface +endif + GNATLIBFLAGS= -W -Wall -gnatpg -nostdinc GNATLIBCFLAGS= -g -O2 $(TCFLAGS) ADA_INCLUDE_DIR = $(libsubdir)/adainclude @@ -242,23 +265,29 @@ GCC_LLINK=$(LLINKER) $(GCC_LINKERFLAGS) $(LDFLAGS) # Languages-specific object files for Ada. -# Object files for gnat1 from C sources. -GNAT1_C_OBJS = ada/adadecode.o ada/adaint.o ada/argv.o ada/cio.o \ - ada/cstreams.o ada/env.o ada/init.o ada/initialize.o ada/raise.o \ - ada/raise-gcc.o \ - ada/seh_init.o ada/targext.o ada/cuintp.o ada/decl.o ada/rtfinal.o \ - ada/rtinit.o ada/misc.o ada/utils.o ada/utils2.o ada/trans.o ada/targtyps.o \ +# 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 +GNAT1_C_OBJS = \ + ada/cuintp.o \ + ada/decl.o \ + ada/misc.o \ + ada/utils.o \ + 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/targext.o \ ada/version.o # Object files from Ada sources that are used by gnat1 GNAT_ADA_OBJS = \ - ada/libgnat/a-charac.o \ - ada/libgnat/a-chlat1.o \ - ada/libgnat/a-elchha.o \ - ada/libgnat/a-except.o \ - ada/libgnat/a-exctra.o \ - ada/libgnat/a-ioexce.o \ - ada/libgnat/ada.o \ ada/spark_xrefs.o \ ada/ali.o \ ada/alloc.o \ @@ -319,26 +348,13 @@ GNAT_ADA_OBJS = \ ada/fname.o \ ada/freeze.o \ ada/frontend.o \ - ada/libgnat/g-byorma.o \ - ada/libgnat/g-dynhta.o \ - ada/libgnat/g-graphs.o \ - ada/libgnat/g-heasor.o \ - ada/libgnat/g-htable.o \ - ada/libgnat/g-lists.o \ - ada/libgnat/g-sets.o \ - ada/libgnat/g-spchge.o \ - ada/libgnat/g-speche.o \ - ada/libgnat/g-table.o \ - ada/libgnat/g-u3spch.o \ ada/get_targ.o \ ada/ghost.o \ ada/gnat_cuda.o \ - ada/libgnat/gnat.o \ ada/gnatvsn.o \ ada/hostparm.o \ ada/impunit.o \ ada/inline.o \ - ada/libgnat/interfac.o \ ada/itypes.o \ ada/krunch.o \ ada/layout.o \ @@ -366,61 +382,6 @@ GNAT_ADA_OBJS = \ ada/restrict.o \ ada/rident.o \ ada/rtsfind.o \ - ada/libgnat/s-addope.o \ - ada/libgnat/s-addima.o \ - ada/libgnat/s-assert.o \ - ada/libgnat/s-bitops.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 \ - ada/libgnat/s-conca5.o \ - ada/libgnat/s-conca6.o \ - ada/libgnat/s-conca7.o \ - ada/libgnat/s-conca8.o \ - ada/libgnat/s-conca9.o \ - ada/libgnat/s-crc32.o \ - ada/libgnat/s-crtl.o \ - ada/libgnat/s-excdeb.o \ - ada/libgnat/s-except.o \ - ada/libgnat/s-excmac.o \ - ada/libgnat/s-exctab.o \ - ada/libgnat/s-htable.o \ - ada/libgnat/s-imenne.o \ - 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-pehage.o \ - ada/libgnat/s-purexc.o \ - ada/libgnat/s-restri.o \ - ada/libgnat/s-secsta.o \ - ada/libgnat/s-soflin.o \ - ada/libgnat/s-soliin.o \ - ada/libgnat/s-sopco3.o \ - ada/libgnat/s-sopco4.o \ - ada/libgnat/s-sopco5.o \ - ada/libgnat/s-stache.o \ - ada/libgnat/s-stalib.o \ - ada/libgnat/s-stoele.o \ - ada/libgnat/s-strcom.o \ - ada/libgnat/s-strhas.o \ - ada/libgnat/s-string.o \ - ada/libgnat/s-strops.o \ - ada/libgnat/s-traceb.o \ - ada/libgnat/s-traent.o \ - ada/libgnat/s-trasym.o \ - ada/libgnat/s-unstyp.o \ - ada/libgnat/s-utf_32.o \ - ada/libgnat/s-valint.o \ - ada/libgnat/s-valuns.o \ - ada/libgnat/s-valuti.o \ - ada/libgnat/s-wchcnv.o \ - ada/libgnat/s-wchcon.o \ - ada/libgnat/s-wchjis.o \ - ada/libgnat/s-wchstw.o \ ada/scans.o \ ada/scil_ll.o \ ada/scn.o \ @@ -478,8 +439,6 @@ GNAT_ADA_OBJS = \ ada/stylesw.o \ ada/switch-c.o \ ada/switch.o \ - ada/gcc-interface/a-assert.o \ - ada/gcc-interface/system.o \ ada/table.o \ ada/targparm.o \ ada/tbuild.o \ @@ -493,7 +452,97 @@ GNAT_ADA_OBJS = \ ada/validsw.o \ ada/vast.o \ ada/warnsw.o \ - ada/widechar.o + ada/widechar.o \ + ada/gnat.o \ + ada/g-dynhta.o \ + 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/init.o \ + ada/initialize.o \ + ada/raise.o \ + ada/raise-gcc.o \ + ada/rtfinal.o \ + ada/rtinit.o \ + ada/seh_init.o + +GNAT_ADA_OBJS+= \ + ada/gcc-interface/system.o \ + ada/libgnat/a-assert.o \ + ada/libgnat/a-charac.o \ + ada/libgnat/a-chlat1.o \ + ada/libgnat/a-elchha.o \ + ada/libgnat/a-except.o \ + ada/libgnat/a-exctra.o \ + ada/libgnat/a-ioexce.o \ + ada/libgnat/ada.o \ + ada/libgnat/g-byorma.o \ + ada/libgnat/g-heasor.o \ + ada/libgnat/g-htable.o \ + ada/libgnat/g-spchge.o \ + ada/libgnat/g-speche.o \ + ada/libgnat/g-table.o \ + ada/libgnat/g-u3spch.o \ + ada/libgnat/interfac.o \ + ada/libgnat/s-addope.o \ + ada/libgnat/s-addima.o \ + ada/libgnat/s-assert.o \ + ada/libgnat/s-bitops.o \ + ada/libgnat/s-carun8.o \ + ada/libgnat/s-conca2.o \ + ada/libgnat/s-conca3.o \ + ada/libgnat/s-conca4.o \ + ada/libgnat/s-conca5.o \ + ada/libgnat/s-conca6.o \ + ada/libgnat/s-conca7.o \ + ada/libgnat/s-conca8.o \ + ada/libgnat/s-conca9.o \ + ada/libgnat/s-crc32.o \ + ada/libgnat/s-excdeb.o \ + ada/libgnat/s-except.o \ + ada/libgnat/s-excmac.o \ + ada/libgnat/s-exctab.o \ + ada/libgnat/s-htable.o \ + ada/libgnat/s-imenne.o \ + ada/libgnat/s-imgint.o \ + ada/libgnat/s-mastop.o \ + ada/libgnat/s-memory.o \ + ada/libgnat/s-parame.o \ + ada/libgnat/s-purexc.o \ + ada/libgnat/s-restri.o \ + ada/libgnat/s-secsta.o \ + ada/libgnat/s-soflin.o \ + ada/libgnat/s-soliin.o \ + ada/libgnat/s-sopco3.o \ + ada/libgnat/s-sopco4.o \ + ada/libgnat/s-sopco5.o \ + ada/libgnat/s-stache.o \ + ada/libgnat/s-stalib.o \ + ada/libgnat/s-stoele.o \ + ada/libgnat/s-strcom.o \ + ada/libgnat/s-strhas.o \ + ada/libgnat/s-string.o \ + ada/libgnat/s-strops.o \ + ada/libgnat/s-traceb.o \ + ada/libgnat/s-traent.o \ + ada/libgnat/s-trasym.o \ + ada/libgnat/s-unstyp.o \ + ada/libgnat/s-valint.o \ + ada/libgnat/s-valuns.o \ + ada/libgnat/s-valuti.o \ + ada/libgnat/s-wchcnv.o \ + ada/libgnat/s-wchcon.o \ + ada/libgnat/s-wchjis.o \ + ada/libgnat/s-wchstw.o +endif # Object files for gnat executables GNAT1_ADA_OBJS = $(GNAT_ADA_OBJS) ada/back_end.o ada/gnat1drv.o @@ -501,14 +550,9 @@ GNAT1_ADA_OBJS = $(GNAT_ADA_OBJS) ada/back_end.o ada/gnat1drv.o GNAT1_OBJS = $(GNAT1_C_OBJS) $(GNAT1_ADA_OBJS) ada/b_gnat1.o GNATBIND_OBJS = \ - ada/libgnat/a-elchha.o \ - ada/libgnat/a-except.o \ - ada/libgnat/ada.o \ - ada/adaint.o \ ada/ali-util.o \ ada/ali.o \ ada/alloc.o \ - ada/argv.o \ ada/aspects.o \ ada/atree.o \ ada/bcheck.o \ @@ -527,15 +571,12 @@ GNATBIND_OBJS = \ ada/bindusg.o \ ada/butil.o \ ada/casing.o \ - ada/cio.o \ ada/csets.o \ - ada/cstreams.o \ ada/debug.o \ ada/einfo-entities.o \ ada/einfo-utils.o \ ada/einfo.o \ ada/elists.o \ - ada/env.o \ ada/err_vars.o \ ada/errout.o \ ada/erroutc.o \ @@ -544,20 +585,9 @@ GNATBIND_OBJS = \ ada/fmap.o \ ada/fname-uf.o \ ada/fname.o \ - ada/libgnat/g-byorma.o \ - ada/libgnat/g-dynhta.o \ - ada/libgnat/g-graphs.o \ - ada/libgnat/g-hesora.o \ - ada/libgnat/g-htable.o \ - ada/libgnat/g-lists.o \ - ada/libgnat/g-sets.o \ - ada/libgnat/gnat.o \ ada/gnatbind.o \ ada/gnatvsn.o \ ada/hostparm.o \ - ada/init.o \ - ada/initialize.o \ - ada/libgnat/interfac.o \ ada/krunch.o \ ada/lib.o \ ada/link.o \ @@ -567,16 +597,73 @@ GNATBIND_OBJS = \ ada/osint-b.o \ ada/osint.o \ ada/output.o \ - ada/raise.o \ - ada/raise-gcc.o \ ada/restrict.o \ ada/rident.o \ + ada/scans.o \ + ada/scil_ll.o \ + ada/scng.o \ + ada/sdefault.o \ + ada/seinfo.o \ + ada/sem_aux.o \ + ada/sinfo.o \ + ada/sinfo-nodes.o \ + ada/sinfo-utils.o \ + ada/sinput-c.o \ + ada/sinput.o \ + ada/snames.o \ + ada/stand.o \ + ada/stringt.o \ + ada/style.o \ + ada/styleg.o \ + ada/stylesw.o \ + ada/switch-b.o \ + ada/switch.o \ + ada/table.o \ + ada/targparm.o \ + ada/types.o \ + ada/uintp.o \ + ada/uname.o \ + ada/urealp.o \ + ada/widechar.o \ + ada/gnat.o \ + ada/g-dynhta.o \ + 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 + +ifeq ($(STAGE1),False) +GNATBIND_OBJS += \ + ada/init.o \ + ada/initialize.o \ + ada/raise.o \ + ada/raise-gcc.o \ ada/rtfinal.o \ ada/rtinit.o \ + ada/seh_init.o \ + ada/gcc-interface/system.o \ + ada/libgnat/a-assert.o \ + ada/libgnat/a-elchha.o \ + ada/libgnat/a-except.o \ + ada/libgnat/ada.o \ + ada/libgnat/g-byorma.o \ + ada/libgnat/g-hesora.o \ + ada/libgnat/g-htable.o \ + ada/libgnat/interfac.o \ 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 \ @@ -586,7 +673,6 @@ GNATBIND_OBJS = \ ada/libgnat/s-conca8.o \ ada/libgnat/s-conca9.o \ ada/libgnat/s-crc32.o \ - ada/libgnat/s-crtl.o \ ada/libgnat/s-excdeb.o \ ada/libgnat/s-except.o \ ada/libgnat/s-excmac.o \ @@ -596,9 +682,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-resfil.o \ ada/libgnat/s-restri.o \ ada/libgnat/s-secsta.o \ ada/libgnat/s-soflin.o \ @@ -615,42 +699,11 @@ GNATBIND_OBJS = \ ada/libgnat/s-traent.o \ ada/libgnat/s-traceb.o \ ada/libgnat/s-unstyp.o \ - ada/libgnat/s-utf_32.o \ ada/libgnat/s-wchcnv.o \ ada/libgnat/s-wchcon.o \ ada/libgnat/s-wchjis.o \ - ada/libgnat/s-wchstw.o \ - ada/scans.o \ - ada/scil_ll.o \ - ada/scng.o \ - ada/sdefault.o \ - ada/seh_init.o \ - ada/seinfo.o \ - ada/sem_aux.o \ - ada/sinfo-nodes.o \ - ada/sinfo-utils.o \ - ada/sinfo.o \ - ada/sinput-c.o \ - ada/sinput.o \ - ada/snames.o \ - ada/stand.o \ - ada/stringt.o \ - ada/style.o \ - ada/styleg.o \ - ada/stylesw.o \ - ada/switch-b.o \ - ada/switch.o \ - ada/gcc-interface/a-assert.o \ - ada/gcc-interface/system.o \ - ada/table.o \ - ada/targext.o \ - ada/targparm.o \ - ada/types.o \ - ada/uintp.o \ - ada/uname.o \ - ada/urealp.o \ - ada/version.o \ - ada/widechar.o + ada/libgnat/s-wchstw.o +endif # Language-independent object files. ADA_BACKEND = $(BACKEND) attribs.o @@ -684,13 +737,13 @@ ada/libgnat/s-excmac.adb: $(srcdir)/ada/libgnat/s-excmac__$(EH_MECHANISM).adb gnat1$(exeext): $(TARGET_ADA_SRCS) $(GNAT1_OBJS) $(ADA_BACKEND) libcommon-target.a \ $(LIBDEPS) $(ada.prev) @$(call LINK_PROGRESS,$(INDEX.ada),start) - +$(GCC_LLINK) -o $@ $(GNAT1_OBJS) $(ADA_BACKEND) \ - libcommon-target.a $(LIBS) $(SYSLIBS) $(BACKENDLIBS) $(CFLAGS) + +$(GCC_LLINK) -o $@ $(GNAT1_OBJS) $(ADA_BACKEND) $(CFLAGS) \ + libcommon-target.a $(LIBS) $(SYSLIBS) $(BACKENDLIBS) $(GNATLIB) $(RM) stamp-gnatlib2-rts stamp-tools @$(call LINK_PROGRESS,$(INDEX.ada),end) gnatbind$(exeext): ada/b_gnatb.o $(CONFIG_H) $(GNATBIND_OBJS) ggc-none.o libcommon-target.a $(LIBDEPS) - +$(GCC_LINK) -o $@ ada/b_gnatb.o $(GNATBIND_OBJS) ggc-none.o libcommon-target.a $(LIBS) $(SYSLIBS) $(CFLAGS) + +$(GCC_LINK) -o $@ $(CFLAGS) ada/b_gnatb.o $(GNATBIND_OBJS) ggc-none.o libcommon-target.a $(LIBS) $(SYSLIBS) $(GNATLIB) # use target-gcc target-gnatmake target-gnatbind target-gnatlink gnattools: $(GCC_PARTS) $(CONFIG_H) prefix.o force @@ -1023,7 +1076,7 @@ $(check_acats_targets): check-acats%: ada/b_gnat1.adb : $(GNAT1_ADA_OBJS) # Old gnatbind do not allow a path for -o. - $(GNATBIND) $(ADA_INCLUDES) -o b_gnat1.adb -n ada/gnat1drv.ali + $(GNATBIND) $(GNATBIND_FLAGS) $(ADA_INCLUDES) -o b_gnat1.adb -n ada/gnat1drv.ali $(MV) b_gnat1.adb b_gnat1.ads ada/ ada/b_gnat1.o : ada/b_gnat1.adb @@ -1032,9 +1085,9 @@ ada/b_gnat1.o : ada/b_gnat1.adb $(CC) -c $(CFLAGS) $(ADA_CFLAGS) -gnatp -gnatws $(ADA_INCLUDES) \ $< $(ADA_OUTPUT_OPTION) -ada/b_gnatb.adb : $(GNATBIND_OBJS) ada/gnatbind.o ada/libgnat/interfac.o +ada/b_gnatb.adb : $(GNATBIND_OBJS) ada/gnatbind.o # Old gnatbind do not allow a path for -o. - $(GNATBIND) $(ADA_INCLUDES) -o b_gnatb.adb ada/gnatbind.ali + $(GNATBIND) $(GNATBIND_FLAGS) $(ADA_INCLUDES) -o b_gnatb.adb ada/gnatbind.ali $(MV) b_gnatb.adb b_gnatb.ads ada/ ada/b_gnatb.o : ada/b_gnatb.adb @@ -1090,7 +1143,7 @@ ada/generated/gnatvsn.ads: ada/gnatvsn.ads BASE-VER ada/GNAT_DATE cat $< | sed -e "/Version/s/(\([0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\).*)/($$d$$s)/g" >$@ ada/gnatvsn.o : ada/gnatvsn.adb ada/generated/gnatvsn.ads - $(CC) -c $(ALL_ADAFLAGS) -Iada/generated -I../ada/generated $(ADA_INCLUDES) $< $(ADA_OUTPUT_OPTION) + $(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) $< $(ADA_OUTPUT_OPTION) @$(ADA_DEPS) # Dependencies for windows specific tool (mdll) @@ -1106,13 +1159,20 @@ ada/mdll-utl.o : ada/mdll-utl.adb ada/mdll.ads ada/mdll-utl.ads ada/sdefault.ads # All generated files. Perhaps we should build all of these in the same # subdirectory, and get rid of ada/bldtools. -ADA_GENERATED_FILES = ada/sinfo.h ada/einfo.h ada/nmake.adb ada/nmake.ads \ - ada/snames.ads ada/snames.adb ada/snames.h \ - ada/generated/gnatvsn.ads \ - ada/seinfo.ads \ - ada/seinfo_tables.ads ada/seinfo_tables.adb \ - ada/sinfo-nodes.ads ada/sinfo-nodes.adb \ - ada/einfo-entities.ads ada/einfo-entities.adb +ADA_GENERATED_FILES = \ + ada/sinfo.h ada/einfo.h ada/nmake.adb ada/nmake.ads \ + ada/snames.ads ada/snames.adb ada/snames.h \ + ada/generated/gnatvsn.ads \ + ada/seinfo.ads ada/seinfo_tables.ads ada/seinfo_tables.adb \ + ada/sinfo-nodes.ads ada/sinfo-nodes.adb \ + ada/einfo-entities.ads ada/einfo-entities.adb \ + 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 # Only used to manually trigger the creation of the generated files. .PHONY: -- cgit v1.1 From 607507410efd6974e97ff39d633a4e742d07194a Mon Sep 17 00:00:00 2001 From: Arnaud Charlet Date: Wed, 16 Jun 2021 03:55:17 -0400 Subject: [Ada] Use runtime from base compiler during stage1 (continued) gcc/ada/ * gcc-interface/Make-lang.in: Use libgnat.so if libgnat.a cannot be found. --- gcc/ada/gcc-interface/Make-lang.in | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'gcc/ada/gcc-interface/Make-lang.in') diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in index 896e760..b68081e 100644 --- a/gcc/ada/gcc-interface/Make-lang.in +++ b/gcc/ada/gcc-interface/Make-lang.in @@ -87,7 +87,8 @@ endif ifeq ($(STAGE1),True) ADA_INCLUDES=$(COMMON_ADA_INCLUDES) - GNATLIB=$(dir $(shell $(CC) -print-libgcc-file-name))adalib/libgnat.a $(STAGE1_LIBS) + adalib=$(dir $(shell $(CC) -print-libgcc-file-name))adalib + GNATLIB=$(adalib)/$(if $(wildcard $(adalib)/libgnat.a),libgnat.a,libgnat.so) $(STAGE1_LIBS) else ADA_INCLUDES=-nostdinc $(COMMON_ADA_INCLUDES) -Iada/libgnat -I$(srcdir)/ada/libgnat -Iada/gcc-interface -I$(srcdir)/ada/gcc-interface endif -- cgit v1.1 From 07b4100683e55023a78576cb8c75d8e40e41f44f Mon Sep 17 00:00:00 2001 From: John David Anglin Date: Thu, 19 Aug 2021 15:39:18 +0000 Subject: Define STAGE1_LIBS to link against libcl.a in stage1 on hpux. 2021-08-19 Arnaud Charlet PR ada/101924 gcc/ada/ChangeLog: * gcc-interface/Make-lang.in (STAGE1_LIBS): Define on hpux. --- gcc/ada/gcc-interface/Make-lang.in | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'gcc/ada/gcc-interface/Make-lang.in') diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in index b68081e..765654f 100644 --- a/gcc/ada/gcc-interface/Make-lang.in +++ b/gcc/ada/gcc-interface/Make-lang.in @@ -85,6 +85,10 @@ ifeq ($(strip $(filter-out linux%,$(host_os))),) STAGE1_LIBS=-ldl endif +ifeq ($(strip $(filter-out hpux%,$(host_os))),) + STAGE1_LIBS=/usr/lib/libcl.a +endif + ifeq ($(STAGE1),True) ADA_INCLUDES=$(COMMON_ADA_INCLUDES) adalib=$(dir $(shell $(CC) -print-libgcc-file-name))adalib -- cgit v1.1