--- a/gpr/gpr.gpr 2017-05-27 20:59:07.061135892 +0200 +++ b/gpr/gpr.gpr 2017-05-27 20:59:38.022638398 +0200 @@ -67,6 +67,7 @@ for Switches ("gpr*.ad?") use Compiler'Default_Switches ("Ada") & ("-g1"); end case; + for Driver ("C") use External ("CC", "gcc"); end Compiler; end GPR; --- a/gpr/src/gpr-names.ads 2017-11-19 13:09:18.947527738 +0100 +++ b/gpr/src/gpr-names.ads 2017-11-19 13:10:08.125654595 +0100 @@ -27,6 +27,8 @@ Name_Buffer : String (1 .. 1_000_000); Name_Len : Natural := 0; + Last_Id : Name_Id := Name_Id'First; + procedure Get_Name_String (Id : Name_Id); procedure Get_Name_String (Id : Unit_Name_Type); procedure Get_Name_String (Id : File_Name_Type); --- a/gpr/src/gpr-names.adb 2017-11-19 13:10:27.674316703 +0100 +++ b/gpr/src/gpr-names.adb 2017-11-19 13:14:38.360963627 +0100 @@ -354,6 +354,8 @@ Name_Chars.Append (ASCII.NUL); + Last_Id := Name_Entries.Last; + return Name_Entries.Last; end Name_Enter; @@ -427,6 +429,8 @@ Name_Chars.Append (ASCII.NUL); + Last_Id := Name_Entries.Last; + return Name_Entries.Last; end Name_Find; --- a/gpr/src/gpr-snames.adb 2017-11-19 13:12:41.592995718 +0100 +++ b/gpr/src/gpr-snames.adb 2017-11-19 13:16:31.980979696 +0100 @@ -53,6 +53,10 @@ return; end if; + if Last_Id = Name_Id'First then + Add_Name (""); + end if; + Add_Name ("a"); Add_Name ("b"); Add_Name ("c"); --- a/src/gprlib.adb 2017-12-18 12:20:02.937317216 +0100 +++ b/src/gprlib.adb 2017-12-18 12:21:36.519604590 +0100 @@ -263,7 +263,9 @@ Driver_Name : Name_Id := No_Name; - Gnatbind_Name : String_Access := new String'("gnatbind"); + Gnatbind_Name : String_Access := new String'("@GNATBIND@"); + + Gnatbind_Path_Option : constant String := "--gnatbind_path="; Compiler_Name : String_Access := new String'("gcc"); @@ -1944,13 +1946,13 @@ and then Line (Last - 2 .. Last) = "gcc" then Gnatbind_Name := - new String'(Line (1 .. Last - 3) & "gnatbind"); + new String'(Line (1 .. Last - 3) & "@GNATBIND@"); elsif Last > 7 and then Line (Last - 6 .. Last) = "gcc.exe" then Gnatbind_Name := - new String'(Line (1 .. Last - 7) & "gnatbind"); + new String'(Line (1 .. Last - 7) & "@GNATBIND@"); end if; end if; @@ -2100,7 +2102,13 @@ Mapping_File_Name := new String'(Line (1 .. Last)); when Binding_Options => - Binding_Options_Table.Append (Line (1 .. Last)); + if Last > Gnatbind_Path_Option'Length + and then Line (1 .. Gnatbind_Path_Option'Length) = + Gnatbind_Path_Option then + null; + else + Binding_Options_Table.Append (Line (1 .. Last)); + end if; when Copy_Source_Dir => Copy_Source_Directory := new String'(Line (1 .. Last));