diff options
-rw-r--r-- | libgfortran/ChangeLog | 5 | ||||
-rw-r--r-- | libgfortran/intrinsics/c99_functions.c | 14 |
2 files changed, 19 insertions, 0 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 4bcdb84667d..a48b5d80068 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,8 @@ +2006-02-07 Rainer Emrich <r.emrich@de.tecosim.com> + + * intrinsics/c99_functions.c: Work around incompatible + declarations of cabs{,f,l} on pre-C99 IRIX systems. + 2005-02-06 Thomas Koenig <Thomas.Koenig@online.de> PR libfortran/23815 diff --git a/libgfortran/intrinsics/c99_functions.c b/libgfortran/intrinsics/c99_functions.c index feb4c08b479..e26be0ecdb9 100644 --- a/libgfortran/intrinsics/c99_functions.c +++ b/libgfortran/intrinsics/c99_functions.c @@ -35,6 +35,20 @@ Boston, MA 02110-1301, USA. */ #define C99_PROTOS_H WE_DONT_WANT_PROTOS_NOW #include "libgfortran.h" +/* IRIX's <math.h> declares a non-C99 compliant implementation of cabs, + which takes two floating point arguments instead of a single complex. + If <complex.h> is missing this prevents building of c99_functions.c. + To work around this we redirect cabs{,f,l} calls to __gfc_cabs{,f,l}. */ + +#if defined(__sgi__) && !defined(HAVE_COMPLEX_H) +#undef HAVE_CABS +#undef HAVE_CABSF +#undef HAVE_CABSL +#define cabs __gfc_cabs +#define cabsf __gfc_cabsf +#define cabsl __gfc_cabsl +#endif + /* Tru64's <math.h> declares a non-C99 compliant implementation of cabs, which takes two floating point arguments instead of a single complex. To work around this we redirect cabs{,f,l} calls to __gfc_cabs{,f,l}. */ |