home | list info | list archive | date index | thread index

Re: possible race condition in makefile with multiple dependencies?

  • Subject: Re: possible race condition in makefile with multiple dependencies?
  • From: Spencer Cheng <scheng [ at ] aotera [ dot ] org>
  • Date: Thu, 3 Jun 2021 10:54:38 -0400

> On Jun 3, 2021, at 10:27, Robert P. J. Day <rpjday [ at ] crashcourse [ dot ] ca> wrote:
> 
>> 
>> Shouldn't be.  My understanding (which may be wrong) is that make
>> calculates the dependency graph first, not in parallel.  Then it
>> executes as many parallel tasks as the -j option asks for, or that
>> make sense... whichever is smaller.  Since the dependency graph is a
>> DAG, make should, in theory, be smart enough to see that two
>> dependencies depend on the same node and run only one job to build
>> the depended-upon node.
>> 
>> I routinely use "make -j `nproc`" and have never run into any
>> issues.
> 
> this was my understanding as well, i just wanted to hear some
> confirmation from someone else.


Diane is correct. As long as the dependency graph is specified properly in the Makefile, make -j should work fine. 

I have ran make -j for ffmpeg and x265 on an AMD EPYC server with 128 threads. Amazing how fast a build can be and how much RAM can be sucked up with a few hundred compiles stacked up waiting to run.

/sc


To unsubscribe send a blank message to linux+unsubscribe [ at ] linux-ottawa [ dot ] org
To get help send a blank message to linux+help [ at ] linux-ottawa [ dot ] org
To visit the archives: https://lists.linux-ottawa.org