@@ -83,12 +83,12 @@ To run the image,
8383A number of these images take quite a long time to compile as they're building
8484whole gcc toolchains to do cross builds with. Much of this is relatively
8585self-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,
8787how 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
9494of 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
109109CONTAINER 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,66 +136,73 @@ $ 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
154156Changes 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
163165For targets: `arm-unknown-linux-gnueabi`
164166
165167- Path and misc options > Prefix directory = /x-tools/${CT\_TARGET}
166- - Path and misc options > Patches origin = Bundled only
168+ - Path and misc options > Use a mirror = ENABLE
169+ - Path and misc options > Base URL = https://ci-mirrors.rust-lang.org/rustc
167170- Target options > Target Architecture = arm
168171- Target options > Architecture level = armv6 -- (+)
169172- Target options > Floating point = software (no FPU) -- (\*)
170173- Operating System > Target OS = linux
171174- Operating System > Linux kernel version = 3.2.101
175+ - Binary utilities > Version of binutils = 2.32
172176- C-library > glibc version = 2.17.0
173- - C compiler > gcc version = 8.3 .0
177+ - C compiler > gcc version = 8.5 .0
174178- C compiler > C++ = ENABLE -- to cross compile LLVM
175179
176- ### `arm-linux-gnueabihf.config `
180+ ### `arm-linux-gnueabihf.defconfig `
177181
178182For targets: `arm-unknown-linux-gnueabihf`
179183
180184- Path and misc options > Prefix directory = /x-tools/${CT\_TARGET}
181- - Path and misc options > Patches origin = Bundled only
185+ - Path and misc options > Use a mirror = ENABLE
186+ - Path and misc options > Base URL = https://ci-mirrors.rust-lang.org/rustc
182187- Target options > Target Architecture = arm
183188- Target options > Architecture level = armv6 -- (+)
184189- Target options > Use specific FPU = vfp -- (+)
185190- Target options > Floating point = hardware (FPU) -- (\*)
186191- Target options > Default instruction set mode = arm -- (+)
187192- Operating System > Target OS = linux
188193- Operating System > Linux kernel version = 3.2.101
194+ - Binary utilities > Version of binutils = 2.32
189195- C-library > glibc version = 2.17.0
190- - C compiler > gcc version = 8.3 .0
196+ - C compiler > gcc version = 8.5 .0
191197- C compiler > C++ = ENABLE -- to cross compile LLVM
192198
193- ### `armv7-linux-gnueabihf.config `
199+ ### `armv7-linux-gnueabihf.defconfig `
194200
195201For targets: `armv7-unknown-linux-gnueabihf`
196202
197203- Path and misc options > Prefix directory = /x-tools/${CT\_TARGET}
198- - Path and misc options > Patches origin = Bundled only
204+ - Path and misc options > Use a mirror = ENABLE
205+ - Path and misc options > Base URL = https://ci-mirrors.rust-lang.org/rustc
199206- Target options > Target Architecture = arm
200207- Target options > Suffix to the arch-part = v7
201208- Target options > Architecture level = armv7-a -- (+)
@@ -204,8 +211,9 @@ For targets: `armv7-unknown-linux-gnueabihf`
204211- Target options > Default instruction set mode = thumb -- (\*)
205212- Operating System > Target OS = linux
206213- Operating System > Linux kernel version = 3.2.101
214+ - Binary utilities > Version of binutils = 2.32
207215- C-library > glibc version = 2.17.0
208- - C compiler > gcc version = 8.3 .0
216+ - C compiler > gcc version = 8.5 .0
209217- C compiler > C++ = ENABLE -- to cross compile LLVM
210218
211219(\*) These options have been selected to match the configuration of the arm
@@ -214,7 +222,7 @@ For targets: `armv7-unknown-linux-gnueabihf`
214222 libraries like jemalloc. See the mk/cfg/arm(v7)-unknown-linux-gnueabi{,hf}.mk
215223 file in Rust's source code.
216224
217- ### `aarch64-linux-gnu.config `
225+ ### `aarch64-linux-gnu.defconfig `
218226
219227For targets: `aarch64-unknown-linux-gnu`
220228
@@ -225,17 +233,16 @@ For targets: `aarch64-unknown-linux-gnu`
225233- Target options > Bitness = 64-bit
226234- Operating System > Target OS = linux
227235- Operating System > Linux kernel version = 4.1.49
228- - Binary utilities > Version of binutils = 2.32
236+ - Binary utilities > Version of binutils = 2.29.1
229237- C-library > glibc version = 2.17 -- aarch64 support was introduced in this version
230- - C compiler > gcc version = 8.3 .0
238+ - C compiler > gcc version = 8.5 .0
231239- C compiler > C++ = ENABLE -- to cross compile LLVM
232240
233- ### `i586-linux-gnu.config `
241+ ### `i586-linux-gnu.defconfig `
234242
235243For targets: `i586-unknown-linux-gnu`
236244
237245- Path and misc options > Prefix directory = /x-tools/${CT\_TARGET}
238- - Path and misc options > Patches origin = Bundled only
239246- Target options > Target Architecture = x86
240247- Target options > Architecture level = i586
241248- Target options > Target CFLAGS = -Wa,-mrelax-relocations=no
@@ -244,13 +251,13 @@ For targets: `i586-unknown-linux-gnu`
244251- Binary utilities > Version of binutils = 2.32
245252- Binary utilities > binutils extra config = --enable-compressed-debug-sections=none -- (\*)
246253- C-library > glibc version = 2.17.0
247- - C compiler > gcc version = 8.3 .0
254+ - C compiler > gcc version = 8.5 .0
248255- C compiler > C++ = ENABLE
249256
250257(\*) Compressed debug is enabled by default for gas (assembly) on Linux/x86 targets,
251258 but that makes our `compiler_builtins` incompatible with binutils < 2.32.
252259
253- ### `mips-linux-gnu.config `
260+ ### `mips-linux-gnu.defconfig `
254261
255262For targets: `mips-unknown-linux-gnu`
256263
@@ -265,14 +272,14 @@ For targets: `mips-unknown-linux-gnu`
265272- Target options > Bitness = 32-bit
266273- Target options > Architecture level = mips32r2
267274- Operating System > Target OS = linux
268- - Operating System > Linux kernel version = 4.4.174
275+ - Operating System > Linux kernel version = 4.4.302
269276- Binary utilities > Version of binutils = 2.32
270277- C-library > glibc version = 2.23
271- - C compiler > gcc version = 8.3 .0
278+ - C compiler > gcc version = 8.5 .0
272279- C compiler > gcc extra config = --with-fp-32=xx --with-odd-spreg-32=no
273280- C compiler > C++ = ENABLE -- to cross compile LLVM
274281
275- ### `mipsel-linux-gnu.config `
282+ ### `mipsel-linux-gnu.defconfig `
276283
277284For targets: `mipsel-unknown-linux-gnu`
278285
@@ -287,14 +294,14 @@ For targets: `mipsel-unknown-linux-gnu`
287294- Target options > Bitness = 32-bit
288295- Target options > Architecture level = mips32r2
289296- Operating System > Target OS = linux
290- - Operating System > Linux kernel version = 4.4.174
297+ - Operating System > Linux kernel version = 4.4.302
291298- Binary utilities > Version of binutils = 2.32
292299- C-library > glibc version = 2.23
293- - C compiler > gcc version = 8.3 .0
300+ - C compiler > gcc version = 8.5 .0
294301- C compiler > gcc extra config = --with-fp-32=xx --with-odd-spreg-32=no
295302- C compiler > C++ = ENABLE -- to cross compile LLVM
296303
297- ### `mips64-linux-gnu.config `
304+ ### `mips64-linux-gnu.defconfig `
298305
299306For targets: `mips64-unknown-linux-gnuabi64`
300307
@@ -309,13 +316,13 @@ For targets: `mips64-unknown-linux-gnuabi64`
309316- Target options > Bitness = 64-bit
310317- Target options > Architecture level = mips64r2
311318- Operating System > Target OS = linux
312- - Operating System > Linux kernel version = 4.4.174
319+ - Operating System > Linux kernel version = 4.4.302
313320- Binary utilities > Version of binutils = 2.32
314321- C-library > glibc version = 2.23
315- - C compiler > gcc version = 8.3 .0
322+ - C compiler > gcc version = 8.5 .0
316323- C compiler > C++ = ENABLE -- to cross compile LLVM
317324
318- ### `mips64el-linux-gnu.config `
325+ ### `mips64el-linux-gnu.defconfig `
319326
320327For targets: `mips64el-unknown-linux-gnuabi64`
321328
@@ -330,13 +337,13 @@ For targets: `mips64el-unknown-linux-gnuabi64`
330337- Target options > Bitness = 64-bit
331338- Target options > Architecture level = mips64r2
332339- Operating System > Target OS = linux
333- - Operating System > Linux kernel version = 4.4.174
340+ - Operating System > Linux kernel version = 4.4.302
334341- Binary utilities > Version of binutils = 2.32
335342- C-library > glibc version = 2.23
336- - C compiler > gcc version = 8.3 .0
343+ - C compiler > gcc version = 8.5 .0
337344- C compiler > C++ = ENABLE -- to cross compile LLVM
338345
339- ### `powerpc-linux-gnu.config `
346+ ### `powerpc-linux-gnu.defconfig `
340347
341348For targets: `powerpc-unknown-linux-gnu`
342349
@@ -349,10 +356,10 @@ For targets: `powerpc-unknown-linux-gnu`
349356- Operating System > Linux kernel version = 3.2.101
350357- Binary utilities > Version of binutils = 2.30
351358- C-library > glibc version = 2.17 -- ~RHEL7 glibc
352- - C compiler > gcc version = 8.3 .0
359+ - C compiler > gcc version = 8.5 .0
353360- C compiler > C++ = ENABLE -- to cross compile LLVM
354361
355- ### `powerpc64-linux-gnu.config `
362+ ### `powerpc64-linux-gnu.defconfig `
356363
357364For targets: `powerpc64-unknown-linux-gnu`
358365
@@ -367,12 +374,28 @@ For targets: `powerpc64-unknown-linux-gnu`
367374- Operating System > Linux kernel version = 3.2.101
368375- Binary utilities > Version of binutils = 2.32
369376- C-library > glibc version = 2.17 -- ~RHEL7 glibc
370- - C compiler > gcc version = 8.3 .0
377+ - C compiler > gcc version = 8.5 .0
371378- C compiler > C++ = ENABLE -- to cross compile LLVM
372379
373380(+) These CPU options match the configuration of the toolchains in RHEL6.
374381
375- ### `s390x-linux-gnu.config`
382+ ### `riscv64-unknown-linux-gnu.defconfig`
383+
384+ For targets: `riscv64-unknown-linux-gnu`
385+
386+ - Path and misc options > Prefix directory = /x-tools/${CT\_TARGET}
387+ - Path and misc options > Use a mirror = ENABLE
388+ - Path and misc options > Base URL = https://ci-mirrors.rust-lang.org/rustc
389+ - Target options > Target Architecture = riscv
390+ - Target options > Bitness = 64-bit
391+ - Operating System > Target OS = linux
392+ - Operating System > Linux kernel version = 4.20.17
393+ - Binary utilities > Version of binutils = 2.32
394+ - C-library > glibc version = 2.29
395+ - C compiler > gcc version = 8.5.0
396+ - C compiler > C++ = ENABLE -- to cross compile LLVM
397+
398+ ### `s390x-linux-gnu.defconfig`
376399
377400For targets: `s390x-unknown-linux-gnu`
378401
@@ -385,6 +408,6 @@ For targets: `s390x-unknown-linux-gnu`
385408- Operating System > Linux kernel version = 3.2.101
386409- Binary utilities > Version of binutils = 2.32
387410- C-library > glibc version = 2.17 -- ~RHEL7 glibc
388- - C compiler > gcc version = 8.3 .0
411+ - C compiler > gcc version = 8.5 .0
389412- C compiler > gcc extra config = --with-arch=z10 -- LLVM's minimum support
390413- C compiler > C++ = ENABLE -- to cross compile LLVM
0 commit comments