From 91ca38499c0c84dd8e8beae31144c63f2820b082 Mon Sep 17 00:00:00 2001 From: Richard Maw Date: Thu, 23 May 2013 17:59:42 +0000 Subject: 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. --- build-essential.morph | 36 ++++++------------------------------ 1 file changed, 6 insertions(+), 30 deletions(-) (limited to 'build-essential.morph') diff --git a/build-essential.morph b/build-essential.morph index 3fa11a15..486ca220 100644 --- a/build-essential.morph +++ b/build-essential.morph @@ -44,42 +44,28 @@ "stage2-linux-api-headers" ] }, - { - "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" ] -- cgit v1.2.1