]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Update.
authorUlrich Drepper <drepper@redhat.com>
Tue, 10 Nov 1998 19:11:20 +0000 (19:11 +0000)
committerUlrich Drepper <drepper@redhat.com>
Tue, 10 Nov 1998 19:11:20 +0000 (19:11 +0000)
1998-11-10  Ulrich Drepper  <drepper@cygnus.com>

* math/cabs.c: Replace complex by _Complex.
* math/cabsf.c: Likewise.
* math/cabsl.c: Likewise.
* math/cimag.c: Likewise.
* math/cimagf.c: Likewise.
* math/cimagl.c: Likewise.
* math/conj.c: Likewise.
* math/conjf.c: Likewise.
* math/conjl.c: Likewise.
* math/creal.c: Likewise.
* math/crealf.c: Likewise.
* math/creall.c: Likewise.

* sysdeps/alpha/fpu/bits/mathdef.h: Define ISO C 9X stuff only if
included from math.h and __USE_ISOC9X is defined.
* sysdeps/generic/bits/mathdef.h: Likewise.
* sysdeps/generic/i386/fpu/mathdef.h: Likewise.
* sysdeps/generic/m68k/fpu/mathdef.h: Likewise.
* sysdeps/generic/powerpc/bits/mathdef.h: Likewise.
* sysdeps/generic/sparc/fpu/bits/mathdef.h: Likewise.

1998-11-10  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

* sysdeps/i386/fpu/bits/mathdef.h: Allow direct inclusion by
<complex.h>.
* sysdeps/alpha/fpu/bits/mathdef.h: Likewise.
* sysdeps/generic/bits/mathdef.h: Likewise.
* sysdeps/m68k/fpu/bits/mathdef.h: Likewise.
* sysdeps/powerpc/bits/mathdef.h: Likewise.
* sysdeps/sparc/fpu/bits/mathdef.h: Likewise.

1998-11-09  Ulrich Drepper  <drepper@cygnus.com>

* extra-lib.mk: Fix typo in last change.

21 files changed:
ChangeLog
bits/mathdef.h
extra-lib.mk
math/cabs.c
math/cabsf.c
math/cabsl.c
math/cimag.c
math/cimagf.c
math/cimagl.c
math/conj.c
math/conjf.c
math/conjl.c
math/creal.c
math/crealf.c
math/creall.c
sysdeps/alpha/fpu/bits/mathdef.h
sysdeps/generic/bits/mathdef.h
sysdeps/i386/fpu/bits/mathdef.h
sysdeps/m68k/fpu/bits/mathdef.h
sysdeps/powerpc/bits/mathdef.h
sysdeps/sparc/fpu/bits/mathdef.h

index e6eb62ac88c00e20ca713644ea86399e876e676d..73c2f358736be18a7485789460ff980beb242edb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,39 @@
-1998-11-09 18:16  Ulrich Drepper  <drepper@cygnus.com>
+1998-11-10  Ulrich Drepper  <drepper@cygnus.com>
+
+       * math/cabs.c: Replace complex by _Complex.
+       * math/cabsf.c: Likewise.
+       * math/cabsl.c: Likewise.
+       * math/cimag.c: Likewise.
+       * math/cimagf.c: Likewise.
+       * math/cimagl.c: Likewise.
+       * math/conj.c: Likewise.
+       * math/conjf.c: Likewise.
+       * math/conjl.c: Likewise.
+       * math/creal.c: Likewise.
+       * math/crealf.c: Likewise.
+       * math/creall.c: Likewise.
+
+       * sysdeps/alpha/fpu/bits/mathdef.h: Define ISO C 9X stuff only if
+       included from math.h and __USE_ISOC9X is defined.
+       * sysdeps/generic/bits/mathdef.h: Likewise.
+       * sysdeps/generic/i386/fpu/mathdef.h: Likewise.
+       * sysdeps/generic/m68k/fpu/mathdef.h: Likewise.
+       * sysdeps/generic/powerpc/bits/mathdef.h: Likewise.
+       * sysdeps/generic/sparc/fpu/bits/mathdef.h: Likewise.
+
+1998-11-10  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
+
+       * sysdeps/i386/fpu/bits/mathdef.h: Allow direct inclusion by
+       <complex.h>.
+       * sysdeps/alpha/fpu/bits/mathdef.h: Likewise.
+       * sysdeps/generic/bits/mathdef.h: Likewise.
+       * sysdeps/m68k/fpu/bits/mathdef.h: Likewise.
+       * sysdeps/powerpc/bits/mathdef.h: Likewise.
+       * sysdeps/sparc/fpu/bits/mathdef.h: Likewise.
+
+1998-11-09  Ulrich Drepper  <drepper@cygnus.com>
+
+       * extra-lib.mk: Fix typo in last change.
 
        * math/complex.h: Include bits/mathdef.h to get __NO_LONG_DOUBLE_MATH
        is needed.
