diff options
author | Vincent Celier <celier@adacore.com> | 2011-08-03 12:36:13 +0000 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-08-03 14:36:13 +0200 |
commit | f77b022b82d2ff2a4859b2dab1f58c97ce0d1b51 (patch) | |
tree | b8cef53a01079c8f0649c5ae7f8071eea1632d37 | |
parent | 276e02243a3e9dfd2fa7043dba85dfb85a81f22a (diff) | |
download | gcc-f77b022b82d2ff2a4859b2dab1f58c97ce0d1b51.zip gcc-f77b022b82d2ff2a4859b2dab1f58c97ce0d1b51.tar.gz gcc-f77b022b82d2ff2a4859b2dab1f58c97ce0d1b51.tar.bz2 |
make.adb (Gnatmake): Add to table Library_Projs only library projects that are not extended.
2011-08-03 Vincent Celier <celier@adacore.com>
* make.adb (Gnatmake): Add to table Library_Projs only library projects
that are not extended. Do not check if a library project that is
extended should be regenerated. Do not add to table Library_Paths the
libraries that are in extended projects. Link only with libraries that
are in libray projects that are not extended.
* prj-nmsc.adb (Check_Library_Attributes): Do not reset flag Library
for a library project that is extended.
From-SVN: r177269
-rw-r--r-- | gcc/ada/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/ada/make.adb | 104 | ||||
-rw-r--r-- | gcc/ada/prj-nmsc.adb | 2 |
3 files changed, 66 insertions, 50 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 43e546c..6afbcd2 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,13 @@ +2011-08-03 Vincent Celier <celier@adacore.com> + + * make.adb (Gnatmake): Add to table Library_Projs only library projects + that are not extended. Do not check if a library project that is + extended should be regenerated. Do not add to table Library_Paths the + libraries that are in extended projects. Link only with libraries that + are in libray projects that are not extended. + * prj-nmsc.adb (Check_Library_Attributes): Do not reset flag Library + for a library project that is extended. + 2011-08-03 Gary Dismukes <dismukes@adacore.com> * sem_ch6.adb (Find_Corresponding_Spec): When in an instance, skip diff --git a/gcc/ada/make.adb b/gcc/ada/make.adb index 0eca008..6be04b1 100644 --- a/gcc/ada/make.adb +++ b/gcc/ada/make.adb @@ -5530,17 +5530,19 @@ package body Make is Proj1 := Project_Tree.Projects; while Proj1 /= null loop - if Proj1.Project.Standalone_Library then - Stand_Alone_Libraries := True; - end if; + if Proj1.Project.Extended_By = No_Project then + if Proj1.Project.Standalone_Library then + Stand_Alone_Libraries := True; + end if; - if Proj1.Project.Library then - MLib.Prj.Check_Library - (Proj1.Project, Project_Tree); - end if; + if Proj1.Project.Library then + MLib.Prj.Check_Library + (Proj1.Project, Project_Tree); + end if; - if Proj1.Project.Need_To_Build_Lib then - Add_To_Library_Projs (Proj1.Project); + if Proj1.Project.Need_To_Build_Lib then + Add_To_Library_Projs (Proj1.Project); + end if; end if; Proj1 := Proj1.Next; @@ -5553,6 +5555,7 @@ package body Make is Proj1 := Project_Tree.Projects; while Proj1 /= null loop if Proj1.Project.Library + and then Proj1.Project.Extended_By = No_Project and then Proj1.Project.Library_Kind /= Static and then not Proj1.Project.Need_To_Build_Lib and then not Proj1.Project.Externally_Built @@ -5898,11 +5901,10 @@ package body Make is -- except those of library projects. Prj.Env.Set_Ada_Paths - (Main_Project, Project_Tree, Use_Include_Path_File); - -- (Project => Main_Project, - -- In_Tree => Project_Tree, - -- Including_Libraries => True, - -- Include_Path => Use_Include_Path_File); + (Project => Main_Project, + In_Tree => Project_Tree, + Including_Libraries => False, + Include_Path => Use_Include_Path_File); -- If switch -C was specified, create a binder mapping file @@ -6000,6 +6002,7 @@ package body Make is -- is set, add it to the Library_Paths table. if Proj1.Project.Library_Kind /= Static + and then Proj1.Project.Extended_By = No_Project and then Path_Option /= null then Library_Paths.Increment_Last; @@ -6014,39 +6017,44 @@ package body Make is end loop; for Index in 1 .. Library_Projs.Last loop - if Library_Projs.Table (Index).Library_Kind = Static - and then not Targparm.OpenVMS_On_Target + if + Library_Projs.Table (Index).Extended_By = No_Project then - Linker_Switches.Increment_Last; - Linker_Switches.Table (Linker_Switches.Last) := - new String' - (Get_Name_String - (Library_Projs.Table - (Index).Library_Dir.Display_Name) & - "lib" & - Get_Name_String - (Library_Projs.Table (Index). Library_Name) & - "." & - MLib.Tgt.Archive_Ext); + if Library_Projs.Table (Index).Library_Kind = Static + and then not Targparm.OpenVMS_On_Target + then + Linker_Switches.Increment_Last; + Linker_Switches.Table (Linker_Switches.Last) := + new String' + (Get_Name_String + (Library_Projs.Table + (Index).Library_Dir.Display_Name) & + "lib" & + Get_Name_String + (Library_Projs.Table + (Index).Library_Name) & + "." & + MLib.Tgt.Archive_Ext); - else - -- Add the -L switch - - Linker_Switches.Increment_Last; - Linker_Switches.Table (Linker_Switches.Last) := - new String'("-L" & - Get_Name_String - (Library_Projs.Table (Index). - Library_Dir.Display_Name)); - - -- Add the -l switch - - Linker_Switches.Increment_Last; - Linker_Switches.Table (Linker_Switches.Last) := - new String'("-l" & - Get_Name_String - (Library_Projs.Table (Index). - Library_Name)); + else + -- Add the -L switch + + Linker_Switches.Increment_Last; + Linker_Switches.Table (Linker_Switches.Last) := + new String'("-L" & + Get_Name_String + (Library_Projs.Table (Index). + Library_Dir.Display_Name)); + + -- Add the -l switch + + Linker_Switches.Increment_Last; + Linker_Switches.Table (Linker_Switches.Last) := + new String'("-l" & + Get_Name_String + (Library_Projs.Table (Index). + Library_Name)); + end if; end if; end loop; end if; @@ -6080,9 +6088,9 @@ package body Make is Linker_Switches.Increment_Last; Linker_Switches.Table (Linker_Switches.Last) := - new String' - (Path_Option.all & - Library_Paths.Table (Index).all); + new String' + (Path_Option.all & + Library_Paths.Table (Index).all); end loop; -- One switch for the standard GNAT library dir diff --git a/gcc/ada/prj-nmsc.adb b/gcc/ada/prj-nmsc.adb index 0362277..6c79fde 100644 --- a/gcc/ada/prj-nmsc.adb +++ b/gcc/ada/prj-nmsc.adb @@ -4271,8 +4271,6 @@ package body Prj.Nmsc is exit; end if; end loop; - - Project.Extends.Library := False; end if; if Project.Library and then not Lib_Name.Default then |