Discussion:
[Scons-users] Interactive mode on windows : cl : Command line error D8003 : missing source filename
Pierre-Luc Boily
2018-07-18 13:39:33 UTC
Permalink
Hello!

scons : 3.0.1
python : 3.5.4
visual studio : 2010
windows : 10

I know this questions has been already asked before by myself and also by
other people
<http://scons.1086193.n5.nabble.com/Interactive-Mode-on-Windows-td38298.html>
, but I cannot find a resolution yet.

For our project, a typical library incremental build with scons takes 13
seconds. With scons interactive mode, it takes less that 0.04 seconds!! As
you can see, interactive mode helps a lot.

Fortunately, the problem is only on windows, and it looks like it is a known
problem with windows compilation, see there
<https://social.msdn.microsoft.com/Forums/vstudio/en-US/f40706e5-854c-4ec8-8346-7fe5e5621749/get-error-quotcl-command-line-error-d8003-missing-source-filenamequot-when-trying-to-compile?forum=msbuild>
and there
<https://stackoverflow.com/questions/16677020/command-line-error-d8003-missing-source-filename-when-linking>
.

I would be happy to help, any advice where to look on scons code?

Thx



--
Sent from: http://scons.1086193.n5.nabble.com/Users-f16930.html
Bill Deegan
2018-07-18 18:41:24 UTC
Permalink
Can you provide a small reproducer?
Also the output you see with scons --debug=presub?

_Bill
Post by Pierre-Luc Boily
Hello!
scons : 3.0.1
python : 3.5.4
visual studio : 2010
windows : 10
I know this questions has been already asked before by myself and also by
other people
<http://scons.1086193.n5.nabble.com/Interactive-Mode-
on-Windows-td38298.html>
, but I cannot find a resolution yet.
For our project, a typical library incremental build with scons takes 13
seconds. With scons interactive mode, it takes less that 0.04 seconds!!
As
you can see, interactive mode helps a lot.
Fortunately, the problem is only on windows, and it looks like it is a known
problem with windows compilation, see there
<https://social.msdn.microsoft.com/Forums/vstudio/
en-US/f40706e5-854c-4ec8-8346-7fe5e5621749/get-error-quotcl-
command-line-error-d8003-missing-source-filenamequot-
when-trying-to-compile?forum=msbuild>
and there
<https://stackoverflow.com/questions/16677020/command-
line-error-d8003-missing-source-filename-when-linking>
.
I would be happy to help, any advice where to look on scons code?
Thx
--
Sent from: http://scons.1086193.n5.nabble.com/Users-f16930.html
_______________________________________________
Scons-users mailing list
https://pairlist4.pair.net/mailman/listinfo/scons-users
Pierre-Luc Boily
2018-07-19 14:53:08 UTC
Permalink
Ok, I'll be back later with that. It might take a while, our code base is
huge. I'll try to prune something that will be easy to test.



--
Sent from: http://scons.1086193.n5.nabble.com/Users-f16930.html
Bill Deegan
2018-07-19 18:38:22 UTC
Permalink
Thanks!
That'll make it much easier to resolve.
Post by Pierre-Luc Boily
Ok, I'll be back later with that. It might take a while, our code base is
huge. I'll try to prune something that will be easy to test.
--
Sent from: http://scons.1086193.n5.nabble.com/Users-f16930.html
_______________________________________________
Scons-users mailing list
https://pairlist4.pair.net/mailman/listinfo/scons-users
Pierre-Luc Boily
2018-07-23 19:31:10 UTC
Permalink
Finally it was easier than i thought to reproduce the bug. Created empty
classes and that's it.

See the output with desired traces :

