summaryrefslogtreecommitdiff
path: root/build-essential.morph
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 /build-essential.morph
parent5260be4442f3ae758732bdf388b16c1602647f52 (diff)
downloaddefinitions-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.morph36
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"
]