The modff() function is also in a different library than the modf() function, on BSD systems. No need to activate gnulib's replacement on these platforms.
2011-10-07 Bruno Haible <br...@clisp.org> modff: Drop assumption about library that defines modff. * m4/modff.m4 (gl_FUNC_MODFF): Use gl_MATHFUNC macro instead of AC_CHECK_FUNCS. * modules/modff (Files): Add m4/mathfunc.m4. --- m4/modff.m4.orig Fri Oct 7 12:25:20 2011 +++ m4/modff.m4 Fri Oct 7 12:20:34 2011 @@ -1,4 +1,4 @@ -# modff.m4 serial 1 +# modff.m4 serial 2 dnl Copyright (C) 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, @@ -9,15 +9,12 @@ AC_REQUIRE([gl_MATH_H_DEFAULTS]) AC_REQUIRE([gl_FUNC_MODF]) - dnl Test whether modff() exists. Assume that modff(), if it exists, is - dnl defined in the same library as modf(). - save_LIBS="$LIBS" - LIBS="$LIBS $MODF_LIBM" - AC_CHECK_FUNCS([modff]) - LIBS="$save_LIBS" - if test $ac_cv_func_modff = yes; then - MODFF_LIBM="$MODF_LIBM" - else + dnl Test whether modff() exists. We cannot assume that modff(), if it + dnl exists, is defined in the same library as modf(). This is not the case + dnl on FreeBSD, NetBSD, OpenBSD. + gl_MATHFUNC([modff], [float], [(float, float *)]) + if test $gl_cv_func_modff_no_libm = no \ + && test $gl_cv_func_modff_in_libm = no; then HAVE_MODFF=0 MODFF_LIBM="$MODF_LIBM" fi --- modules/modff.orig Fri Oct 7 12:25:20 2011 +++ modules/modff Fri Oct 7 12:10:16 2011 @@ -4,6 +4,7 @@ Files: lib/modff.c m4/modff.m4 +m4/mathfunc.m4 Depends-on: math -- In memoriam Anna Politkovskaya <http://en.wikipedia.org/wiki/Anna_Politkovskaya>