2 dnl Copyright (C) 2011-2018 Free Software Foundation, Inc.
3 dnl This file is free software; the Free Software Foundation
4 dnl gives unlimited permission to copy and/or distribute it,
5 dnl with or without modifications, as long as this notice is preserved.
7 AC_DEFUN([gl_FUNC_LOG10L],
9 AC_REQUIRE([gl_MATH_H_DEFAULTS])
10 AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE])
11 AC_REQUIRE([gl_FUNC_LOG10])
13 dnl Persuade glibc <math.h> to declare log10l().
14 AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
16 dnl Test whether log10l() is declared. On AIX 5.1 it is not declared.
17 AC_CHECK_DECL([log10l], , [HAVE_DECL_LOG10L=0], [[#include <math.h>]])
19 dnl Test whether log10l() exists. Assume that log10l(), if it exists, is
20 dnl defined in the same library as log10().
22 LIBS="$LIBS $LOG10_LIBM"
23 AC_CHECK_FUNCS([log10l])
25 if test $ac_cv_func_log10l = yes; then
26 LOG10L_LIBM="$LOG10_LIBM"
29 LIBS="$LIBS $LOG10L_LIBM"
32 case "$gl_cv_func_log10l_works" in
34 *) REPLACE_LOG10L=1 ;;
38 dnl If the function is declared but does not appear to exist, it may be
39 dnl defined as an inline function. In order to avoid a conflict, we have
40 dnl to define rpl_log10l, not log10l.
41 AC_CHECK_DECLS([log10l], [REPLACE_LOG10L=1], , [[#include <math.h>]])
43 if test $HAVE_LOG10L = 0 || test $REPLACE_LOG10L = 1; then
44 if test $HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = 1; then
45 LOG10L_LIBM="$LOG10_LIBM"
47 if test $HAVE_LOG10L = 0; then
48 AC_REQUIRE([gl_FUNC_LOGL])
49 LOG10L_LIBM="$LOGL_LIBM"
53 AC_SUBST([LOG10L_LIBM])
56 dnl Test whether log10l() works.
57 dnl On OSF/1 5.1, log10l(-0.0L) is NaN.
58 dnl On IRIX 6.5, log10l(-0.0L) is an unnormalized negative infinity
59 dnl 0xFFF00000000000007FF0000000000000, should be
60 dnl 0xFFF00000000000000000000000000000.
61 dnl On AIX 5.1, log10l(-0.0L) is finite if it's not the first log10l call
63 AC_DEFUN([gl_FUNC_LOG10L_WORKS],
65 AC_REQUIRE([AC_PROG_CC])
66 AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
67 AC_CACHE_CHECK([whether log10l works], [gl_cv_func_log10l_works],
72 #ifndef log10l /* for AIX */
77 long double log10l (long double);
79 volatile long double x;
83 /* Dummy call, to trigger the AIX 5.1 bug. */
86 /* This test fails on AIX 5.1, IRIX 6.5, OSF/1 5.1. */
94 [gl_cv_func_log10l_works=yes],
95 [gl_cv_func_log10l_works=no],
97 aix* | irix* | osf*) gl_cv_func_log10l_works="guessing no" ;;
98 # Guess yes on native Windows.
99 mingw*) gl_cv_func_log10l_works="guessing yes" ;;
100 *) gl_cv_func_log10l_works="guessing yes" ;;