blob: b2946f034f989f195d55d211a7b183e2c55e8385 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
|
name: build-essential-bootstrap
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.
PLEASE KEEP THE REFS IN 'armv7lhf-cross-toolchain' STRATUM UP TO DATE WITH
THIS ONE!
products:
- artifact: build-essential-minimal
include:
- fhs-dirs-.*
- busybox-.*
- glibc-nss
chunks:
- name: stage1-binutils
morph: strata/build-essential/stage1-binutils.morph
repo: upstream:binutils-redhat
ref: b1d3b01332ae49a60ff5d6bf53d3a5b1805769c8
unpetrify-ref: baserock/build-essential
build-mode: bootstrap
prefix: /tools
- name: stage1-gcc
morph: strata/build-essential/stage1-gcc.morph
repo: upstream:gcc-tarball
ref: b3c9b176c1f10ebeff5700eb3760e9511f23fa06
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: bfa76d49576599a4b9f9b7a71f23d73d6dcff735
unpetrify-ref: v3.19
build-depends:
- stage1-binutils
- stage1-gcc
build-mode: bootstrap
prefix: /tools
- name: stage2-glibc
morph: strata/build-essential/stage2-glibc.morph
repo: upstream:glibc
ref: 52cf9a0153c14df4f6ae3bd0e1e6cc5d171e586c
unpetrify-ref: baserock/glibc-2.20
build-depends:
- stage1-binutils
- stage1-gcc
- stage2-linux-api-headers
build-mode: bootstrap
prefix: /tools
- name: stage2-libstdc++
morph: strata/build-essential/stage2-libstdc++.morph
repo: upstream:gcc-tarball
ref: b3c9b176c1f10ebeff5700eb3760e9511f23fa06
unpetrify-ref: baserock/build-essential
build-depends:
- stage1-binutils
- stage1-gcc
- stage2-linux-api-headers
- stage2-glibc
build-mode: bootstrap
prefix: /tools
- name: stage2-binutils
morph: strata/build-essential/stage2-binutils.morph
repo: upstream:binutils-redhat
ref: b1d3b01332ae49a60ff5d6bf53d3a5b1805769c8
unpetrify-ref: baserock/build-essential
build-depends:
- stage1-binutils
- stage1-gcc
- stage2-linux-api-headers
- stage2-glibc
build-mode: bootstrap
prefix: /tools
- name: stage2-gcc-fixed-headers
morph: strata/build-essential/stage2-gcc-fixed-headers.morph
repo: upstream:gcc-tarball
ref: b3c9b176c1f10ebeff5700eb3760e9511f23fa06
unpetrify-ref: baserock/build-essential
build-depends:
- stage1-binutils
- stage1-gcc
- stage2-linux-api-headers
- stage2-glibc
build-mode: bootstrap
prefix: /tools
- name: stage2-gcc
morph: strata/build-essential/stage2-gcc.morph
repo: upstream:gcc-tarball
ref: b3c9b176c1f10ebeff5700eb3760e9511f23fa06
unpetrify-ref: baserock/build-essential
build-depends:
- stage1-binutils
- stage1-gcc
- stage2-linux-api-headers
- stage2-glibc
- stage2-gcc-fixed-headers
- stage2-libstdc++
build-mode: bootstrap
prefix: /tools
- name: stage2-busybox
morph: strata/build-essential/stage2-busybox.morph
repo: upstream:busybox
ref: 1ecfe811fe2f70380170ef7d820e8150054e88ca
unpetrify-ref: 1_23_1
build-depends:
- stage1-binutils
- stage1-gcc
- stage2-linux-api-headers
- stage2-glibc
build-mode: bootstrap
prefix: /tools
- name: stage2-fake-bash
morph: strata/build-essential/stage2-fake-bash.morph
repo: upstream:bash
ref: 3590145af6f1c9fa321dff231f69ae696e7e740b
unpetrify-ref: baserock/bash-4.3-patch-27
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-mode: bootstrap
prefix: /tools
- name: stage2-gawk
morph: strata/build-essential/stage2-gawk.morph
repo: upstream:gawk
ref: dc5af665700d9b04fdf9c18930526d28eef5d5d9
unpetrify-ref: gawk-4.1.1
build-depends:
- stage1-binutils
- stage1-gcc
- stage2-linux-api-headers
- stage2-glibc
build-mode: bootstrap
prefix: /tools
- name: stage2-make
morph: strata/build-essential/stage2-make.morph
repo: upstream:make-tarball
ref: f75919b038da8a28388a911303fb86ed7a70ea2c
unpetrify-ref: make-4.1
build-depends:
- stage1-binutils
- stage1-gcc
- stage2-linux-api-headers
- stage2-glibc
build-mode: bootstrap
prefix: /tools
- name: stage2-reset-specs
morph: strata/build-essential/stage2-reset-specs.morph
repo: upstream:glibc
ref: 52cf9a0153c14df4f6ae3bd0e1e6cc5d171e586c
unpetrify-ref: baserock/glibc-2.20
build-depends:
- stage1-binutils
- stage1-gcc
- stage2-linux-api-headers
- stage2-glibc
build-mode: bootstrap
prefix: /tools
|