fix the powerpc64le target
by selecting a CPU that's compatible with the instructions that `rustc` generates
This commit is contained in:
parent
f6b5c56113
commit
5d164a4eda
|
@ -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
|
||||||
|
|
10
ci/run.sh
10
ci/run.sh
|
@ -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)
|
||||||
|
|
|
@ -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).
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue