summaryrefslogtreecommitdiff
path: root/src/filedef.h
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2018-08-04 19:07:59 -0400
committerPaul Smith <psmith@gnu.org>2018-08-04 19:07:59 -0400
commit05769ca009e630c1989f29ca8cb9d0ec4cf2a8d8 (patch)
tree930594c7ab5747b3efc2060214d498216bd21547 /src/filedef.h
parente2234bc1abe13bf3e3c4eb003b19e4d3cce188f3 (diff)
downloadmake-git-05769ca009e630c1989f29ca8cb9d0ec4cf2a8d8.tar.gz
[SV 54233] Preserve higher command_state values on also_make targets.
If multiple pattern rules have the same pattern as also-make targets and we attempt to run them at the same time, we might downgrade the command state from 'running' to 'deps_running'; this will prevent that also_make from being considered complete causing make to wait forever for it to finish. Ensure that set_command_state never downgrades the state of a target. * src/file.c (set_command_state): Don't downgrade command_state. * src/filedef.h (struct file): Document the order prerequisite. * test/scripts/features/patternrules: Test the behavior.
Diffstat (limited to 'src/filedef.h')
-rw-r--r--src/filedef.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/filedef.h b/src/filedef.h
index 8af562a1..9d4b816f 100644
--- a/src/filedef.h
+++ b/src/filedef.h
@@ -68,7 +68,7 @@ struct file
us_question, /* Needs to be updated (-q is is set). */
us_failed /* Update failed. */
} update_status ENUM_BITFIELD (2);
- enum cmd_state /* State of the commands. */
+ enum cmd_state /* State of commands. ORDER IS IMPORTANT! */
{
cs_not_started = 0, /* Not yet started. Must be 0! */
cs_deps_running, /* Dep commands running. */