https://gcc.gnu.org/g:700352c6b9ceef1cdb2728c2c31665694d014676
commit r17-788-g700352c6b9ceef1cdb2728c2c31665694d014676 Author: Piotr Trojanek <[email protected]> Date: Sat Jan 31 12:23:10 2026 +0100 ada: Remove Tempdir from gnatmake Package Tempdir duplicates routine Create_Temp_File that is also provided by System.OS_Lib; we don't need it. gcc/ada/ChangeLog: * make.adb: Use System.OS_Lib routine. Diff: --- gcc/ada/make.adb | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/gcc/ada/make.adb b/gcc/ada/make.adb index e6d27c918b1c..5d60aff83258 100644 --- a/gcc/ada/make.adb +++ b/gcc/ada/make.adb @@ -54,7 +54,6 @@ with Switch; use Switch; with Switch.M; use Switch.M; with Table; with Targparm; -with Tempdir; with Types; use Types; with Ada.Command_Line; use Ada.Command_Line; @@ -551,14 +550,14 @@ package body Make is -- Mapping files ----------------- - type Temp_Path_Names is array (Positive range <>) of Path_Name_Type; - type Temp_Path_Ptr is access Temp_Path_Names; + type Temp_Names is array (Positive range <>) of Temp_File_Name; + type Temp_Names_Ptr is access Temp_Names; type Free_File_Indexes is array (Positive range <>) of Positive; type Free_Indexes_Ptr is access Free_File_Indexes; type Mapping_File_Data is record - Mapping_File_Names : Temp_Path_Ptr; + Mapping_File_Names : Temp_Names_Ptr; -- The name ids of the temporary mapping files used. This is indexed -- on the maximum number of compilation processes we will be spawning -- (-j parameter) @@ -583,28 +582,28 @@ package body Make is procedure Init_Mapping_File (File_Index : out Natural); -- Create a new mapping file or reuse one already created. - package Temp_File_Paths is new Table.Table - (Table_Component_Type => Path_Name_Type, + package Temp_File_Names is new Table.Table + (Table_Component_Type => Temp_File_Name, Table_Index_Type => Natural, Table_Low_Bound => 1, Table_Initial => 4, Table_Increment => 100, - Table_Name => "Make.Temp_File_Paths", + Table_Name => "Make.Temp_File_Names", Release_Threshold => 0); - procedure Record_Temp_File (Path : Path_Name_Type); + procedure Record_Temp_File (Name : Temp_File_Name); -- Record the path of a temporary file, so that it can be deleted at the -- end of execution of gnatmake. - procedure Record_Temp_File (Path : Path_Name_Type) is + procedure Record_Temp_File (Name : Temp_File_Name) is begin - for J in 1 .. Temp_File_Paths.Last loop - if Temp_File_Paths.Table (J) = Path then + for J in 1 .. Temp_File_Names.Last loop + if Temp_File_Names.Table (J) = Name then return; end if; end loop; - Temp_File_Paths.Append (Path); + Temp_File_Names.Append (Name); end Record_Temp_File; ------------------------------------------------- @@ -2245,14 +2244,14 @@ package body Make is end if; -- Put the name in the mapping file argument for the invocation - -- of the compiler. + -- of the compiler (while stripping the trailing NUL). Free (Mapping_File_Arg); Mapping_File_Arg := new String' ("-gnatem=" & - Get_Name_String - (The_Mapping_Files.Mapping_File_Names (Mfile))); + The_Mapping_Files.Mapping_File_Names (Mfile) + (1 .. Temp_File_Len - 1)); end Get_Mapping_File; ----------------------- @@ -3458,7 +3457,7 @@ package body Make is The_Mapping_Files := (Mapping_File_Names => - new Temp_Path_Names (1 .. Maximum_Processes), + new Temp_Names (1 .. Maximum_Processes), Last_Mapping_File_Names => 0, Free_Mapping_File_Indexes => new Free_File_Indexes (1 .. Maximum_Processes), @@ -3627,7 +3626,7 @@ package body Make is -- Just create an empty file - Tempdir.Create_Temp_File + Create_Temp_File (FD, The_Mapping_Files.Mapping_File_Names (The_Mapping_Files.Last_Mapping_File_Names));
