diff options
Diffstat (limited to 'build-essential.morph')
-rw-r--r-- | build-essential.morph | 33 |
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 |