]> git.lizzy.rs Git - rust.git/commitdiff
[CI] Update binutils for powerpc64 and powerpc64le
authorJosh Stone <jistone@redhat.com>
Thu, 7 Mar 2019 04:14:27 +0000 (20:14 -0800)
committerJosh Stone <jistone@redhat.com>
Thu, 7 Mar 2019 04:14:27 +0000 (20:14 -0800)
Cargo powerpc64 and powerpc64le are seeing `SIGILL` crashes in openssl,
which was found to be a linking problem, fixed by newer binutils. See
<https://github.com/rust-lang/rust/issues/57345#issuecomment-462094555>

For powerpc64 we're using crosstool-ng, which doesn't offer a newer
binutils version, but we can just compile it separately. On powerpc64le
we're already building binutils. Both are now updated to binutils 2.32.

Closes rust-lang/cargo#6320
Closes rust-lang/rust#57345
Closes rust-lang/rustup.rs#1620

src/ci/docker/dist-powerpc64-linux/build-powerpc64-toolchain.sh
src/ci/docker/dist-powerpc64le-linux/build-powerpc64le-toolchain.sh

index f7aa2cd326832b52495d5ea40d3e9891b828251e..a4431cbc0a16d18e5f163a4b9f57abbf852f35c6 100755 (executable)
@@ -3,9 +3,28 @@ set -ex
 
 source shared.sh
 
+BINUTILS=2.32
+TARGET=powerpc64-unknown-linux-gnu
+PREFIX=/x-tools/$TARGET
+SYSROOT=$PREFIX/$TARGET/sysroot
+
 mkdir build
 cd build
 cp ../powerpc64-linux-gnu.config .config
 hide_output ct-ng build
 cd ..
 rm -rf build
+
+chmod -R u+w $PREFIX
+
+# Next, download and build newer binutils.
+mkdir binutils-$TARGET
+pushd binutils-$TARGET
+curl https://ftp.gnu.org/gnu/binutils/binutils-$BINUTILS.tar.bz2 | tar xjf -
+mkdir binutils-build
+cd binutils-build
+hide_output ../binutils-$BINUTILS/configure --target=$TARGET --prefix=$PREFIX --with-sysroot=$SYSROOT
+hide_output make -j10
+hide_output make install
+popd
+rm -rf binutils-$TARGET
index a01803d9c8f4528ec888e4875f3fffcbe75bab63..f866a24287f9e6d9aed7b0758bd4ee258f37ee1c 100755 (executable)
@@ -4,7 +4,7 @@ set -ex
 
 source shared.sh
 
-BINUTILS=2.25.1
+BINUTILS=2.32
 GCC=5.3.0
 TARGET=powerpc64le-linux-gnu
 SYSROOT=/usr/local/$TARGET/sysroot