------- Comment #3 from kargl at gcc dot gnu dot org 2006-11-12 16:36 ------- Here's an untested patch.
Index: configure.ac =================================================================== --- configure.ac (revision 118613) +++ configure.ac (working copy) @@ -235,6 +249,7 @@ AC_CHECK_LIB([m],[cexpl],[AC_DEFINE([HAV AC_CHECK_LIB([m],[fabsf],[AC_DEFINE([HAVE_FABSF],[1],[libm includes fabsf])]) AC_CHECK_LIB([m],[fabs],[AC_DEFINE([HAVE_FABS],[1],[libm includes fabs])]) AC_CHECK_LIB([m],[fabsl],[AC_DEFINE([HAVE_FABSL],[1],[libm includes fabsl])]) +AC_CHECK_LIB([m],[fmodl],[AC_DEFINE([HAVE_FMODL],[1],[libm includes fmodl])]) AC_CHECK_LIB([m],[cabsf],[AC_DEFINE([HAVE_CABSF],[1],[libm includes cabsf])]) AC_CHECK_LIB([m],[cabs],[AC_DEFINE([HAVE_CABS],[1],[libm includes cabs])]) AC_CHECK_LIB([m],[cabsl],[AC_DEFINE([HAVE_CABSL],[1],[libm includes cabsl])]) Index: intrinsics/c99_functions.c =================================================================== --- intrinsics/c99_functions.c (revision 118613) +++ intrinsics/c99_functions.c (working copy) @@ -1159,3 +1159,17 @@ ctanl (long double complex a) } #endif +#if !defined(HAVE_FMODL) +#define HAVE_FMODL 1 +long double +fmodl (long double x, long double y) +{ + if (y == 0) + return 0; + + /* Need to check that the result has the same sign as x and magnitude + less than the magnitude of y. */ + return (x - floorl(x / y) * y; +} +#endif + -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29810