Subject: Re: [Boost-build] Dependencies dropped during concurrent builds
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2013-10-31 17:50:46
On 10/31/2013 10:31 AM, Nogradi, Chris wrote:
> On Thursday, October 31, 2013 10:51 AM, Steven Watanabe wrote:
>> Can $(targets) ever have more than one target here?
>> If so, then the problem is definitely the JAM_SEMAPHORE. (gen_files now
>> waits until all its targets are ready to update. JAM_SEMAPHORE prevents
>> more than one target from being ready at the same time.). Ugh. I'm going
>> to have to rewrite the semaphore code, too.
> Yes it always does have 4 targets. However, I am going to remove this hack once your fix works. The above was only need to reduce the targets from 30 x 4 to 4 to reduce the likelihood of seeing the problem.
I've fixed the problem with JAM_SEMAPHORE. It's
still a serious bug, even if it won't affect you
in the end.
>>> However if I now try to build one of the dlls, it actually builds it (-
>> d+12 attached in out file). Then if I invoke the entire build, it
>> actually finishes and produces all the dlls and the final exe (out2
>>> Thanks for your help diagnosing this.
>> It looks like the problem is sys_resource.dll.
>> Is there anything unusual about this dll?
> I am looking into it more. The dll is actually referenced by other dlls. The dll also depends on other custom generated files. I'll try to strip it down some more but I am not sure what I am looking for.
The fact that it updates correctly when you build another
dll, but fails when building everything indicates that
the problem is somehow created by having multiple references
to some file. There are couple of more bugs that I've
thought of, but AFAICT, they should cause "target xxx has bad fate: 0",
not dropping targets silently.
Hmmm. One thing to check (for the command that doesn't
update anything, immediately after a full build.):
b2 ... -d+13 | grep sys_resource
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