summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build-essential.morph33
1 files changed, 5 insertions, 28 deletions
diff --git a/build-essential.morph b/build-essential.morph
index 2235dc00..f4b46d9c 100644
--- a/build-essential.morph
+++ b/build-essential.morph
@@ -1,59 +1,36 @@
name: build-essential
kind: stratum
-description: 'Toolchain stratum
-
-
- Stage 1: build a minimal cross compiler with the host''s tools.
+description: |
+ Toolchain stratum
+ Stage 1: build a minimal cross compiler with the host's tools.
Starting with a cross compiler ensures that (a) nothing from the host
-
can leak into the build-essential artifacts, and (b) cross-compiling
-
build-essential is fully tested and supported, since we always use the
-
cross code paths.
-
- Stage 2: cross-build the whole of build-essential, using the host''s tools
-
+ Stage 2: cross-build the whole of build-essential, using the host's tools
but the cross-compiler toolchain.
-
- Stage 2 GCC outputs code for the same ''bootstrap'' machine as stage 1 GCC,
-
+ Stage 2 GCC outputs code for the same 'bootstrap' machine as stage 1 GCC,
but because stage 2 GCC is also built to *run* on the bootstrap machine
-
it can only execute inside the stage 3 chroot (due to being built against
-
a libc with a non-standard prefix).
-
Stage 3: build the whole of build-essential again, this time using a
-
staging area containing only the output of stage 2. The result of this
-
build is fully reproducible.
-
We do a switch-a-roo between stage 2 and 3: stages 2 chunks are all built
-
to run on a host *-bootstrap-* while stage 3 chunks are native-built for
-
a *-baserock-* machine. This works, because the cross build was all for
-
show (and cleanliness) and the binaries actually still run on the host.
-
After build-essential is built we do another trick. See
-
stage2-fhs-dirs.morph for details. Basically, /bin is a symlink to
-
/tools/bin during stage 2 but in stage 3 it becomes a real directory
-
again.
-
- '
chunks:
- name: stage1-binutils
repo: upstream:binutils-redhat