sim: bfin: skip .c/.S tests if no compiler is available

Similar to logic in the cris exp, attempt a simple compile and if it fails
(presumably due to the compiler being broken), skip all the related tests.
Fortunately, most tests (~600 out of ~800) are pure assembly, so people should
still get pretty good coverage.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
Mike Frysinger 2012-03-25 16:51:46 +00:00
parent 5b43fab2ea
commit 44ac5dbe32
2 changed files with 34 additions and 0 deletions

View File

@ -8,6 +8,12 @@
* fact.s: Comment out test with too large a number (6227020800).
* allinsn.exp: If preprocessing usp.S fails, set has_cpp to 0,
else set it to 1. If compiling argc.c fails, set has_cc to 0,
else set it to 1. When processing each src file, if has_ccp is
0 and the file ends in .S, skip it; if it has_cc is 0 and the
file ends in .c, skip it.
2012-03-19 Mike Frysinger <vapier@gentoo.org>
* se_all64bitg0opcodes.S, se_all64bitg1opcodes.S,

View File

@ -4,7 +4,35 @@ if [istarget bfin-*-elf] {
# all machines
set all_machs "bfin"
# See if we have a preprocessor available.
if { [target_compile $srcdir/$subdir/usp.S compilercheck.x "preprocess" \
[list "incdir=$srcdir/$subdir"]] == "" } {
set has_cpp 1
} {
verbose -log "Can't execute preprocessor"
set has_cpp 0
}
# See if we have a compiler available.
if { [target_compile $srcdir/$subdir/argc.c compilercheck.x "executable" \
[list "incdir=$srcdir/$subdir" "additional_flags=-msim"]] == "" } {
set has_cc 1
} {
verbose -log "Can't execute C compiler"
set has_cc 0
}
foreach src [lsort [glob -nocomplain $srcdir/$subdir/*.\[csS\]]] {
# If we don't have a compiler available, skip tests :(.
if { $has_cpp == 0 && [string match "*.S" $src] } {
untested $src
continue
}
if { $has_cc == 0 && [string match "*.c" $src] } {
untested $src
continue
}
# If we're only testing specific files and this isn't one of them,
# skip it.
if ![runtest_file_p $runtests $src] {