+2012-03-08 Bruno Haible <bruno@clisp.org>
+
+ fma, fmaf, fmal: Override undeclared system functions on IRIX 6.5.
+ * m4/fma.m4 (gl_FUNC_FMA): If fma() exists but is not declared,
+ arrange to set REPLACE_FMA=1, not HAVE_FMA=0.
+ * m4/fmaf.m4 (gl_FUNC_FMAF): If fmaf() exists but is not declared,
+ arrange to set REPLACE_FMAF=1, not HAVE_FMAF=0.
+ * m4/fmal.m4 (gl_FUNC_FMAL): If fmal() exists but is not declared,
+ arrange to set REPLACE_FMAL=1, not HAVE_FMAL=0.
+
2012-03-08 Bruno Haible <bruno@clisp.org>
remainderf: Override buggy system function on IRIX 6.5.
-# fma.m4 serial 1
+# fma.m4 serial 2
dnl Copyright (C) 2011-2012 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_REQUIRE([gl_MATH_H_DEFAULTS])
dnl Determine FMA_LIBM.
- gl_MATHFUNC([fma], [double], [(double, double, double)])
+ gl_MATHFUNC([fma], [double], [(double, double, double)],
+ [extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ double fma (double, double, double);
+ ])
if test $gl_cv_func_fma_no_libm = yes \
|| test $gl_cv_func_fma_in_libm = yes; then
- gl_FUNC_FMA_WORKS
- case "$gl_cv_func_fma_works" in
- *no) REPLACE_FMA=1 ;;
- esac
+ dnl Also check whether it's declared.
+ dnl IRIX 6.5 has fma() in libm but doesn't declare it in <math.h>,
+ dnl and the function is buggy.
+ AC_CHECK_DECL([fma], , [REPLACE_FMA=1], [[#include <math.h>]])
+ if test $REPLACE_FMA = 0; then
+ gl_FUNC_FMA_WORKS
+ case "$gl_cv_func_fma_works" in
+ *no) REPLACE_FMA=1 ;;
+ esac
+ fi
else
HAVE_FMA=0
fi
-# fmaf.m4 serial 2
+# fmaf.m4 serial 3
dnl Copyright (C) 2011-2012 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
dnl Determine FMAF_LIBM.
- gl_MATHFUNC([fmaf], [float], [(float, float, float)])
+ gl_MATHFUNC([fmaf], [float], [(float, float, float)],
+ [extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ float fmaf (float, float, float);
+ ])
if test $gl_cv_func_fmaf_no_libm = yes \
|| test $gl_cv_func_fmaf_in_libm = yes; then
- gl_FUNC_FMAF_WORKS
- case "$gl_cv_func_fmaf_works" in
- *no) REPLACE_FMAF=1 ;;
- esac
+ dnl Also check whether it's declared.
+ dnl IRIX 6.5 has fmaf() in libm but doesn't declare it in <math.h>,
+ dnl and the function is likely buggy.
+ AC_CHECK_DECL([fmaf], , [REPLACE_FMAF=1], [[#include <math.h>]])
+ if test $REPLACE_FMAF = 0; then
+ gl_FUNC_FMAF_WORKS
+ case "$gl_cv_func_fmaf_works" in
+ *no) REPLACE_FMAF=1 ;;
+ esac
+ fi
else
HAVE_FMAF=0
fi
-# fmal.m4 serial 2
+# fmal.m4 serial 3
dnl Copyright (C) 2011-2012 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
dnl Determine FMAL_LIBM.
- gl_MATHFUNC([fmal], [long double], [(long double, long double, long double)])
+ gl_MATHFUNC([fmal], [long double], [(long double, long double, long double)],
+ [extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ long double fmal (long double, long double, long double);
+ ])
if test $gl_cv_func_fmal_no_libm = yes \
|| test $gl_cv_func_fmal_in_libm = yes; then
- gl_FUNC_FMAL_WORKS
- case "$gl_cv_func_fmal_works" in
- *no) REPLACE_FMAL=1 ;;
- esac
+ dnl Also check whether it's declared.
+ dnl IRIX 6.5 has fmal() in libm but doesn't declare it in <math.h>,
+ dnl and the function is buggy.
+ AC_CHECK_DECL([fmal], , [REPLACE_FMAL=1], [[#include <math.h>]])
+ if test $REPLACE_FMAL = 0; then
+ gl_FUNC_FMAL_WORKS
+ case "$gl_cv_func_fmal_works" in
+ *no) REPLACE_FMAL=1 ;;
+ esac
+ fi
else
HAVE_FMAL=0
fi