X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Froundf.m4;h=f8e7f3e214014c71a4e960db2475ed1ca8414f4d;hb=21492d6c3ca00ff0827528640804732f2ed66470;hp=a2a1464e6881d2f88fffcb558c6ffc33441ba29e;hpb=d60f3b0c6b0f93a601acd1cfd3923f94ca05abb0;p=gnulib.git diff --git a/m4/roundf.m4 b/m4/roundf.m4 index a2a1464e6..f8e7f3e21 100644 --- a/m4/roundf.m4 +++ b/m4/roundf.m4 @@ -1,4 +1,4 @@ -# roundf.m4 serial 10 +# roundf.m4 serial 14 dnl Copyright (C) 2007-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -10,7 +10,7 @@ AC_DEFUN([gl_FUNC_ROUNDF], AC_REQUIRE([gl_MATH_H_DEFAULTS]) dnl Persuade glibc to declare roundf(). AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) - AC_CHECK_DECLS([roundf], , , [#include ]) + AC_CHECK_DECLS([roundf], , , [[#include ]]) if test "$ac_cv_have_decl_roundf" = yes; then gl_CHECK_MATH_LIB([ROUNDF_LIBM], [x = roundf (x);]) if test "$ROUNDF_LIBM" != missing; then @@ -66,12 +66,18 @@ int main() #include ]gl_FLOAT_MINUS_ZERO_CODE[ ]gl_FLOAT_SIGNBIT_CODE[ -int main() +static float dummy (float f) { return 0; } +int main (int argc, char *argv[]) { + float (*my_roundf) (float) = argc ? roundf : dummy; + int result = 0; /* Test whether roundf (-0.0f) is -0.0f. */ - if (signbitf (minus_zerof) && !signbitf (roundf (minus_zerof))) - return 1; - return 0; + if (signbitf (minus_zerof) && !signbitf (my_roundf (minus_zerof))) + result |= 1; + /* Test whether roundf (-0.3f) is -0.0f. */ + if (signbitf (-0.3f) && !signbitf (my_roundf (-0.3f))) + result |= 2; + return result; } ]])], [gl_cv_func_roundf_ieee=yes], @@ -89,8 +95,8 @@ int main() HAVE_DECL_ROUNDF=0 fi if test $HAVE_DECL_ROUNDF = 0 || test $REPLACE_ROUNDF = 1; then - AC_LIBOBJ([roundf]) - AC_CHECK_DECLS([ceilf, floorf], , , [#include ]) + dnl Find libraries needed to link lib/roundf.c. + AC_CHECK_DECLS([ceilf, floorf], , , [[#include ]]) if test "$ac_cv_have_decl_floorf" = yes \ && test "$ac_cv_have_decl_ceilf" = yes; then gl_FUNC_FLOORF_LIBS