help-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Gnu Make-Multiple Processes Question


From: Paul D. Smith
Subject: Re: Gnu Make-Multiple Processes Question
Date: Tue, 14 Jan 2003 17:55:52 -0500

%% address@hidden writes:

  t> Hello Everybody. I have a question about how the make utility
  t> reacts to multiple processes of make being spawned at the same time
  t> to do a "top-down" build. We are using gnu make version 3.78.1.

Please remember to specify what operating system you're using as well,
thanks!

In 3.78 a new "jobserver" feature was installed for those OS's that can
support it (that's why we need to know what system you're running on).
This feature enables multiple recursive invocations of make to all
communicate with one another and ensure that a maximum of N jobs (for
-jN) are running at the same time.

However, we were having a problem in that sometimes system calls like
stat() would fail with signals.  So, GNU make 3.80 introduced a new
method of signal handling which, according to the POSIX spec should keep
these issues from happening.

However now we've been seeing cases where operating systems like
Solaris, etc. are not adhering to the POSIX standard in this respect
when building on "slow" devices like NFS mounted partitions.  Other
OS's, like Linux, appear to work properly on both local and NFS disks.

So, the next version of GNU make will include some workarounds for
this.  But it's not done yet.

I can't be sure that this is the problem you're seeing.  Another problem
is that your makefiles are simply incorrectly structured (that is,
there's an implicit dependency relationship that works with fewer jobs
because they never happen to be building in parallel, but if you build
with more jobs then they might).

However, based on your description I'd tend to think it's the signal
problem: I recommend you upgrade to 3.80: although the problem is still
there in some circumstances it's not as noticeable _and_ when it does
happen you should see an error message generated, which is easier to
work with than random updates of unchanged files.

-- 
-------------------------------------------------------------------------------
 Paul D. Smith <address@hidden>          Find some GNU make tips at:
 http://www.gnu.org                      http://make.paulandlesley.org
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist




reply via email to

[Prev in Thread] Current Thread [Next in Thread]