From 76f734d8f50612486c0eb696468582fce0128f92 Mon Sep 17 00:00:00 2001 From: Arnaud Charlet Date: Wed, 21 Dec 2011 12:50:02 +0100 Subject: [multiple changes] 2011-12-21 Pascal Obry * prj-attr.adb, snames.ads-tmpl: Add Library_Standalone, Library_Fully_Standalone_Options and Library_Fully_Standalone_Supported attributes. * prj-nmsc.adb (Check_Library): Update check to take into account fully standalone libraries. Such shared libraries can only depend on static libraries. (Check_Stand_Alone_Library): Add support for fully standalone libraries. (Process_Project_Level_Simple_Attributes): Store value for configuration attribute Library_Fully_Standalone_Supported. * prj.ads, makeutl.adb (Standalone): New enumeration type. (Project_Data): Standalone_Library now of type Standlone. (Project_Configuration): Add Lib_Fully_Standalone_Supported field. (Default_Project_Config): Initialize new Lib_Fully_Standalone_Supported field. * clean.adb (Clean_Project): Adjust to new type for Standalone. * make.adb (Library_Phase): Adjust to new type for Standalone. (Gnatmake): Likewise. * mlib-prj.adb (Build_Library): Adjust to new type for Standalone. 2011-12-21 Thomas Quinot * gnatls.adb (Gnatls): Call Set_Standard_Error at startup, and then Set_Standard_Output just before producing normal (non-diagnostic) output. * gnatcmd.adb (Gnatcmd): Call Set_Standard_Error at initialization (and again after parsing project files). 2011-12-21 Vincent Celier * prj-conf.adb (Do_Autoconf): When the object directory does not exist, create auto.cgpr in the directory where temporary files are created. From-SVN: r182573 --- gcc/ada/ChangeLog | 37 +++++++ gcc/ada/clean.adb | 4 +- gcc/ada/gnat_ugn.texi | 22 ++++ gcc/ada/gnatcmd.adb | 10 +- gcc/ada/gnatls.adb | 6 + gcc/ada/make.adb | 4 +- gcc/ada/makeutl.adb | 2 +- gcc/ada/mlib-prj.adb | 2 +- gcc/ada/prj-attr.adb | 3 + gcc/ada/prj-conf.adb | 14 ++- gcc/ada/prj-nmsc.adb | 133 ++++++++++++++++++---- gcc/ada/prj.ads | 66 ++++++----- gcc/ada/projects.texi | 20 ++++ gcc/ada/snames.ads-tmpl | 287 ++++++++++++++++++++++++------------------------ 14 files changed, 405 insertions(+), 205 deletions(-) (limited to 'gcc/ada') diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 40c6da2..50a0ba8 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,40 @@ +2011-12-21 Pascal Obry + + * prj-attr.adb, snames.ads-tmpl: Add Library_Standalone, + Library_Fully_Standalone_Options and + Library_Fully_Standalone_Supported attributes. + * prj-nmsc.adb (Check_Library): Update check to take into + account fully standalone libraries. Such shared libraries can + only depend on static libraries. + (Check_Stand_Alone_Library): Add support for fully standalone libraries. + (Process_Project_Level_Simple_Attributes): Store value for + configuration attribute Library_Fully_Standalone_Supported. + * prj.ads, makeutl.adb (Standalone): New enumeration type. + (Project_Data): Standalone_Library now of type Standlone. + (Project_Configuration): Add Lib_Fully_Standalone_Supported + field. + (Default_Project_Config): Initialize new Lib_Fully_Standalone_Supported + field. + * clean.adb (Clean_Project): Adjust to new type for Standalone. + * make.adb (Library_Phase): Adjust to new type for Standalone. + (Gnatmake): Likewise. + * mlib-prj.adb (Build_Library): Adjust to new type for + Standalone. + +2011-12-21 Thomas Quinot + + * gnatls.adb (Gnatls): Call Set_Standard_Error at startup, and then + Set_Standard_Output just before producing normal (non-diagnostic) + output. + * gnatcmd.adb (Gnatcmd): Call Set_Standard_Error at initialization + (and again after parsing project files). + +2011-12-21 Vincent Celier + + * prj-conf.adb (Do_Autoconf): When the object directory does + not exist, create auto.cgpr in the directory where temporary + files are created. + 2011-12-20 Ed Schonberg * sem_ch12.adb (Insert_Freeze_Node_For_Instance): Further diff --git a/gcc/ada/clean.adb b/gcc/ada/clean.adb index f202533..276fcc6 100644 --- a/gcc/ada/clean.adb +++ b/gcc/ada/clean.adb @@ -1088,8 +1088,8 @@ package body Clean is end if; end if; - if Project.Standalone_Library and then - Project.Object_Directory /= No_Path_Information + if Project.Standalone_Library /= No + and then Project.Object_Directory /= No_Path_Information then Delete_Binder_Generated_Files (Get_Name_String (Project.Object_Directory.Display_Name), diff --git a/gcc/ada/gnat_ugn.texi b/gcc/ada/gnat_ugn.texi index 92aba09..02a577c 100644 --- a/gcc/ada/gnat_ugn.texi +++ b/gcc/ada/gnat_ugn.texi @@ -16359,6 +16359,28 @@ the Library Directory. As a consequence, only the Interface Units may be imported from Ada units outside of the library. If other units are imported, the binding phase will fail. +@noindent +It is also possible to build a fully standalone library where not only +the code to elaborate and finalize the library is embedded but also +ensuring that the library is linked only against static +libraries. So a fully standalone library only depends on system +libraries, all other code, including the GNAT runtime, is embedded. To +build a fully standalone library the attribute +@code{Library_Standalone} must be set to @code{full}: + +@smallexample @c projectfile +@group + for Library_Dir use "lib_dir"; + for Library_Name use "dummy"; + for Library_Interface use ("int1", "int1.child"); + for Library_Standalone use "full"; +@end group +@end smallexample + +@noindent +The default value for this attribute is @code{standard} in which case +a not fully standalone library is built. + The attribute @code{Library_Src_Dir} may be specified for a Stand-Alone Library. @code{Library_Src_Dir} is a simple attribute that has a single string value. Its value must be the path (absolute or relative to the diff --git a/gcc/ada/gnatcmd.adb b/gcc/ada/gnatcmd.adb index 051082f..2e1b8dd8 100644 --- a/gcc/ada/gnatcmd.adb +++ b/gcc/ada/gnatcmd.adb @@ -34,7 +34,7 @@ with MLib.Fil; with Namet; use Namet; with Opt; use Opt; with Osint; use Osint; -with Output; +with Output; use Output; with Prj; use Prj; with Prj.Env; with Prj.Ext; use Prj.Ext; @@ -1375,6 +1375,10 @@ procedure GNATCmd is -- Start of processing for GNATCmd begin + -- All output from GNATCmd is debugging or error output: send to stderr + + Set_Standard_Error; + -- Initializations Csets.Initialize; @@ -1901,6 +1905,10 @@ begin Env => Root_Environment, Packages_To_Check => Packages_To_Check); + -- Prj.Pars.Parse calls Set_Standard_Output, reset to stderr + + Set_Standard_Error; + if Project = Prj.No_Project then Fail ("""" & Project_File.all & """ processing failed"); end if; diff --git a/gcc/ada/gnatls.adb b/gcc/ada/gnatls.adb index 9d37180..a98aba5 100644 --- a/gcc/ada/gnatls.adb +++ b/gcc/ada/gnatls.adb @@ -1553,6 +1553,7 @@ begin -- If -l (output license information) is given, it must be the only switch if License and then Arg_Count /= 2 then + Set_Standard_Error; Write_Str ("Can't use -l with another switch"); Write_Eol; Usage; @@ -1713,6 +1714,7 @@ begin GNATDIST.Output_No_ALI (Lib_File_Name (Main_File)); else + Set_Standard_Error; Write_Str ("Can't find library info for "); Get_Name_String (Main_File); Write_Char ('"'); -- " @@ -1745,6 +1747,10 @@ begin end if; end loop; + -- Reset default output file descriptor, if needed + + Set_Standard_Output; + if Very_Verbose_Mode then for A in ALIs.First .. ALIs.Last loop GNATDIST.Output_ALI (A); diff --git a/gcc/ada/make.adb b/gcc/ada/make.adb index 0f79af3..dd211cb 100644 --- a/gcc/ada/make.adb +++ b/gcc/ada/make.adb @@ -4647,7 +4647,7 @@ package body Make is Proj1 := Project_Tree.Projects; while Proj1 /= null loop if Proj1.Project.Extended_By = No_Project then - if Proj1.Project.Standalone_Library then + if Proj1.Project.Standalone_Library /= No then Stand_Alone_Libraries := True; end if; @@ -5791,7 +5791,7 @@ package body Make is if Osint.Number_Of_Files = 0 then if Main_Project /= No_Project and then Main_Project.Library then if Do_Bind_Step - and then not Main_Project.Standalone_Library + and then Main_Project.Standalone_Library = No then Make_Failed ("only stand-alone libraries may be bound"); end if; diff --git a/gcc/ada/makeutl.adb b/gcc/ada/makeutl.adb index cfca418..f09c0ad 100644 --- a/gcc/ada/makeutl.adb +++ b/gcc/ada/makeutl.adb @@ -2896,7 +2896,7 @@ package body Makeutl is if Src_Id /= No_Source and then (not Excluding_Shared_SALs - or else not Src_Id.Project.Standalone_Library + or else Src_Id.Project.Standalone_Library = No or else Src_Id.Project.Library_Kind = Static) then Queue.Insert diff --git a/gcc/ada/mlib-prj.adb b/gcc/ada/mlib-prj.adb index 83c74b9..3101354 100644 --- a/gcc/ada/mlib-prj.adb +++ b/gcc/ada/mlib-prj.adb @@ -317,7 +317,7 @@ package body MLib.Prj is Get_Name_String (For_Project.Object_Directory.Display_Name); - Standalone : constant Boolean := For_Project.Standalone_Library; + Standalone : constant Boolean := For_Project.Standalone_Library /= No; Project_Name : constant String := Get_Name_String (For_Project.Name); diff --git a/gcc/ada/prj-attr.adb b/gcc/ada/prj-attr.adb index 4dad66d..4682051 100644 --- a/gcc/ada/prj-attr.adb +++ b/gcc/ada/prj-attr.adb @@ -105,6 +105,9 @@ package body Prj.Attr is "SVlibrary_kind#" & "SVlibrary_version#" & "LVlibrary_interface#" & + "SVlibrary_standalone#" & + "LVlibrary_fully_standalone_options#" & + "SVlibrary_fully_standalone_supported#" & "SVlibrary_auto_init#" & "LVleading_library_options#" & "LVlibrary_options#" & diff --git a/gcc/ada/prj-conf.adb b/gcc/ada/prj-conf.adb index db8dba4..42afa1b 100644 --- a/gcc/ada/prj-conf.adb +++ b/gcc/ada/prj-conf.adb @@ -1155,8 +1155,18 @@ package body Prj.Conf is File_Use => "configuration file"); if Path_FD /= Invalid_FD then - Args (3) := new String'(Get_Name_String (Path_Name)); - GNAT.OS_Lib.Close (Path_FD); + declare + Temp_Dir : constant String := + Containing_Directory + (Get_Name_String (Path_Name)); + begin + GNAT.OS_Lib.Close (Path_FD); + Args (3) := + new String'(Temp_Dir & + Directory_Separator & + Auto_Cgpr); + Delete_File (Get_Name_String (Path_Name)); + end; else -- We'll have an error message later on diff --git a/gcc/ada/prj-nmsc.adb b/gcc/ada/prj-nmsc.adb index 017db6b..678b6e9 100644 --- a/gcc/ada/prj-nmsc.adb +++ b/gcc/ada/prj-nmsc.adb @@ -2155,6 +2155,24 @@ package body Prj.Nmsc is Attribute.Value.Location, Project); end; + elsif + Attribute.Name = Name_Library_Fully_Standalone_Supported + then + declare + pragma Unsuppress (All_Checks); + begin + Project.Config.Lib_Fully_Standalone_Supported := + Boolean'Value (Get_Name_String (Attribute.Value.Value)); + exception + when Constraint_Error => + Error_Msg + (Data.Flags, + "invalid value """ + & Get_Name_String (Attribute.Value.Value) + & """ for Library_Fully_Standalone_Supported", + Attribute.Value.Location, Project); + end; + elsif Attribute.Name = Name_Shared_Library_Prefix then Project.Config.Shared_Lib_Prefix := File_Name_Type (Attribute.Value.Value); @@ -2778,36 +2796,39 @@ package body Prj.Nmsc is is Shared : constant Shared_Project_Tree_Data_Access := Data.Tree.Shared; - Attributes : constant Prj.Variable_Id := Project.Decl.Attributes; + Attributes : constant Prj.Variable_Id := Project.Decl.Attributes; - Lib_Dir : constant Prj.Variable_Value := - Prj.Util.Value_Of - (Snames.Name_Library_Dir, Attributes, Shared); + Lib_Dir : constant Prj.Variable_Value := + Prj.Util.Value_Of + (Snames.Name_Library_Dir, Attributes, Shared); - Lib_Name : constant Prj.Variable_Value := - Prj.Util.Value_Of - (Snames.Name_Library_Name, Attributes, Shared); + Lib_Name : constant Prj.Variable_Value := + Prj.Util.Value_Of + (Snames.Name_Library_Name, Attributes, Shared); - Lib_Version : constant Prj.Variable_Value := - Prj.Util.Value_Of - (Snames.Name_Library_Version, Attributes, Shared); + Lib_Standalone : constant Prj.Variable_Value := + Prj.Util.Value_Of + (Snames.Name_Library_Standalone, + Attributes, Shared); - Lib_ALI_Dir : constant Prj.Variable_Value := - Prj.Util.Value_Of - (Snames.Name_Library_Ali_Dir, Attributes, Shared); + Lib_Version : constant Prj.Variable_Value := + Prj.Util.Value_Of + (Snames.Name_Library_Version, Attributes, Shared); - Lib_GCC : constant Prj.Variable_Value := - Prj.Util.Value_Of - (Snames.Name_Library_GCC, Attributes, Shared); + Lib_ALI_Dir : constant Prj.Variable_Value := + Prj.Util.Value_Of + (Snames.Name_Library_Ali_Dir, Attributes, Shared); - The_Lib_Kind : constant Prj.Variable_Value := - Prj.Util.Value_Of - (Snames.Name_Library_Kind, Attributes, Shared); - - Imported_Project_List : Project_List; + Lib_GCC : constant Prj.Variable_Value := + Prj.Util.Value_Of + (Snames.Name_Library_GCC, Attributes, Shared); - Continuation : String_Access := No_Continuation_String'Access; + The_Lib_Kind : constant Prj.Variable_Value := + Prj.Util.Value_Of + (Snames.Name_Library_Kind, Attributes, Shared); + Imported_Project_List : Project_List; + Continuation : String_Access := No_Continuation_String'Access; Support_For_Libraries : Library_Support; Library_Directory_Present : Boolean; @@ -2869,7 +2890,29 @@ package body Prj.Nmsc is end if; elsif Project.Library_Kind /= Static + and then not Lib_Standalone.Default + and then Get_Name_String (Lib_Standalone.Value) = "full" + and then Proj.Library_Kind /= Static + then + -- A fully standalone library must depend only on static + -- libraries. + + Error_Msg_Name_1 := Project.Name; + Error_Msg_Name_2 := Proj.Name; + + Error_Msg + (Data.Flags, + Continuation.all & + "standalone library project %% cannot import shared " & + "library project %%", + Project.Location, Project); + Continuation := Continuation_String'Access; + + elsif Project.Library_Kind /= Static and then Proj.Library_Kind = Static + and then (Lib_Standalone.Default + or else + Get_Name_String (Lib_Standalone.Value) /= "full") then Error_Msg_Name_1 := Project.Name; Error_Msg_Name_2 := Proj.Name; @@ -4309,6 +4352,12 @@ package body Prj.Nmsc is Project.Decl.Attributes, Shared); + Lib_Standalone : constant Prj.Variable_Value := + Prj.Util.Value_Of + (Snames.Name_Library_Standalone, + Project.Decl.Attributes, + Shared); + Lib_Auto_Init : constant Prj.Variable_Value := Prj.Util.Value_Of (Snames.Name_Library_Auto_Init, @@ -4353,8 +4402,17 @@ package body Prj.Nmsc is -- It is a stand-alone library project file if attribute -- Library_Interface is defined. - if not Lib_Interfaces.Default then + if Lib_Interfaces.Default then + if not Lib_Standalone.Default + and then Get_Name_String (Lib_Standalone.Value) /= "no" + then + Error_Msg + (Data.Flags, + "Library_Standalone valid only if Library_Interface is set", + Lib_Standalone.Location, Project); + end if; + else -- The name of a stand-alone library needs to have the syntax of an -- Ada identifier. @@ -4400,7 +4458,34 @@ package body Prj.Nmsc is Unit : Name_Id; begin - Project.Standalone_Library := True; + if Lib_Standalone.Default then + Project.Standalone_Library := Standard; + + else + Get_Name_String (Lib_Standalone.Value); + To_Lower (Name_Buffer (1 .. Name_Len)); + + if Name_Buffer (1 .. Name_Len) = "standard" then + Project.Standalone_Library := Standard; + + elsif Name_Buffer (1 .. Name_Len) = "full" then + Project.Standalone_Library := Full; + + elsif Name_Buffer (1 .. Name_Len) = "no" then + Project.Standalone_Library := No; + Error_Msg + (Data.Flags, + "wrong value for Library_Standalone " + & "when Library_Interface defined", + Lib_Standalone.Location, Project); + + else + Error_Msg + (Data.Flags, + "invalid value for attribute Library_Standalone", + Lib_Standalone.Location, Project); + end if; + end if; -- Library_Interface cannot be an empty list diff --git a/gcc/ada/prj.ads b/gcc/ada/prj.ads index e88455d..7b9c0db 100644 --- a/gcc/ada/prj.ads +++ b/gcc/ada/prj.ads @@ -1025,6 +1025,9 @@ package Prj is -- The level of library support. Specified in the configuration. Support -- is none, static libraries only or both static and shared libraries. + Lib_Fully_Standalone_Supported : Boolean := False; + -- True when building fully standalone libraries supported on the target + Archive_Builder : Name_List_Index := No_Name_List; -- The name of the executable to build archives, with the minimum -- switches. Specified in the configuration. @@ -1077,37 +1080,38 @@ package Prj is end record; Default_Project_Config : constant Project_Configuration := - (Target => No_Name, - Run_Path_Option => No_Name_List, - Run_Path_Origin => No_Name, - Library_Install_Name_Option => No_Name, - Separate_Run_Path_Options => False, - Executable_Suffix => No_Name, - Linker => No_Path, - Map_File_Option => No_Name, + (Target => No_Name, + Run_Path_Option => No_Name_List, + Run_Path_Origin => No_Name, + Library_Install_Name_Option => No_Name, + Separate_Run_Path_Options => False, + Executable_Suffix => No_Name, + Linker => No_Path, + Map_File_Option => No_Name, Trailing_Linker_Required_Switches => No_Name_List, - Linker_Executable_Option => No_Name_List, - Linker_Lib_Dir_Option => No_Name, - Linker_Lib_Name_Option => No_Name, - Library_Builder => No_Path, - Max_Command_Line_Length => 0, - Resp_File_Format => None, - Resp_File_Options => No_Name_List, - Lib_Support => None, - Archive_Builder => No_Name_List, - Archive_Builder_Append_Option => No_Name_List, - Archive_Indexer => No_Name_List, - Archive_Suffix => No_File, - Lib_Partial_Linker => No_Name_List, - Shared_Lib_Driver => No_File, - Shared_Lib_Prefix => No_File, - Shared_Lib_Suffix => No_File, - Shared_Lib_Min_Options => No_Name_List, - Lib_Version_Options => No_Name_List, - Symbolic_Link_Supported => False, - Lib_Maj_Min_Id_Supported => False, - Auto_Init_Supported => False); + Linker_Executable_Option => No_Name_List, + Linker_Lib_Dir_Option => No_Name, + Linker_Lib_Name_Option => No_Name, + Library_Builder => No_Path, + Max_Command_Line_Length => 0, + Resp_File_Format => None, + Resp_File_Options => No_Name_List, + Lib_Support => None, + Lib_Fully_Standalone_Supported => False, + Archive_Builder => No_Name_List, + Archive_Builder_Append_Option => No_Name_List, + Archive_Indexer => No_Name_List, + Archive_Suffix => No_File, + Lib_Partial_Linker => No_Name_List, + Shared_Lib_Driver => No_File, + Shared_Lib_Prefix => No_File, + Shared_Lib_Suffix => No_File, + Shared_Lib_Min_Options => No_Name_List, + Lib_Version_Options => No_Name_List, + Symbolic_Link_Supported => False, + Lib_Maj_Min_Id_Supported => False, + Auto_Init_Supported => False); ------------------------- -- Aggregated projects -- @@ -1139,6 +1143,8 @@ package Prj is -- The following record describes a project file representation + type Standalone is (No, Standard, Full); + type Project_Data (Qualifier : Project_Qualifier := Unspecified) is record ------------- @@ -1251,7 +1257,7 @@ package Prj is Lib_Internal_Name : Name_Id := No_Name; -- If a library project, internal name store inside the library - Standalone_Library : Boolean := False; + Standalone_Library : Standalone := No; -- Indicate that this is a Standalone Library Project File Lib_Interface_ALIs : String_List_Id := Nil_String; diff --git a/gcc/ada/projects.texi b/gcc/ada/projects.texi index 6970733..8e37751 100644 --- a/gcc/ada/projects.texi +++ b/gcc/ada/projects.texi @@ -1777,6 +1777,26 @@ two attributes that make a project a Library Project (@code{Library_Name} and @end group @end smallexample +@item @b{Library_Standalone}: +@cindex @code{Library_Standalone} + This attribute defines the kind of standalone library to + build. Values are either @code{standard} (the default), @code{no} or + @code{full}. When @code{standard} is used the code to elaborate and + finalize the library is embedded, when @code{full} is used the + library can furthermore only depends on static libraries (including + the GNAT runtime). This attribute can be set to @code{no} to make it clear + that the library should not be standalone in which case the + @code{Library_Interface} should not defined. + +@smallexample @c projectfile +@group + for Library_Dir use "lib"; + for Library_Name use "loggin"; + for Library_Interface use ("lib1", "lib2"); -- unit names + for Library_Standalone use "full"; +@end group +@end smallexample + @end table In order to include the elaboration code in the stand-alone library, the binder diff --git a/gcc/ada/snames.ads-tmpl b/gcc/ada/snames.ads-tmpl index dd2e594..f29490f 100644 --- a/gcc/ada/snames.ads-tmpl +++ b/gcc/ada/snames.ads-tmpl @@ -1089,148 +1089,151 @@ package Snames is -- Additional reserved words and identifiers used in GNAT Project Files -- Note that Name_External is already previously declared - -- The names with the -- GPR annotation are only used in gprbuild - - Name_Aggregate : constant Name_Id := N + $; - Name_Archive_Builder : constant Name_Id := N + $; - Name_Archive_Builder_Append_Option : constant Name_Id := N + $; - Name_Archive_Indexer : constant Name_Id := N + $; - Name_Archive_Suffix : constant Name_Id := N + $; - Name_Binder : constant Name_Id := N + $; - Name_Body_Suffix : constant Name_Id := N + $; - Name_Builder : constant Name_Id := N + $; - Name_Compiler : constant Name_Id := N + $; - Name_Compiler_Command : constant Name_Id := N + $; -- GPR - Name_Config_Body_File_Name : constant Name_Id := N + $; - Name_Config_Body_File_Name_Index : constant Name_Id := N + $; - Name_Config_Body_File_Name_Pattern : constant Name_Id := N + $; - Name_Config_File_Switches : constant Name_Id := N + $; - Name_Config_File_Unique : constant Name_Id := N + $; - Name_Config_Spec_File_Name : constant Name_Id := N + $; - Name_Config_Spec_File_Name_Index : constant Name_Id := N + $; - Name_Config_Spec_File_Name_Pattern : constant Name_Id := N + $; - Name_Configuration : constant Name_Id := N + $; - Name_Cross_Reference : constant Name_Id := N + $; - Name_Default_Language : constant Name_Id := N + $; - Name_Default_Switches : constant Name_Id := N + $; - Name_Dependency_Driver : constant Name_Id := N + $; - Name_Dependency_Kind : constant Name_Id := N + $; - Name_Dependency_Switches : constant Name_Id := N + $; - Name_Driver : constant Name_Id := N + $; - Name_Excluded_Source_Dirs : constant Name_Id := N + $; - Name_Excluded_Source_Files : constant Name_Id := N + $; - Name_Excluded_Source_List_File : constant Name_Id := N + $; - Name_Exec_Dir : constant Name_Id := N + $; - Name_Executable : constant Name_Id := N + $; - Name_Executable_Suffix : constant Name_Id := N + $; - Name_Extends : constant Name_Id := N + $; - Name_External_As_List : constant Name_Id := N + $; - Name_Externally_Built : constant Name_Id := N + $; - Name_Finder : constant Name_Id := N + $; - Name_Global_Compilation_Switches : constant Name_Id := N + $; - Name_Global_Configuration_Pragmas : constant Name_Id := N + $; - Name_Global_Config_File : constant Name_Id := N + $; -- GPR - Name_Gnatls : constant Name_Id := N + $; - Name_Gnatstub : constant Name_Id := N + $; - Name_Gnu : constant Name_Id := N + $; - Name_Ide : constant Name_Id := N + $; - Name_Ignore_Source_Sub_Dirs : constant Name_Id := N + $; - Name_Implementation : constant Name_Id := N + $; - Name_Implementation_Exceptions : constant Name_Id := N + $; - Name_Implementation_Suffix : constant Name_Id := N + $; - Name_Include_Switches : constant Name_Id := N + $; - Name_Include_Path : constant Name_Id := N + $; - Name_Include_Path_File : constant Name_Id := N + $; - Name_Inherit_Source_Path : constant Name_Id := N + $; - Name_Languages : constant Name_Id := N + $; - Name_Language_Kind : constant Name_Id := N + $; - Name_Leading_Library_Options : constant Name_Id := N + $; - Name_Leading_Required_Switches : constant Name_Id := N + $; - Name_Leading_Switches : constant Name_Id := N + $; - Name_Library : constant Name_Id := N + $; - Name_Library_Ali_Dir : constant Name_Id := N + $; - Name_Library_Auto_Init : constant Name_Id := N + $; - Name_Library_Auto_Init_Supported : constant Name_Id := N + $; - Name_Library_Builder : constant Name_Id := N + $; - Name_Library_Dir : constant Name_Id := N + $; - Name_Library_GCC : constant Name_Id := N + $; - Name_Library_Install_Name_Option : constant Name_Id := N + $; - Name_Library_Interface : constant Name_Id := N + $; - Name_Library_Kind : constant Name_Id := N + $; - Name_Library_Name : constant Name_Id := N + $; - Name_Library_Major_Minor_Id_Supported : constant Name_Id := N + $; - Name_Library_Options : constant Name_Id := N + $; - Name_Library_Partial_Linker : constant Name_Id := N + $; - Name_Library_Reference_Symbol_File : constant Name_Id := N + $; - Name_Library_Src_Dir : constant Name_Id := N + $; - Name_Library_Support : constant Name_Id := N + $; - Name_Library_Symbol_File : constant Name_Id := N + $; - Name_Library_Symbol_Policy : constant Name_Id := N + $; - Name_Library_Version : constant Name_Id := N + $; - Name_Library_Version_Switches : constant Name_Id := N + $; - Name_Linker : constant Name_Id := N + $; - Name_Linker_Executable_Option : constant Name_Id := N + $; - Name_Linker_Lib_Dir_Option : constant Name_Id := N + $; - Name_Linker_Lib_Name_Option : constant Name_Id := N + $; - Name_Local_Config_File : constant Name_Id := N + $; -- GPR - Name_Local_Configuration_Pragmas : constant Name_Id := N + $; - Name_Locally_Removed_Files : constant Name_Id := N + $; - Name_Map_File_Option : constant Name_Id := N + $; - Name_Mapping_File_Switches : constant Name_Id := N + $; - Name_Mapping_Spec_Suffix : constant Name_Id := N + $; - Name_Mapping_Body_Suffix : constant Name_Id := N + $; - Name_Max_Command_Line_Length : constant Name_Id := N + $; - Name_Metrics : constant Name_Id := N + $; - Name_Multi_Unit_Object_Separator : constant Name_Id := N + $; - Name_Multi_Unit_Switches : constant Name_Id := N + $; - Name_Naming : constant Name_Id := N + $; - Name_None : constant Name_Id := N + $; - Name_Object_File_Suffix : constant Name_Id := N + $; - Name_Object_File_Switches : constant Name_Id := N + $; - Name_Object_Generated : constant Name_Id := N + $; - Name_Object_List : constant Name_Id := N + $; - Name_Objects_Linked : constant Name_Id := N + $; - Name_Objects_Path : constant Name_Id := N + $; - Name_Objects_Path_File : constant Name_Id := N + $; - Name_Object_Dir : constant Name_Id := N + $; - Name_Option_List : constant Name_Id := N + $; - Name_Path_Syntax : constant Name_Id := N + $; - Name_Pic_Option : constant Name_Id := N + $; - Name_Pretty_Printer : constant Name_Id := N + $; - Name_Prefix : constant Name_Id := N + $; - Name_Project : constant Name_Id := N + $; - Name_Project_Dir : constant Name_Id := N + $; - Name_Project_Files : constant Name_Id := N + $; - Name_Project_Path : constant Name_Id := N + $; - Name_Response_File_Format : constant Name_Id := N + $; - Name_Response_File_Switches : constant Name_Id := N + $; - Name_Roots : constant Name_Id := N + $; -- GPR - Name_Required_Switches : constant Name_Id := N + $; - Name_Run_Path_Option : constant Name_Id := N + $; - Name_Run_Path_Origin : constant Name_Id := N + $; - Name_Separate_Run_Path_Options : constant Name_Id := N + $; - Name_Shared_Library_Minimum_Switches : constant Name_Id := N + $; - Name_Shared_Library_Prefix : constant Name_Id := N + $; - Name_Shared_Library_Suffix : constant Name_Id := N + $; - Name_Separate_Suffix : constant Name_Id := N + $; - Name_Source_Dirs : constant Name_Id := N + $; - Name_Source_File_Switches : constant Name_Id := N + $; - Name_Source_Files : constant Name_Id := N + $; - Name_Source_List_File : constant Name_Id := N + $; - Name_Spec : constant Name_Id := N + $; - Name_Spec_Suffix : constant Name_Id := N + $; - Name_Specification : constant Name_Id := N + $; - Name_Specification_Exceptions : constant Name_Id := N + $; - Name_Specification_Suffix : constant Name_Id := N + $; - Name_Stack : constant Name_Id := N + $; - Name_Switches : constant Name_Id := N + $; - Name_Symbolic_Link_Supported : constant Name_Id := N + $; - Name_Synchronize : constant Name_Id := N + $; - Name_Toolchain_Description : constant Name_Id := N + $; - Name_Toolchain_Version : constant Name_Id := N + $; - Name_Trailing_Required_Switches : constant Name_Id := N + $; - Name_Runtime_Library_Dir : constant Name_Id := N + $; - Name_Runtime_Source_Dir : constant Name_Id := N + $; + -- The names with the -- GB annotation are only used in gprbuild + + Name_Aggregate : constant Name_Id := N + $; + Name_Archive_Builder : constant Name_Id := N + $; + Name_Archive_Builder_Append_Option : constant Name_Id := N + $; + Name_Archive_Indexer : constant Name_Id := N + $; + Name_Archive_Suffix : constant Name_Id := N + $; + Name_Binder : constant Name_Id := N + $; + Name_Body_Suffix : constant Name_Id := N + $; + Name_Builder : constant Name_Id := N + $; + Name_Compiler : constant Name_Id := N + $; + Name_Compiler_Command : constant Name_Id := N + $; -- GB + Name_Config_Body_File_Name : constant Name_Id := N + $; + Name_Config_Body_File_Name_Index : constant Name_Id := N + $; + Name_Config_Body_File_Name_Pattern : constant Name_Id := N + $; + Name_Config_File_Switches : constant Name_Id := N + $; + Name_Config_File_Unique : constant Name_Id := N + $; + Name_Config_Spec_File_Name : constant Name_Id := N + $; + Name_Config_Spec_File_Name_Index : constant Name_Id := N + $; + Name_Config_Spec_File_Name_Pattern : constant Name_Id := N + $; + Name_Configuration : constant Name_Id := N + $; + Name_Cross_Reference : constant Name_Id := N + $; + Name_Default_Language : constant Name_Id := N + $; + Name_Default_Switches : constant Name_Id := N + $; + Name_Dependency_Driver : constant Name_Id := N + $; + Name_Dependency_Kind : constant Name_Id := N + $; + Name_Dependency_Switches : constant Name_Id := N + $; + Name_Driver : constant Name_Id := N + $; + Name_Excluded_Source_Dirs : constant Name_Id := N + $; + Name_Excluded_Source_Files : constant Name_Id := N + $; + Name_Excluded_Source_List_File : constant Name_Id := N + $; + Name_Exec_Dir : constant Name_Id := N + $; + Name_Executable : constant Name_Id := N + $; + Name_Executable_Suffix : constant Name_Id := N + $; + Name_Extends : constant Name_Id := N + $; + Name_External_As_List : constant Name_Id := N + $; + Name_Externally_Built : constant Name_Id := N + $; + Name_Finder : constant Name_Id := N + $; + Name_Global_Compilation_Switches : constant Name_Id := N + $; + Name_Global_Configuration_Pragmas : constant Name_Id := N + $; + Name_Global_Config_File : constant Name_Id := N + $; -- GB + Name_Gnatls : constant Name_Id := N + $; + Name_Gnatstub : constant Name_Id := N + $; + Name_Gnu : constant Name_Id := N + $; + Name_Ide : constant Name_Id := N + $; + Name_Ignore_Source_Sub_Dirs : constant Name_Id := N + $; + Name_Implementation : constant Name_Id := N + $; + Name_Implementation_Exceptions : constant Name_Id := N + $; + Name_Implementation_Suffix : constant Name_Id := N + $; + Name_Include_Switches : constant Name_Id := N + $; + Name_Include_Path : constant Name_Id := N + $; + Name_Include_Path_File : constant Name_Id := N + $; + Name_Inherit_Source_Path : constant Name_Id := N + $; + Name_Languages : constant Name_Id := N + $; + Name_Language_Kind : constant Name_Id := N + $; + Name_Leading_Library_Options : constant Name_Id := N + $; + Name_Leading_Required_Switches : constant Name_Id := N + $; + Name_Leading_Switches : constant Name_Id := N + $; + Name_Library : constant Name_Id := N + $; + Name_Library_Ali_Dir : constant Name_Id := N + $; + Name_Library_Auto_Init : constant Name_Id := N + $; + Name_Library_Auto_Init_Supported : constant Name_Id := N + $; + Name_Library_Builder : constant Name_Id := N + $; + Name_Library_Dir : constant Name_Id := N + $; + Name_Library_GCC : constant Name_Id := N + $; + Name_Library_Install_Name_Option : constant Name_Id := N + $; + Name_Library_Interface : constant Name_Id := N + $; + Name_Library_Kind : constant Name_Id := N + $; + Name_Library_Name : constant Name_Id := N + $; + Name_Library_Major_Minor_Id_Supported : constant Name_Id := N + $; + Name_Library_Options : constant Name_Id := N + $; + Name_Library_Partial_Linker : constant Name_Id := N + $; + Name_Library_Reference_Symbol_File : constant Name_Id := N + $; + Name_Library_Standalone : constant Name_Id := N + $; + Name_Library_Fully_Standalone_Options : constant Name_Id := N + $; + Name_Library_Fully_Standalone_Supported : constant Name_Id := N + $; -- GB + Name_Library_Src_Dir : constant Name_Id := N + $; + Name_Library_Support : constant Name_Id := N + $; + Name_Library_Symbol_File : constant Name_Id := N + $; + Name_Library_Symbol_Policy : constant Name_Id := N + $; + Name_Library_Version : constant Name_Id := N + $; + Name_Library_Version_Switches : constant Name_Id := N + $; + Name_Linker : constant Name_Id := N + $; + Name_Linker_Executable_Option : constant Name_Id := N + $; + Name_Linker_Lib_Dir_Option : constant Name_Id := N + $; + Name_Linker_Lib_Name_Option : constant Name_Id := N + $; + Name_Local_Config_File : constant Name_Id := N + $; -- GB + Name_Local_Configuration_Pragmas : constant Name_Id := N + $; + Name_Locally_Removed_Files : constant Name_Id := N + $; + Name_Map_File_Option : constant Name_Id := N + $; + Name_Mapping_File_Switches : constant Name_Id := N + $; + Name_Mapping_Spec_Suffix : constant Name_Id := N + $; + Name_Mapping_Body_Suffix : constant Name_Id := N + $; + Name_Max_Command_Line_Length : constant Name_Id := N + $; + Name_Metrics : constant Name_Id := N + $; + Name_Multi_Unit_Object_Separator : constant Name_Id := N + $; + Name_Multi_Unit_Switches : constant Name_Id := N + $; + Name_Naming : constant Name_Id := N + $; + Name_None : constant Name_Id := N + $; + Name_Object_File_Suffix : constant Name_Id := N + $; + Name_Object_File_Switches : constant Name_Id := N + $; + Name_Object_Generated : constant Name_Id := N + $; + Name_Object_List : constant Name_Id := N + $; + Name_Objects_Linked : constant Name_Id := N + $; + Name_Objects_Path : constant Name_Id := N + $; + Name_Objects_Path_File : constant Name_Id := N + $; + Name_Object_Dir : constant Name_Id := N + $; + Name_Option_List : constant Name_Id := N + $; + Name_Path_Syntax : constant Name_Id := N + $; + Name_Pic_Option : constant Name_Id := N + $; + Name_Pretty_Printer : constant Name_Id := N + $; + Name_Prefix : constant Name_Id := N + $; + Name_Project : constant Name_Id := N + $; + Name_Project_Dir : constant Name_Id := N + $; + Name_Project_Files : constant Name_Id := N + $; + Name_Project_Path : constant Name_Id := N + $; + Name_Response_File_Format : constant Name_Id := N + $; + Name_Response_File_Switches : constant Name_Id := N + $; + Name_Roots : constant Name_Id := N + $; -- GB + Name_Required_Switches : constant Name_Id := N + $; + Name_Run_Path_Option : constant Name_Id := N + $; + Name_Run_Path_Origin : constant Name_Id := N + $; + Name_Separate_Run_Path_Options : constant Name_Id := N + $; + Name_Shared_Library_Minimum_Switches : constant Name_Id := N + $; + Name_Shared_Library_Prefix : constant Name_Id := N + $; + Name_Shared_Library_Suffix : constant Name_Id := N + $; + Name_Separate_Suffix : constant Name_Id := N + $; + Name_Source_Dirs : constant Name_Id := N + $; + Name_Source_File_Switches : constant Name_Id := N + $; + Name_Source_Files : constant Name_Id := N + $; + Name_Source_List_File : constant Name_Id := N + $; + Name_Spec : constant Name_Id := N + $; + Name_Spec_Suffix : constant Name_Id := N + $; + Name_Specification : constant Name_Id := N + $; + Name_Specification_Exceptions : constant Name_Id := N + $; + Name_Specification_Suffix : constant Name_Id := N + $; + Name_Stack : constant Name_Id := N + $; + Name_Switches : constant Name_Id := N + $; + Name_Symbolic_Link_Supported : constant Name_Id := N + $; + Name_Synchronize : constant Name_Id := N + $; + Name_Toolchain_Description : constant Name_Id := N + $; + Name_Toolchain_Version : constant Name_Id := N + $; + Name_Trailing_Required_Switches : constant Name_Id := N + $; + Name_Runtime_Library_Dir : constant Name_Id := N + $; + Name_Runtime_Source_Dir : constant Name_Id := N + $; -- Other miscellaneous names used in front end -- cgit v1.1