mlib-prj.adb (Build_Library): Compare with ALI file name in canonical case to decide...
authorVincent Celier <celier@adacore.com>
Tue, 8 Apr 2008 06:53:22 +0000 (08:53 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Tue, 8 Apr 2008 06:53:22 +0000 (08:53 +0200)
2008-04-08  Vincent Celier  <celier@adacore.com>

* mlib-prj.adb (Build_Library): Compare with ALI file name in canonical
case to decide if ALI object file is included in library.
(Build_Library): Never attempt to build a library if the project is
externally built.

From-SVN: r134041

gcc/ada/mlib-prj.adb

index 88d33811b1d26c5927761b342289211b712e6a15..193b54ca4080f60ddbb5c92925205c2233f2bdb5 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---                     Copyright (C) 2001-2007, AdaCore                     --
+--                     Copyright (C) 2001-2008, AdaCore                     --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
@@ -829,6 +829,12 @@ package body MLib.Prj is
          Com.Fail ("project """, Project_Name, """ has no library");
       end if;
 
+      --  Do not attempt to build the library if it is externally built
+
+      if Data.Externally_Built then
+         return;
+      end if;
+
       --  If this is the first time Build_Library is called, get the Name_Id
       --  of "s-osinte.ads".
 
@@ -1399,17 +1405,18 @@ package body MLib.Prj is
                               declare
                                  ALI_File : constant String :=
                                               Ext_To
-                                                (Filename (1 .. Last), "ali");
+                                                (C_Filename
+                                                   (1 .. Last), "ali");
                                  ALI_Path : constant String :=
-                                              Ext_To (Object_Path, "ali");
+                                              Ext_To (C_Object_Path, "ali");
                                  Add_It   : Boolean :=
                                               There_Are_Foreign_Sources
-                                              or else
-                                                (Last > 5
-                                                 and then
-                                                 C_Filename
-                                                   (1 .. B_Start'Length) =
-                                                 B_Start.all);
+                                                or else
+                                                  (Last > 5
+                                                    and then
+                                                      C_Filename
+                                                        (1 .. B_Start'Length) =
+                                                           B_Start.all);
                                  Fname    : File_Name_Type;
                                  Proj     : Project_Id;
 
@@ -2348,7 +2355,7 @@ package body MLib.Prj is
       Fd : FILEs;
       --  Binder file's descriptor
 
-      Read_Mode : constant String := "r" & ASCII.Nul;
+      Read_Mode : constant String := "r" & ASCII.NUL;
       --  For fopen
 
       Status : Interfaces.C_Streams.int;