X-Git-Url: https://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Fexpm1f.m4;h=04a0d7279aca440d886b497f97ef6401dea29565;hb=85ab65259ed73d4d6e12f13c3f0882bdbb9d1cd6;hp=f78262a47b7682ad27b7dfe98c924a0b0f07effd;hpb=fef5744cfb2fe5d6241e66a8e736f6926e7ea621;p=gnulib.git diff --git a/m4/expm1f.m4 b/m4/expm1f.m4 index f78262a47..04a0d7279 100644 --- a/m4/expm1f.m4 +++ b/m4/expm1f.m4 @@ -1,4 +1,4 @@ -# expm1f.m4 serial 1 +# expm1f.m4 serial 2 dnl Copyright (C) 2011-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -20,10 +20,52 @@ AC_DEFUN([gl_FUNC_EXPM1F], LIBS="$save_LIBS" if test $ac_cv_func_expm1f = yes; then EXPM1F_LIBM="$EXPM1_LIBM" + save_LIBS="$LIBS" + LIBS="$LIBS $EXPM1F_LIBM" + gl_FUNC_EXPM1F_WORKS + LIBS="$save_LIBS" + case "$gl_cv_func_expm1f_works" in + *yes) ;; + *) REPLACE_EXPM1F=1 ;; + esac else HAVE_EXPM1F=0 + fi + if test $HAVE_EXPM1F = 0 || test $REPLACE_EXPM1F = 1; then dnl Find libraries needed to link lib/expm1f.c. EXPM1F_LIBM="$EXPM1_LIBM" fi AC_SUBST([EXPM1F_LIBM]) ]) + +dnl Test whether expm1f() works. +dnl On IRIX 6.5, for arguments <= -17.32868, it returns -5.6295e14. +AC_DEFUN([gl_FUNC_EXPM1F_WORKS], +[ + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + AC_CACHE_CHECK([whether expm1f works], [gl_cv_func_expm1f_works], + [ + AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include +volatile float x; +float y; +int main () +{ + x = -100.0f; + y = expm1f (x); + if (y < -1.0f) + return 1; + return 0; +} +]])], + [gl_cv_func_expm1f_works=yes], + [gl_cv_func_expm1f_works=no], + [case "$host_os" in + irix*) gl_cv_func_expm1f_works="guessing no";; + *) gl_cv_func_expm1f_works="guessing yes";; + esac + ]) + ]) +])