[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: new module 'frexpf'
From: |
Bruno Haible |
Subject: |
Re: new module 'frexpf' |
Date: |
Fri, 7 Oct 2011 00:12:01 +0200 |
User-agent: |
KMail/1.13.6 (Linux/2.6.37.6-0.5-desktop; KDE/4.6.0; x86_64; ; ) |
Oops, this module made the wrong assumption that 'frexp' and 'frexpf' are
defined in the same library. This is not true: On NetBSD and OpenBSD,
frexp is in libc but frexpf is in libm. So the configure test reports
checking for frexpf... no
and arranges for a replacement, although it would not be necessary.
This fixes it:
2011-10-06 Bruno Haible <address@hidden>
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.
--- m4/frexpf.m4.orig Fri Oct 7 00:11:11 2011
+++ m4/frexpf.m4 Thu Oct 6 23:11:32 2011
@@ -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
--- m4/mathfunc.m4.orig Fri Oct 7 00:11:11 2011
+++ m4/mathfunc.m4 Fri Oct 7 00:11:04 2011
@@ -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],
--- modules/frexpf.orig Fri Oct 7 00:11:11 2011
+++ modules/frexpf Thu Oct 6 23:12:47 2011
@@ -4,6 +4,7 @@
Files:
lib/frexpf.c
m4/frexpf.m4
+m4/mathfunc.m4
Depends-on:
math
--
In memoriam Bahriye Üçok <http://en.wikipedia.org/wiki/Bahriye_Üçok>
- new module 'fabsf', Bruno Haible, 2011/10/05
- new module 'fmodf', Bruno Haible, 2011/10/05
- new module 'modff', Bruno Haible, 2011/10/05
- new module 'frexpf', Bruno Haible, 2011/10/06
- Re: new module 'fabsf', Bruno Haible, 2011/10/06
- new module 'ldexpf', Bruno Haible, 2011/10/07
- new 'float' math modules, Bruno Haible, 2011/10/08