[Scons-users] Bug MD5-timestamp and --debug=explain

orenaud at coventor.com orenaud at coventor.com
Wed Jun 3 05:46:01 EDT 2020


Hi,

I observe a strange behavior of --debug=explain, when the MD5-timestamp decider is used. When I change a single file, --debug=explain marks all the "sibling" dependencies as "changed". It does not affect the build itself though, as expected only the necessary files are recompiled.

Consider this SConstruct:

Decider('MD5-timestamp')
Program('hello', 'hello.c')


And the hello.c:

int main(int argc, char** argv) {
    return 0;
}


If I run scons, modify hello.c, and run scons -Q --debug=explain, I get:

scons: rebuilding `hello.obj' because:
           `hello.c' changed
           `C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64\cl.EXE' changed
cl /Fohello.obj /c hello.c /nologo
hello.c
scons: rebuilding `hello.exe' because:
           `hello.obj' changed
           `C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64\link.EXE' changed
link /nologo /OUT:hello.exe hello.obj


Here, cl.exe is marked as changed. But if there was a .h that the .c included, it would be marked as changed too. Only MD5-timestamp causes this problem, the other deciders work correctly.

This is with SCons 3.1.2. Tested with python 2.7 and 3.6.

Olivier Renaud
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20200603/5d56b623/attachment.html>


More information about the Scons-users mailing list