aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/make.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2011-08-31 11:33:35 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2011-08-31 11:33:35 +0200
commit67645bdee6a5c57b2ce51bbafbb69cf510ebf189 (patch)
treeecfcc124dc910e1d344cfe25372f89ace3e7ecc8 /gcc/ada/make.adb
parentb87897272f39da4bb0fb15bf275f18f5411d1915 (diff)
downloadgcc-67645bdee6a5c57b2ce51bbafbb69cf510ebf189.zip
gcc-67645bdee6a5c57b2ce51bbafbb69cf510ebf189.tar.gz
gcc-67645bdee6a5c57b2ce51bbafbb69cf510ebf189.tar.bz2
[multiple changes]
2011-08-31 Jose Ruiz <ruiz@adacore.com> * aspects.ads (Aspect_Id, Aspect_Argument, Aspect_Names): Add the dispatching domain aspect. * aspects.adb (Canonical_Aspect): Add entry for the dispatching domain aspect. * sem_ch13.adb (Analyze_Aspect_Specifications): Analyze the Dispatching_Domain aspect in a similar way as we do for the Priority aspect. * exp_ch9.adb (Expand_N_Task_Type_Declaration): Add the Dispatching_Domain component if a Dispatching_Domain pragma or aspect is present. (Make_Task_Create_Call): Add the Dispatching_Domain when creating a task * par-prag.adb (Prag): Add Pragma_Dispatching_Domain as a known pragma. * sem_prag.adb (Analyze_Pragma): Check the correctness of a pragma Dispatching_Domain and add it to the task definition. (Sig_Flags): Add Pragma_Dispatching_Domain. * rtsfind.ads, rtsfind.adb (RTU_Id, RE_Id, Get_Unit_Name): Add the support to find the types Dispatching_Domain and Dispatching_Domain_Access. * sinfo.ads, sinfo.adb (Has_Pragma_Dispatching_Domain, Set_Has_Pragma_Dispatching_Domain): Add these subprograms to set and query the availability of a pragma Dispatching_Domain. * snames.ads-tmpl (Name_uDispatching_Domain): Add this name required by the expander to pass the Dispatching_Domain when creating a task. (Name_Dispatching_Domain): Add this new name for a pragma. (Pragma_Id): Add the new Pragma_Dispatching_Domain. * s-tassta.ads, s-tassta.adb (Create_Task): Set the domain to which the task has been allocated at creation time. * s-tarest.adb (Create_Restricted_Task): The dispatching domain using Ravenscar is always null. * s-taskin.ads, s-taskin.adb (Initialize_ATCB): Set the domain to which the task has been allocated at creation time. * s-tporft.adb (Register_Foreign_Thread): A foreign task will not have a specific dispatching domain. * s-taprop-linux.adb, s-taprop-solaris.adb, s-taprop-vxworks.adb, s-taprop-mingw.adb (Create_Task): Check whether both Dispatching_Domain and CPU are specified for the task, and the CPU value is not contained within the range of processors for the domain. 2011-08-31 Vincent Celier <celier@adacore.com> * make.adb (Original_Gcc) : New constant String_Access. (Gnatmake): For VM targets, do not use VM version of the compiler if --GCC= has been specified. 2011-08-31 Thomas Quinot <quinot@adacore.com> * sem_ch5.adb: Minor reformatting. 2011-08-31 Ed Schonberg <schonberg@adacore.com> * exp_pakd.adb (Convert_To_PAT_Type): If prefix is a function call, do not reanalyze it. 2011-08-31 Bob Duff <duff@adacore.com> * exp_ch4.adb (Expand_N_Selected_Component): Use the full type, in case the access type is private; we don't care about privacy in expansion. 2011-08-31 Ed Schonberg <schonberg@adacore.com> * sem_aggr.adb (Resolve_Aggregate): In an instance, ignore aggregate subcomponents tnat may be limited, because they originate in view conflicts. If the original aggregate is legal and the actuals are legal, the aggregate itself is legal. From-SVN: r178371
Diffstat (limited to 'gcc/ada/make.adb')
-rw-r--r--gcc/ada/make.adb28
1 files changed, 21 insertions, 7 deletions
diff --git a/gcc/ada/make.adb b/gcc/ada/make.adb
index c7e1d07..13777bb 100644
--- a/gcc/ada/make.adb
+++ b/gcc/ada/make.adb
@@ -671,7 +671,12 @@ package body Make is
-- Compiler, Binder & Linker Data and Subprograms --
----------------------------------------------------
- Gcc : String_Access := Program_Name ("gcc", "gnatmake");
+ Gcc : String_Access := Program_Name ("gcc", "gnatmake");
+ Original_Gcc : constant String_Access := Gcc;
+ -- Original_Gcc is used to check if Gcc has been modified by a switch
+ -- --GCC=, so that for VM platforms, it is not modified again, as it can
+ -- result in incorrect error messages if the compiler cannot be found.
+
Gnatbind : String_Access := Program_Name ("gnatbind", "gnatmake");
Gnatlink : String_Access := Program_Name ("gnatlink", "gnatmake");
-- Default compiler, binder, linker programs
@@ -5973,10 +5978,6 @@ package body Make is
Gnatlink := Saved_Gnatlink;
end if;
- Gcc_Path := GNAT.OS_Lib.Locate_Exec_On_Path (Gcc.all);
- Gnatbind_Path := GNAT.OS_Lib.Locate_Exec_On_Path (Gnatbind.all);
- Gnatlink_Path := GNAT.OS_Lib.Locate_Exec_On_Path (Gnatlink.all);
-
Bad_Compilation.Init;
-- If project files are used, create the mapping of all the sources, so
@@ -6068,16 +6069,29 @@ package body Make is
-- instead.
Check_Object_Consistency := False;
- Gcc := new String'("jvm-gnatcompile");
+
+ -- Do not modify Gcc is --GCC= was specified
+
+ if Gcc = Original_Gcc then
+ Gcc := new String'("jvm-gnatcompile");
+ end if;
when Targparm.CLI_Target =>
- Gcc := new String'("dotnet-gnatcompile");
+ -- Do not modify Gcc is --GCC= was specified
+
+ if Gcc = Original_Gcc then
+ Gcc := new String'("dotnet-gnatcompile");
+ end if;
when Targparm.No_VM =>
raise Program_Error;
end case;
end if;
+ Gcc_Path := GNAT.OS_Lib.Locate_Exec_On_Path (Gcc.all);
+ Gnatbind_Path := GNAT.OS_Lib.Locate_Exec_On_Path (Gnatbind.all);
+ Gnatlink_Path := GNAT.OS_Lib.Locate_Exec_On_Path (Gnatlink.all);
+
-- If we have specified -j switch both from the project file
-- and on the command line, the one from the command line takes
-- precedence.