Seabright Technology Header Image

Problems building GCC in the cloud

We do a lot of GCC builds in the Toolchain Working Group. The x86_64 and i686 builds were beginning to overwhelm the build farm so I thought I’d have a play with the cloud and shifted them out to Amazon EC2. The x86_64 builds are nice and fast – a c1.xlarge instance bootstraps C, C++, and Fortran in 38 minutes and tests in 34.

The i686 builds were problematic. A Natty instance store backed c1.medium instance would bootstrap fine but then show random failures when running the testsuite. Using Natty EBS backed AMI and running the testsuite sequentially cleared up the problem, but unfortunately takes twice as long to run.

For reference, the c1.medium bootstraps in 64 minutes and tests in 2:48.


  1. Would a 32-bit chroot or LXC on a c1.xlarge instance be better for the i686 builds? The 32 bit instance types are a bit weedy really.

  2. michaelh says:

    I thought about that but had spent too much time on it already :) There’s all of the usual chroot problems like /proc and uname being wrong to work around.

    Interestingly the c1.xlarge has 4x the EC2 Compute Units but only builds twice as fast. GCC is very good at parallel builds, but not good enough to soak up the eight cores.

Leave a Reply