index b034c5c99de530794783d7264d11ce4da7e8ee7b..0d1c4d7374c3c235a9158b2d919ad20ec6391895 100644 (file)
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#ifndef _MATH_H
+if !defined _MATH_H && !defined _COMPLEX_H
 # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
 #endif
 
-#ifdef __USE_ISOC9X
+#if defined  __USE_ISOC9X && defined _MATH_H
 /* Normally, there is no long double type and the `float' and `double'
    expressions are evaluated as `double'.  */
 typedef double float_t;                /* `float' expressions are evaluated as
@@ -44,6 +44,8 @@ typedef double double_t;      /* `double' expressions are evaluated as
 
 #endif /* ISO C 9X */
 
+#ifndef __NO_LONG_DOUBLE_MATH
 /* Signal that we do not really have a `long double'.  The disables the
    declaration of all the `long double' function variants.  */
-#define __NO_LONG_DOUBLE_MATH  1
+# define __NO_LONG_DOUBLE_MATH 1
+#endif
index e33f958ad793547cc7c6e2103811d95ca48f03ec..6216ce9e3b449e4ee070e6b713b9a5f2d3fc25c1 100644 (file)
@@ -47,7 +47,7 @@ endif
 
 
 # Use o-iterator.mk to generate a rule for each flavor of library.
