X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Fceill.m4;h=5f56df32125d2b7d7445762888ef7abb56a26bf7;hb=2394a603e7586e671226478e5b15d924c3841f42;hp=71ac74fc20af297838ee1c05e2f5f5de789294c4;hpb=d60f3b0c6b0f93a601acd1cfd3923f94ca05abb0;p=gnulib.git diff --git a/m4/ceill.m4 b/m4/ceill.m4 index 71ac74fc2..5f56df321 100644 --- a/m4/ceill.m4 +++ b/m4/ceill.m4 @@ -1,4 +1,4 @@ -# ceill.m4 serial 8 +# ceill.m4 serial 12 dnl Copyright (C) 2007, 2009-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, @@ -8,10 +8,13 @@ AC_DEFUN([gl_FUNC_CEILL], [ m4_divert_text([DEFAULTS], [gl_ceill_required=plain]) AC_REQUIRE([gl_MATH_H_DEFAULTS]) + AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE]) + dnl Persuade glibc to declare ceill(). AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) + dnl Test whether ceill() is declared. - AC_CHECK_DECLS([ceill], , , [#include ]) + AC_CHECK_DECLS([ceill], , , [[#include ]]) if test "$ac_cv_have_decl_ceill" = yes; then dnl Test whether ceill() can be used without libm. gl_FUNC_CEILL_LIBS @@ -35,10 +38,12 @@ AC_DEFUN([gl_FUNC_CEILL], #include ]gl_LONG_DOUBLE_MINUS_ZERO_CODE[ ]gl_LONG_DOUBLE_SIGNBIT_CODE[ -int main() +static long double dummy (long double f) { return 0; } +int main (int argc, char *argv[]) { + long double (*my_ceill) (long double) = argc ? ceill : dummy; /* Test whether ceill (-0.3L) is -0.0L. */ - if (signbitl (minus_zerol) && !signbitl (ceill (-0.3L))) + if (signbitl (minus_zerol) && !signbitl (my_ceill (-0.3L))) return 1; return 0; } @@ -58,8 +63,13 @@ int main() HAVE_DECL_CEILL=0 fi if test $HAVE_DECL_CEILL = 0 || test $REPLACE_CEILL = 1; then - AC_LIBOBJ([ceill]) - CEILL_LIBM= + dnl Find libraries needed to link lib/ceill.c. + if test $HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = 1; then + AC_REQUIRE([gl_FUNC_CEIL]) + CEILL_LIBM="$CEIL_LIBM" + else + CEILL_LIBM= + fi fi AC_SUBST([CEILL_LIBM]) ])