summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog13
-rw-r--r--doc/make.texi5
-rw-r--r--po/ChangeLog5
-rw-r--r--po/LINGUAS4
-rw-r--r--remake.c17
-rw-r--r--tests/ChangeLog13
-rw-r--r--tests/scripts/features/parallelism14
-rw-r--r--tests/scripts/targets/SECONDARY64
8 files changed, 127 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 9c9ed3a..fa6847d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2007-08-15 Paul Smith <psmith@gnu.org>
+
+ * 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 <savannah@icarus.freeuk.com>
+
+ * 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 <psmith@gnu.org>
* file.c (expand_deps): Use variable_buffer as the start of the
diff --git a/doc/make.texi b/doc/make.texi
index d6cfc3c..c30e794 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 cf7defe..46a61cf 100644
--- a/po/ChangeLog
+++ b/po/ChangeLog
@@ -1,3 +1,8 @@
+2007-08-15 Paul Smith <psmith@gnu.org>
+
+ * LINGUAS: The Kinyarwanda (rw) translation has disappeared from
+ the translation site, so remove it.
+
2006-01-28 Paul D. Smith <psmith@gnu.org>
* LINGUAS: Added new translation for Vietnamese (vi).
diff --git a/po/LINGUAS b/po/LINGUAS
index 3f0c531..1fff63a 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 6168d29..d1cf702 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 6e53dc7..9a515a3 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,16 @@
+2007-08-15 Paul Smith <psmith@gnu.org>
+
+ These test cases were contributed by
+ Icarus Sparry <savannah@icarus.freeuk.com> 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 <psmith@gnu.org>
Install a timeout so tests can never loop infinitely.
diff --git a/tests/scripts/features/parallelism b/tests/scripts/features/parallelism
index 432c088..11102f2 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 cf580b5..c954ee9 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;