responses from the cmake developers
thiago at kde.org
Thu Jun 16 23:54:12 BST 2005
Alexander Neundorf wrote:
>> if I understood this correctly, this is like make -j, but it links
>> only in one process, only the compiling works in more processes. This
>> is useful for network-compiling (distcc, icecream, etc.). I guess you
>> can't do anything about this, since this depends on the buildtool.
>make -j can do this. Also distcc can be used with cmake, also with the
>generator it supports this. So, if the native build system has it, so
> do we.
No, make -j can't do it.
If I launch make -j6 (because I have 3 computers and I think 2 processes
per computer is better), there is the possibility that make will launch 6
"ld" at the same time -- mainly at the end of the compilation.
Linking takes a lot of memory and disk I/O, so I don't want several
linkers running at the same time. make can't split that.
There are only two ways to fix this:
1) the build tool knows the difference between compiling (distributable)
and non-compiling (non-distributable) jobs
2) the linker implements locking, so that it can't be launched more than
On top of all that, the build tool has to be smart enough to realise that
it shouldn't leave all the linking to the end, and instead schedule
linking as early as possible. Linking can't be distributed, so if linkers
are running and the compilation is done, several machines may be idle.
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
PGP/GPG: 0x6EF45358; fingerprint:
E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358
1. On frumscafte, hwonne time_t wæs náht, se scieppend þone circolwyrde
wundorcræftlíge cennede and seo eorðe wæs idel and hit wæs gód.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 189 bytes
Desc: not available
More information about the kde-core-devel