summaryrefslogtreecommitdiff
path: root/strata/build-essential.morph
diff options
context:
space:
mode:
authorFrancisco Redondo Marchena <francisco.marchena@codethink.co.uk>2014-08-13 21:45:15 +0000
committerFrancisco Redondo Marchena <francisco.marchena@codethink.co.uk>2014-08-13 21:52:41 +0000
commit5c261eee00014199eb3d942758598041473f1ddd (patch)
tree4be8f6fa931142aad3383d53186fb9e84ca218eb /strata/build-essential.morph
parent045e89c396aa14218422cef507c2afedcae3dc6b (diff)
downloaddefinitions-5c261eee00014199eb3d942758598041473f1ddd.tar.gz
Organize definitions directory by morphologiesbaserock/franred/organize-morphologies-script
This is the result to run organize-morphologies.py . The morphologies are clasified in clusters, systems, strata and chunks. - "clusters" contains all the cluster morphologies. - "systems" contains all the systems morphologies. - "strata" contains all the stratum morphologies and the chunks morphologies which are inside of their stratum morphology folder, if this chunks will not be autodetected on build time.
Diffstat (limited to 'strata/build-essential.morph')
-rw-r--r--strata/build-essential.morph355
1 files changed, 355 insertions, 0 deletions
diff --git a/strata/build-essential.morph b/strata/build-essential.morph
new file mode 100644
index 00000000..5ed73694
--- /dev/null
+++ b/strata/build-essential.morph
@@ -0,0 +1,355 @@
+name: build-essential
+kind: stratum
+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
+ but the cross-compiler toolchain.
+
+ 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.
+build-depends: []
+products:
+- artifact: build-essential-minimal
+ include:
+ - fhs-dirs-.*
+ - busybox-.*
+ - eglibc-nss
+chunks:
+- name: stage1-binutils
+ morph: strata/build-essential/stage1-binutils.morph
+ repo: upstream:binutils-redhat
+ ref: 987eb543a034cddc4eeb103f08f566f24a5f964a
+ unpetrify-ref: baserock/build-essential
+ build-depends: []
+ build-mode: bootstrap
+ prefix: /tools
+- name: stage1-gcc
+ morph: strata/build-essential/stage1-gcc.morph
+ repo: upstream:gcc-tarball
+ ref: 0a1a077d3466cd99a4ed5590db2146b3fec6fff1
+ unpetrify-ref: baserock/build-essential
+ build-depends:
+ - stage1-binutils
+ build-mode: bootstrap
+ prefix: /tools
+- name: stage2-linux-api-headers
+ morph: strata/build-essential/stage2-linux-api-headers.morph
+ repo: upstream:linux
+ ref: eff825d6e284eb0fb04b434429a3e3b2e10cabf8
+ unpetrify-ref: baserock/build-essential
+ build-depends:
+ - stage1-binutils
+ - stage1-gcc
+ build-mode: bootstrap
+ prefix: /tools
+- name: stage2-eglibc
+ morph: strata/build-essential/stage2-eglibc.morph
+ repo: upstream:eglibc2
+ ref: 43ee5d250ad47d2bee8ec17954efb7f22d2b804c
+ unpetrify-ref: baserock/2.15-build-essential
+ build-depends:
+ - stage1-binutils
+ - stage1-gcc
+ - stage2-linux-api-headers
+ build-mode: bootstrap
+ prefix: /tools
+- name: stage2-binutils
+ morph: strata/build-essential/stage2-binutils.morph
+ repo: upstream:binutils-redhat
+ ref: 987eb543a034cddc4eeb103f08f566f24a5f964a
+ unpetrify-ref: baserock/build-essential
+ build-depends:
+ - stage1-binutils
+ - stage1-gcc
+ - stage2-eglibc
+ build-mode: bootstrap
+ prefix: /tools
+- name: stage2-gcc-fixed-headers
+ morph: strata/build-essential/stage2-gcc-fixed-headers.morph
+ repo: upstream:gcc-tarball
+ ref: 0a1a077d3466cd99a4ed5590db2146b3fec6fff1
+ unpetrify-ref: baserock/build-essential
+ build-depends:
+ - stage1-binutils
+ - stage1-gcc
+ - stage2-eglibc
+ build-mode: bootstrap
+ prefix: /tools
+- name: stage2-gcc
+ morph: strata/build-essential/stage2-gcc.morph
+ repo: upstream:gcc-tarball
+ ref: 0a1a077d3466cd99a4ed5590db2146b3fec6fff1
+ unpetrify-ref: baserock/build-essential
+ build-depends:
+ - stage1-binutils
+ - stage1-gcc
+ - stage2-eglibc
+ - stage2-gcc-fixed-headers
+ build-mode: bootstrap
+ prefix: /tools
+- name: stage2-busybox
+ morph: strata/build-essential/stage2-busybox.morph
+ repo: upstream:busybox
+ ref: eeb9014f28e3aa00673a0fad127e7420da4392db
+ unpetrify-ref: baserock/build-essential
+ build-depends:
+ - stage1-binutils
+ - stage1-gcc
+ - stage2-eglibc
+ build-mode: bootstrap
+ prefix: /tools
+- name: stage2-fhs-dirs
+ morph: strata/build-essential/stage2-fhs-dirs.morph
+ repo: baserock:baserock/fhs-dirs
+ ref: 41bbb474cd4647ee715bc94c21c161d12a20deb4
+ unpetrify-ref: master
+ build-depends: []
+ build-mode: bootstrap
+ prefix: /tools
+- name: stage2-gawk
+ morph: strata/build-essential/stage2-gawk.morph
+ repo: upstream:gawk
+ ref: 6a0eb04c3d2ac24d80d505b42a8f67799487d133
+ unpetrify-ref: baserock/build-essential
+ build-depends:
+ - stage1-binutils
+ - stage1-gcc
+ - stage2-eglibc
+ build-mode: bootstrap
+ prefix: /tools
+- name: stage2-make
+ morph: strata/build-essential/stage2-make.morph
+ repo: upstream:make
+ ref: 56968f58301e6e5157cf4c8b6deefbaff2955eba
+ unpetrify-ref: baserock/build-essential
+ build-depends:
+ - stage1-binutils
+ - stage1-gcc
+ - stage2-eglibc
+ build-mode: bootstrap
+ prefix: /tools
+- name: stage2-reset-specs
+ morph: strata/build-essential/stage2-reset-specs.morph
+ repo: upstream:eglibc2
+ ref: 43ee5d250ad47d2bee8ec17954efb7f22d2b804c
+ unpetrify-ref: baserock/2.15-build-essential
+ build-depends:
+ - stage1-binutils
+ - stage1-gcc
+ - stage2-linux-api-headers
+ - stage2-eglibc
+ build-mode: bootstrap
+ prefix: /tools
+- name: fhs-dirs
+ morph: strata/build-essential/fhs-dirs.morph
+ repo: baserock:baserock/fhs-dirs
+ ref: 41bbb474cd4647ee715bc94c21c161d12a20deb4
+ unpetrify-ref: master
+ build-depends:
+ - stage2-binutils
+ - stage2-busybox
+ - stage2-eglibc
+ - stage2-fhs-dirs
+ - stage2-gawk
+ - stage2-gcc
+ - stage2-linux-api-headers
+ - stage2-make
+ - stage2-reset-specs
+ build-mode: staging
+ prefix: /usr
+- name: linux-api-headers
+ morph: strata/build-essential/linux-api-headers.morph
+ repo: upstream:linux
+ ref: eff825d6e284eb0fb04b434429a3e3b2e10cabf8
+ unpetrify-ref: baserock/build-essential
+ build-depends:
+ - stage2-binutils
+ - stage2-busybox
+ - stage2-eglibc
+ - stage2-fhs-dirs
+ - stage2-gawk
+ - stage2-gcc
+ - stage2-linux-api-headers
+ - stage2-make
+ - stage2-reset-specs
+ build-mode: staging
+ prefix: /usr
+- name: eglibc
+ morph: strata/build-essential/eglibc.morph
+ repo: upstream:eglibc2
+ ref: df0258044f321990eadd647e03095a48ad04c1a8
+ unpetrify-ref: baserock/2.15-build-essential
+ build-depends:
+ - stage2-binutils
+ - stage2-busybox
+ - stage2-eglibc
+ - stage2-fhs-dirs
+ - stage2-gawk
+ - stage2-gcc
+ - stage2-linux-api-headers
+ - stage2-make
+ - stage2-reset-specs
+ - linux-api-headers
+ build-mode: staging
+ artifacts:
+ eglibc-gconv: build-essential-runtime
+ eglibc-libs: build-essential-minimal
+ eglibc-nss: build-essential-runtime
+ prefix: /usr
+- name: zlib
+ morph: strata/build-essential/zlib.morph
+ repo: upstream:zlib
+ ref: db333af7e9b90a23fd7f9cd8dc128123b34bf698
+ unpetrify-ref: baserock/build-essential
+ build-depends:
+ - stage2-binutils
+ - stage2-busybox
+ - stage2-eglibc
+ - stage2-fhs-dirs
+ - stage2-gawk
+ - stage2-gcc
+ - stage2-linux-api-headers
+ - stage2-make
+ - stage2-reset-specs
+ - eglibc
+ build-mode: staging
+ artifacts:
+ zlib-libs: build-essential-minimal
+ prefix: /usr
+- name: binutils
+ morph: strata/build-essential/binutils.morph
+ repo: upstream:binutils-redhat
+ ref: 987eb543a034cddc4eeb103f08f566f24a5f964a
+ unpetrify-ref: baserock/build-essential
+ build-depends:
+ - stage2-binutils
+ - stage2-busybox
+ - stage2-eglibc
+ - stage2-fhs-dirs
+ - stage2-gawk
+ - stage2-gcc
+ - stage2-linux-api-headers
+ - stage2-make
+ - stage2-reset-specs
+ - eglibc
+ - zlib
+ build-mode: staging
+ prefix: /usr
+- name: busybox
+ morph: strata/build-essential/busybox.morph
+ repo: upstream:busybox
+ ref: bf06394ab87ff22662084c82c1821847c25b7f21
+ unpetrify-ref: baserock/build-essential
+ build-depends:
+ - stage2-binutils
+ - stage2-busybox
+ - stage2-eglibc
+ - stage2-fhs-dirs
+ - stage2-gawk
+ - stage2-gcc
+ - stage2-linux-api-headers
+ - stage2-make
+ - stage2-reset-specs
+ - eglibc
+ build-mode: staging
+ prefix: /usr
+- name: gawk
+ morph: strata/build-essential/gawk.morph
+ repo: upstream:gawk
+ ref: 6a0eb04c3d2ac24d80d505b42a8f67799487d133
+ unpetrify-ref: baserock/build-essential
+ build-depends:
+ - stage2-binutils
+ - stage2-busybox
+ - stage2-eglibc
+ - stage2-fhs-dirs
+ - stage2-gawk
+ - stage2-gcc
+ - stage2-linux-api-headers
+ - stage2-make
+ - stage2-reset-specs
+ - eglibc
+ build-mode: staging
+ prefix: /usr
+- name: gcc
+ morph: strata/build-essential/gcc.morph
+ repo: upstream:gcc-tarball
+ ref: b0254026149b13782eae26d38435a4c62a002cf0
+ unpetrify-ref: baserock/build-essential-4.7
+ build-depends:
+ - stage2-binutils
+ - stage2-busybox
+ - stage2-eglibc
+ - stage2-fhs-dirs
+ - stage2-gawk
+ - stage2-gcc
+ - stage2-linux-api-headers
+ - stage2-make
+ - stage2-reset-specs
+ - eglibc
+ - zlib
+ build-mode: staging
+ artifacts:
+ gcc-libs: build-essential-minimal
+ prefix: /usr
+- name: make
+ morph: strata/build-essential/make.morph
+ repo: upstream:make
+ ref: 56968f58301e6e5157cf4c8b6deefbaff2955eba
+ unpetrify-ref: baserock/build-essential
+ build-depends:
+ - stage2-binutils
+ - stage2-busybox
+ - stage2-eglibc
+ - stage2-fhs-dirs
+ - stage2-gawk
+ - stage2-gcc
+ - stage2-linux-api-headers
+ - stage2-make
+ - stage2-reset-specs
+ - eglibc
+ build-mode: staging
+ prefix: /usr
+- name: ccache
+ morph: strata/build-essential/ccache.morph
+ repo: upstream:ccache
+ ref: 567631456f0899cdf0c382f898d38aadc8901d32
+ unpetrify-ref: baserock/build-essential
+ build-depends:
+ - stage2-binutils
+ - stage2-busybox
+ - stage2-eglibc
+ - stage2-fhs-dirs
+ - stage2-gawk
+ - stage2-gcc
+ - stage2-linux-api-headers
+ - stage2-make
+ - stage2-reset-specs
+ - eglibc
+ - zlib
+ build-mode: staging
+ prefix: /usr