Index: sim/testsuite/sim/bfin/allinsn.exp |
diff --git a/sim/testsuite/sim/bfin/allinsn.exp b/sim/testsuite/sim/bfin/allinsn.exp |
index 49c868ac7ab8d67b29e1e786bed329f6a0fd730f..aa304eaa9b4ae2aa6a22e98cbb187b90d4e88ac0 100644 |
--- a/sim/testsuite/sim/bfin/allinsn.exp |
+++ b/sim/testsuite/sim/bfin/allinsn.exp |
@@ -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] { |