about summary refs log tree commit diff
path: root/src/ci/docker/scripts
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2025-05-21 06:11:40 +0000
committerbors <bors@rust-lang.org>2025-05-21 06:11:40 +0000
commitbbd3a5ada41e0d4678de15d10404a4733dba4087 (patch)
tree30f2938bf6b427f3b51d7ca06574c7b40566d604 /src/ci/docker/scripts
parent87b454156998b945cf161c951f0fbc20ac292cf6 (diff)
parent18f42dd5003b439ddb87f5d1a44dfc75da481618 (diff)
downloadrust-bbd3a5ada41e0d4678de15d10404a4733dba4087.tar.gz
rust-bbd3a5ada41e0d4678de15d10404a4733dba4087.zip
Auto merge of #141320 - matthiaskrgr:rollup-ag3vf3a, r=matthiaskrgr
Rollup of 6 pull requests

Successful merges:

 - #140981 (Add match guard let chain drop order and scoping tests)
 - #141042 (ci: split powerpc64le-linux job)
 - #141078 (ci: split dist-arm-linux job)
 - #141222 (Implement `ptr::try_cast_aligned` and `NonNull::try_cast_aligned`.)
 - #141308 (Do not call name() on rpitit assoc_item)
 - #141316 (Update books)

r? `@ghost`
`@rustbot` modify labels: rollup
Diffstat (limited to 'src/ci/docker/scripts')
-rwxr-xr-xsrc/ci/docker/scripts/build-powerpc64le-toolchain.sh74
1 files changed, 74 insertions, 0 deletions
diff --git a/src/ci/docker/scripts/build-powerpc64le-toolchain.sh b/src/ci/docker/scripts/build-powerpc64le-toolchain.sh
new file mode 100755
index 00000000000..56ea28b6ca5
--- /dev/null
+++ b/src/ci/docker/scripts/build-powerpc64le-toolchain.sh
@@ -0,0 +1,74 @@
+#!/usr/bin/env bash
+
+set -ex
+
+source shared.sh
+
+BINUTILS=2.32
+GCC=8.3.0
+TARGET=powerpc64le-linux-gnu
+SYSROOT=/usr/local/$TARGET/sysroot
+
+# First, download the CentOS7 glibc.ppc64le and relevant header files.
+# (upstream ppc64le support wasn't added until 2.19, which el7 backported.)
+mkdir -p $SYSROOT
+pushd $SYSROOT
+
+# centos_base=http://vault.centos.org/altarch/7.3.1611/os/ppc64le/Packages/
+# Mirrored from centos_base above
+centos_base=https://ci-mirrors.rust-lang.org/rustc
+glibc_v=2.17-157-2020-11-25.el7
+kernel_v=3.10.0-514-2020-11-25.el7
+for package in glibc{,-devel,-headers}-$glibc_v kernel-headers-$kernel_v; do
+  curl $centos_base/$package.ppc64le.rpm | \
+    rpm2cpio - | cpio -idm
+done
+
+ln -sT lib64 lib
+ln -sT lib64 usr/lib
+
+popd
+
+# Next, download and build binutils.
+mkdir binutils-$TARGET
+pushd binutils-$TARGET
+curl https://ftp.gnu.org/gnu/binutils/binutils-$BINUTILS.tar.xz | tar xJf -
+mkdir binutils-build
+cd binutils-build
+hide_output ../binutils-$BINUTILS/configure --target=$TARGET --with-sysroot=$SYSROOT
+hide_output make -j10
+hide_output make install
+popd
+rm -rf binutils-$TARGET
+
+# Finally, download and build gcc.
+mkdir gcc-$TARGET
+pushd gcc-$TARGET
+curl https://ftp.gnu.org/gnu/gcc/gcc-$GCC/gcc-$GCC.tar.xz | tar xJf -
+cd gcc-$GCC
+hide_output ./contrib/download_prerequisites
+
+mkdir ../gcc-build
+cd ../gcc-build
+hide_output ../gcc-$GCC/configure                            \
+  --enable-languages=c,c++                       \
+  --target=$TARGET                               \
+  --with-cpu=power8                              \
+  --with-sysroot=$SYSROOT                        \
+  --disable-libcilkrts                           \
+  --disable-multilib                             \
+  --disable-nls                                  \
+  --disable-libgomp                              \
+  --disable-libquadmath                          \
+  --disable-libssp                               \
+  --disable-libvtv                               \
+  --disable-libcilkrt                            \
+  --disable-libada                               \
+  --disable-libsanitizer                         \
+  --disable-libquadmath-support                  \
+  --disable-lto
+hide_output hide_output make -j10
+hide_output make install
+
+popd
+rm -rf gcc-$TARGET