[Scons-dev] please try latest default branch
Dirk Bächle
tshortik at gmx.de
Tue Feb 11 18:29:42 EST 2014
Hi Gary,
On 02.02.2014 23:13, Gary Oberbrunner wrote:
> HA -- got a small repro testcase!
>
> [...]
>
> Run that twice as "scons all-defuns.obj". The second time _shouldn't_
> rebuild anything, but it will re-run the Copy command. SCons 2.3.0
> correctly doesn't do anything the second time.
>
looks like I found a solution. The problem is that "changed()" gets
called in different contexts: not only within
make_ready_current/release_target_info after building a target, but also
during scanning with a call stack like this:
changed [FS.py:3052]
is_up_to_date [FS.py:3121]
current_check [__init__.py:309]
__call__ [__init__.py:203]
get_found_includes [FS.py:2684]
get_implicit_deps [__init__.py:586]
scan [Executor.py:474]
scan_sources [Executor.py:455]
Please find a patch attached and try it on your large build if you find
the time. I've added an "allowcache" argument to the "changed()" method,
that gets only set in the release_target_info path.
This let's your simple testcase pass on my side...
If you can confirm that this brings your build back to working properly,
I'd create a pull request for this fix.
Regards,
Dirk
-------------- next part --------------
A non-text attachment was scrubbed...
Name: defuns_rebuild.patch
Type: text/x-patch
Size: 1759 bytes
Desc: not available
Url : <http://two.pairlist.net/pipermail/scons-dev/attachments/20140212/cfc0e28e/attachment-0001.bin>
More information about the Scons-dev
mailing list