blob: 0441611f38fd2b4c6b3adfb0537f65276b79cd49 [file] [edit]
#!/usr/bin/env sh
set -ex
if [ $# -lt 2 ]; then
>&2 echo "Usage: $0 <TARGET> <CC>"
exit 1
fi
case ${2} in
clang)
export CC="${CLANG_PATH}"
CC_ARG_STYLE=clang
;;
gcc)
export CC="${GCC_PATH}"
CC_ARG_STYLE=gcc
;;
icx)
export CC="${ICX_PATH}"
# `icx` uses clang-style arguments
CC_ARG_STYLE=clang
;;
*)
>&2 echo "Unknown compiler: ${2}"
exit 1
;;
esac
export RUSTFLAGS="${RUSTFLAGS} -D warnings -Z merge-functions=disabled -Z verify-llvm-ir"
export PROFILE="${PROFILE:="release"}"
echo "RUSTFLAGS=${RUSTFLAGS}"
echo "PROFILE=${PROFILE}"
INTRINSIC_TEST="--manifest-path=crates/intrinsic-test/Cargo.toml"
case ${1} in
aarch64_be*)
export CFLAGS="-I${AARCH64_BE_TOOLCHAIN}/aarch64_be-none-linux-gnu/libc/usr/include --sysroot={AARCH64_BE_TOOLCHAIN}/aarch64_be-none-linux-gnu/libc -Wno-nonportable-vector-initialization"
ARCH=aarch64_be
;;
aarch64*)
export CFLAGS="-I/usr/aarch64-linux-gnu/include/"
ARCH=aarch64
;;
armv7*)
export CFLAGS="-I/usr/arm-linux-gnueabihf/include/"
ARCH=arm
;;
x86_64*)
export CFLAGS="-I/usr/include/x86_64-linux-gnu/"
ARCH=x86
;;
*)
;;
esac
case "${1}" in
x86_64-unknown-linux-gnu*)
env -u CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUNNER \
cargo run "${INTRINSIC_TEST}" --release \
--bin intrinsic-test -- intrinsics_data/x86-intel.xml \
--skip "crates/intrinsic-test/missing_${ARCH}_common.txt" \
--skip "crates/intrinsic-test/missing_${ARCH}_${2}.txt" \
--target "${1}" \
--cc-arg-style "${CC_ARG_STYLE}"
;;
*)
cargo run "${INTRINSIC_TEST}" --release \
--bin intrinsic-test -- intrinsics_data/arm_intrinsics.json \
--skip "crates/intrinsic-test/missing_${ARCH}_common.txt" \
--skip "crates/intrinsic-test/missing_${ARCH}_${2}.txt" \
--target "${1}" \
--cc-arg-style "${CC_ARG_STYLE}"
;;
esac
cargo test --manifest-path=rust_programs/Cargo.toml --target "${1}" --profile "${PROFILE}" --tests