[Nix-dev] Stdenv compilation times

Eelco Dolstra e.dolstra at tudelft.nl
Mon Jan 18 15:20:06 CET 2010


Hi,

I've just noticed that building stdenv takes an excessive amount of time.  In
particular the PPL library (a dependency of GCC 4.4) takes a lot of time due to
its "make check", as its Nix expression says:

    # Beware!  It took ~6 hours to compile PPL and run its tests on a 1.2 GHz
    # x86_64 box.  Nevertheless, being a dependency of GCC, it probably ought
    # to be tested.
    doCheck = true;

A six hour compilation time for a small dependency of GCC is rather much -
OpenOffice compiles faster than that.  It doesn't matter much if you're a
channel user, but:

- Not everybody can use the Nixpkgs binaries.
- It's painful for people developing on the stdenv branch.
- Since everything in Nixpkgs depends on this, no parallelisation is possible -
all builds have to wait for PPL to finish.
- Running very long regression tests like PPL's is more properly done in a
separate Hydra job.  And arguably it's upstream's job to make sure that they
don't release a broken PPL.

So I propose disabling "make check" in PPL.

Another issue related to PPL: because it links against libgcc_s.so, it causes
GCC to have a runtime dependency on bootstrap-tools.  That should be fixed.  (It
increases the closure of stdenv by 40 MB or so...)  Lluís proposed doing a
static build of gmp and PPL, which should solve the problem.

BTW, it's not entirely clear whether Graphite is currently all that useful to
enable in the default GCC build.  I couldn't really find any benchmarks about
this.  AFAIK the GCC flags that turn on the Graphite optimisations are not
included in -O2/-O3, so there are probably no packages in Nixpkgs that would
currently benefit anyway.

-- 
Eelco Dolstra | http://www.st.ewi.tudelft.nl/~dolstra/



More information about the nix-dev mailing list