bug-gsl
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug-gsl] [PATCH] Disable use of FMA


From: Andreas Schwab
Subject: [Bug-gsl] [PATCH] Disable use of FMA
Date: Sun, 27 Nov 2011 01:12:30 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.91 (gnu/linux)

The algorithms in cblas (at least) become instable when the compiler is
allowed to contract floating-point expressions.  This manifests in the
failure of the ode-initval2 test.  Add a configure check to disable fp
contractions.

Andreas.

=== modified file 'configure.ac'
--- configure.ac        2011-09-22 16:13:22 +0000
+++ configure.ac        2011-11-26 23:55:24 +0000
@@ -381,6 +381,28 @@
 AC_SUBST(HAVE_DARWIN_IEEE_INTERFACE)
 AC_SUBST(HAVE_DARWIN86_IEEE_INTERFACE)
 
+dnl check for compiler flags to disable use of FMA
+save_cflags="$CFLAGS"
+AC_CACHE_CHECK([for compiler flags to disable use of FMA], ac_cv_c_fma_flags,
+[
+if test X"$GCC" = Xyes; then
+    fma_flags='-ffp-contract=off'
+else
+    fma_flags=
+fi
+if test X"$fma_flags" != X; then
+  CFLAGS="$fma_flags $CFLAGS"
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[int 
foo;]])],[ac_cv_c_fma_flags="$fma_flags"],[ac_cv_c_fma_flags="none"])
+else
+  ac_cv_c_fma_flags="none"
+fi])
+
+if test "$ac_cv_c_fma_flags" != "none" ; then
+   CFLAGS="$ac_cv_c_fma_flags $save_cflags"
+else
+   CFLAGS="$save_cflags"
+fi
+
 dnl Check for IEEE control flags
 
 save_cflags="$CFLAGS"

-- 
Andreas Schwab, address@hidden
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]