+2024-04-05 Bruno Haible <bruno@clisp.org>
+
+ roundl: Fix a link error on Linux/powerpc64le.
+ * m4/check-math-lib.m4 (gl_CHECK_MATH_LIB): Accept an additional TYPE
+ argument.
+ * m4/isfinite.m4 (gl_ISFINITE): Use the type 'double'.
+ * m4/isinf.m4 (gl_ISINF): Likewise.
+ * m4/round.m4 (gl_FUNC_ROUND): Likewise.
+ * m4/roundf.m4 (gl_FUNC_ROUNDF): Use the type 'float'.
+ * m4/roundl.m4 (gl_FUNC_ROUNDL): Use the type 'long double'.
+
2024-04-05 Bruno Haible <bruno@clisp.org>
exp2l tests: Enable a test for glibc versions >= 2.16.
# check-math-lib.m4
-# serial 5
+# serial 6
dnl Copyright (C) 2007, 2009-2024 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.
dnl
-dnl gl_CHECK_MATH_LIB (VARIABLE, EXPRESSION [, EXTRA-CODE])
+dnl gl_CHECK_MATH_LIB (VARIABLE, TYPE, EXPRESSION [, EXTRA-CODE])
dnl
dnl Sets the shell VARIABLE according to the libraries needed by EXPRESSION
-dnl to compile and link: to the empty string if no extra libraries are needed,
-dnl to "-lm" if -lm is needed, or to "missing" if it does not compile and
-dnl link either way.
+dnl (that operates on a variable x of type TYPE) to compile and link: to the
+dnl empty string if no extra libraries are needed, to "-lm" if -lm is needed,
+dnl or to "missing" if it does not compile and link either way.
dnl
-dnl Example: gl_CHECK_MATH_LIB([ROUNDF_LIBM], [x = roundf (x);])
+dnl Example: gl_CHECK_MATH_LIB([ROUNDF_LIBM], [float], [x = roundf (x);])
AC_DEFUN([gl_CHECK_MATH_LIB], [
saved_LIBS="$LIBS"
$1=missing
# define __NO_MATH_INLINES 1 /* for glibc */
#endif
#include <math.h>
- $3
- double x;]],
- [$2])],
+ $4
+ $2 x;]],
+ [$3])],
[$1=$libm
break])
done
# isfinite.m4
-# serial 19
+# serial 20
dnl Copyright (C) 2007-2024 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])
AC_CHECK_DECLS([isfinite], , , [[#include <math.h>]])
if test "$ac_cv_have_decl_isfinite" = yes; then
- gl_CHECK_MATH_LIB([ISFINITE_LIBM],
- [x = isfinite (x) + isfinite ((float) x);])
+ gl_CHECK_MATH_LIB([ISFINITE_LIBM], [double],
+ [x = isfinite (x) + isfinite ((float) x);])
if test "$ISFINITE_LIBM" != missing; then
dnl Test whether isfinite() on 'long double' works.
gl_ISFINITEL_WORKS
# isinf.m4
-# serial 14
+# serial 15
dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
#endif
]])
if test "$ac_cv_have_decl_isinf" = yes; then
- gl_CHECK_MATH_LIB([ISINF_LIBM], [x = isinf (x) + isinf ((float) x);])
+ gl_CHECK_MATH_LIB([ISINF_LIBM], [double],
+ [x = isinf (x) + isinf ((float) x);])
if test "$ISINF_LIBM" != missing; then
dnl Test whether isinf() on 'long double' works.
gl_ISINFL_WORKS
# round.m4
-# serial 27
+# serial 28
dnl Copyright (C) 2007, 2009-2024 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 Persuade glibc <math.h> to declare round().
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
- gl_CHECK_MATH_LIB([ROUND_LIBM], [x = round (x);],
+ gl_CHECK_MATH_LIB([ROUND_LIBM], [double], [x = round (x);],
[extern
#ifdef __cplusplus
"C"
# roundf.m4
-# serial 28
+# serial 29
dnl Copyright (C) 2007-2024 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 Persuade glibc <math.h> to declare roundf().
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
- gl_CHECK_MATH_LIB([ROUNDF_LIBM], [x = roundf (x);],
+ gl_CHECK_MATH_LIB([ROUNDF_LIBM], [float], [x = roundf (x);],
[extern
#ifdef __cplusplus
"C"
# roundl.m4
-# serial 23
+# serial 24
dnl Copyright (C) 2007, 2009-2024 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 Persuade glibc <math.h> to declare roundl().
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
- gl_CHECK_MATH_LIB([ROUNDL_LIBM], [x = roundl (x);],
+ gl_CHECK_MATH_LIB([ROUNDL_LIBM], [long double], [x = roundl (x);],
[extern
#ifdef __cplusplus
"C"