X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Ffloorl.m4;h=3bf471bcae54c4b9bb2f89c61d211ccf68847c34;hb=7ef6c64e210ac0979d7e8ac69bc5b5208c2405ab;hp=5bd62d0bfe2cef156148a836b5a4265ebe0ba517;hpb=8c4874e600742f95ad38fbd6f518a3005ac4283c;p=gnulib.git diff --git a/m4/floorl.m4 b/m4/floorl.m4 index 5bd62d0bf..3bf471bca 100644 --- a/m4/floorl.m4 +++ b/m4/floorl.m4 @@ -1,5 +1,5 @@ -# floorl.m4 serial 7 -dnl Copyright (C) 2007, 2009-2010 Free Software Foundation, Inc. +# floorl.m4 serial 11 +dnl Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -7,10 +7,13 @@ dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_FLOORL], [ AC_REQUIRE([gl_MATH_H_DEFAULTS]) + AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE]) + dnl Persuade glibc to declare floorl(). AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) + dnl Test whether floorl() is declared. - AC_CHECK_DECLS([floorl], , , [#include ]) + AC_CHECK_DECLS([floorl], , , [[#include ]]) if test "$ac_cv_have_decl_floorl" = yes; then dnl Test whether floorl() can be used without libm. gl_FUNC_FLOORL_LIBS @@ -23,8 +26,13 @@ AC_DEFUN([gl_FUNC_FLOORL], HAVE_DECL_FLOORL=0 fi if test $HAVE_DECL_FLOORL = 0 || test $REPLACE_FLOORL = 1; then - AC_LIBOBJ([floorl]) - FLOORL_LIBM= + dnl Find libraries needed to link lib/floorl.c. + if test $HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = 1; then + AC_REQUIRE([gl_FUNC_FLOOR]) + FLOORL_LIBM="$FLOOR_LIBM" + else + FLOORL_LIBM= + fi fi AC_SUBST([FLOORL_LIBM]) ]) @@ -41,8 +49,9 @@ AC_DEFUN([gl_FUNC_FLOORL_LIBS], # define __NO_MATH_INLINES 1 /* for glibc */ #endif #include + long double (*funcptr) (long double) = floorl; long double x;]], - [[x = floorl(x);]])], + [[x = funcptr (x) + floorl(x);]])], [gl_cv_func_floorl_libm=]) if test "$gl_cv_func_floorl_libm" = "?"; then save_LIBS="$LIBS" @@ -53,8 +62,9 @@ AC_DEFUN([gl_FUNC_FLOORL_LIBS], # define __NO_MATH_INLINES 1 /* for glibc */ #endif #include + long double (*funcptr) (long double) = floorl; long double x;]], - [[x = floorl(x);]])], + [[x = funcptr (x) + floorl(x);]])], [gl_cv_func_floorl_libm="-lm"]) LIBS="$save_LIBS" fi