bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

ldexpl idiom


From: Bruno Haible
Subject: ldexpl idiom
Date: Mon, 5 Apr 2010 10:55:28 +0100
User-agent: KMail/1.9.9

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  <address@hidden>

        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])




reply via email to

[Prev in Thread] Current Thread [Next in Thread]