Boost logo

Boost-Build :

From: Rene Rivera (grafik666_at_[hidden])
Date: 2002-11-22 09:19:02


[2002-11-22] Vladimir Prus wrote:

>Rene Rivera wrote:
>> [2002-11-21] Vladimir Prus wrote:
>>
>>
>>>I commonly use "-j 4" flag to bjam, because it's possible to
>>>distribute compilation to four machines. Unfortunately, linking
>>>is not distributed, and this seems affecting performance ---
>>>those four linkers are all accessing the same drive.
>>>
>>>To overcome this, I plan to adopt the extension described in
>>>
>>>http://maillist.perforce.com/pipermail/jamming/2002-April/001667.html
>>>
>>>which allows to serialize executing of certain build actions.
>>>
>>>Are there any objections?
>>
>>
>> I don't see how this can solve your problem.
>
>Simply: it'll make only one linking working at the time.
>
>> How is it that the linking is not distributed?
>
>Because I'm using distcc for distributing compilation. It preprocesses
>sources and sends them for compilation to other hosts. But linking is
>still done locally.

Got it... so the problem is that you have multiple links going on in your
local machine. I can see why that would be slow ;-)

So I understand how the semaphore would fix this. About the only suggestion
I have is to name the variable "SEMAPHORE" not "JAM_SEMAPHORE". That way it
fits with things like SEARCH and LOCATE.

>>>If not, I've a question to Rene. I need to skip targets for which the
>>>corresponding semaphore is locked. I.e. instead of extracting it from
>>>stack and processing, I'd like to put it to the end of stack. Which way
is
>>>best? Should I simply store a pointer to the last state?
>>
>>
>> Here I don't think that will work. If you put it at the end of the stack
>> won't that make it break the build dependency order?
>
>Why, no. You can't build things before it's dependencies are built, but you
>can delay building.

The reason I thought that it would break things is that AFAIK it's one stack
and it's populated in recursive order... and the stack doesn't do any
dependency checking, so moving things in it would be problematic. But I'm
probably wrong :-]

-- grafik - Don't Assume Anything
-- rrivera_at_[hidden] - grafik_at_[hidden]
-- 102708583_at_icq - Grafik666_at_AIM - Grafik_at_[hidden]

 


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk