mirror of
https://gcc.gnu.org/git/gcc.git
synced 2025-01-17 18:04:43 +08:00
[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.
This commit is contained in:
parent
1021b72bf6
commit
1fc93860a5
@ -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 """);
|
||||
|
@ -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;
|
||||
|
@ -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.
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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");
|
||||
|
Loading…
Reference in New Issue
Block a user