gsl: attempt to fix

ToDo: there may be more impurities than this processor-feature test.
This commit is contained in:
Vladimír Čunát 2013-03-17 11:01:49 +01:00
parent 99da34c204
commit c78bad69e1
2 changed files with 36 additions and 0 deletions

View File

@ -8,6 +8,10 @@ stdenv.mkDerivation rec {
sha256 = "18qf6jzz1r3mzb5qynywv4xx3z9g61hgkbpkdrhbgqh2g7jhgfc5";
};
# ToDo: there might be more impurities than FMA support check
patches = [ ./disable-fma.patch ]; # http://lists.gnu.org/archive/html/bug-gsl/2011-11/msg00019.html
patchFlags = "-p0";
doCheck = true;
meta = {

View File

@ -0,0 +1,32 @@
--- 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"