Mercurial > hg > octave-lyh > gnulib-hg
changeset 15843:bc22a56bfa43
frexpf: Drop assumption about library that defines frexpf.
* m4/mathfunc.m4 (gl_MATHFUNC): Support also the argument types
'int *', 'float *', 'long double *', 'float', 'long double'.
* m4/frexpf.m4 (gl_FUNC_FREXPF): Use gl_MATHFUNC macro instead of
AC_CHECK_FUNCS.
* modules/frexpf (Files): Add m4/mathfunc.m4.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Fri, 07 Oct 2011 00:11:51 +0200 |
parents | 290f37cfc069 |
children | 5a6c8b0dc836 |
files | ChangeLog m4/frexpf.m4 m4/mathfunc.m4 modules/frexpf |
diffstat | 4 files changed, 26 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2011-10-06 Bruno Haible <bruno@clisp.org> + frexpf: Drop assumption about library that defines frexpf. + * m4/mathfunc.m4 (gl_MATHFUNC): Support also the argument types + 'int *', 'float *', 'long double *', 'float', 'long double'. + * m4/frexpf.m4 (gl_FUNC_FREXPF): Use gl_MATHFUNC macro instead of + AC_CHECK_FUNCS. + * modules/frexpf (Files): Add m4/mathfunc.m4. + Tests for module 'frexpf'. * modules/frexpf-tests: New file. * tests/test-frexpf.c: New file.
--- a/m4/frexpf.m4 +++ b/m4/frexpf.m4 @@ -1,4 +1,4 @@ -# frexpf.m4 serial 1 +# frexpf.m4 serial 2 dnl Copyright (C) 2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -9,15 +9,12 @@ AC_REQUIRE([gl_MATH_H_DEFAULTS]) AC_REQUIRE([gl_FUNC_FREXP]) - dnl Test whether frexpf() exists. Assume that frexpf(), if it exists, is - dnl defined in the same library as frexp(). - save_LIBS="$LIBS" - LIBS="$LIBS $FREXP_LIBM" - AC_CHECK_FUNCS([frexpf]) - LIBS="$save_LIBS" - if test $ac_cv_func_frexpf = yes; then - FREXPF_LIBM="$FREXP_LIBM" - else + dnl Test whether frexpf() exists. We cannot assume that frexpf(), if it + dnl exists, is defined in the same library as frexp(). This is not the case + dnl on NetBSD, OpenBSD. + gl_MATHFUNC([frexpf], [float], [(float, int *)]) + if test $gl_cv_func_frexpf_no_libm = no \ + && test $gl_cv_func_frexpf_in_libm = no; then HAVE_FREXPF=0 FREXPF_LIBM="$FREXP_LIBM" fi
--- a/m4/mathfunc.m4 +++ b/m4/mathfunc.m4 @@ -1,4 +1,4 @@ -# mathfunc.m4 serial 6 +# mathfunc.m4 serial 7 dnl Copyright (C) 2010-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -30,8 +30,11 @@ #endif #include <math.h> $2 (*funcptr) $3 = ]func[; - double d_ret;]], - [[$2 y = funcptr ]m4_bpatsubst([m4_bpatsubst([m4_bpatsubst([$3], [int], [2])], [double \*], [&d_ret])], [double], [1.6180339887])[; + int i_ret; + float f_ret; + double d_ret; + long double l_ret;]], + [[$2 y = funcptr ]m4_bpatsubst([m4_bpatsubst([m4_bpatsubst([m4_bpatsubst([m4_bpatsubst([m4_bpatsubst([m4_bpatsubst([m4_bpatsubst([$3], [int \*], [&i_ret])], [float \*], [&f_ret])], [double \*], [&d_ret])], [long double \*], [&l_ret])], [int], [2])], [float], [1.618034f])], [long double], [1.618033988749894848L])], [double], [1.6180339887])[; return y < 0.3 || y > 1.7; ]])], [gl_cv_func_]func[_no_libm=yes], @@ -50,8 +53,11 @@ #endif #include <math.h> $2 (*funcptr) $3 = ]func[; - double d_ret;]], - [[$2 y = funcptr ]m4_bpatsubst([m4_bpatsubst([m4_bpatsubst([$3], [int], [2])], [double \*], [&d_ret])], [double], [1.6180339887])[; + int i_ret; + float f_ret; + double d_ret; + long double l_ret;]], + [[$2 y = funcptr ]m4_bpatsubst([m4_bpatsubst([m4_bpatsubst([m4_bpatsubst([m4_bpatsubst([m4_bpatsubst([m4_bpatsubst([m4_bpatsubst([$3], [int \*], [&i_ret])], [float \*], [&f_ret])], [double \*], [&d_ret])], [long double \*], [&l_ret])], [int], [2])], [float], [1.618034f])], [long double], [1.618033988749894848L])], [double], [1.6180339887])[; return y < 0.3 || y > 1.7; ]])], [gl_cv_func_]func[_in_libm=yes],