From 033959855c5e21448d746a88fe6688970eef3622 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sun, 6 Nov 2011 02:14:43 +0100 Subject: [PATCH] Extend gl_MATHFUNC. * m4/mathfunc.m4 (gl_MATHFUNC): Accept an 4th parameter of INCLUDES. Support 'void' as argument type. * m4/rint.m4 (gl_FUNC_RINT): Update gl_MATHFUNC invocation. --- ChangeLog | 7 +++++++ m4/mathfunc.m4 | 32 ++++++++++++++++++-------------- m4/rint.m4 | 4 ++-- 3 files changed, 27 insertions(+), 16 deletions(-) diff --git a/ChangeLog b/ChangeLog index 07d0fbd69..f46a0a38d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2011-11-05 Bruno Haible + + Extend gl_MATHFUNC. + * m4/mathfunc.m4 (gl_MATHFUNC): Accept an 4th parameter of INCLUDES. + Support 'void' as argument type. + * m4/rint.m4 (gl_FUNC_RINT): Update gl_MATHFUNC invocation. + 2011-11-05 Jim Meyering maint.mk: also prohibit inclusion of dirent.h without use diff --git a/m4/mathfunc.m4 b/m4/mathfunc.m4 index b7a1239f7..c75e7b939 100644 --- a/m4/mathfunc.m4 +++ b/m4/mathfunc.m4 @@ -1,11 +1,11 @@ -# mathfunc.m4 serial 9 +# mathfunc.m4 serial 10 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, dnl with or without modifications, as long as this notice is preserved. -# gl_MATHFUNC(FUNC, RETTYPE, PARAMTYPES [, EXTRA-CODE]) -# ----------------------------------------------------- +# gl_MATHFUNC(FUNC, RETTYPE, PARAMTYPES [, INCLUDES] [, EXTRA-CODE]) +# ------------------------------------------------------------------ # tests whether the function FUNC is available in libc or libm. # RETTYPE is the return type. PARAMTYPES is a parameter list, with parentheses. # It sets FUNC_LIBM to empty or "-lm" accordingly. @@ -38,15 +38,17 @@ AC_DEFUN([gl_MATHFUNC], [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])]) + [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])], + [void], [])]) FUNC[]_LIBM= AC_CACHE_CHECK([whether func() can be used without linking with libm], [gl_cv_func_]func[_no_libm], @@ -57,13 +59,14 @@ AC_DEFUN([gl_MATHFUNC], # define __NO_MATH_INLINES 1 /* for glibc */ #endif #include + $4 $2 (*funcptr) $3 = ]func[; int i_ret; float f_ret; double d_ret; long double l_ret;]], [[$2 y = funcptr ]ARGS[ + ]func[ ]ARGS[; - $4 + $5 return y < 0.3 || y > 1.7; ]])], [gl_cv_func_]func[_no_libm=yes], @@ -81,13 +84,14 @@ AC_DEFUN([gl_MATHFUNC], # define __NO_MATH_INLINES 1 /* for glibc */ #endif #include + $4 $2 (*funcptr) $3 = ]func[; int i_ret; float f_ret; double d_ret; long double l_ret;]], [[$2 y = funcptr ]ARGS[ + ]func[ ]ARGS[; - $4 + $5 return y < 0.3 || y > 1.7; ]])], [gl_cv_func_]func[_in_libm=yes], diff --git a/m4/rint.m4 b/m4/rint.m4 index 2a0913659..410db8bdd 100644 --- a/m4/rint.m4 +++ b/m4/rint.m4 @@ -1,4 +1,4 @@ -# rint.m4 serial 3 +# rint.m4 serial 4 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, @@ -13,7 +13,7 @@ AC_DEFUN([gl_FUNC_RINT], dnl In AIX 7.1 with gcc 4.2, when optimization is turned on, calls to dnl rint() with simple arguments are turned into rintf() calls by the dnl compiler. But while rint() is resides in libc, rintf() is in libm. - gl_MATHFUNC([rint], [double], [(double)], [y += rint (2.0);]) + gl_MATHFUNC([rint], [double], [(double)], [], [y += rint (2.0);]) if test $gl_cv_func_rint_no_libm = no \ && test $gl_cv_func_rint_in_libm = no; then HAVE_RINT=0 -- 2.11.0