git: 9front

Download patch

ref: 2e2155d93d017318a135540c5975fc1780a35f4e
parent: 78b4f3f1d6762f9f0f712211df4451cf3e16ef0e
author: David Arroyo <david@arroyo.cc>
date: Sun Jan 25 01:57:25 EST 2026

mk: defer unpretended targets until all are unpretended

Mk will incorrectly run a multi-target recipe once for each target
that doesn't exist if it's needed by a target which is out of date
through a separate dependency. Fix it by deferring work until we
mark each prerequisite that needs to be built.

--- a/sys/src/cmd/mk/mk.c
+++ b/sys/src/cmd/mk/mk.c
@@ -157,7 +157,6 @@
 				a->n->name, node->name, ra->n? ra->n->name : "rule with no prerequisites");
 
 			unpretend(a->n);
-			did = work(a->n, node, a) || did;
 			ready = 0;
 		}
 	if(ready == 0)	/* try later unless nothing has happened for -k's sake */
--