2007-08-16 Vincent Celier <celier@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 16 Aug 2007 12:19:13 +0000 (12:19 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 16 Aug 2007 12:19:13 +0000 (12:19 +0000)
* make.adb (Collect_Arguments): Call Test_If_Relative_Path with
Including_Non_Switch set to False.
(Gnatmake): For the compiler, call Test_If_Relative_Path with
Including_Non_Switch set to False.

* makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
parameter Including_Non_Switch, defaulted to True. When
Including_Non_Switch is False, options that are not switches and
appear as relative path are not converted to absolute paths.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127542 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/make.adb
gcc/ada/makeutl.adb
gcc/ada/makeutl.ads

index aa8e5f7..ee45873 100644 (file)
@@ -2372,7 +2372,8 @@ package body Make is
                                    new String'(Name_Buffer (1 .. Name_Len));
                                  Test_If_Relative_Path
                                    (New_Args (Last_New),
-                                    Parent => Data.Dir_Path);
+                                    Parent => Data.Dir_Path,
+                                    Including_Non_Switch => False);
                               end if;
 
                               Current := Element.Next;
@@ -2399,7 +2400,9 @@ package body Make is
 
                      begin
                         Test_If_Relative_Path
-                          (New_Args (1), Parent => Data.Dir_Path);
+                          (New_Args (1),
+                           Parent               => Data.Dir_Path,
+                           Including_Non_Switch => False);
                         Add_Arguments
                           (Configuration_Pragmas_Switch (Arguments_Project) &
                            New_Args & The_Saved_Gcc_Switches.all);
@@ -5315,12 +5318,16 @@ package body Make is
 
             for J in 1 .. Gcc_Switches.Last loop
                Test_If_Relative_Path
-                 (Gcc_Switches.Table (J), Parent => Dir_Path);
+                 (Gcc_Switches.Table (J),
+                  Parent => Dir_Path,
+                  Including_Non_Switch => False);
             end loop;
 
             for J in 1 .. Saved_Gcc_Switches.Last loop
                Test_If_Relative_Path
-                 (Saved_Gcc_Switches.Table (J), Parent => Current_Work_Dir);
+                 (Saved_Gcc_Switches.Table (J),
+                  Parent => Current_Work_Dir,
+                  Including_Non_Switch => False);
             end loop;
          end;
       end if;
index af1326c..b1aea09 100644 (file)
@@ -551,9 +551,10 @@ package body Makeutl is
    ---------------------------
 
    procedure Test_If_Relative_Path
-     (Switch             : in out String_Access;
-      Parent             : String_Access;
-      Including_L_Switch : Boolean := True)
+     (Switch               : in out String_Access;
+      Parent               : String_Access;
+      Including_L_Switch   : Boolean := True;
+      Including_Non_Switch : Boolean := True)
    is
    begin
       if Switch /= null then
@@ -608,7 +609,7 @@ package body Makeutl is
                   end if;
                end if;
 
-            else
+            elsif Including_Non_Switch then
                if not Is_Absolute_Path (Sw) then
                   if Parent = null or else Parent'Length = 0 then
                      Do_Fail
index 29a3895..b901bc5 100644 (file)
@@ -124,9 +124,10 @@ package Makeutl is
    end Mains;
 
    procedure Test_If_Relative_Path
-     (Switch             : in out String_Access;
-      Parent             : String_Access;
-      Including_L_Switch : Boolean := True);
+     (Switch               : in out String_Access;
+      Parent               : String_Access;
+      Including_L_Switch   : Boolean := True;
+      Including_Non_Switch : Boolean := True);
    --  Test if Switch is a relative search path switch.
    --  If it is, fail if Parent is null, otherwise prepend the path with
    --  Parent. This subprogram is only called when using project files.