aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@adacore.com>2021-11-29 10:04:36 +0000
committerPierre-Marie de Rodat <derodat@adacore.com>2022-01-05 11:32:33 +0000
commit1fc93860a54772c3302ba755eed504d3b00c88ef (patch)
tree2077aa1486a3713a9efba5df5fccabfae743a450 /gcc
parent1021b72bf6542f3c08e5404b65063216ee1b06f7 (diff)
downloadgcc-1fc93860a54772c3302ba755eed504d3b00c88ef.zip
gcc-1fc93860a54772c3302ba755eed504d3b00c88ef.tar.gz
gcc-1fc93860a54772c3302ba755eed504d3b00c88ef.tar.bz2
[Ada] Reduce runtime dependencies on stage1
gcc/ada/ * osint.adb (File_Names_Equal): Declare To_Lower locally. * osint.ads (Null_FD): New. * fmap.adb, sinput-l.adb, targparm.adb: Adapt to changes above. * switch-b.adb (Scan_Debug_Switches): Use Is_Regular_File to simplify the bootstrap dependencies.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/fmap.adb2
-rw-r--r--gcc/ada/osint.adb15
-rw-r--r--gcc/ada/osint.ads4
-rw-r--r--gcc/ada/sinput-l.adb2
-rw-r--r--gcc/ada/switch-b.adb2
-rw-r--r--gcc/ada/targparm.adb2
6 files changed, 23 insertions, 4 deletions
diff --git a/gcc/ada/fmap.adb b/gcc/ada/fmap.adb
index 7a8e082..7597eba 100644
--- a/gcc/ada/fmap.adb
+++ b/gcc/ada/fmap.adb
@@ -301,7 +301,7 @@ package body Fmap is
Read_Source_File (Name_Enter (File_Name), 1, Hi, Src, FD, Config);
if Null_Source_Buffer_Ptr (Src) then
- if FD = Null_FD then
+ if FD = Osint.Null_FD then
Write_Str ("warning: could not locate mapping file """);
else
Write_Str ("warning: no read access for mapping file """);
diff --git a/gcc/ada/osint.adb b/gcc/ada/osint.adb
index cf39128..a8a6801 100644
--- a/gcc/ada/osint.adb
+++ b/gcc/ada/osint.adb
@@ -1059,6 +1059,21 @@ package body Osint is
----------------------
function File_Names_Equal (File1, File2 : String) return Boolean is
+
+ function To_Lower (A : String) return String;
+ -- For bootstrap reasons, we cannot use To_Lower from System.Case_Util
+
+ --------------
+ -- To_Lower --
+ --------------
+
+ function To_Lower (A : String) return String is
+ Result : String := A;
+ begin
+ To_Lower (Result);
+ return Result;
+ end To_Lower;
+
begin
if File_Names_Case_Sensitive then
return File1 = File2;
diff --git a/gcc/ada/osint.ads b/gcc/ada/osint.ads
index f1a9f84..f733e65 100644
--- a/gcc/ada/osint.ads
+++ b/gcc/ada/osint.ads
@@ -52,6 +52,10 @@ package Osint is
Project_Include_Path_File : constant String := "ADA_PRJ_INCLUDE_FILE";
Project_Objects_Path_File : constant String := "ADA_PRJ_OBJECTS_FILE";
+ Null_FD : constant File_Descriptor := -2;
+ -- Uninitialized file descriptor. Copied from System.OS_Lib for bootstrap
+ -- reasons.
+
Output_FD : File_Descriptor;
-- File descriptor for current library info, list, tree, C, H, or binder
-- output. Only one of these is open at a time, so we need only one FD.
diff --git a/gcc/ada/sinput-l.adb b/gcc/ada/sinput-l.adb
index 2d5efb0..6a939bc 100644
--- a/gcc/ada/sinput-l.adb
+++ b/gcc/ada/sinput-l.adb
@@ -420,7 +420,7 @@ package body Sinput.L is
if Null_Source_Buffer_Ptr (Src) then
Source_File.Decrement_Last;
- if FD = Null_FD then
+ if FD = Osint.Null_FD then
return No_Source_File;
else
return No_Access_To_Source_File;
diff --git a/gcc/ada/switch-b.adb b/gcc/ada/switch-b.adb
index a735978..bea6ab3 100644
--- a/gcc/ada/switch-b.adb
+++ b/gcc/ada/switch-b.adb
@@ -312,7 +312,7 @@ package body Switch.B is
Ptr := Max + 1;
- if not Is_Read_Accessible_File (Force_Elab_Order_File.all) then
+ if not Is_Regular_File (Force_Elab_Order_File.all) then
Osint.Fail (Force_Elab_Order_File.all & ": file not found");
end if;
diff --git a/gcc/ada/targparm.adb b/gcc/ada/targparm.adb
index 4390c0e..ade05c2 100644
--- a/gcc/ada/targparm.adb
+++ b/gcc/ada/targparm.adb
@@ -165,7 +165,7 @@ package body Targparm is
if Null_Source_Buffer_Ptr (Text) then
Write_Line ("fatal error, run-time library not installed correctly");
- if FD = Null_FD then
+ if FD = Osint.Null_FD then
Write_Line ("cannot locate file system.ads");
else
Write_Line ("no read access for file system.ads");