1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
#!/bin/sh
HERE=`dirname "$0"`
TARGET="$1"
shift
if [ -d /opt/picolibc-ci ]; then
TOP=/opt/picolibc-ci
else
TOP=/opt
fi
# Put only the relevant toolchain in PATH for specific CI targets.
# Fallback to previous behavior for other targets.
case "$TARGET" in
*clang-hexagon*)
for p in "$TOP"/*hexagon*/bin "$TOP"/*/models/*; do
[ -d "$p" ] && PATH="$p":$PATH
done
;;
*clang-arm*|*clang-aarch64*|*clang-thumb*)
for p in "$TOP"/LLVM-ET-Arm*/bin "$TOP"/*/models/*; do
[ -d "$p" ] && PATH="$p":$PATH
done
;;
*)
for p in "$TOP"/*/bin "$TOP"/*/models/*; do
PATH="$p":$PATH
done
;;
esac
# We can't use both the analyzer and sanitizer because
# the analyzer is run after the sanitizer and generates a lot
# of false positives, so just use the sanitizer as it
# appears to find more relevant bugs at this point.
SANITIZER="-Dsanitize=undefined"
# Use traps with the sanitizer on msp430 as the handlers make many
# tests too large
case "$TARGET" in
*msp430*)
SANITIZER="$SANITIZER -Dsanitize-trap-on-error=true"
;;
esac
OPTIONS="$SANITIZER -Dexhaustive-math-tests=native"
"$HERE"/do-run "$TARGET" $OPTIONS "$@"
|