diff --git a/ChangeLog b/ChangeLog index 9c9ed3ae..fa6847d2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2007-08-15 Paul Smith + + * doc/make.texi (GNU Free Documentation License): The fdl.texi + file has had the section info removed, so add some to make.texi + before we include it. + +2007-08-15 Icarus Sparry + + * remake.c (check_dep): Reset the target state for intermediate + files. They might have been considered before but not updated + then (order-only for example) but they will be this time. + Fixes Savannah bug #'s 3330 and 15919. + 2007-07-13 Paul Smith * file.c (expand_deps): Use variable_buffer as the start of the diff --git a/doc/make.texi b/doc/make.texi index d6cfc3cc..c30e794c 100644 --- a/doc/make.texi +++ b/doc/make.texi @@ -11117,9 +11117,10 @@ tar.zoo: $(SRCS) $(AUX) @end group @end example -@raisesections +@node GNU Free Documentation License, Concept Index, Complex Makefile, Top +@appendixsec GNU Free Documentation License +@cindex FDL, GNU Free Documentation License @include fdl.texi -@lowersections @node Concept Index, Name Index, GNU Free Documentation License, Top @unnumbered Index of Concepts diff --git a/po/ChangeLog b/po/ChangeLog index cf7defe0..46a61cf2 100644 --- a/po/ChangeLog +++ b/po/ChangeLog @@ -1,3 +1,8 @@ +2007-08-15 Paul Smith + + * LINGUAS: The Kinyarwanda (rw) translation has disappeared from + the translation site, so remove it. + 2006-01-28 Paul D. Smith * LINGUAS: Added new translation for Vietnamese (vi). diff --git a/po/LINGUAS b/po/LINGUAS index 3f0c531c..1fff63a0 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -1,5 +1,5 @@ -# Set of available languages: 23 languages +# Set of available languages: 22 languages -be da de es fi fr ga gl he hr id ja ko nl pl pt_BR ru rw sv tr uk vi zh_CN +be da de es fi fr ga gl he hr id ja ko nl pl pt_BR ru sv tr uk vi zh_CN # Can't seem to get en@quot and en@boldquot to build properly? diff --git a/remake.c b/remake.c index 6168d29e..d1cf7023 100644 --- a/remake.c +++ b/remake.c @@ -982,6 +982,12 @@ check_dep (struct file *file, unsigned int depth, necessary, and see whether any of them is more recent than the file on whose behalf we are checking. */ struct dep *lastd; + int deps_running = 0; + + /* Reset this target's state so that we check it fresh. It could be + that it's already been checked as part of an order-only + prerequisite and so wasn't rebuilt then, but should be now. */ + set_command_state (file, cs_not_started); lastd = 0; d = file->deps; @@ -1020,14 +1026,17 @@ check_dep (struct file *file, unsigned int depth, if (d->file->command_state == cs_running || d->file->command_state == cs_deps_running) - /* Record that some of FILE's deps are still being made. - This tells the upper levels to wait on processing it until - the commands are finished. */ - set_command_state (file, cs_deps_running); + deps_running = 1; lastd = d; d = d->next; } + + if (deps_running) + /* Record that some of FILE's deps are still being made. + This tells the upper levels to wait on processing it until the + commands are finished. */ + set_command_state (file, cs_deps_running); } } diff --git a/tests/ChangeLog b/tests/ChangeLog index 6e53dc77..9a515a3a 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,16 @@ +2007-08-15 Paul Smith + + These test cases were contributed by + Icarus Sparry and J. David Bryan for + Savannah bugs #3330 and #15919. + + * scripts/targets/SECONDARY: Add tests for Savannah bugs 3330 and + 15919. + + * scripts/features/parallelism: Add tests for wrong answer/hang + combining INTERMEDIATE, order-only prereqs, and parallelism. + See Savannah bugs 3330 and 15919. + 2007-07-13 Paul Smith Install a timeout so tests can never loop infinitely. diff --git a/tests/scripts/features/parallelism b/tests/scripts/features/parallelism index 432c0889..11102f24 100644 --- a/tests/scripts/features/parallelism +++ b/tests/scripts/features/parallelism @@ -127,6 +127,20 @@ mod_a.o mod_b.o: ', '-j2', ''); +# TEST #9 -- Savannah bugs 3330 and 15919 +# In earlier versions of make this will either give the wrong answer, or hang. + +utouch(-10, 'target'); +run_make_test('target: intermed ; touch $@ + +.INTERMEDIATE: intermed +intermed: | phony ; touch $@ + +.PHONY: phony +phony: ; : phony', '-rR -j', ': phony'); +unlink('target'); + + # Make sure that all jobserver FDs are closed if we need to re-exec the # master copy. # diff --git a/tests/scripts/targets/SECONDARY b/tests/scripts/targets/SECONDARY index cf580b5c..c954ee9a 100644 --- a/tests/scripts/targets/SECONDARY +++ b/tests/scripts/targets/SECONDARY @@ -121,5 +121,69 @@ all: version2', unlink('version2'); +# TEST #9 -- Savannah bug #15919 +# The original fix for this bug caused a new bug, shown here. + +touch(qw(1.a 2.a)); + +run_make_test(' +%.c : %.b ; cp $< $@ +%.b : %.a ; cp $< $@ +all : 1.c 2.c', '-rR -j', +'cp 1.a 1.b +cp 2.a 2.b +cp 1.b 1.c +cp 2.b 2.c +rm 1.b 2.b'); + +unlink(qw(1.a 2.a 1.c 2.c)); + +# TEST #10 -- Savannah bug #15919 +touch('test.0'); +run_make_test(' +.SECONDARY : test.1 test.2 test.3 + +test : test.4 + +%.4 : %.int %.3 ; touch $@ + +%.int : %.3 %.2 ; touch $@ + +%.3 : | %.2 ; touch $@ + +%.2 : %.1 ; touch $@ + +%.1 : %.0 ; touch $@', '-rR -j 2', +'touch test.1 +touch test.2 +touch test.3 +touch test.int +touch test.4 +rm test.int'); + +# After a touch of test.0 it should give the same output, except we don't need +# to rebuild test.3 (order-only) +sleep(1); +touch('test.0'); +run_make_test(undef, '-rR -j 2', +'touch test.1 +touch test.2 +touch test.int +touch test.4 +rm test.int'); + +# With both test.0 and test.3 updated it should still build everything except +# test.3 +sleep(1); +touch('test.0', 'test.3'); +run_make_test(undef, '-rR -j 2', +'touch test.1 +touch test.2 +touch test.int +touch test.4 +rm test.int'); + +unlink(qw(test.0 test.1 test.2 test.3 test.4)); + # This tells the test driver that the perl test script executed properly. 1;