kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #09457
Re: Parallel build errors on Windows using mingw32-make
> To cause the problem I can simply delete pcbnew/specctra_lexer.h and start start a build
> with -j6.
>
> Best Regards, Brian.
Again, my theory is that >= 2 threads are going after the same make file target
concurrently, that target was in the make file I mentioned earlier, and the actual line in
the make file which is being executed more than once is the one below:
cd /svn/kicad/testing.checkout/build/pcbnew && /usr/bin/cmake -Denum=DSN
-DinputFile=/svn/kicad/testing.checkout/pcbnew/specctra.keywords
-DoutHeaderFile=/svn/kicad/testing.checkout/pcbnew/specctra_lexer.h
-DoutCppFile=/svn/kicad/testing.checkout/pcbnew/specctra_keywords.cpp -P
/svn/kicad/testing.checkout/CMakeModules/TokenList2DsnLexer.cmake
Just above this line are a handful of print commands, in fancy colors.
To verify my theory Brian, can you get a complete successful build using a single thread,
then delete the spectra_lexer.h file. Then run with -j6, but redirect the output to try
and capture a duplication of the other commands associated with this target, namely the
duplication of print statements. You might see two or more of each one.
Something like:
$ make -j6 > capture.txt
This will capture stdout and let the stderr stream still go to console. We want the cmake
print statements, and I think they are stdout.
If you see duplication of print statements, then the assignment of threads to target is in
fact the problem.
Then I would try hand editing the make file, combine the two target lines into one,
remember to use tabs.
Follow ups
References