diff options
author | Richard Maw <richard.maw@codethink.co.uk> | 2013-05-23 17:59:42 +0000 |
---|---|---|
committer | Richard Maw <richard.maw@codethink.co.uk> | 2013-05-24 15:06:20 +0000 |
commit | 91ca38499c0c84dd8e8beae31144c63f2820b082 (patch) | |
tree | 7865dbdd864f5cd6edad2019388753d65e675d63 /build-essential.morph | |
parent | 5260be4442f3ae758732bdf388b16c1602647f52 (diff) | |
download | definitions-91ca38499c0c84dd8e8beae31144c63f2820b082.tar.gz |
build-essential: remove stage2-zlib
The stage 1 toolchain is built with --disable-shared, which means
it is unable to build shared libraries.
This causes it to include symbols from libgcc in the zlib shared object.
This causes problems in pass 3, since by then we have a toolchain
that is suitable for building shared objects, so it doesn't include
libgcc symbols in zlib.
This causes problems while building gcc, since cc1 is compiled against
the zlib in /tools, but is run with the zlib in /usr, so it fails
to run due to missing symbols, which would otherwise come from
libgcc_s or be copiled in as part of libgcc.a.
stage 2 zlib was originally added to avoid gcc and binutils needing
to use their embedded copy, which would improve compile speed slightly
and the other reasons to prefer shared objects.
However, the bootstrap is fragile enough without it, it may be the case
that gcc and binutils prefer to embed zlib for precisely these reasons.
Diffstat (limited to 'build-essential.morph')
-rw-r--r-- | build-essential.morph | 36 |
1 files changed, 6 insertions, 30 deletions
diff --git a/build-essential.morph b/build-essential.morph index 3fa11a15..486ca220 100644 --- a/build-essential.morph +++ b/build-essential.morph @@ -45,41 +45,27 @@ ] }, { - "name": "stage2-zlib", - "repo": "upstream:zlib", - "ref": "baserock/build-essential", - "build-mode": "bootstrap", - "prefix": "/tools", - "build-depends": [ - "stage1-binutils", - "stage1-gcc", - "stage2-eglibc" - ] - }, - { "name": "stage2-binutils", "repo": "upstream:binutils-redhat", - "ref": "baserock/build-essential", + "ref": "baserock/richardmaw/inspect-zlib", "build-mode": "bootstrap", "prefix": "/tools", "build-depends": [ "stage1-binutils", "stage1-gcc", - "stage2-eglibc", - "stage2-zlib" + "stage2-eglibc" ] }, { "name": "stage2-gcc", "repo": "upstream:gcc-tarball", - "ref": "baserock/build-essential", + "ref": "baserock/richardmaw/inspect-zlib", "build-mode": "bootstrap", "prefix": "/tools", "build-depends": [ "stage1-binutils", "stage1-gcc", - "stage2-eglibc", - "stage2-zlib" + "stage2-eglibc" ] }, { @@ -140,8 +126,7 @@ "stage2-gawk", "stage2-gcc", "stage2-linux-api-headers", - "stage2-make", - "stage2-zlib" + "stage2-make" ] }, { @@ -158,8 +143,7 @@ "stage2-gawk", "stage2-gcc", "stage2-linux-api-headers", - "stage2-make", - "stage2-zlib" + "stage2-make" ] }, { @@ -177,7 +161,6 @@ "stage2-gcc", "stage2-linux-api-headers", "stage2-make", - "stage2-zlib", "linux-api-headers" ] }, @@ -196,7 +179,6 @@ "stage2-gcc", "stage2-linux-api-headers", "stage2-make", - "stage2-zlib", "eglibc" ] }, @@ -215,7 +197,6 @@ "stage2-gcc", "stage2-linux-api-headers", "stage2-make", - "stage2-zlib", "eglibc", "zlib" ] @@ -235,7 +216,6 @@ "stage2-gcc", "stage2-linux-api-headers", "stage2-make", - "stage2-zlib", "eglibc" ] }, @@ -254,7 +234,6 @@ "stage2-gcc", "stage2-linux-api-headers", "stage2-make", - "stage2-zlib", "eglibc" ] }, @@ -273,7 +252,6 @@ "stage2-gcc", "stage2-linux-api-headers", "stage2-make", - "stage2-zlib", "eglibc", "zlib" ] @@ -293,7 +271,6 @@ "stage2-gcc", "stage2-linux-api-headers", "stage2-make", - "stage2-zlib", "eglibc" ] }, @@ -312,7 +289,6 @@ "stage2-gcc", "stage2-linux-api-headers", "stage2-make", - "stage2-zlib", "eglibc", "zlib" ] |