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. --- base-system-armv7b-highbank.morph | 8 ++++---- base-system-x86_64-generic.morph | 8 ++++---- bsp-armv7b-highbank.morph | 2 +- bsp-x86_64-generic.morph | 2 +- build-essential.morph | 36 ++++++------------------------------ build-essential.morph.yaml | 22 ---------------------- core.morph | 2 +- foundation.morph | 2 +- 8 files changed, 18 insertions(+), 64 deletions(-) diff --git a/base-system-armv7b-highbank.morph b/base-system-armv7b-highbank.morph index f575ef4..3950126 100644 --- a/base-system-armv7b-highbank.morph +++ b/base-system-armv7b-highbank.morph @@ -9,22 +9,22 @@ { "morph": "build-essential", "repo": "baserock:baserock/morphs", - "ref": "master" + "ref": "baserock/richardmaw/inspect-zlib" }, { "morph": "core", "repo": "baserock:baserock/morphs", - "ref": "master" + "ref": "baserock/richardmaw/inspect-zlib" }, { "morph": "foundation", "repo": "baserock:baserock/morphs", - "ref": "master" + "ref": "baserock/richardmaw/inspect-zlib" }, { "morph": "bsp-armv7b-highbank", "repo": "baserock:baserock/morphs", - "ref": "master" + "ref": "baserock/richardmaw/inspect-zlib" } ] } diff --git a/base-system-x86_64-generic.morph b/base-system-x86_64-generic.morph index 3d5c45f..4c1dd71 100644 --- a/base-system-x86_64-generic.morph +++ b/base-system-x86_64-generic.morph @@ -9,22 +9,22 @@ { "morph": "build-essential", "repo": "baserock:baserock/morphs", - "ref": "master" + "ref": "baserock/richardmaw/inspect-zlib" }, { "morph": "core", "repo": "baserock:baserock/morphs", - "ref": "master" + "ref": "baserock/richardmaw/inspect-zlib" }, { "morph": "foundation", "repo": "baserock:baserock/morphs", - "ref": "master" + "ref": "baserock/richardmaw/inspect-zlib" }, { "morph": "bsp-x86_64-generic", "repo": "baserock:baserock/morphs", - "ref": "master" + "ref": "baserock/richardmaw/inspect-zlib" } ], "configuration-extensions": [ diff --git a/bsp-armv7b-highbank.morph b/bsp-armv7b-highbank.morph index f4231e9..91f61c5 100644 --- a/bsp-armv7b-highbank.morph +++ b/bsp-armv7b-highbank.morph @@ -5,7 +5,7 @@ "build-depends": [ { "repo": "baserock:baserock/morphs", - "ref": "master", + "ref": "baserock/richardmaw/inspect-zlib", "morph": "core" } ], diff --git a/bsp-x86_64-generic.morph b/bsp-x86_64-generic.morph index b984a13..f83c81c 100644 --- a/bsp-x86_64-generic.morph +++ b/bsp-x86_64-generic.morph @@ -5,7 +5,7 @@ "build-depends": [ { "repo": "baserock:baserock/morphs", - "ref": "master", + "ref": "baserock/richardmaw/inspect-zlib", "morph": "core" } ], diff --git a/build-essential.morph b/build-essential.morph index 3fa11a1..486ca22 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" ] diff --git a/build-essential.morph.yaml b/build-essential.morph.yaml index f2bd1ac..7c7fb5a 100644 --- a/build-essential.morph.yaml +++ b/build-essential.morph.yaml @@ -52,16 +52,6 @@ chunks: - stage1-gcc - 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 @@ -71,7 +61,6 @@ chunks: - stage1-binutils - stage1-gcc - stage2-eglibc - - stage2-zlib - name: stage2-gcc repo: upstream:gcc-tarball @@ -82,7 +71,6 @@ chunks: - stage1-binutils - stage1-gcc - stage2-eglibc - - stage2-zlib - name: stage2-busybox repo: upstream:busybox @@ -151,7 +139,6 @@ chunks: - stage2-gcc - stage2-linux-api-headers - stage2-make - - stage2-zlib - name: linux-api-headers repo: upstream:linux @@ -167,7 +154,6 @@ chunks: - stage2-gcc - stage2-linux-api-headers - stage2-make - - stage2-zlib - name: eglibc repo: upstream:eglibc2 @@ -183,7 +169,6 @@ chunks: - stage2-gcc - stage2-linux-api-headers - stage2-make - - stage2-zlib - linux-api-headers - name: zlib @@ -200,7 +185,6 @@ chunks: - stage2-gcc - stage2-linux-api-headers - stage2-make - - stage2-zlib - eglibc - name: binutils @@ -217,7 +201,6 @@ chunks: - stage2-gcc - stage2-linux-api-headers - stage2-make - - stage2-zlib - eglibc - zlib @@ -235,7 +218,6 @@ chunks: - stage2-gcc - stage2-linux-api-headers - stage2-make - - stage2-zlib - eglibc - name: gawk @@ -252,7 +234,6 @@ chunks: - stage2-gcc - stage2-linux-api-headers - stage2-make - - stage2-zlib - eglibc - name: gcc @@ -269,7 +250,6 @@ chunks: - stage2-gcc - stage2-linux-api-headers - stage2-make - - stage2-zlib - eglibc - zlib @@ -287,7 +267,6 @@ chunks: - stage2-gcc - stage2-linux-api-headers - stage2-make - - stage2-zlib - eglibc # Extras that need to be in build-essential but don't need bootstrapping. @@ -306,6 +285,5 @@ chunks: - stage2-gcc - stage2-linux-api-headers - stage2-make - - stage2-zlib - eglibc - zlib diff --git a/core.morph b/core.morph index 30dc161..e117112 100644 --- a/core.morph +++ b/core.morph @@ -5,7 +5,7 @@ "build-depends": [ { "repo": "baserock:baserock/morphs", - "ref": "master", + "ref": "baserock/richardmaw/inspect-zlib", "morph": "build-essential" } ], diff --git a/foundation.morph b/foundation.morph index 0e2a803..68be203 100644 --- a/foundation.morph +++ b/foundation.morph @@ -5,7 +5,7 @@ "build-depends": [ { "repo": "baserock:baserock/morphs", - "ref": "master", + "ref": "baserock/richardmaw/inspect-zlib", "morph": "core" } ], -- cgit v1.2.1