[m-rev.] for review: bootcheck using `mmc --make'

Simon Taylor stayl at cs.mu.OZ.AU
Thu Jun 20 16:23:24 AEST 2002


On 20-Jun-2002, Simon Taylor <stayl at cs.mu.OZ.AU> wrote:
> On 20-Jun-2002, Fergus Henderson <fjh at cs.mu.OZ.AU> wrote:
> > On 20-Jun-2002, Simon Taylor <stayl at cs.mu.OZ.AU> wrote:
> > > 
> > > compiler/Mmakefile:
> > > tools/bootcheck:
> > > tools/binary_step:
> > > 	`mmc --make' doesn't handle `<module>_init.c' targets, so
> > > 	don't make the `cs' target depend on `top_level_init.c'.
> > > 	As far as I can tell, that dependency is only present so
> > > 	that the stage2 and stage3 compilers have the same set of
> > > 	C files. bootcheck and binary_step now only compare `.c'
> > > 	files which are present in the stage3 directory.
> > 
> > The cs target should include all the .c files.
> > 
> > If you want a variable or target named "cs_except_for_init_cs",
> > that would be OK; but defining the "cs" target so that it doesn?t
> > include all the .c files is asking for trouble, IMHO.
> 
> The top_level.cs variable doesn't include top_level_init.c,
> so my change is consistent with existing practice.

diff -u compiler/Mmakefile compiler/Mmakefile
--- compiler/Mmakefile
+++ compiler/Mmakefile
@@ -246,6 +246,7 @@
 
 #-----------------------------------------------------------------------------#
 
+# Note that the cs and os targets don't build top_level_init.{c,o}
 .PHONY: os cs ss
 ifeq ($(USE_MMC_MAKE),no)
 os: $($(MC_PROG).os)
diff -u tools/binary_step tools/binary_step
--- tools/binary_step
+++ tools/binary_step
@@ -317,6 +317,9 @@
 		cat /dev/null > $outfile
 		for dir in library compiler
 		do
+			# `mmake cs' in the compiler directory doesn't build
+			# `top_level_init.c', so we only compare the `.c'
+			# files present in the stage3 directory.
 			for stage3file in stage3/$dir/*.c
 			do
 				stage2file="stage2.$basis/$dir/`basename $file`"
diff -u tools/bootcheck tools/bootcheck
--- tools/bootcheck
+++ tools/bootcheck
@@ -823,6 +823,9 @@
 	fi
 
 	for dir in library browser compiler; do
+		# `mmake cs' in the compiler directory doesn't build
+		# `top_level_init.c', so we only compare the `.c'
+		# files present in the stage3 directory.
 		for file in stage3/$dir/${target_subdir}*.${target_ext}; do
 		    diff -u stage2/$dir/${cs_subdir}`basename $file` $file ||
 			diff_status=1
--------------------------------------------------------------------------
mercury-reviews mailing list
post:  mercury-reviews at cs.mu.oz.au
administrative address: owner-mercury-reviews at cs.mu.oz.au
unsubscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-reviews-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------



More information about the reviews mailing list