diff options
| author | pk <pk@NetBSD.org> | 2002-02-07 16:48:22 +0000 |
|---|---|---|
| committer | pk <pk@NetBSD.org> | 2002-02-07 16:48:22 +0000 |
| commit | d5e7cd89bf3ce542d57f0cd14dbd9d21e3b7170b (patch) | |
| tree | 98f635625a42fb9aa990dc4a6b92e8a41a6d6d6b /gnu/usr.bin/diff/diff3.1 | |
| parent | ada5327a7a4a39e2e248d522b929011861fef483 (diff) | |
When making a node which is the source of both a .MADE target and a
normal target (the latter dependency being the reason why it's made),
the .MADE parent should not be put on the `toBeMade' list again (in
Make_Update()) since it was already put on it in Make_ExpandUse().
Doing so would cause the rules for the .MADE target to be executed
(at least) twice, and also mess up the unmade children count of _its_
parent, resulting in spurious graph cylce detection.
To achieve this, make sure the unmade children count of the .MADE target
is set to zero before enqueueing it on the `toBeMade' list in
Make_ExpandUse(). Then, in Make_Update(), check if the parent has the
.MADE attribute before diddling with the queue.
For the same reason the status of a node must not be set to UPTODATE
unconditionally in compat mode, since that will prevent the node from
being built even if it is the source of a normal target. Instead,
check both its state and the type of the parent to decide whether to
continue on behalf of the current parent.
Diffstat (limited to 'gnu/usr.bin/diff/diff3.1')
0 files changed, 0 insertions, 0 deletions
