summaryrefslogtreecommitdiff
path: root/gcc/ada/gnat1drv.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2011-08-04 10:26:59 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2011-08-04 10:26:59 +0200
commita0fb8fe8d90fee970854a3e9b72d0c5ba9f4149a (patch)
tree9ce25e16327608ef6243ca6ccd5339febb356438 /gcc/ada/gnat1drv.adb
parent9534ab171e71fa56c4b384c5984d0d457f2eb55d (diff)
downloadgcc-a0fb8fe8d90fee970854a3e9b72d0c5ba9f4149a.tar.gz
[multiple changes]
2011-08-04 Pascal Obry <obry@adacore.com> * adaint.c (__gnat_tmp_name): Use current process id to create temp filenames, this ensures unicity of filenames across processes. 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com> * bindgen.adb (Gen_Finalize_Library_Ada): Rename generated routine Raise_Controlled to Raise_From_Controlled_Operation. Update the signature of Raise_From_Controlled_Operation by adding flag From_Abort. Add False as the actual to From_Abort in the generated call to Raise_From_Controlled_Operation. 2011-08-04 Jerome Lambourg <lambourg@adacore.com> * osint-c.ads, osint-c.adb (Set_Library_Info_Name): Move to declaration so that the ali file name can be retrieved from outside of this package. * back_end.ads, back_end.adb (Gen_Or_Update_Object_File): New method doing nothing in the general case, but used to update the object file timestamp if directly generated by the backend. * gnat1drv.adb (Gnat1drv): Make sure the object file's timestamp is set to a later time than the ali file one. From-SVN: r177329
Diffstat (limited to 'gcc/ada/gnat1drv.adb')
-rw-r--r--gcc/ada/gnat1drv.adb13
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ada/gnat1drv.adb b/gcc/ada/gnat1drv.adb
index 43362771496..dcff866229b 100644
--- a/gcc/ada/gnat1drv.adb
+++ b/gcc/ada/gnat1drv.adb
@@ -1047,6 +1047,19 @@ begin
Write_ALI (Object => (Back_End_Mode = Generate_Object));
+ if not Compilation_Errors then
+ -- In case of ada backends, we need to make sure that the generated
+ -- object file has a timestamp greater than the ALI file.
+ -- We do this to make gnatmake happy when checking the ALI and obj
+ -- timestamps, where it expects the object file being written after
+ -- the ali file.
+ -- Gnatmake's assumption is true for gcc platforms where the gcc
+ -- wrapper needs to call the assembler after calling gnat1, but is
+ -- not true for ada backends, where the object files are created
+ -- directly by gnat1 (so are created before the ali file).
+ Back_End.Gen_Or_Update_Object_File;
+ end if;
+
-- Generate ASIS tree after writing the ALI file, since in ASIS mode,
-- Write_ALI may in fact result in further tree decoration from the
-- original tree file. Note that we dump the tree just before generating