diff --git a/gcc/ada/make.adb b/gcc/ada/make.adb index aa8e5f7d2f280f5d599f590eba1490e8aec4018c..ee45873e8855883406cc16af1b9a1154329e2d99 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 af1326cc6c5f8058b11b15051e883663a24507c7..b1aea0920e5ee0a1fcbc4afd58bb6e72aa319ef5 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 29a389512e01ba0802e01c2c4c76c8c04a96d82f..b901bc5713ffad941e686e841bc7c79d6fa138ed 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.