Likewise for ldexpl, although the use of a dangerous idiom did not lead to a test compilation error on Solaris 8 and Cygwin this time.
2010-04-05 Bruno Haible <br...@clisp.org> ldexpl: Improve idiom. * m4/ldexpl.m4 (gl_FUNC_LDEXPL): When the function is not declared, make sure to set HAVE_DECL_LDEXPL to 0. *** m4/ldexpl.m4.orig Mon Apr 5 11:49:22 2010 --- m4/ldexpl.m4 Mon Apr 5 01:53:14 2010 *************** *** 1,4 **** ! # ldexpl.m4 serial 4 dnl Copyright (C) 2007-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, --- 1,4 ---- ! # ldexpl.m4 serial 5 dnl Copyright (C) 2007-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, *************** *** 7,60 **** AC_DEFUN([gl_FUNC_LDEXPL], [ AC_REQUIRE([gl_MATH_H_DEFAULTS]) LDEXPL_LIBM= ! AC_CACHE_CHECK([whether ldexpl() can be used without linking with 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 ! AC_CACHE_CHECK([whether ldexpl() can be used with libm], ! [gl_cv_func_ldexpl_in_libm], [ - save_LIBS="$LIBS" - LIBS="$LIBS -lm" AC_TRY_LINK([#include <math.h> long double x;], [return ldexpl (x, -1) > 0;], ! [gl_cv_func_ldexpl_in_libm=yes], ! [gl_cv_func_ldexpl_in_libm=no]) ! LIBS="$save_LIBS" ]) ! if test $gl_cv_func_ldexpl_in_libm = yes; then ! LDEXPL_LIBM=-lm fi fi ! if test $gl_cv_func_ldexpl_no_libm = yes \ ! || test $gl_cv_func_ldexpl_in_libm = yes; then ! save_LIBS="$LIBS" ! LIBS="$LIBS $LDEXPL_LIBM" ! gl_FUNC_LDEXPL_WORKS ! LIBS="$save_LIBS" ! case "$gl_cv_func_ldexpl_works" in ! *yes) gl_func_ldexpl=yes ;; ! *) gl_func_ldexpl=no; REPLACE_LDEXPL=1; LDEXPL_LIBM= ;; ! esac ! else ! gl_func_ldexpl=no ! fi ! if test $gl_func_ldexpl = yes; then ! AC_DEFINE([HAVE_LDEXPL], [1], ! [Define if the ldexpl() function is available.]) ! dnl Also check whether it's declared. ! dnl MacOS 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>]) ! else ! HAVE_DECL_LDEXPL=0 AC_LIBOBJ([ldexpl]) fi AC_SUBST([LDEXPL_LIBM]) --- 7,62 ---- AC_DEFUN([gl_FUNC_LDEXPL], [ AC_REQUIRE([gl_MATH_H_DEFAULTS]) + dnl Check whether it's declared. + dnl MacOS 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>]) LDEXPL_LIBM= ! if test $HAVE_DECL_LDEXPL = 1; then ! AC_CACHE_CHECK([whether ldexpl() can be used without linking with 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 ! AC_CACHE_CHECK([whether ldexpl() can be used with libm], ! [gl_cv_func_ldexpl_in_libm], ! [ ! save_LIBS="$LIBS" ! LIBS="$LIBS -lm" ! AC_TRY_LINK([#include <math.h> ! long double x;], ! [return ldexpl (x, -1) > 0;], ! [gl_cv_func_ldexpl_in_libm=yes], ! [gl_cv_func_ldexpl_in_libm=no]) ! LIBS="$save_LIBS" ! ]) ! if test $gl_cv_func_ldexpl_in_libm = yes; then ! LDEXPL_LIBM=-lm ! fi ! fi ! if test $gl_cv_func_ldexpl_no_libm = yes \ ! || test $gl_cv_func_ldexpl_in_libm = yes; then ! save_LIBS="$LIBS" ! LIBS="$LIBS $LDEXPL_LIBM" ! gl_FUNC_LDEXPL_WORKS ! LIBS="$save_LIBS" ! case "$gl_cv_func_ldexpl_works" in ! *yes) gl_func_ldexpl=yes ;; ! *) gl_func_ldexpl=no; REPLACE_LDEXPL=1; LDEXPL_LIBM= ;; ! esac ! else ! gl_func_ldexpl=no ! fi ! if test $gl_func_ldexpl = yes; then ! AC_DEFINE([HAVE_LDEXPL], [1], ! [Define if the ldexpl() function is available.]) fi fi ! if test $HAVE_DECL_LDEXPL = 0 || test $gl_func_ldexpl = no; then AC_LIBOBJ([ldexpl]) fi AC_SUBST([LDEXPL_LIBM])