aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Celier <celier@adacore.com>2007-08-16 14:19:13 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2007-08-16 14:19:13 +0200
commit1086c39b19eed27d9fc5b53ca7c5b75143d908bf (patch)
tree5b5d183382bf48671a3aea85557e32c8a38453ee
parentc17fc6f62a85eec85e923c9a808b97d93b84b1ce (diff)
downloadgcc-1086c39b19eed27d9fc5b53ca7c5b75143d908bf.zip
gcc-1086c39b19eed27d9fc5b53ca7c5b75143d908bf.tar.gz
gcc-1086c39b19eed27d9fc5b53ca7c5b75143d908bf.tar.bz2
make.adb (Collect_Arguments): Call Test_If_Relative_Path with Including_Non_Switch set to False.
2007-08-16 Vincent Celier <celier@adacore.com> * 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. From-SVN: r127542
-rw-r--r--gcc/ada/make.adb15
-rw-r--r--gcc/ada/makeutl.adb9
-rw-r--r--gcc/ada/makeutl.ads7
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.