aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Celier <celier@adacore.com>2011-08-03 12:36:13 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2011-08-03 14:36:13 +0200
commitf77b022b82d2ff2a4859b2dab1f58c97ce0d1b51 (patch)
treeb8cef53a01079c8f0649c5ae7f8071eea1632d37
parent276e02243a3e9dfd2fa7043dba85dfb85a81f22a (diff)
downloadgcc-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/ChangeLog10
-rw-r--r--gcc/ada/make.adb104
-rw-r--r--gcc/ada/prj-nmsc.adb2
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