[TEST] make -j patch [take 2]
Harti Brandt
harti at freebsd.org
Fri Nov 12 02:24:28 PST 2004
On Fri, 12 Nov 2004, Poul-Henning Kamp wrote:
PK>In message <20041112105437.T42945 at beagle.kn.op.dlr.de>, Harti Brandt writes:
PK>>On Fri, 12 Nov 2004, Poul-Henning Kamp wrote:
PK>>
PK>>PK>In message <20041112090905.GD41844 at ip.net.ua>, Ruslan Ermilov writes:
PK>>PK>
PK>>PK>>But you don't give an opportunity to control this on a sub-make
PK>>PK>>level (that's what I ask for).
PK>>PK>
PK>>PK>Why would that be of any use ? If you run "make universe" the task
PK>>PK>at hand is to get "make universe" to complete. You should not care
PK>>PK>which partcular submake starts how many jobs when, you should only
PK>>PK>care that it works as efficient as possible.
PK>>
PK>>A new make is not necessarily a sub-make in the sense as started by
PK>>$(MAKE). A make could also be started by, for example, an awk script or
PK>>whatever running from make and who's task has not directly to do with the
PK>>top make's task. Something like:
PK>
PK>And this will get correctly detected as long as the environment
PK>variable gets passed to the submake.
PK>
PK>>I'm not sure whether automatically putting the make started by portinstall
PK>>into the same group of makes as the top make is what one wants in such
PK>>cases.
PK>
PK>Can you explain just why you think it would be beneficial to have
PK>less control with the total load ?
It would actually give me _more_ control over make's behaviour. I could,
for example, build the tool with -j4, but run the tool with -j2. Suppose
that is a long running regression test that I don't want to occupy my
4 processor machine, but I want the tool for the test to build fast.
As a side note: The MAKEFLAGS variable has the same problem. If I specify
-n on the command line, it gets passed down to each and every make that is
started. This may or may not be the behaviour I actually want, but the
documentation of MAKEFLAGS makes me at least aware of that fact and lets
me control that aspect. This way I may patch out -n from MAKEFLAGS
before starting something that may start another make I want to execute
its commands in any case.
I think, that putting the environment variable into the man page would
just do the job.
I must admit, that I was somewhat surprised when I tested the patches that
removed the remote make stuff to see that with -j4 I sometimes got 12 or
more gccs. Your patch is actually very nice.
harti
More information about the freebsd-current
mailing list