diff options
| author | MarcoIeni <11428655+MarcoIeni@users.noreply.github.com> | 2025-05-20 15:16:29 +0200 |
|---|---|---|
| committer | MarcoIeni <11428655+MarcoIeni@users.noreply.github.com> | 2025-05-20 15:16:29 +0200 |
| commit | a8173fcd1f44baf1ef2f582983f17898317ff81b (patch) | |
| tree | d5df6b2c275927b46e9e695efe8ed9a69940f34c /src/ci/docker/scripts | |
| parent | ae3b909a323aa771db8ee3919c1454b77db05fbf (diff) | |
| download | rust-a8173fcd1f44baf1ef2f582983f17898317ff81b.tar.gz rust-a8173fcd1f44baf1ef2f582983f17898317ff81b.zip | |
ci: split powerpc64le-linux job
Diffstat (limited to 'src/ci/docker/scripts')
| -rwxr-xr-x | src/ci/docker/scripts/build-powerpc64le-toolchain.sh | 74 |
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 |
