------- Comment #4 from fxcoudert at gcc dot gnu dot org 2007-09-30 22:28 ------- The patch below should provide fallback functions (build in maintainer mode or use autoreconf in libgfortran), does it work?
Index: intrinsics/c99_functions.c =================================================================== --- intrinsics/c99_functions.c (revision 128673) +++ intrinsics/c99_functions.c (working copy) @@ -168,6 +168,31 @@ erfcf (float x) #endif +/* Wrappers for systems without the C99 gammaf() and lgammaf() functions. */ + +#if defined(HAVE_GAMMA) && !defined(HAVE_GAMMAF) +#define HAVE_GAMMAF 1 +extern float gammaf (float); + +float +gammaf (float x) +{ + return (float) gamma ((double) x); +} +#endif + +#if defined(HAVE_LGAMMA) && !defined(HAVE_LGAMMAF) +#define HAVE_LGAMMAF 1 +extern float lgammaf (float); + +float +lgammaf (float x) +{ + return (float) lgamma ((double) x); +} +#endif + + #ifndef HAVE_ACOSF #define HAVE_ACOSF 1 float Index: c99_protos.h =================================================================== --- c99_protos.h (revision 128673) +++ c99_protos.h (working copy) @@ -284,6 +284,19 @@ extern float erfcf (float); #endif +/* Wrappers for systems without the C99 gammaf() and lgammaf() functions. */ + +#if defined(HAVE_GAMMA) && !defined(HAVE_GAMMAF) +#define HAVE_GAMMAF 1 +extern float gammaf (float); +#endif + +#if defined(HAVE_LGAMMA) && !defined(HAVE_LGAMMAF) +#define HAVE_LGAMMAF 1 +extern float lgammaf (float); +#endif + + /* log10l is needed on all platforms for decimal I/O */ #ifndef HAVE_LOG10L Index: configure.ac =================================================================== --- configure.ac (revision 128673) +++ configure.ac (working copy) @@ -379,6 +379,10 @@ AC_CHECK_LIB([m],[y1l],[AC_DEFINE([HAVE_ AC_CHECK_LIB([m],[ynf],[AC_DEFINE([HAVE_YNF],[1],[libm includes ynf])]) AC_CHECK_LIB([m],[yn],[AC_DEFINE([HAVE_YN],[1],[libm includes yn])]) AC_CHECK_LIB([m],[ynl],[AC_DEFINE([HAVE_YNL],[1],[libm includes ynl])]) +AC_CHECK_LIB([m],[gamma],[AC_DEFINE([HAVE_GAMMA],[1],[libm includes gamma])]) +AC_CHECK_LIB([m],[gammaf],[AC_DEFINE([HAVE_GAMMAF],[1],[libm includes gammaf])] ) +AC_CHECK_LIB([m],[lgamma],[AC_DEFINE([HAVE_LGAMMA],[1],[libm includes lgamma])] ) +AC_CHECK_LIB([m],[lgammaf],[AC_DEFINE([HAVE_LGAMMAF],[1],[libm includes lgammaf ])]) # On AIX, clog is present in libm as __clog AC_CHECK_LIB([m],[__clog],[AC_DEFINE([HAVE_CLOG],[1],[libm includes clog])]) -- fxcoudert at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |fxcoudert at gcc dot gnu dot | |org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33583