Subject: bin/1734: New parallel make behaves incorrectly and non-intuitively.
To: None <gnats-bugs@gnats.netbsd.org>
From: Jason Thorpe <thorpej@nas.nasa.gov>
List: netbsd-bugs
Date: 11/06/1995 15:41:42
>Number: 1734
>Category: bin
>Synopsis: New parallel make behaves incorrectly and non-intuitively.
>Confidential: no
>Severity: critical
>Priority: high
>Responsible: bin-bug-people (Utility Bug People)
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon Nov 6 18:50:01 1995
>Last-Modified:
>Originator: Jason Thorpe
>Organization:
Numerical Aerodynamic Simulation Project - NASA Ames
>Release: NetBSD 1.0A, of Nov 5, 1995
>Environment:
System: NetBSD antie 1.0A NetBSD 1.0A (ANTIE) #377: Mon Nov 6 11:56:55 PST 1995 thorpej@antie:/work/netbsd/src/sys/arch/i386/compile/ANTIE i386
>Description:
The new parallel make behaves in ways that are at best non-intuitive
and at worst incorrect.
>How-To-Repeat:
Go to the top of a NetBSD source tree, fresh, with no obj
directories, depend files, or objects. Type the following command:
% make -j 4 obj depend all
Watch as .depend files and objects are sometimes created before
the obj directories and other such weirdness.
Alternatively, go to your kernel build directory. Type:
% make clean depend all
Watch as new objects begin to appear before the clean is finished.
>Fix:
Make should process targets on the command line in order, regardless
of whether or not it is operating in parallel mode. Additionally,
it is arguable that when the `-j N' option is not used, make should
behave in it's traditional manner. I.e., the following:
foo: bar zap
should be processed in that order _without_ requiring the additional
dependency:
zap: bar
If nothing else, this provides a measure of sanity for those
packages external to NetBSD which are not expecting this
non-intuitive and incorrect behavior.
>Audit-Trail:
>Unformatted: