+2010-01-26 Thomas Quinot <quinot@adacore.com>
+
+ * gnat_ugn.texi: Adjust documentation of -gnatz switches.
+ * usage.adb: Replace line for -gnatz with two lines for -gnatzc and
+ -gnatzr.
+
+2010-01-26 Vincent Celier <celier@adacore.com>
+
+ * prj-attr.adb: Add new attribute Library_Install_Name_Option
+ Replace attribute Run_Path_Origin_Supported with Run_Path_Origin
+ * prj-nmsc.adb (Process_Project_Level_Simple_Attributes): Process
+ attributes Run_Path_Option and Library_Install_Name_Option.
+ * prj.ads (Project_Configuration): Replace component
+ Run_Path_Origin_Supported with component Run_Path_Origin. Add new
+ component Library_Install_Name_Option.
+ * snames.ads-tmpl: Add new standard name Library_Install_Name_Option
+ Replace Run_Path_Origin_Supported with Run_Path_Origin
+
+2010-01-26 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch8.adb (Use_One_Package): Within an instance, an actual package
+ is not hidden by a homograph declared in another actual package.
+
2010-01-26 Robert Dewar <dewar@adacore.com>
* par_sco.adb (Traverse_Declarations_Or_Statements): Only generate
@item
The switches
-@option{^-gnatz^/DISTRIBUTION_STUBS^}, @option{-gnatzc}, and @option{-gnatzr}
-may not be combined with any other switches.
+^^@option{/DISTRIBUTION_STUBS=},^
+@option{-gnatzc} and @option{-gnatzr} may not be combined with any other
+switches, and only one of them may appear in the command line.
@ifclear vms
@item
"SVdefault_language#" &
"LVrun_path_option#" &
- "SVrun_path_origin_supported#" &
+ "SVrun_path_origin#" &
"SVseparate_run_path_options#" &
"Satoolchain_version#" &
"Satoolchain_description#" &
"SVlibrary_auto_init_supported#" &
"LVshared_library_minimum_switches#" &
"LVlibrary_version_switches#" &
+ "SVlibrary_install_name_option#" &
"Saruntime_library_dir#" &
"Saruntime_source_dir#" &
In_Tree => Data.Tree);
end if;
- elsif Attribute.Name = Name_Run_Path_Origin_Supported then
- declare
- pragma Unsuppress (All_Checks);
- begin
- Project.Config.Run_Path_Origin_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 Run_Path_Origin_Supported",
- Attribute.Value.Location, Project);
- end;
+ elsif Attribute.Name = Name_Run_Path_Origin then
+ Get_Name_String (Attribute.Value.Value);
+
+ if Name_Len = 0 then
+ Error_Msg
+ (Data.Flags,
+ "run path origin cannot be empty",
+ Attribute.Value.Location, Project);
+ end if;
+
+ Project.Config.Run_Path_Origin := Attribute.Value.Value;
+
+ elsif Attribute.Name = Name_Library_Install_Name_Option then
+ Project.Config.Library_Install_Name_Option :=
+ Attribute.Value.Value;
elsif Attribute.Name = Name_Separate_Run_Path_Options then
declare
-- The option to use when linking to specify the path where to look for
-- libraries.
- Run_Path_Origin_Supported : Boolean := False;
- -- Specify if the run path option support $ORIGIN to indicate paths
- -- reative to the directory of the executable.
+ Run_Path_Origin : Name_Id := No_Name;
+ -- Specify the string (such as "$ORIGIN") to indicate paths relative to
+ -- the directory of the executable in the run path option.
+
+ Library_Install_Name_Option : Name_Id := No_Name;
+ -- When this is not an empty list, this option, followed by the single
+ -- name of the shared library file is used when linking a shared
+ -- library.
Separate_Run_Path_Options : Boolean := False;
-- True if each directory needs to be specified in a separate run path
Default_Project_Config : constant Project_Configuration :=
(Target => No_Name,
Run_Path_Option => No_Name_List,
- Run_Path_Origin_Supported => False,
+ Run_Path_Origin => No_Name,
+ Library_Install_Name_Option => No_Name,
Separate_Run_Path_Options => False,
Executable_Suffix => No_Name,
Linker => No_Path,
-- we compare the scope depth of its scope with that of the
-- current instance. However, a generic actual of a subprogram
-- instance is declared in the wrapper package but will not be
- -- hidden by a use-visible entity.
+ -- hidden by a use-visible entity. Similarly, a generic actual
+ -- will not be hidden by an entity declared in another generic
+ -- actual, which can only have been use-visible in the generic.
+ -- Is this condition complete, and can the following complex
+ -- test be simplified ???
-- If Id is called Standard, the predefined package with the
-- same name is in the homonym chain. It has to be ignored
and then (Scope (Prev) /= Standard_Standard
or else Sloc (Prev) > Standard_Location)
then
- Set_Is_Potentially_Use_Visible (Id);
- Set_Is_Immediately_Visible (Prev, False);
- Append_Elmt (Prev, Hidden_By_Use_Clause (N));
+ if Ekind (Prev) = E_Package
+ and then Present (Associated_Formal_Package (Prev))
+ and then Present (Associated_Formal_Package (P))
+ then
+ null;
+
+ else
+ Set_Is_Potentially_Use_Visible (Id);
+ Set_Is_Immediately_Visible (Prev, False);
+ Append_Elmt (Prev, Hidden_By_Use_Clause (N));
+ end if;
end if;
-- A user-defined operator is not use-visible if the predefined
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_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_Supported : 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 + $;
Write_Switch_Char ("yN");
Write_Line ("Cancel all previously set style checks");
- -- Lines for -gnatz switch
+ -- Lines for -gnatzc switch
- Write_Switch_Char ("z");
- Write_Line ("Distribution stub generation (r/c for receiver/caller stubs)");
+ Write_Switch_Char ("zc");
+ Write_Line ("Distribution stub generation for caller stubs");
+
+ -- Lines for -gnatzr switch
+
+ Write_Switch_Char ("zr");
+ Write_Line ("Distribution stub generation for receiver stubs");
-- Line for -gnat83 switch