[Ada] fix order of source search path

Arnaud Charlet charlet@adacore.com
Thu Jun 16 09:33:00 GMT 2005


Tested on i686-linux, committed on mainline.

Directories listed in env vars ADA_INCLUDE_PATH and ADA_OBJECTS_PATH
are taken into account even when using project files. However, the
source and object directories of the project files should come before
these directories coming from the env vars, otherwise it is not possible
to hide in a project a source coming from those directories.

2005-06-14  Vincent Celier  <celier@adacore.com>

	* osint.adb (Add_Default_Search_Dirs): Put source and object
	directories of project files before directories coming from
	ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.

-------------- next part --------------
Index: osint.adb
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ada/osint.adb,v
retrieving revision 1.26
diff -u -p -r1.26 osint.adb
--- osint.adb	20 Jul 2004 10:26:51 -0000	1.26
+++ osint.adb	15 Jun 2005 15:47:47 -0000
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-2004 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2005 Free Software Foundation, Inc.          --
 --                                                                          --
 -- 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- --
@@ -314,7 +314,7 @@ package body Osint is
          --  For the call to Close
 
       begin
-         --  Construct a C compatible character string buffer.
+         --  Construct a C compatible character string buffer
 
          Buffer (1 .. Buffer'Last - 1) := Path_File_Name.all;
          Buffer (Buffer'Last) := ASCII.NUL;
@@ -409,6 +409,20 @@ package body Osint is
       --  environment variable. Get this value, extract the directory names
       --  and store in the tables.
 
+      --  Check for eventual project path file env vars
+
+      Path_File_Name := Getenv (Project_Include_Path_File);
+
+      if Path_File_Name'Length > 0 then
+         Get_Dirs_From_File (Additional_Source_Dir => True);
+      end if;
+
+      Path_File_Name := Getenv (Project_Objects_Path_File);
+
+      if Path_File_Name'Length > 0 then
+         Get_Dirs_From_File (Additional_Source_Dir => False);
+      end if;
+
       --  On VMS, don't expand the logical name (e.g. environment variable),
       --  just put it into Unix (e.g. canonical) format. System services
       --  will handle the expansion as part of the file processing.
@@ -443,21 +457,7 @@ package body Osint is
          end loop;
       end loop;
 
-      --  Check for eventual project path file env vars
-
-      Path_File_Name := Getenv (Project_Include_Path_File);
-
-      if Path_File_Name'Length > 0 then
-         Get_Dirs_From_File (Additional_Source_Dir => True);
-      end if;
-
-      Path_File_Name := Getenv (Project_Objects_Path_File);
-
-      if Path_File_Name'Length > 0 then
-         Get_Dirs_From_File (Additional_Source_Dir => False);
-      end if;
-
-      --  For the compiler, if --RTS= was apecified, add the runtime
+      --  For the compiler, if --RTS= was specified, add the runtime
       --  directories.
 
       if RTS_Src_Path_Name /= null and then


More information about the Gcc-patches mailing list