Hi, we have some intermittent build failures that I've tried to debug today. As parallelism is involved, I now want to set everything on fire.
Symptom: if we have enough CPUs, the lexer generation is started multiple times in parallel for the same outputs. The first platform where we saw this was MSVC, but I can also get it on Linux, although the timing is a bit tighter there. As a result, the generated header file is broken in various ways -- on MSVC, every second token in the enumeration swaps place with its comma, on Linux we get two copies of the file interleaved. According to the fine folks on the #cmake IRC channel, what we're doing since b7f890adb "Fix parallel build bugs." is illegal, because output files from a custom command are consumed by two different projects -- i.e. rather than the intention that the files are built in the custom target, now the custom target causes another avenue where a parallel build needs to prepare the files. I have no immediate idea how to write this so it is safe for any number of CPUs and portable everywhere, so if anyone does, it'd be nice if they'd fix it, because I probably won't get around to it for a while. Simon _______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp

