From 3429710e69836c0eb5cf71c2f22ec7c6ca073db7 Mon Sep 17 00:00:00 2001 From: Arnaud Charlet Date: Wed, 25 Nov 2015 16:10:52 +0100 Subject: [PATCH] [multiple changes] 2015-11-25 Vincent Celier * gnatcmd.adb: When -gnat is called with switch -P and a GPR tool is invoked, invoke the GPR tool with switch --target=. 2015-11-25 Hristian Kirtchev * opt.adb, bcheck.adb: Minor reformatting. From-SVN: r230876 --- gcc/ada/ChangeLog | 10 ++++++++ gcc/ada/bcheck.adb | 9 ++++--- gcc/ada/gnatcmd.adb | 61 ++++++++++++++++++++++++++++----------------- gcc/ada/opt.adb | 12 ++++++--- 4 files changed, 61 insertions(+), 31 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index b7be5a5202b..ea9c5e9c8ac 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,13 @@ +2015-11-25 Vincent Celier + + * gnatcmd.adb: When -gnat is called with switch -P + and a GPR tool is invoked, invoke the GPR tool with switch + --target=. + +2015-11-25 Hristian Kirtchev + + * opt.adb, bcheck.adb: Minor reformatting. + 2015-11-25 Jerome Lambourg * init.c: Enable the signal trampoline on x86_64-vx7 diff --git a/gcc/ada/bcheck.adb b/gcc/ada/bcheck.adb index fcfb2f489bf..66341b44317 100644 --- a/gcc/ada/bcheck.adb +++ b/gcc/ada/bcheck.adb @@ -1176,16 +1176,17 @@ package body Bcheck is begin Check_Mechanism : for A1 in ALIs.First + 1 .. ALIs.Last loop if (ALIs.Table (A1).Zero_Cost_Exceptions /= - ALIs.Table (ALIs.First).Zero_Cost_Exceptions) + ALIs.Table (ALIs.First).Zero_Cost_Exceptions) or else (ALIs.Table (A1).Frontend_Exceptions /= - ALIs.Table (ALIs.First).Frontend_Exceptions) + ALIs.Table (ALIs.First).Frontend_Exceptions) then Error_Msg_File_1 := ALIs.Table (A1).Sfile; Error_Msg_File_2 := ALIs.Table (ALIs.First).Sfile; - Consistency_Error_Msg ("{ and { compiled with different " - & "exception handling mechanisms"); + Consistency_Error_Msg + ("{ and { compiled with different exception handling " + & "mechanisms"); end if; end loop Check_Mechanism; end Check_Consistent_Exception_Handling; diff --git a/gcc/ada/gnatcmd.adb b/gcc/ada/gnatcmd.adb index df648319c5f..451f2021387 100644 --- a/gcc/ada/gnatcmd.adb +++ b/gcc/ada/gnatcmd.adb @@ -58,13 +58,8 @@ with GNAT.OS_Lib; use GNAT.OS_Lib; procedure GNATCmd is Gprbuild : constant String := "gprbuild"; - Gnatmake : constant String := "gnatmake"; - - Gprclean : constant String := "gprclean"; - Gnatclean : constant String := "gnatclean"; - + Gprclean : constant String := "gprclean"; Gprname : constant String := "gprname"; - Gnatname : constant String := "gnatname"; Normal_Exit : exception; -- Raise this exception for normal program termination @@ -1170,8 +1165,9 @@ begin end loop; declare - Program : String_Access; - Exec_Path : String_Access; + Program : String_Access; + Exec_Path : String_Access; + Get_Target : Boolean := False; begin if The_Command = Stack then @@ -1188,9 +1184,10 @@ begin -- instead of gnatmake/gnatclean. -- Ditto for gnatname -> gprname. - if Program.all = Gnatmake - or else Program.all = Gnatclean - or else Program.all = Gnatname + if The_Command = Make + or else The_Command = Compile + or else The_Command = Clean + or else The_Command = Name then declare Project_File_Used : Boolean := False; @@ -1208,19 +1205,37 @@ begin end loop; if Project_File_Used then - if Program.all = Gnatmake - and then Locate_Exec_On_Path (Gprbuild) /= null - then - Program := new String'(Gprbuild); - elsif Program.all = Gnatclean - and then Locate_Exec_On_Path (Gprclean) /= null - then - Program := new String'(Gprclean); + case The_Command is + when Make | Compile => + if Locate_Exec_On_Path (Gprbuild) /= null then + Program := new String'(Gprbuild); + Get_Target := True; + end if; - elsif Program.all = Gnatname - and then Locate_Exec_On_Path (Gprname) /= null - then - Program := new String'(Gprname); + when Clean => + if Locate_Exec_On_Path (Gprclean) /= null then + Program := new String'(Gprclean); + Get_Target := True; + end if; + + when Name => + if Locate_Exec_On_Path (Gprname) /= null then + Program := new String'(Gprname); + Get_Target := True; + end if; + + when others => + null; + end case; + + if Get_Target then + Find_Program_Name; + + if Name_Len > 5 then + First_Switches.Append + (new String' + ("--target=" & Name_Buffer (1 .. Name_Len - 5))); + end if; end if; end if; end; diff --git a/gcc/ada/opt.adb b/gcc/ada/opt.adb index 213b6f4bc1b..f1ce4a4afa3 100644 --- a/gcc/ada/opt.adb +++ b/gcc/ada/opt.adb @@ -44,8 +44,10 @@ package body Opt is function Back_End_Exceptions return Boolean is begin - return Exception_Mechanism = Back_End_SJLJ - or else Exception_Mechanism = Back_End_ZCX; + return + Exception_Mechanism = Back_End_SJLJ + or else + Exception_Mechanism = Back_End_ZCX; end Back_End_Exceptions; ------------------------- @@ -63,8 +65,10 @@ package body Opt is function SJLJ_Exceptions return Boolean is begin - return Exception_Mechanism = Back_End_SJLJ - or else Exception_Mechanism = Front_End_SJLJ; + return + Exception_Mechanism = Back_End_SJLJ + or else + Exception_Mechanism = Front_End_SJLJ; end SJLJ_Exceptions; -------------------- -- 2.30.2