fix the powerpc64le target

by selecting a CPU that's compatible with the instructions that `rustc`
generates
This commit is contained in:
Jorge Aparicio 2016-10-14 09:59:21 -05:00
parent f6b5c56113
commit 5d164a4eda
3 changed files with 4 additions and 9 deletions

View File

@ -7,5 +7,6 @@ RUN apt-get install -y --no-install-recommends \
qemu-system-ppc qemu-system-ppc
ENV CARGO_TARGET_POWERPC64LE_UNKNOWN_LINUX_GNU_LINKER=powerpc64le-linux-gnu-gcc \ ENV CARGO_TARGET_POWERPC64LE_UNKNOWN_LINUX_GNU_LINKER=powerpc64le-linux-gnu-gcc \
QEMU_CPU=POWER8 \
QEMU_LD_PREFIX=/usr/powerpc64le-linux-gnu \ QEMU_LD_PREFIX=/usr/powerpc64le-linux-gnu \
RUST_TEST_THREADS=1 RUST_TEST_THREADS=1

View File

@ -6,12 +6,6 @@ case $1 in
xargo build --target $1 xargo build --target $1
xargo build --target $1 --release xargo build --target $1 --release
;; ;;
# QEMU crashes even when executing the simplest cross compiled C program:
# `int main() { return 0; }`
powerpc64le-unknown-linux-gnu)
cargo test --target $1 --no-run
cargo test --target $1 --no-run --release
;;
*) *)
cargo test --target $1 cargo test --target $1
cargo test --target $1 --release cargo test --target $1 --release
@ -69,9 +63,9 @@ esac
# NOTE On i586, It's normal that the get_pc_thunk symbol appears several times so ignore it # NOTE On i586, It's normal that the get_pc_thunk symbol appears several times so ignore it
if [ $TRAVIS_OS_NAME = osx ]; then if [ $TRAVIS_OS_NAME = osx ]; then
path=target/${1}/debug/librustc_builtins.rlib path=target/${1}/debug/libcompiler_builtins.rlib
else else
path=/target/${1}/debug/librustc_builtins.rlib path=/target/${1}/debug/libcompiler_builtins.rlib
fi fi
stdout=$($PREFIX$NM -g --defined-only $path) stdout=$($PREFIX$NM -g --defined-only $path)

View File

@ -1,5 +1,5 @@
// By compiling this file we check that all the intrinsics we care about continue to be provided by // By compiling this file we check that all the intrinsics we care about continue to be provided by
// the `rustc_builtins` crate regardless of the changes we make to it. If we, by mistake, stop // the `compiler_builtins` crate regardless of the changes we make to it. If we, by mistake, stop
// compiling a C implementation and forget to implement that intrinsic in Rust, this file will fail // compiling a C implementation and forget to implement that intrinsic in Rust, this file will fail
// to link due to the missing intrinsic (symbol). // to link due to the missing intrinsic (symbol).