gcc: Put runtime libraries in a separate output

GCC provides a number of libraries that are used by programs built by
GCC, in particular libgcc_s.so and libstdc++.so.  This caused programs
that used these libraries to have a runtime dependency on all of GCC
(~77 MiB).  Now they only depend on the "lib" output of GCC (~1.6
MiB).

With this and previous multiple-output improvements, closure sizes are
reduced a lot:

hello:       41 MiB -> 22 MiB
patchelf:   118 MiB -> 23 MiB
pan:        364 MiB -> 90 MiB
This commit is contained in:
Eelco Dolstra
2013-06-12 16:11:14 +02:00
parent 2cfeca153c
commit dbe432e6f4
6 changed files with 23 additions and 11 deletions

View File

@@ -193,9 +193,9 @@ rec {
stdenvLinuxGlibc = stdenvLinuxBoot2Pkgs.glibc;
# 6) Construct a third stdenv identical to the 2nd, except that
# this one uses the Glibc built in step 3. It still uses
# the recent binutils and rest of the bootstrap tools, including GCC.
# 6) Construct a third stdenv identical to the 2nd, except that this
# one uses the Glibc built in step 3. It still uses the recent
# binutils and the rest of the bootstrap tools, including GCC.
stdenvLinuxBoot3 = stdenvBootFun {
gcc = wrapGCC {
binutils = stdenvLinuxBoot1Pkgs.binutils;