about summary refs log tree commit diff
path: root/src/ci/docker/scripts
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-05-03 14:39:06 +0000
committerbors <bors@rust-lang.org>2023-05-03 14:39:06 +0000
commit9b99ff76b28605ad2e2c49e369721ae400e6a665 (patch)
treec06b7ab25c08db214bb9d0300bffb7f498d4cf27 /src/ci/docker/scripts
parent82cd953c7c43e64dae6f705ce2f07b291f0e22e3 (diff)
parent16dfd8986268ea476e0701a825a587e0078268a9 (diff)
downloadrust-9b99ff76b28605ad2e2c49e369721ae400e6a665.tar.gz
rust-9b99ff76b28605ad2e2c49e369721ae400e6a665.zip
Auto merge of #110865 - cuviper:ct-ng-1.25, r=pietroalbini
ci: upgrade and refactor crosstool-ng builders

The first commit upgrades our builders from crosstool-ng 1.24.0 to 1.25.0. There are otherwise no changes intended to the toolchains we're using, but there are some minor version upgrades as a result, especially GCC 8.3.0 to 8.5.0. The newer crosstool-ng will position us well to make toolchain upgrades in the future though, as we were maxed out before and it now goes up to GCC 11.

The second commit refactors our config management to only commit a "mini-defconfig" for each target, produced by `ct-ng savedefconfig`. This makes it much clearer which settings we're actually changing, and also makes it easier to ensure consistency for things like mirror management.
Diffstat (limited to 'src/ci/docker/scripts')
-rw-r--r--src/ci/docker/scripts/crosstool-ng-1.24.sh13
-rwxr-xr-xsrc/ci/docker/scripts/crosstool-ng-build.sh32
-rw-r--r--src/ci/docker/scripts/crosstool-ng.sh13
3 files changed, 42 insertions, 16 deletions
diff --git a/src/ci/docker/scripts/crosstool-ng-1.24.sh b/src/ci/docker/scripts/crosstool-ng-1.24.sh
deleted file mode 100644
index 3a40f6cddb3..00000000000
--- a/src/ci/docker/scripts/crosstool-ng-1.24.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-set -ex
-
-# Mirrored from https://github.com/crosstool-ng/crosstool-ng/archive/crosstool-ng-1.24.0.tar.gz
-url="https://ci-mirrors.rust-lang.org/rustc/crosstool-ng-1.24.0.tar.gz"
-curl -Lf $url | tar xzf -
-cd crosstool-ng-crosstool-ng-1.24.0
-./bootstrap
-./configure --prefix=/usr/local
-make -j$(nproc)
-make install
-cd ..
-rm -rf crosstool-ng-crosstool-ng-1.24.0
diff --git a/src/ci/docker/scripts/crosstool-ng-build.sh b/src/ci/docker/scripts/crosstool-ng-build.sh
new file mode 100755
index 00000000000..c813d10eb9d
--- /dev/null
+++ b/src/ci/docker/scripts/crosstool-ng-build.sh
@@ -0,0 +1,32 @@
+#!/usr/bin/env bash
+
+set -ex
+
+if [ $UID -eq 0 ]; then
+    exec su rustbuild -c "$0"
+fi
+
+hide_output() {
+  set +x
+  on_err="
+echo ERROR: An error was encountered with the build.
+cat /tmp/build.log
+exit 1
+"
+  trap "$on_err" ERR
+  bash -c "while true; do sleep 30; echo \$(date) - building ...; done" &
+  PING_LOOP_PID=$!
+  "$@" &> /tmp/build.log
+  rm /tmp/build.log
+  trap - ERR
+  kill $PING_LOOP_PID
+  set -x
+}
+
+mkdir build
+cd build
+cp ../crosstool.defconfig .config
+ct-ng olddefconfig
+hide_output ct-ng build
+cd ..
+rm -rf build
diff --git a/src/ci/docker/scripts/crosstool-ng.sh b/src/ci/docker/scripts/crosstool-ng.sh
index 1d0c28c8e58..a28d7bde2ac 100644
--- a/src/ci/docker/scripts/crosstool-ng.sh
+++ b/src/ci/docker/scripts/crosstool-ng.sh
@@ -1,12 +1,19 @@
 #!/bin/sh
 set -ex
 
-url="https://github.com/crosstool-ng/crosstool-ng/archive/crosstool-ng-1.22.0.tar.gz"
+CT_NG=1.25.0
+
+url="https://github.com/crosstool-ng/crosstool-ng/archive/crosstool-ng-$CT_NG.tar.gz"
 curl -Lf $url | tar xzf -
-cd crosstool-ng-crosstool-ng-1.22.0
+cd crosstool-ng-crosstool-ng-$CT_NG
+
+# https://github.com/crosstool-ng/crosstool-ng/issues/1832
+# "download source of zlib is invalid now"
+sed -e "s|zlib.net/'|zlib.net/fossils'|" -i packages/zlib/package.desc
+
 ./bootstrap
 ./configure --prefix=/usr/local
 make -j$(nproc)
 make install
 cd ..
-rm -rf crosstool-ng-crosstool-ng-1.22.0
+rm -rf crosstool-ng-crosstool-ng-$CT_NG