-ifneq (,$(filter-out .os,$(object-suffices-$(lib))))
+ifneq (,$(filter-out .os,$(object-suffixes-$(lib))))
 define o-iterator-doit
 $(objpfx)$(patsubst %,$(libtype$o),$(lib:lib%=%)): \
   $(patsubst %,$(objpfx)%$o,\
index cf775ded95570918672d6d3662744505620ae147..e91258c1dcc91d2f517460288e6f91797496d2d8 100644 (file)
@@ -1,5 +1,5 @@
 /* Return the complex absolute value of double complex value.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -22,7 +22,7 @@
 #include <math.h>
 
 double
-__cabs (double complex z)
+__cabs (double _Complex z)
 {
   return __hypot (__real__ z, __imag__ z);
 }
index 2ea2660d9713699289a2dfac3b0b1d9831d49171..ea02b8f38af33fc349094ac03dcde7c059447bec 100644 (file)
@@ -1,5 +1,5 @@
 /* Return the complex absolute value of float complex value.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -22,7 +22,7 @@
 #include <math.h>
 
 float
-__cabsf (float complex z)
+__cabsf (float _Complex z)
 {
   return __hypotf (__real__ z, __imag__ z);
 }
index 1f3554cef24f3ffde5b62b24872a1c343c7697b0..15e1274990d161b74c7c8fc2f152ac9b79c4b9f3 100644 (file)
@@ -1,5 +1,5 @@
 /* Return the complex absolute value of long double complex value.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -22,7 +22,7 @@
 #include <math.h>
 
 long double
-__cabsl (long double complex z)
+__cabsl (long double _Complex z)
 {
   return __hypotl (__real__ z, __imag__ z);
 }
index 13efa1476e53004cb08895d5ebe6367066b16408..ddd9b00708c730b9adda23f3953c01f40011cffa 100644 (file)
@@ -1,5 +1,5 @@
 /* Return imaginary part of complex double value.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -21,7 +21,7 @@
 #include <complex.h>
 
 double
-__cimag (double complex z)
+__cimag (double _Complex z)
 {
   return __imag__ z;
 }
index 8edb4e613e926690dc693d9cdd45f0a298f3d4e7..bef73eb46d3606a500ecba7d5043d801b3923843 100644 (file)
@@ -1,5 +1,5 @@
 /* Return imaginary part of complex float value.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -21,7 +21,7 @@
 #include <complex.h>
 
 float
-__cimagf (float complex z)
+__cimagf (float _Complex z)
 {
   return __imag__ z;
 }
index 9c58899274fb573468bdd79b130c01444f3deb1a..b033413a0f7f3907eb09e4116b9bde9e75e59f63 100644 (file)
@@ -1,5 +1,5 @@
 /* Return imaginary part of complex long double value.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -21,7 +21,7 @@
 #include <complex.h>
 
 long double
-__cimagl (long double complex z)
+__cimagl (long double _Complex z)
 {
   return __imag__ z;
 }
index c15c417e4c7a35cef5ec5a4d66761d6ee055c3cb..368c1692741dfb4ac8c0d65fee0ed6a2200ae4ef 100644 (file)
@@ -1,5 +1,5 @@
 /* Return complex conjugate of complex double value.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -20,8 +20,8 @@
 
 #include <complex.h>
 
-double complex
-__conj (double complex z)
+double _Complex
+__conj (double _Complex z)
 {
   return ~z;
 }
index 828edaf2b7aeb9ac38a78538a67e4c0e95933ecb..5a3329acce9fb2500837978ff9cb32136c3bf001 100644 (file)
@@ -1,5 +1,5 @@
 /* Return complex conjugate of complex float value.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -20,8 +20,8 @@
 
 #include <complex.h>
 
-float complex
-__conjf (float complex z)
+float _Complex
+__conjf (float _Complex z)
 {
   return ~z;
 }
index 9e44dc32a1fb548cf2de588220b9118185ca51a8..6a4e1053061ebbb5723858f5cfb72bf07878f429 100644 (file)
@@ -1,5 +1,5 @@
 /* Return complex conjugate of complex long double value.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -20,8 +20,8 @@
 
 #include <complex.h>
 
-long double complex
-__conjl (long double complex z)
+long double _Complex
+__conjl (long double _Complex z)
 {
   return ~z;
 }
index c3ec4f7802098ef0d4c3ed6d5749a326fbae19bd..09d9185ab5494f7acb7032cce73b7a177ee4f866 100644 (file)
@@ -1,5 +1,5 @@
 /* Return real part of complex double value.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -21,7 +21,7 @@
 #include <complex.h>
 
 double
-__creal (double complex z)
+__creal (double _Complex z)
 {
   return __real__ z;
 }
index bb9c2c141809facad088aa48e3a75f2de1e4bb42..3930e4fca869cd70cfbe99695279d3c8dd8d20e5 100644 (file)
@@ -1,5 +1,5 @@
 /* Return real part of complex float value.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -21,7 +21,7 @@
 #include <complex.h>
 
 float
-__crealf (float complex z)
+__crealf (float _Complex z)
 {
   return __real__ z;
 }
index 0ab1aab2cbae60b21df6ba6290dacd3d1584fc97..fe485bb1b425f329efa35a57f679149a915ca7ce 100644 (file)
@@ -1,5 +1,5 @@
 /* Return real part of complex long double value.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -21,7 +21,7 @@
 #include <complex.h>
 
 long double
-__creall (long double complex z)
+__creall (long double _Complex z)
 {
   return __real__ z;
 }
index 2ff626d089a54b34552f0e3309003857712749ce..5ee9644469c40fd67b10c3a10b2f4dce50811d99 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#ifndef _MATH_H
+#if !defined _MATH_H && !defined _COMPLEX_H
 # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
 #endif
 
 /* FIXME! This file describes properties of the compiler, not the machine;
    it should not be part of libc!  */
 
-#ifdef __GNUC__
-# if __STDC__ == 1
+#if defined __USE_ISOC9X && defined _MATH_H
+# ifdef __GNUC__
+#  if __STDC__ == 1
 
 /* In GNU or ANSI mode, gcc leaves `float' expressions as-is.  */
 typedef float float_t;
 typedef double double_t;
 
 /* Signal that types stay as they were declared.  */
-#  define FLT_EVAL_METHOD      0
+#   define FLT_EVAL_METHOD     0
 
 /* Define `INFINITY' as value of type `float'.  */
-#  define INFINITY     HUGE_VALF
+#   define INFINITY    HUGE_VALF
 
-# else
+#  else
 
 /* For `gcc -traditional', `float' expressions are evaluated as `double'. */
 typedef double float_t;
 typedef double double_t;
 
 /* Signal that both types are `double'.  */
-#  define FLT_EVAL_METHOD      1
+#   define FLT_EVAL_METHOD     1
 
 /* Define `INFINITY' as value of type `float'.  */
-#  define INFINITY     HUGE_VALF
+#   define INFINITY    HUGE_VALF
 
-# endif
-#else
+#  endif
+# else
 
 /* Wild guess at types for float_t and double_t. */
 typedef double float_t;
 typedef double double_t;
 
 /* Strange compiler, we don't know how it works.  */
-# define FLT_EVAL_METHOD       -1
+#  define FLT_EVAL_METHOD      -1
 
 /* Define `INFINITY' as value of type `float'.  */
-# define INFINITY      HUGE_VALF
+#  define INFINITY     HUGE_VALF
 
-#endif
+# endif
 
 /* The values returned by `ilogb' for 0 and NaN respectively.  */
-#define FP_ILOGB0     0x80000001
-#define FP_ILOGBNAN   0x7fffffff
+# define FP_ILOGB0     0x80000001
+# define FP_ILOGBNAN   0x7fffffff
 
 /* Number of decimal digits for the `double' type.  */
-#define DECIMAL_DIG    15
+# define DECIMAL_DIG   15
+
+#endif /* ISO C 9X */
+
+#ifndef __NO_LONG_DOUBLE_MATH
+/* Signal that we do not really have a `long double'.  The disables the
+   declaration of all the `long double' function variants.  */
+# define __NO_LONG_DOUBLE_MATH 1
+#endif
index b034c5c99de530794783d7264d11ce4da7e8ee7b..0d1c4d7374c3c235a9158b2d919ad20ec6391895 100644 (file)
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#ifndef _MATH_H
+if !defined _MATH_H && !defined _COMPLEX_H
 # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
 #endif
 
-#ifdef __USE_ISOC9X
+#if defined  __USE_ISOC9X && defined _MATH_H
 /* Normally, there is no long double type and the `float' and `double'
    expressions are evaluated as `double'.  */
 typedef double float_t;                /* `float' expressions are evaluated as
@@ -44,6 +44,8 @@ typedef double double_t;      /* `double' expressions are evaluated as
 
 #endif /* ISO C 9X */
 
+#ifndef __NO_LONG_DOUBLE_MATH
 /* Signal that we do not really have a `long double'.  The disables the
    declaration of all the `long double' function variants.  */
-#define __NO_LONG_DOUBLE_MATH  1
+# define __NO_LONG_DOUBLE_MATH 1
+#endif
index 7dec1ab2227329951f6ac918f266eaee4502adfc..61d4ef361098afe26f7d0a9b106990ab83f4c1c5 100644 (file)
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#ifndef _MATH_H
+#if !defined _MATH_H && !defined _COMPLEX_H
 # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
 #endif
 
-#ifdef __USE_ISOC9X
+#if defined __USE_ISOC9X && defined _MATH_H
 /* The ix87 FPUs evaluate all values in the 80 bit floating-point format
    which is also available for the user as `long double'.  Therefore we
    define:  */
index 5bad57bcc35bde06faf8966d3b10c9d1b9e91eac..250f0f392929c20f8e03ce8b52565aa278c57707 100644 (file)
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#ifndef _MATH_H
+#if !defined _MATH_H && !defined _COMPLEX_H
 # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
 #endif
 
-#ifdef __USE_ISOC9X
+#if defined __USE_ISOC9X && defined _MATH_H
 /* The m68k FPUs evaluate all values in the 96 bit floating-point format
    which is also available for the user as `long double'.  Therefore we
    define: */
index 3923a5401af9bfb724581a6c91c3fc35be91e8ca..1dcd2e77147ee4a51bb0deb08c544f7e1199b8f9 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -16,7 +16,7 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#ifndef _MATH_H
+#if !defined _MATH_H && !defined _COMPLEX_H
 # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
 #endif
 
@@ -27,8 +27,9 @@
    FIXME! This file does not deal with the -fshort-double option of
    gcc! */
 
-#ifdef __GNUC__
-# if __STDC__ == 1
+#if defined __USE_ISOC9X && defined _MATH_H
+# ifdef __GNUC__
+#  if __STDC__ == 1
 
 /* In GNU or ANSI mode, gcc leaves `float' expressions as-is.  */
 typedef float float_t;         /* `float' expressions are evaluated as
@@ -37,12 +38,12 @@ typedef double double_t;    /* `double' expressions are evaluated as
                                   `double'.  */
 
 /* Signal that types stay as they were declared.  */
-#  define FLT_EVAL_METHOD      0
+#   define FLT_EVAL_METHOD     0
 
 /* Define `INFINITY' as value of type `float'.  */
-#  define INFINITY     HUGE_VALF
+#   define INFINITY    HUGE_VALF
 
-# else
+#  else
 
 /* For `gcc -traditional', `float' expressions are evaluated as `double'. */
 typedef double float_t;                /* `float' expressions are evaluated as
@@ -51,29 +52,37 @@ typedef double double_t;    /* `double' expressions are evaluated as
                                   `double'.  */
 
 /* Signal that both types are `double'.  */
-#  define FLT_EVAL_METHOD      1
+#   define FLT_EVAL_METHOD     1
 
 /* Define `INFINITY' as value of type `float'.  */
-#  define INFINITY     HUGE_VALF
+#   define INFINITY    HUGE_VALF
 
-# endif
-#else
+#  endif
+# else
 
 /* Wild guess at types for float_t and double_t. */
 typedef double float_t;
 typedef double double_t;
 
 /* Strange compiler, we don't know how it works.  */
-# define FLT_EVAL_METHOD       -1
+#  define FLT_EVAL_METHOD      -1
 
 /* Define `INFINITY' as value of type `float'.  */
-# define INFINITY      HUGE_VALF
+#  define INFINITY     HUGE_VALF
 
-#endif
+# endif
 
 /* The values returned by `ilogb' for 0 and NaN respectively.  */
-#define FP_ILOGB0      0x80000001
-#define FP_ILOGBNAN    0x7fffffff
+# define FP_ILOGB0     0x80000001
+# define FP_ILOGBNAN   0x7fffffff
 
 /* Number of decimal digits for the `double' type.  */
-#define DECIMAL_DIG    15
+# define DECIMAL_DIG   15
+
+#endif /* ISO C 9X */
+
+#ifndef __NO_LONG_DOUBLE_MATH
+/* Signal that we do not really have a `long double'.  The disables the
+   declaration of all the `long double' function variants.  */
+# define __NO_LONG_DOUBLE_MATH 1
+#endif
index 135531067b635a412c5cc6dacb83c91b3e83fca9..c1727b66bb0bd9562b8adcf1b3c6561ce06ae817 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#ifndef _MATH_H
+#if !defined _MATH_H && !defined _COMPLEX_H
 # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
 #endif
 
 /* FIXME! This file describes properties of the compiler, not the machine;
    it should not be part of libc!  */
 
-#ifdef __GNUC__
-# if __STDC__ == 1
+#if defined __USE_ISOC9X && defined _MATH_H
+# ifdef __GNUC__
+#  if __STDC__ == 1
 
 /* In GNU or ANSI mode, gcc leaves `float' expressions as-is.  */
 typedef float float_t;
 typedef double double_t;
 
 /* Signal that types stay as they were declared.  */
-#  define FLT_EVAL_METHOD      0
+#   define FLT_EVAL_METHOD     0
 
 /* Define `INFINITY' as value of type `float'.  */
-#  define INFINITY     HUGE_VALF
+#   define INFINITY    HUGE_VALF
 
-# else
+#  else
 
 /* For `gcc -traditional', `float' expressions are evaluated as `double'. */
 typedef double float_t;
 typedef double double_t;
 
 /* Signal that both types are `double'.  */
-#  define FLT_EVAL_METHOD      1
+#   define FLT_EVAL_METHOD     1
 
 /* Define `INFINITY' as value of type `float'.  */
-#  define INFINITY     HUGE_VALF
+#   define INFINITY    HUGE_VALF
 
-# endif
-#else
+#  endif
+# else
 
 /* Wild guess at types for float_t and double_t. */
 typedef double float_t;
 typedef double double_t;
 
 /* Strange compiler, we don't know how it works.  */
-# define FLT_EVAL_METHOD       -1
+#  define FLT_EVAL_METHOD      -1
 
 /* Define `INFINITY' as value of type `float'.  */
-# define INFINITY      HUGE_VALF
+#  define INFINITY     HUGE_VALF
 
-#endif
+# endif
 
 /* The values returned by `ilogb' for 0 and NaN respectively.  */
-#define FP_ILOGB0       0x80000001
-#define FP_ILOGBNAN     0x7fffffff
+# define FP_ILOGB0       0x80000001
+# define FP_ILOGBNAN     0x7fffffff
 
 /* Number of decimal digits for the `double' type.  */
-#define DECIMAL_DIG    15
+# define DECIMAL_DIG   15
+
+#endif /* ISO C 9X */
+
+#ifndef __NO_LONG_DOUBLE_MATH
+/* Signal that we do not really have a `long double'.  The disables the
+   declaration of all the `long double' function variants.  */
+# define __NO_LONG_DOUBLE_MATH 1
+#endif