AC_CHECK_DECLS_ONCE([strtod])
if test $ac_cv_have_decl_strtod != yes; then
HAVE_STRTOD=0
- gl_PREREQ_STRTOD
- dnl Use undocumented macro to set POW_LIB correctly.
- _AC_LIBOBJ_STRTOD
else
AC_CACHE_CHECK([whether strtod obeys C99], [gl_cv_func_strtod_works],
[AC_RUN_IFELSE([AC_LANG_PROGRAM([[
]])],
[gl_cv_func_strtod_works=yes],
[gl_cv_func_strtod_works=no],
- [gl_cv_func_strtod_works="guessing no"])])
+ [dnl The last known bugs in glibc strtod(), as of this writing,
+ dnl were fixed in version 2.8
+ AC_EGREP_CPP([Lucky user],
+ [
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 8) || (__GLIBC__ > 2)
+ Lucky user
+ #endif
+#endif
+ ],
+ [gl_cv_func_strtod_works=yes],
+ [gl_cv_func_strtod_works="guessing no"])])])
if test "$gl_cv_func_strtod_works" != yes; then
REPLACE_STRTOD=1
- gl_PREREQ_STRTOD
- dnl Use undocumented macro to set POW_LIB correctly.
- _AC_LIBOBJ_STRTOD
fi
fi
+ if test $HAVE_STRTOD = 0 || test $REPLACE_STRTOD = 1; then
+ gl_PREREQ_STRTOD
+ dnl Use undocumented macro to set POW_LIB correctly.
+ _AC_LIBOBJ_STRTOD
+ fi
])
# Prerequisites of lib/strtod.c.