[cfe-dev] Using CMake/Ninja on buildbots

Arnaud de Grandmaison arnaud.adegm at gmail.com
Wed Feb 6 14:13:26 PST 2013

On Wednesday 06 February 2013 21:41:06 Renato Golin wrote:

Hi all,

A discussion was being carried on llvmcommits about the extra time for 
cleaning and re-building objects that didn't need to be built on buildbots.

Since they just update the repository, builds could be a lot faster if we let 
the objects in place. Even faster if we used Ninja with CMake. Is there a 
crucial reason why we're still using autoconf for all builds?

Some of us acknowledge that sometimes the build gets stuck because of a CMake 
file problem or change that the build can't get around automatically. It's 
probably because of those issues that a "make clean" is done on almost all 

The point is that, for the exception, we're paying it in full, every single 
build. Some of us proposed, then, that we could not have the clean phase on 
buildbots in the first place, and deal with the exceptions when they happen. 
Does that sound terrible to anyone?

I also think we could create a "clean" button on the bot web interface, so 
that anyone can just clean the build if the bot gets stuck. We also can 
perform a routine make clean, say, every Sunday, so that we're sure we're not 
wrongly passing tests that should be failing.



Hi Renato,

ninja does not bring any advantage with a "clean" build, but once you tried it 
with a "warm" build, you can not do any longer without it :)

I think there are different aspects there :
 - the ninja vs make aspect is more a matter of sparing time and energy, as 
they should give the same results
 - autoconf vs cmake : I do not know how many bots are using cmake today, 
probably a few at least for windows, but this would definitely help to 
maintain consistency between cmake and autoconf, if we take into consideration 
the point below
 - build options coverage : for example with or without shared libraries. I 
have not checked recently, but cmake+shared_libs used to fail in "make (or 
ninja) check-llvm" for bugpoint.

On my side, I have been using both options (clean build or warm build). The 
problem is you do not catch the same rough edges / corner cases : stale file 
pick up or a problem with a automatically generated files comes to me as 
examples. The clean build is simpler from a lazy user point of view. You do 
not even need to clean things, the bot will do it for you :)

I think we just need to increase coverage. Everything you can do to build 
(even slightly) differently than other bots is good to have.

My 2 cents,
Arnaud de Grandmaison
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20130206/4631268a/attachment.html>

More information about the cfe-dev mailing list