ldexpl.m4   ldexpl.m4 
# ldexpl.m4 serial 5 # ldexpl.m4 serial 16
dnl Copyright (C) 2007-2010 Free Software Foundation, Inc. dnl Copyright (C) 2007-2014 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it, dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved. dnl with or without modifications, as long as this notice is preserved.
AC_DEFUN([gl_FUNC_LDEXPL], AC_DEFUN([gl_FUNC_LDEXPL],
[ [
AC_REQUIRE([gl_MATH_H_DEFAULTS]) AC_REQUIRE([gl_MATH_H_DEFAULTS])
AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE])
AC_REQUIRE([gl_FUNC_ISNANL]) dnl for ISNANL_LIBM
dnl Persuade glibc <math.h> to declare ldexpl().
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
dnl Check whether it's declared. dnl Check whether it's declared.
dnl MacOS X 10.3 has ldexpl() in libc but doesn't declare it in <math.h>. dnl Mac OS X 10.3 has ldexpl() in libc but doesn't declare it in <math.h>
AC_CHECK_DECL([ldexpl], , [HAVE_DECL_LDEXPL=0], [#include <math.h>]) .
AC_CHECK_DECL([ldexpl], , [HAVE_DECL_LDEXPL=0], [[#include <math.h>]])
LDEXPL_LIBM= LDEXPL_LIBM=
if test $HAVE_DECL_LDEXPL = 1; then if test $HAVE_DECL_LDEXPL = 1; then
AC_CACHE_CHECK([whether ldexpl() can be used without linking with libm] gl_CHECK_LDEXPL_NO_LIBM
,
[gl_cv_func_ldexpl_no_libm],
[
AC_TRY_LINK([#include <math.h>
long double x;],
[return ldexpl (x, -1) > 0;],
[gl_cv_func_ldexpl_no_libm=yes],
[gl_cv_func_ldexpl_no_libm=no])
])
if test $gl_cv_func_ldexpl_no_libm = no; then if test $gl_cv_func_ldexpl_no_libm = no; then
AC_CACHE_CHECK([whether ldexpl() can be used with libm], AC_CACHE_CHECK([whether ldexpl() can be used with libm],
[gl_cv_func_ldexpl_in_libm], [gl_cv_func_ldexpl_in_libm],
[ [
save_LIBS="$LIBS" save_LIBS="$LIBS"
LIBS="$LIBS -lm" LIBS="$LIBS -lm"
AC_TRY_LINK([#include <math.h> AC_LINK_IFELSE(
long double x;], [AC_LANG_PROGRAM(
[return ldexpl (x, -1) > 0;], [[#include <math.h>
long double x;]],
[[return ldexpl (x, -1) > 0;]])],
[gl_cv_func_ldexpl_in_libm=yes], [gl_cv_func_ldexpl_in_libm=yes],
[gl_cv_func_ldexpl_in_libm=no]) [gl_cv_func_ldexpl_in_libm=no])
LIBS="$save_LIBS" LIBS="$save_LIBS"
]) ])
if test $gl_cv_func_ldexpl_in_libm = yes; then if test $gl_cv_func_ldexpl_in_libm = yes; then
LDEXPL_LIBM=-lm LDEXPL_LIBM=-lm
fi fi
fi fi
if test $gl_cv_func_ldexpl_no_libm = yes \ if test $gl_cv_func_ldexpl_no_libm = yes \
|| test $gl_cv_func_ldexpl_in_libm = yes; then || test $gl_cv_func_ldexpl_in_libm = yes; then
save_LIBS="$LIBS" save_LIBS="$LIBS"
LIBS="$LIBS $LDEXPL_LIBM" LIBS="$LIBS $LDEXPL_LIBM"
gl_FUNC_LDEXPL_WORKS gl_FUNC_LDEXPL_WORKS
LIBS="$save_LIBS" LIBS="$save_LIBS"
case "$gl_cv_func_ldexpl_works" in case "$gl_cv_func_ldexpl_works" in
*yes) gl_func_ldexpl=yes ;; *yes) gl_func_ldexpl=yes ;;
*) gl_func_ldexpl=no; REPLACE_LDEXPL=1; LDEXPL_LIBM= ;; *) gl_func_ldexpl=no; REPLACE_LDEXPL=1 ;;
esac esac
else else
gl_func_ldexpl=no gl_func_ldexpl=no
fi fi
if test $gl_func_ldexpl = yes; then if test $gl_func_ldexpl = yes; then
AC_DEFINE([HAVE_LDEXPL], [1], AC_DEFINE([HAVE_LDEXPL], [1],
[Define if the ldexpl() function is available.]) [Define if the ldexpl() function is available.])
fi fi
fi fi
if test $HAVE_DECL_LDEXPL = 0 || test $gl_func_ldexpl = no; then if test $HAVE_DECL_LDEXPL = 0 || test $gl_func_ldexpl = no; then
AC_LIBOBJ([ldexpl]) dnl Find libraries needed to link lib/ldexpl.c.
if test $HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = 1; then
AC_REQUIRE([gl_FUNC_LDEXP])
LDEXPL_LIBM="$LDEXP_LIBM"
else
LDEXPL_LIBM="$ISNANL_LIBM"
fi
fi fi
AC_SUBST([LDEXPL_LIBM]) AC_SUBST([LDEXPL_LIBM])
]) ])
dnl Test whether ldexpl() can be used without linking with libm.
dnl Set gl_cv_func_ldexpl_no_libm to 'yes' or 'no' accordingly.
AC_DEFUN([gl_CHECK_LDEXPL_NO_LIBM],
[
AC_CACHE_CHECK([whether ldexpl() can be used without linking with libm],
[gl_cv_func_ldexpl_no_libm],
[
AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[[#include <math.h>
long double x;]],
[[return ldexpl (x, -1) > 0;]])],
[gl_cv_func_ldexpl_no_libm=yes],
[gl_cv_func_ldexpl_no_libm=no])
])
])
dnl Test whether ldexpl() works on finite numbers (this fails on AIX 5.1 dnl Test whether ldexpl() works on finite numbers (this fails on AIX 5.1
dnl and MacOS X 10.4/PowerPC). dnl and Mac OS X 10.4/PowerPC).
AC_DEFUN([gl_FUNC_LDEXPL_WORKS], AC_DEFUN([gl_FUNC_LDEXPL_WORKS],
[ [
AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
AC_CACHE_CHECK([whether ldexpl works], [gl_cv_func_ldexpl_works], AC_CACHE_CHECK([whether ldexpl works], [gl_cv_func_ldexpl_works],
[ [
AC_TRY_RUN([ AC_RUN_IFELSE(
[AC_LANG_SOURCE([[
#include <math.h> #include <math.h>
extern long double ldexpl (long double, int); extern
#ifdef __cplusplus
"C"
#endif
long double ldexpl (long double, int);
int main() int main()
{ {
volatile long double x1 = 1.0; int result = 0;
volatile long double y1 = ldexpl (x1, -1); {
volatile long double x2 = 1.73205L; volatile long double x = 1.0;
volatile long double y2 = ldexpl (x2, 0); volatile long double y = ldexpl (x, -1);
return (y1 != 0.5L) || (y2 != x2); if (y != 0.5L)
}], [gl_cv_func_ldexpl_works=yes], [gl_cv_func_ldexpl_works=no], result |= 1;
[case "$host_os" in }
aix*) gl_cv_func_ldexpl_works="guessing no";; {
*) gl_cv_func_ldexpl_works="guessing yes";; volatile long double x = 1.73205L;
esac volatile long double y = ldexpl (x, 0);
]) if (y != x)
result |= 2;
}
return result;
}]])],
[gl_cv_func_ldexpl_works=yes],
[gl_cv_func_ldexpl_works=no],
[
changequote(,)dnl
case "$host_os" in
aix | aix[3-6]*) gl_cv_func_ldexpl_works="guessing no";;
*) gl_cv_func_ldexpl_works="guessing yes";;
esac
changequote([,])dnl
])
]) ])
]) ])
 End of changes. 12 change blocks. 
33 lines changed or deleted 76 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/