From 70550c670ffa34d546fe54633419b4e9dccd3fc6 Mon Sep 17 00:00:00 2001 From: charlet Date: Thu, 16 Aug 2007 12:19:13 +0000 Subject: [PATCH] 2007-08-16 Vincent Celier * 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 | 15 +++++++++++---- gcc/ada/makeutl.adb | 9 +++++---- gcc/ada/makeutl.ads | 7 ++++--- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/gcc/ada/make.adb b/gcc/ada/make.adb index aa8e5f7..ee45873 100644 --- a/gcc/ada/make.adb +++ b/gcc/ada/make.adb @@ -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; diff --git a/gcc/ada/makeutl.adb b/gcc/ada/makeutl.adb index af1326c..b1aea09 100644 --- a/gcc/ada/makeutl.adb +++ b/gcc/ada/makeutl.adb @@ -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 diff --git a/gcc/ada/makeutl.ads b/gcc/ada/makeutl.ads index 29a3895..b901bc5 100644 --- a/gcc/ada/makeutl.ads +++ b/gcc/ada/makeutl.ads @@ -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. -- 2.7.4