Skip to content

Commit 16dfd89

Browse files
committed
ci: refactor crosstool-ng to use mini-defconfig
1 parent d7d67d8 commit 16dfd89

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+261
-10897
lines changed

src/ci/docker/README.md

+25-23
Original file line numberDiff line numberDiff line change
@@ -83,12 +83,12 @@ To run the image,
8383
A number of these images take quite a long time to compile as they're building
8484
whole gcc toolchains to do cross builds with. Much of this is relatively
8585
self-explanatory but some images use [crosstool-ng] which isn't quite as self
86-
explanatory. Below is a description of where these `*.config` files come form,
86+
explanatory. Below is a description of where these `*.defconfig` files come form,
8787
how to generate them, and how the existing ones were generated.
8888
8989
[crosstool-ng]: https://github.com/crosstool-ng/crosstool-ng
9090
91-
### Generating a `.config` file
91+
### Generating a `.defconfig` file
9292
9393
**NOTE:** Existing Dockerfiles can also be a good guide for the process and order
9494
of script execution.
@@ -100,14 +100,14 @@ next two steps.
100100
these steps are outside the container:
101101
102102
```
103-
# Note: We use ubuntu:16.04 because that's the "base" of linux-cross Docker
103+
# Note: We use ubuntu:22.04 because that's the "base" of linux-cross Docker
104104
# image, or simply run ./src/ci/docker/run.sh once, which will download the correct
105105
# one and you can check it out with `docker images`
106-
$ docker run -it ubuntu:16.04 bash
106+
$ docker run -it ubuntu:22.04 bash
107107
# in another terminal:
108108
$ docker ps
109109
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
110-
cfbec05ed730 ubuntu:16.04 "bash" 16 seconds ago Up 15 seconds drunk_murdock
110+
cfbec05ed730 ubuntu:22.04 "bash" 16 seconds ago Up 15 seconds drunk_murdock
111111
$ docker cp src/ci/docker/scripts drunk_murdock:/tmp/
112112
```
113113
@@ -127,7 +127,7 @@ $ bash ./crosstool-ng.sh
127127
present. Otherwise one can use the TUI to load any config-file.
128128
129129
```
130-
$ docker cp arm-linux-gnueabi.config drunk_murdock:/tmp/.config
130+
$ docker cp arm-linux-gnueabi.defconfig drunk_murdock:/tmp/.config
131131
```
132132
133133
- Now, inside the container run the following command to configure the
@@ -136,29 +136,31 @@ $ docker cp arm-linux-gnueabi.config drunk_murdock:/tmp/.config
136136
137137
```
138138
$ cd /tmp/
139+
$ ct-ng olddefconfig
139140
$ ct-ng menuconfig
141+
$ ct-ng savedefconfig
140142
```
141143
142-
- Finally, we retrieve the `.config` file from the container and give it a
144+
- Finally, we retrieve the `defconfig` file from the container and give it a
143145
meaningful name. This is done outside the container.
144146
145147
```
146-
$ docker cp drunk_murdock:/tmp/.config arm-linux-gnueabi.config
148+
$ docker cp drunk_murdock:/tmp/defconfig arm-linux-gnueabi.defconfig
147149
```
148150
149151
- Now you can shutdown the container or repeat the two last steps to generate a
150-
new `.config` file.
152+
new `.defconfig` file.
151153
152154
### Toolchain configuration
153155
154156
Changes on top of the default toolchain configuration used to generate the
155-
`.config` files in this directory. The changes are formatted as follows:
157+
`.defconfig` files in this directory. The changes are formatted as follows:
156158
157159
```
158160
$category > $option = $value -- $comment
159161
```
160162
161-
### `arm-linux-gnueabi.config`
163+
### `arm-linux-gnueabi.defconfig`
162164
163165
For targets: `arm-unknown-linux-gnueabi`
164166
@@ -175,7 +177,7 @@ For targets: `arm-unknown-linux-gnueabi`
175177
- C compiler > gcc version = 8.5.0
176178
- C compiler > C++ = ENABLE -- to cross compile LLVM
177179
178-
### `arm-linux-gnueabihf.config`
180+
### `arm-linux-gnueabihf.defconfig`
179181
180182
For targets: `arm-unknown-linux-gnueabihf`
181183
@@ -194,7 +196,7 @@ For targets: `arm-unknown-linux-gnueabihf`
194196
- C compiler > gcc version = 8.5.0
195197
- C compiler > C++ = ENABLE -- to cross compile LLVM
196198
197-
### `armv7-linux-gnueabihf.config`
199+
### `armv7-linux-gnueabihf.defconfig`
198200
199201
For targets: `armv7-unknown-linux-gnueabihf`
200202
@@ -220,7 +222,7 @@ For targets: `armv7-unknown-linux-gnueabihf`
220222
libraries like jemalloc. See the mk/cfg/arm(v7)-unknown-linux-gnueabi{,hf}.mk
221223
file in Rust's source code.
222224
223-
### `aarch64-linux-gnu.config`
225+
### `aarch64-linux-gnu.defconfig`
224226
225227
For targets: `aarch64-unknown-linux-gnu`
226228
@@ -236,7 +238,7 @@ For targets: `aarch64-unknown-linux-gnu`
236238
- C compiler > gcc version = 8.5.0
237239
- C compiler > C++ = ENABLE -- to cross compile LLVM
238240
239-
### `i586-linux-gnu.config`
241+
### `i586-linux-gnu.defconfig`
240242
241243
For targets: `i586-unknown-linux-gnu`
242244
@@ -255,7 +257,7 @@ For targets: `i586-unknown-linux-gnu`
255257
(\*) Compressed debug is enabled by default for gas (assembly) on Linux/x86 targets,
256258
but that makes our `compiler_builtins` incompatible with binutils < 2.32.
257259
258-
### `mips-linux-gnu.config`
260+
### `mips-linux-gnu.defconfig`
259261
260262
For targets: `mips-unknown-linux-gnu`
261263
@@ -277,7 +279,7 @@ For targets: `mips-unknown-linux-gnu`
277279
- C compiler > gcc extra config = --with-fp-32=xx --with-odd-spreg-32=no
278280
- C compiler > C++ = ENABLE -- to cross compile LLVM
279281
280-
### `mipsel-linux-gnu.config`
282+
### `mipsel-linux-gnu.defconfig`
281283
282284
For targets: `mipsel-unknown-linux-gnu`
283285
@@ -299,7 +301,7 @@ For targets: `mipsel-unknown-linux-gnu`
299301
- C compiler > gcc extra config = --with-fp-32=xx --with-odd-spreg-32=no
300302
- C compiler > C++ = ENABLE -- to cross compile LLVM
301303
302-
### `mips64-linux-gnu.config`
304+
### `mips64-linux-gnu.defconfig`
303305
304306
For targets: `mips64-unknown-linux-gnuabi64`
305307
@@ -320,7 +322,7 @@ For targets: `mips64-unknown-linux-gnuabi64`
320322
- C compiler > gcc version = 8.5.0
321323
- C compiler > C++ = ENABLE -- to cross compile LLVM
322324
323-
### `mips64el-linux-gnu.config`
325+
### `mips64el-linux-gnu.defconfig`
324326
325327
For targets: `mips64el-unknown-linux-gnuabi64`
326328
@@ -341,7 +343,7 @@ For targets: `mips64el-unknown-linux-gnuabi64`
341343
- C compiler > gcc version = 8.5.0
342344
- C compiler > C++ = ENABLE -- to cross compile LLVM
343345
344-
### `powerpc-linux-gnu.config`
346+
### `powerpc-linux-gnu.defconfig`
345347
346348
For targets: `powerpc-unknown-linux-gnu`
347349
@@ -357,7 +359,7 @@ For targets: `powerpc-unknown-linux-gnu`
357359
- C compiler > gcc version = 8.5.0
358360
- C compiler > C++ = ENABLE -- to cross compile LLVM
359361
360-
### `powerpc64-linux-gnu.config`
362+
### `powerpc64-linux-gnu.defconfig`
361363
362364
For targets: `powerpc64-unknown-linux-gnu`
363365
@@ -377,7 +379,7 @@ For targets: `powerpc64-unknown-linux-gnu`
377379
378380
(+) These CPU options match the configuration of the toolchains in RHEL6.
379381
380-
### `riscv64-unknown-linux-gnu.config`
382+
### `riscv64-unknown-linux-gnu.defconfig`
381383
382384
For targets: `riscv64-unknown-linux-gnu`
383385
@@ -393,7 +395,7 @@ For targets: `riscv64-unknown-linux-gnu`
393395
- C compiler > gcc version = 8.5.0
394396
- C compiler > C++ = ENABLE -- to cross compile LLVM
395397
396-
### `s390x-linux-gnu.config`
398+
### `s390x-linux-gnu.defconfig`
397399
398400
For targets: `s390x-unknown-linux-gnu`
399401

src/ci/docker/host-x86_64/dist-aarch64-linux/Dockerfile

+3-5
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,11 @@ RUN sh /scripts/crosstool-ng.sh
88

99
COPY scripts/rustbuild-setup.sh /scripts/
1010
RUN sh /scripts/rustbuild-setup.sh
11-
USER rustbuild
1211
WORKDIR /tmp
1312

14-
COPY host-x86_64/dist-aarch64-linux/aarch64-linux-gnu.config host-x86_64/dist-aarch64-linux/build-toolchains.sh /tmp/
15-
RUN ./build-toolchains.sh
16-
17-
USER root
13+
COPY scripts/crosstool-ng-build.sh /scripts/
14+
COPY host-x86_64/dist-aarch64-linux/aarch64-linux-gnu.defconfig /tmp/crosstool.defconfig
15+
RUN /scripts/crosstool-ng-build.sh
1816

1917
COPY scripts/sccache.sh /scripts/
2018
RUN sh /scripts/sccache.sh

0 commit comments

Comments
 (0)