scons>>>
build --debug=presub
scons: Building targets ...
Building build\src\debug\win32\Tools.obj with action:
${TEMPFILE("$CXX $_MSVC_OUTPUT_FLAG /c $CHANGED_SOURCES $CXXFLAGS $CCFLAGS
$_CCCOMCOM","$CXXCOMSTR")}
cl /Fobuild\src\debug\win32\Tools.obj /c /TP /nologo /FC -Od -D_DEBUG -RTC1
-MDd -Z7 -DBOOST_FILESYSTEM_VERSION=2 -DWIN32 -D_WIN32 -DWINDOWS -D_MBCS
-DNOMINMAX -D_MSC_VER=1600 -D_WIN32_WINNT=0x0501 -D_CRT_SECURE_NO_WARNINGS
-W3 -nologo -GS -GR -EHa -wd4290 -wd4996 -wd4995 -TP /ILINK\include
/Ibuild\src /Isrc
cl : Command line error D8003 : missing source filename
scons: *** [build\src\debug\win32\Tools.obj] Error 2

Follow link to my project : test_scons.zip
<http://scons.1086193.n5.nabble.com/file/t2737/test_scons.zip>



--
Sent from: http://scons.1086193.n5.nabble.com/Users-f16930.html
Bill Deegan
2018-07-23 20:14:42 UTC
Permalink
It's likely this:
$CHANGED_SOURCES

Can you run again with --debug=explain?
-Bill

On Mon, Jul 23, 2018 at 12:31 PM, Pierre-Luc Boily <
Post by Pierre-Luc Boily
Finally it was easier than i thought to reproduce the bug. Created empty
classes and that's it.
scons>>>
build --debug=presub
scons: Building targets ...
${TEMPFILE("$CXX $_MSVC_OUTPUT_FLAG /c $CHANGED_SOURCES $CXXFLAGS $CCFLAGS
$_CCCOMCOM","$CXXCOMSTR")}
cl /Fobuild\src\debug\win32\Tools.obj /c /TP /nologo /FC -Od -D_DEBUG -RTC1
-MDd -Z7 -DBOOST_FILESYSTEM_VERSION=2 -DWIN32 -D_WIN32 -DWINDOWS -D_MBCS
-DNOMINMAX -D_MSC_VER=1600 -D_WIN32_WINNT=0x0501 -D_CRT_SECURE_NO_WARNINGS
-W3 -nologo -GS -GR -EHa -wd4290 -wd4996 -wd4995 -TP /ILINK\include
/Ibuild\src /Isrc
cl : Command line error D8003 : missing source filename
scons: *** [build\src\debug\win32\Tools.obj] Error 2
Follow link to my project : test_scons.zip
<http://scons.1086193.n5.nabble.com/file/t2737/test_scons.zip>
--
Sent from: http://scons.1086193.n5.nabble.com/Users-f16930.html
_______________________________________________
Scons-users mailing list
https://pairlist4.pair.net/mailman/listinfo/scons-users
Pierre-Luc Boily
2018-07-23 20:51:20 UTC
Permalink
scons>>>
build
scons: Building targets ...
scons: rebuilding `build\src\debug\win32\Tools.obj' because `src\Tools.cpp'
changed
cl /Fobuild\src\debug\win32\Tools.obj /c /TP /nologo /FC -Od -D_DEBUG -RTC1
-MDd -Z7 -DBOOST_FILESYSTEM_VERSION=2 -DWIN32 -D_WIN32 -DWINDOWS -D_MBCS
-DNOMINMAX -D_MSC_VER=1600 -D_WIN32_WINNT=0x0501 -D_CRT_SECURE_NO_WARNINGS
-W3 -nologo -GS -GR -EHa -wd4290 -wd4996 -wd4995 -TP /ILINK\include
/Ibuild\src /Isrc
cl : Command line error D8003 : missing source filename
scons: *** [build\src\debug\win32\Tools.obj] Error 2
scons: building terminated because of errors.
scons: Clearing cached node information ...
scons: done clearing node information.

Could it be related with variant dir? I am using same logic for ou
centos6.7 platform, without any problem (so far).

I the example above, "build\src\debug\" is the variant dir given to the
SConscript. Then, Library is invoked this way "Library("win32\Tools.obj",
[the_source)"]



--
Sent from: http://scons.1086193.n5.nabble.com/Users-f16930.html
Pierre-Luc Boily
2018-07-23 20:55:49 UTC
Permalink
Ok, I can see the problem. Sometime, no file follows the /c parameter!!!
Why?



--
Sent from: http://scons.1086193.n5.nabble.com/Users-f16930.html
Pierre-Luc Boily
2018-07-23 21:08:14 UTC
Permalink
It is already documented there, problem might be from Executor.py. I'll
start there.



--
Sent from: http://scons.1086193.n5.nabble.com/Users-f16930.html
Pierre-Luc Boily
2018-07-23 21:08:32 UTC
Permalink
It is already documented there :
http://scons.tigris.org/issues/show_bug.cgi?id=3029, problem might be from
Executor.py. I'll start there.



--
Sent from: http://scons.1086193.n5.nabble.com/Users-f16930.html
Mats Wichmann
2018-07-23 21:15:20 UTC
Permalink
Post by Pierre-Luc Boily
http://scons.tigris.org/issues/show_bug.cgi?id=3029, problem might be from
Executor.py. I'll start there.
by the way, use this link, the bugtracker transitioned:

https://github.com/scons/scons/issues/3029
Bill Deegan
2018-07-23 21:46:20 UTC
Permalink
Try changing "CHANGED_SOURCES" to "SOURCES"

Here:
src/engine/SCons/Tool/msvc.py: env['CCCOM'] = '${TEMPFILE("$CC
$_MSVC_OUTPUT_FLAG /c $CHANGED_SOURCES $CFLAGS $CCFLAGS
$_CCCOMCOM","$CCCOMSTR")}'
src/engine/SCons/Tool/msvc.py: env['SHCCCOM'] = '${TEMPFILE("$SHCC
$_MSVC_OUTPUT_FLAG /c $CHANGED_SOURCES $SHCFLAGS $SHCCFLAGS
$_CCCOMCOM","$SHCCCOMSTR")}'
src/engine/SCons/Tool/msvc.py: env['CXXCOM'] = '${TEMPFILE("$CXX
$_MSVC_OUTPUT_FLAG /c $CHANGED_SOURCES $CXXFLAGS $CCFLAGS
$_CCCOMCOM","$CXXCOMSTR")}'
src/engine/SCons/Tool/msvc.py: env['SHCXXCOM'] = '${TEMPFILE("$SHCXX
$_MSVC_OUTPUT_FLAG /c $CHANGED_SOURCES $SHCXXFLAGS $SHCCFLAGS
$_CCCOMCOM","$SHCXXCOMSTR")}'
Post by Mats Wichmann
Post by Pierre-Luc Boily
http://scons.tigris.org/issues/show_bug.cgi?id=3029, problem might be
from
Post by Pierre-Luc Boily
Executor.py. I'll start there.
https://github.com/scons/scons/issues/3029
_______________________________________________
Scons-users mailing list
https://pairlist4.pair.net/mailman/listinfo/scons-users
Bill Deegan
2018-07-23 21:47:10 UTC
Permalink
Note these only come into play for msvc. This was to support batched
compiles as it (used to be) much faster for msvc compiles. (Not sure if
that still applies)
Post by Bill Deegan
Try changing "CHANGED_SOURCES" to "SOURCES"
src/engine/SCons/Tool/msvc.py: env['CCCOM'] = '${TEMPFILE("$CC
$_MSVC_OUTPUT_FLAG /c $CHANGED_SOURCES $CFLAGS $CCFLAGS
$_CCCOMCOM","$CCCOMSTR")}'
src/engine/SCons/Tool/msvc.py: env['SHCCCOM'] = '${TEMPFILE("$SHCC
$_MSVC_OUTPUT_FLAG /c $CHANGED_SOURCES $SHCFLAGS $SHCCFLAGS
$_CCCOMCOM","$SHCCCOMSTR")}'
src/engine/SCons/Tool/msvc.py: env['CXXCOM'] = '${TEMPFILE("$CXX
$_MSVC_OUTPUT_FLAG /c $CHANGED_SOURCES $CXXFLAGS $CCFLAGS
$_CCCOMCOM","$CXXCOMSTR")}'
src/engine/SCons/Tool/msvc.py: env['SHCXXCOM'] = '${TEMPFILE("$SHCXX
$_MSVC_OUTPUT_FLAG /c $CHANGED_SOURCES $SHCXXFLAGS $SHCCFLAGS
$_CCCOMCOM","$SHCXXCOMSTR")}'
Post by Mats Wichmann
Post by Pierre-Luc Boily
http://scons.tigris.org/issues/show_bug.cgi?id=3029, problem might be
from
Post by Pierre-Luc Boily
Executor.py. I'll start there.
https://github.com/scons/scons/issues/3029
_______________________________________________
Scons-users mailing list
https://pairlist4.pair.net/mailman/listinfo/scons-users
Pierre-Luc Boily
2018-07-25 13:41:31 UTC
Permalink
Thx a lot Bill, this resolved the problem.

But to be honest, I don`t know what is a "batched compiles". You say it is
for faster msvc compiles?

I don't know if this is needed for us. Last year, we completed the
migration of our cygwin/make system to scons. For windows, our build time
from a clean check out went from 1 hour to 17-18 minutes. It is crazy. But
I am always looking to make things faster =)
Post by Bill Deegan
Note these only come into play for msvc. This was to support batched
compiles as it (used to be) much faster for msvc compiles. (Not sure if
that still applies)
On Mon, Jul 23, 2018 at 2:46 PM, Bill Deegan &lt;
&gt;
Post by Bill Deegan
Try changing "CHANGED_SOURCES" to "SOURCES"
src/engine/SCons/Tool/msvc.py: env['CCCOM'] = '${TEMPFILE("$CC
$_MSVC_OUTPUT_FLAG /c $CHANGED_SOURCES $CFLAGS $CCFLAGS
$_CCCOMCOM","$CCCOMSTR")}'
src/engine/SCons/Tool/msvc.py: env['SHCCCOM'] = '${TEMPFILE("$SHCC
$_MSVC_OUTPUT_FLAG /c $CHANGED_SOURCES $SHCFLAGS $SHCCFLAGS
$_CCCOMCOM","$SHCCCOMSTR")}'
src/engine/SCons/Tool/msvc.py: env['CXXCOM'] = '${TEMPFILE("$CXX
$_MSVC_OUTPUT_FLAG /c $CHANGED_SOURCES $CXXFLAGS $CCFLAGS
$_CCCOMCOM","$CXXCOMSTR")}'
src/engine/SCons/Tool/msvc.py: env['SHCXXCOM'] = '${TEMPFILE("$SHCXX
$_MSVC_OUTPUT_FLAG /c $CHANGED_SOURCES $SHCXXFLAGS $SHCCFLAGS
$_CCCOMCOM","$SHCXXCOMSTR")}'
On Mon, Jul 23, 2018 at 2:15 PM, Mats Wichmann &lt;
Post by Mats Wichmann
Post by Pierre-Luc Boily
http://scons.tigris.org/issues/show_bug.cgi?id=3029, problem might be
from
Post by Pierre-Luc Boily
Executor.py. I'll start there.
https://github.com/scons/scons/issues/3029
_______________________________________________
Scons-users mailing list
https://pairlist4.pair.net/mailman/listinfo/scons-users
_______________________________________________
Scons-users mailing list
https://pairlist4.pair.net/mailman/listinfo/scons-users
--
Sent from: http://scons.1086193.n5.nabble.com/Users-f16930.html
Bill Deegan
2018-07-25 15:18:27 UTC
Permalink
Looks like something must be wrong with populating CHANGED_SOURCES when run
in interactive mode..

Can you add a comment to the bug that it's still present in 3.0.1?
Post by Pierre-Luc Boily
Thx a lot Bill, this resolved the problem.
But to be honest, I don`t know what is a "batched compiles". You say it is
for faster msvc compiles?
I don't know if this is needed for us. Last year, we completed the
migration of our cygwin/make system to scons. For windows, our build time
from a clean check out went from 1 hour to 17-18 minutes. It is crazy.
But
I am always looking to make things faster =)
Post by Bill Deegan
Note these only come into play for msvc. This was to support batched
compiles as it (used to be) much faster for msvc compiles. (Not sure if
that still applies)
On Mon, Jul 23, 2018 at 2:46 PM, Bill Deegan &lt;
&gt;
Post by Bill Deegan
Try changing "CHANGED_SOURCES" to "SOURCES"
src/engine/SCons/Tool/msvc.py: env['CCCOM'] = '${TEMPFILE("$CC
$_MSVC_OUTPUT_FLAG /c $CHANGED_SOURCES $CFLAGS $CCFLAGS
$_CCCOMCOM","$CCCOMSTR")}'
src/engine/SCons/Tool/msvc.py: env['SHCCCOM'] = '${TEMPFILE("$SHCC
$_MSVC_OUTPUT_FLAG /c $CHANGED_SOURCES $SHCFLAGS $SHCCFLAGS
$_CCCOMCOM","$SHCCCOMSTR")}'
src/engine/SCons/Tool/msvc.py: env['CXXCOM'] = '${TEMPFILE("$CXX
$_MSVC_OUTPUT_FLAG /c $CHANGED_SOURCES $CXXFLAGS $CCFLAGS
$_CCCOMCOM","$CXXCOMSTR")}'
src/engine/SCons/Tool/msvc.py: env['SHCXXCOM'] =
'${TEMPFILE("$SHCXX
Post by Bill Deegan
Post by Bill Deegan
$_MSVC_OUTPUT_FLAG /c $CHANGED_SOURCES $SHCXXFLAGS $SHCCFLAGS
$_CCCOMCOM","$SHCXXCOMSTR")}'
On Mon, Jul 23, 2018 at 2:15 PM, Mats Wichmann &lt;
Post by Mats Wichmann
Post by Pierre-Luc Boily
http://scons.tigris.org/issues/show_bug.cgi?id=3029, problem might
be
Post by Bill Deegan
Post by Bill Deegan
Post by Mats Wichmann
from
Post by Pierre-Luc Boily
Executor.py. I'll start there.
https://github.com/scons/scons/issues/3029
_______________________________________________
Scons-users mailing list
https://pairlist4.pair.net/mailman/listinfo/scons-users
_______________________________________________
Scons-users mailing list
https://pairlist4.pair.net/mailman/listinfo/scons-users
--
Sent from: http://scons.1086193.n5.nabble.com/Users-f16930.html
_______________________________________________
Scons-users mailing list
https://pairlist4.pair.net/mailman/listinfo/scons-users
Pierre-Luc Boily
2018-07-25 15:22:45 UTC
Permalink
Sure. Done.
Post by Bill Deegan
Looks like something must be wrong with populating CHANGED_SOURCES when run
in interactive mode..
Can you add a comment to the bug that it's still present in 3.0.1?
On Wed, Jul 25, 2018 at 6:41 AM, Pierre-Luc Boily &lt;
Post by Pierre-Luc Boily
Thx a lot Bill, this resolved the problem.
But to be honest, I don`t know what is a "batched compiles". You say it is
for faster msvc compiles?
I don't know if this is needed for us. Last year, we completed the
migration of our cygwin/make system to scons. For windows, our build time
from a clean check out went from 1 hour to 17-18 minutes. It is crazy.
But
I am always looking to make things faster =)
Post by Bill Deegan
Note these only come into play for msvc. This was to support batched
compiles as it (used to be) much faster for msvc compiles. (Not sure if
that still applies)
On Mon, Jul 23, 2018 at 2:46 PM, Bill Deegan &lt;
&gt;
Post by Bill Deegan
Try changing "CHANGED_SOURCES" to "SOURCES"
src/engine/SCons/Tool/msvc.py: env['CCCOM'] = '${TEMPFILE("$CC
$_MSVC_OUTPUT_FLAG /c $CHANGED_SOURCES $CFLAGS $CCFLAGS
$_CCCOMCOM","$CCCOMSTR")}'
src/engine/SCons/Tool/msvc.py: env['SHCCCOM'] =
'${TEMPFILE("$SHCC
Post by Bill Deegan
Post by Bill Deegan
$_MSVC_OUTPUT_FLAG /c $CHANGED_SOURCES $SHCFLAGS $SHCCFLAGS
$_CCCOMCOM","$SHCCCOMSTR")}'
src/engine/SCons/Tool/msvc.py: env['CXXCOM'] =
'${TEMPFILE("$CXX
Post by Bill Deegan
Post by Bill Deegan
$_MSVC_OUTPUT_FLAG /c $CHANGED_SOURCES $CXXFLAGS $CCFLAGS
$_CCCOMCOM","$CXXCOMSTR")}'
src/engine/SCons/Tool/msvc.py: env['SHCXXCOM'] =
'${TEMPFILE("$SHCXX
Post by Bill Deegan
Post by Bill Deegan
$_MSVC_OUTPUT_FLAG /c $CHANGED_SOURCES $SHCXXFLAGS $SHCCFLAGS
$_CCCOMCOM","$SHCXXCOMSTR")}'
On Mon, Jul 23, 2018 at 2:15 PM, Mats Wichmann &lt;
Post by Mats Wichmann
Post by Pierre-Luc Boily
http://scons.tigris.org/issues/show_bug.cgi?id=3029, problem might
be
Post by Bill Deegan
Post by Bill Deegan
Post by Mats Wichmann
from
Post by Pierre-Luc Boily
Executor.py. I'll start there.
https://github.com/scons/scons/issues/3029
_______________________________________________
Scons-users mailing list
https://pairlist4.pair.net/mailman/listinfo/scons-users
_______________________________________________
Scons-users mailing list
https://pairlist4.pair.net/mailman/listinfo/scons-users
--
Sent from: http://scons.1086193.n5.nabble.com/Users-f16930.html
_______________________________________________
Scons-users mailing list
https://pairlist4.pair.net/mailman/listinfo/scons-users
_______________________________________________
Scons-users mailing list
https://pairlist4.pair.net/mailman/listinfo/scons-users
--
Sent from: http://scons.1086193.n5.nabble.com/Users-f16930.html

Loading...