[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