summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Maw <richard.maw@codethink.co.uk>2013-05-23 17:59:42 +0000
committerRichard Maw <richard.maw@codethink.co.uk>2013-05-24 15:06:20 +0000
commit91ca38499c0c84dd8e8beae31144c63f2820b082 (patch)
tree7865dbdd864f5cd6edad2019388753d65e675d63
parent5260be4442f3ae758732bdf388b16c1602647f52 (diff)
downloadmorphs-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.
-rw-r--r--base-system-armv7b-highbank.morph8
-rw-r--r--base-system-x86_64-generic.morph8
-rw-r--r--bsp-armv7b-highbank.morph2
-rw-r--r--bsp-x86_64-generic.morph2
-rw-r--r--build-essential.morph36
-rw-r--r--build-essential.morph.yaml22
-rw-r--r--core.morph2
-rw-r--r--foundation.morph2
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
@@ -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"
]
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"
}
],