Simplify/fix libffi_feature_test
authorThomas Schwinge <thomas@codesourcery.com>
Thu, 25 Feb 2016 19:10:18 +0000 (20:10 +0100)
committerThomas Schwinge <thomas@codesourcery.com>
Wed, 16 Mar 2016 16:37:07 +0000 (17:37 +0100)
As detailed in
<http://news.gmane.org/find-root.php?message_id=%3C87wppswqqt.fsf%40kepler.schwinge.homeip.net%3E>,
the original code (originally added in commit
f1301a54bb80e6ae23f7687c68f36875dae69134 as part of pull request #145) does not
work (at least not for me, in the GCC environment).

testsuite/lib/libffi.exp

index 0d74627..e3e6b34 100644 (file)
@@ -225,20 +225,21 @@ proc libffi_target_compile { source dest type options } {
 
 # TEST should be a preprocessor condition.  Returns true if it holds.
 proc libffi_feature_test { test } {
-    set src "ffitest.c"
+    set src "ffitest[pid].c"
 
     set f [open $src "w"]
     puts $f "#include <ffi.h>"
     puts $f $test
-    puts $f "xyzzy"
+    puts $f "/* OK */"
+    puts $f "#else"
+    puts $f "# error Failed $test"
     puts $f "#endif"
     close $f
 
-    set lines [libffi_target_compile $src "" "preprocess" ""]
+    set lines [libffi_target_compile $src /dev/null assembly ""]
     file delete $src
 
-    set last [lindex $lines end]
-    return [regexp -- "xyzzy" $last]
+    return [string match "" $lines]
 }
 
 # Utility routines.