builtin float.h macros

Richard Henderson rth@redhat.com
Tue Sep 3 13:24:00 GMT 2002


Tested with a complete bootstrap on i686-linux.  Examined macro
expansions by hand on m68k, c4x, vax, i370.


r~


gcc:
        * Makefile.in (USER_H): Add ginclude/float.h.
        (FLOAT_H): Remove.
        (stmp-int-hdrs, install-mkheaders): Don't handle FLOAT_H.
        (mostlyclean): Don't remove float.h intermediate files.
        (distclean): Don't remove float.h.
        * config.gcc: Remove all float_format references.
        * configure.in (float_format, float_h_file): Remove.

        * c-common.c: Include tree-inline.h.
        (builtin_define_with_int_value): New.
        (builtin_define_type_precision): Use it.
        (builtin_define_float_constants): New.
        (cb_register_builtins): Use it.  Define __FLT_RADIX__ and
        __FLT_EVAL_METHOD__.
        * defaults.h (TARGET_FLT_EVAL_METHOD): New.
        * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): New.
        * config/m68k/m68k.h (TARGET_FLT_EVAL_METHOD): New.
        * doc/tm.texi (INTEL_EXTENDED_IEEE_FORMAT): Mention moto 96-bit format.
        (TARGET_FLT_EVAL_METHOD): New.

        * config/float-c4x.h, config/float-i128.h, config/float-i32.h,
        config/float-i386.h, config/float-i64.h, config/float-m68k.h,
        config/float-sh.h, config/float-sparc.h, config/float-vax.h: Remove.
        * ginclude/float.h: New.

libstdc++:
	* include/std/std_limits.h (__glibcpp_f32_min, __glibcpp_f32_max,
	__glibcpp_f32_digits, __glibcpp_f32_digits10, __glibcpp_f32_radix,
	__glibcpp_f32_epsilon, __glibcpp_f32_min_exponent,
	__glibcpp_f32_min_exponent10, __glibcpp_f32_max_exponent,
	__glibcpp_f32_max_exponent10, __glibcpp_f64_min, __glibcpp_f64_max,
	__glibcpp_f64_digits, __glibcpp_f64_digits10, __glibcpp_f64_radix,
	__glibcpp_f64_min_exponent, __glibcpp_f64_min_exponent10,
	__glibcpp_f64_max_exponent, __glibcpp_f64_max_exponent10,
	__glibcpp_f80_min, __glibcpp_f80_max, __glibcpp_f80_digits,
	__glibcpp_f80_digits10, __glibcpp_f80_radix, __glibcpp_f80_epsilon,
	__glibcpp_f80_min_exponent, __glibcpp_f80_min_exponent10,
	__glibcpp_f80_max_exponent, __glibcpp_f80_max_exponent10,
	__glibcpp_f96_min, __glibcpp_f96_max, __glibcpp_f96_digits,
	__glibcpp_f96_digits10, __glibcpp_f96_radix, __glibcpp_f96_epsilon,
	__glibcpp_f96_min_exponent, __glibcpp_f96_min_exponent10,
	__glibcpp_f96_max_exponent, __glibcpp_f96_max_exponent10,
	__glibcpp_f128_min, __glibcpp_f128_max, __glibcpp_f128_digits,
	__glibcpp_f128_digits10, __glibcpp_f128_radix, __glibcpp_f128_epsilon,
	__glibcpp_f128_min_exponent, __glibcpp_f128_min_exponent10,
	__glibcpp_f128_max_exponent, __glibcpp_f128_max_exponent10,
	__glibcpp_float_min, __glibcpp_float_max, __glibcpp_float_digits,
	__glibcpp_float_digits10, __glibcpp_float_radix,
	__glibcpp_float_epsilon, __glibcpp_float_min_exponent,
	__glibcpp_float_min_exponent10, __glibcpp_float_max_exponent,
	__glibcpp_float_max_exponent10, __glibcpp_double_min,
	__glibcpp_double_max, __glibcpp_double_digits,
	__glibcpp_double_digits10, __glibcpp_double_radix,
	__glibcpp_double_epsilon, __glibcpp_double_min_exponent,
	__glibcpp_double_min_exponent10, __glibcpp_double_max_exponent,
	__glibcpp_double_max_exponent10, __glibcpp_long_double_min,
	__glibcpp_long_double_max, __glibcpp_long_double_digits,
	__glibcpp_long_double_digits10, __glibcpp_long_double_radix,
	__glibcpp_long_double_epsilon, __glibcpp_long_double_min_exponent,
	__glibcpp_long_double_min_exponent10,
	__glibcpp_long_double_max_exponent,
	__glibcpp_long_double_max_exponent10): Remove macros.
	(std::numeric_limits<float>, std::numeric_limits<double>,
	std::numeric_limits<long double>): Use protected float.h macros.

Index: gcc/Makefile.in
===================================================================
RCS file: /cvs/gcc/gcc/gcc/Makefile.in,v
retrieving revision 1.940
diff -c -p -d -u -r1.940 Makefile.in
--- gcc/Makefile.in	31 Aug 2002 02:29:20 -0000	1.940
+++ gcc/Makefile.in	3 Sep 2002 18:07:40 -0000
@@ -171,10 +171,13 @@ INSTALL_HEADERS_DIR = @build_install_hea
 
 # Header files that are made available under the same name
 # to programs compiled with GCC.
-USER_H = $(srcdir)/ginclude/stdarg.h $(srcdir)/ginclude/stddef.h \
-    $(srcdir)/ginclude/varargs.h \
-    $(srcdir)/ginclude/stdbool.h $(srcdir)/ginclude/iso646.h \
-    $(EXTRA_HEADERS)
+USER_H = $(srcdir)/ginclude/float.h \
+	 $(srcdir)/ginclude/iso646.h \
+	 $(srcdir)/ginclude/stdarg.h \
+	 $(srcdir)/ginclude/stdbool.h \
+	 $(srcdir)/ginclude/stddef.h \
+	 $(srcdir)/ginclude/varargs.h \
+	 $(EXTRA_HEADERS)
 
 # The GCC to use for compiling libgcc.a and crt*.o.
 # Usually the one we just built.
@@ -434,10 +437,6 @@ LIB2FUNCS_EXTRA =
 # Assembler files should have names ending in `.asm'.
 LIB2FUNCS_STATIC_EXTRA =
 
-# We do not try to build float.h anymore.  Let configure select the
-# appropriate pre-built float.h file for the target.
-FLOAT_H=@float_h_file@
-
 # Program to convert libraries.
 LIBCONVERT =
 
@@ -2305,7 +2304,7 @@ gcov$(exeext): $(GCOV_OBJS) $(LIBDEPS)
 # s-* so that mostlyclean does not force the include directory to
 # be rebuilt.
 
-# Build the include directory including float.h
+# Build the include directory
 stmp-int-hdrs: $(STMP_FIXINC) $(USER_H) xlimits.h
 # Copy in the headers provided with gcc.
 # The sed command gets just the last file name component;
@@ -2325,11 +2324,6 @@ stmp-int-hdrs: $(STMP_FIXINC) $(USER_H) 
 	rm -f include/limits.h
 	cp xlimits.h include/limits.h
 	chmod a+r include/limits.h
-	rm -f include/float.h
-	if [ x$(FLOAT_H) != xMakefile.in ]; then \
-	  cp $(srcdir)/config/$(FLOAT_H) include/float.h && \
-	  chmod a+r include/float.h; \
-	else :; fi
 # Install the README
 	rm -f include/README
 	cp $(srcdir)/README-fixinc include/README
@@ -2623,7 +2617,7 @@ mostlyclean: $(INTL_MOSTLYCLEAN) lang.mo
 # Delete the temp files made in the course of building libgcc.a.
 	-rm -f xlimits.h
 # Delete other built files.
-	-rm -f t-float.h-cross xsys-protos.hT
+	-rm -f xsys-protos.hT
 	-rm -f specs.h options.h gencheck.h
 # Delete the stamp and temporary files.
 	-rm -f s-* tmp-* stamp-* stmp-*
@@ -2631,7 +2625,7 @@ mostlyclean: $(INTL_MOSTLYCLEAN) lang.mo
 # Delete debugging dump files.
 	-rm -f *.[0-9][0-9].* */*.[0-9][0-9].*
 # Delete some files made during installation.
-	-rm -f specs float.h-* SYSCALLS.c.X SYSCALLS.c
+	-rm -f specs SYSCALLS.c.X SYSCALLS.c
 	-rm -f collect collect2 mips-tfile mips-tdump
 # Delete files generated for fixproto
 	-rm -rf fix-header$(build_exeext) xsys-protos.h deduced.h tmp-deduced.h \
@@ -2690,7 +2684,6 @@ distclean: clean $(INTL_DISTCLEAN) lang.
 	-rm -f */stage1 */stage2 */stage3 */stage4 */include
 	-rm -f c-parse.output
 	-rm -f *.asm
-	-rm -f float.h
 	-rm -f site.exp site.bak testsuite/site.exp testsuite/site.bak
 	-rm -f testsuite/*.log testsuite/*.sum
 	-cd testsuite && rm -f x *.x *.x? *.exe *.rpo *.o *.s *.S *.c
@@ -3029,10 +3022,6 @@ install-mkheaders: stmp-int-hdrs $(STMP_
 	  $(INSTALL_DATA) $$file \
 	    $(itoolsdir)/include/$$realfile ; \
 	done
-	if [ x$(FLOAT_H) != xMakefile.in ]; then \
-	  $(INSTALL_DATA) $(srcdir)/config/$(FLOAT_H) \
-	     $(itoolsdir)/include/float.h ; \
-	else :; fi
 	$(INSTALL_DATA) xlimits.h $(itoolsdir)/include/limits.h
 	if [ x$(STMP_FIXINC) != x ] ; then \
 	  $(INSTALL_DATA) $(srcdir)/README-fixinc \
Index: gcc/c-common.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/c-common.c,v
retrieving revision 1.370
diff -c -p -d -u -r1.370 c-common.c
--- gcc/c-common.c	28 Aug 2002 21:41:54 -0000	1.370
+++ gcc/c-common.c	3 Sep 2002 18:07:40 -0000
@@ -38,6 +38,7 @@ Software Foundation, 59 Temple Place - S
 #include "target.h"
 #include "langhooks.h"
 #include "except.h"		/* For USING_SJLJ_EXCEPTIONS.  */
+#include "tree-inline.h"
 
 cpp_reader *parse_in;		/* Declared in c-pragma.h.  */
 
@@ -761,9 +762,13 @@ static bool get_nonnull_operand		PARAMS 
 void builtin_define_std PARAMS ((const char *));
 static void builtin_define_with_value PARAMS ((const char *, const char *,
                                                int));
+static void builtin_define_with_int_value PARAMS ((const char *,
+						   HOST_WIDE_INT));
 static void builtin_define_type_max PARAMS ((const char *, tree, int));
 static void cpp_define_data_format PARAMS ((cpp_reader *));
 static void builtin_define_type_precision PARAMS ((const char *, tree));
+static void builtin_define_float_constants PARAMS ((const char *,
+						    const char *, tree));
 
 /* Table of machine-independent attributes common to all C-like languages.  */
 const struct attribute_spec c_common_attribute_table[] =
@@ -4682,6 +4687,7 @@ cpp_define_data_format (pfile)
     cpp_reader *pfile;
 {
   const char *format;
+
   /* Define endianness enumeration values.  */
   cpp_define (pfile, "__GCC_LITTLE_ENDIAN__=0");
   cpp_define (pfile, "__GCC_BIG_ENDIAN__=1");
@@ -4772,9 +4778,270 @@ builtin_define_type_precision (name, typ
      const char *name;
      tree type;
 {
-  char buf[8];
-  sprintf (buf, "%d", (int) TYPE_PRECISION (type));
+  builtin_define_with_int_value (name, TYPE_PRECISION (type));
+}
+
+/* Define the float.h constants for TYPE using NAME_PREFIX and FP_SUFFIX.  */
+static void
+builtin_define_float_constants (name_prefix, fp_suffix, type)
+     const char *name_prefix;
+     const char *fp_suffix;
+     tree type;
+{
+  /* Used to convert radix-based values to base 10 values in several cases.
+
+     In the max_exp -> max_10_exp conversion for 128-bit IEEE, we need at
+     least 6 significant digits for correct results.  Using the fraction
+     formed by (log(2)*1e6)/(log(10)*1e6) overflows a 32-bit integer as an
+     intermediate; perhaps someone can find a better approximation, in the
+     mean time, I suspect using doubles won't harm the bootstrap here.  */
+
+  const double log10_2 = .30102999566398119521;
+  const double log10_16 = 1.20411998265592478085;
+  const double log10_b
+    = TARGET_FLOAT_FORMAT == IBM_FLOAT_FORMAT ? log10_16 : log10_2;
+
+  const int log2_b = TARGET_FLOAT_FORMAT == IBM_FLOAT_FORMAT ? 4 : 1;
+
+  char name[64], buf[128];
+  int mant_dig, max_exp, min_exp;
+  int dig, min_10_exp, max_10_exp;
+
+  /* ??? This information should be shared with real.c.  */
+
+#ifndef INTEL_EXTENDED_IEEE_FORMAT
+#define INTEL_EXTENDED_IEEE_FORMAT 0
+#endif
+#ifndef TARGET_G_FLOAT
+#define TARGET_G_FLOAT 0
+#endif
+
+  switch (TARGET_FLOAT_FORMAT)
+    {
+    case IEEE_FLOAT_FORMAT:
+      switch (TYPE_PRECISION (type))
+	{
+	case 32:
+	  /* ??? Handle MIPS r5900, which doesn't implement Inf or NaN,
+	     but rather reuses the largest exponent as a normal number.  */
+	  mant_dig = 24;
+	  min_exp = -125;
+	  max_exp = 128;
+	  break;
+	case 64:
+	  mant_dig = 53;
+	  min_exp = -1021;
+	  max_exp = 1024;
+	  break;
+	case 128:
+	  if (!INTEL_EXTENDED_IEEE_FORMAT)
+	    {
+	      mant_dig = 113;
+	      min_exp = -16381;
+	      max_exp = 16384;
+	      break;
+	    }
+	  /* FALLTHRU */
+	case 96:
+	  mant_dig = 64;
+	  max_exp = 16384;
+	  if (INTEL_EXTENDED_IEEE_FORMAT)
+	    min_exp = -16381;
+	  else
+	    /* ??? Otherwise assume m68k.  */
+	    min_exp = -16382;
+	  break;
+	default:
+	  abort ();
+	}
+      break;
+
+    case VAX_FLOAT_FORMAT:
+      switch (TYPE_PRECISION (type))
+	{
+	case 32: /* F_FLOAT */
+	  mant_dig = 24;
+	  min_exp = -127;
+	  max_exp = 127;
+	  break;
+	case 64: /* G_FLOAT or D_FLOAT */
+	  if (TARGET_G_FLOAT)
+	    {
+	      mant_dig = 53;
+	      min_exp = -1023;
+	      max_exp = 1023;
+	    }
+	  else
+	    {
+	      mant_dig = 56;
+	      min_exp = -127;
+	      max_exp = 127;
+	    }
+	  break;
+	case 128: /* H_FLOAT */
+	  mant_dig = 114;
+	  min_exp = -16383;
+	  max_exp = 16383;
+	  break;
+	default:
+	  abort ();
+	}
+      break;
+
+    case IBM_FLOAT_FORMAT:
+      switch (TYPE_PRECISION (type))
+	{
+	case 32:
+	  mant_dig = 6;
+	  min_exp = -64;
+	  max_exp = 63;
+	  break;
+	case 64:
+	  mant_dig = 14;
+	  min_exp = -64;
+	  max_exp = 63;
+	  break;
+	default:
+	  abort ();
+	}
+      break;
+      
+    case C4X_FLOAT_FORMAT:
+      switch (TYPE_PRECISION (type))
+	{
+	case 32:
+	  mant_dig = 24;
+	  min_exp = -126;
+	  max_exp = 128;
+	  break;
+	case 64:
+	  mant_dig = 32;
+	  min_exp = -126;
+	  max_exp = 128;
+	  break;
+	default:
+	  abort ();
+	}
+      break;
+
+    default:
+      abort ();
+    }
+
+  /* The number of radix digits, p, in the floating-point significand.  */
+  sprintf (name, "__%s_MANT_DIG__", name_prefix);
+  builtin_define_with_int_value (name, mant_dig);
+
+  /* The number of decimal digits, q, such that any floating-point number
+     with q decimal digits can be rounded into a floating-point number with
+     p radix b digits and back again without change to the q decimal digits,
+
+	p log10 b			if b is a power of 10
+ 	floor((p - 1) log10 b)		otherwise
+  */
+  dig = (mant_dig - 1) * log10_b;
+  sprintf (name, "__%s_DIG__", name_prefix);
+  builtin_define_with_int_value (name, dig);
+
+  /* The minimum negative int x such that b**(x-1) is a normalised float.  */
+  sprintf (name, "__%s_MIN_EXP__", name_prefix);
+  sprintf (buf, "(%d)", min_exp);
+  builtin_define_with_value (name, buf, 0);
+
+  /* The minimum negative int x such that 10**x is a normalized float,
+
+	  ceil (log10 (b ** (min_exp - 1)))
+	= ceil (log10 (b) * (min_exp - 1))
+
+     Recall that min_exp is negative, so the integer truncation calculates
+     the ceiling, not the floor, in this case.  */
+  min_10_exp = (min_exp - 1) * log10_b;
+  sprintf (name, "__%s_MIN_10_EXP__", name_prefix);
+  sprintf (buf, "(%d)", min_10_exp);
+  builtin_define_with_value (name, buf, 0);
+
+  /* The maximum int x such that b**(x-1) is a representable float.  */
+  sprintf (name, "__%s_MAX_EXP__", name_prefix);
+  builtin_define_with_int_value (name, max_exp);
+
+  /* The maximum int x such that 10**x is in the range of representable
+     finite floating-point numbers,
+
+	  floor (log10((1 - b**-p) * b**max_exp))
+	= floor (log10(1 - b**-p) + log10(b**max_exp))
+	= floor (log10(1 - b**-p) + log10(b)*max_exp)
+
+     The safest thing to do here is to just compute this number.  But since
+     we don't link cc1 with libm, we cannot.  We could implement log10 here
+     a series expansion, but that seems too much effort because:
+
+     Note that the first term, for all extant p, is a number exceedingly close
+     to zero, but slightly negative.  Note that the second term is an integer
+     scaling an irrational number, and that because of the floor we are only
+     interested in its integral portion.
+
+     In order for the first term to have any effect on the integral portion
+     of the second term, the second term has to be exceedingly close to an
+     integer itself (e.g. 123.000000000001 or something).  Getting a result
+     that close to an integer requires that the irrational multiplicand have
+     a long series of zeros in its expansion, which doesn't occur in the
+     first 20 digits or so of log10(b).
+
+     Hand-waving aside, crunching all of the sets of constants above by hand
+     does not yield a case for which the first term is significant, which
+     in the end is all that matters.  */
+  max_10_exp = max_exp * log10_b;
+  sprintf (name, "__%s_MAX_10_EXP__", name_prefix);
+  builtin_define_with_int_value (name, max_10_exp);
+
+  /* Since, for the supported formats, B is always a power of 2, we
+     construct the following numbers directly as a hexadecimal constants.  */
+
+  /* The maximum representable finite floating-point number,
+	(1 - b**-p) * b**max_exp  */
+  {
+    int i, n;
+    char *p;
+    sprintf (name, "__%s_MAX__", name_prefix);
+
+    strcpy (buf, "0x0.");
+
+    n = mant_dig * log2_b;
+    for (i = 0, p = buf + 4; i + 3 < n; i += 4)
+      *p++ = 'f';
+    if (i < n)
+      *p++ = "08ce"[n - i];
+    sprintf (p, "p%d%s", max_exp * log2_b, fp_suffix);
+    builtin_define_with_value (name, buf, 0);
+  }
+
+  /* The minimum normalized positive floating-point number, b**(min_exp-1).  */
+  sprintf (name, "__%s_MIN__", name_prefix);
+  sprintf (buf, "0x1p%d%s", (min_exp - 1) * log2_b, fp_suffix);
+  builtin_define_with_value (name, buf, 0);
+
+  /* The difference between 1 and the least value greater than 1 that is
+     representable in the given floating point type, b**(1-p).  */
+  sprintf (name, "__%s_EPSILON__", name_prefix);
+  sprintf (buf, "0x1p%d%s", (1 - mant_dig) * log2_b, fp_suffix);
   builtin_define_with_value (name, buf, 0);
+
+  if (type == long_double_type_node)
+    {
+      /* The number of decimal digits, n, such that any floating-point number
+	 in the widest supported floating type with pmax radix b digits can be
+	 rounded to a floating-point number with n decimal digits and back
+	 again without change to the value,
+
+	        pmax log10(b)                   if b is a power of 10
+	        ceil(1 + pmax * log10(b))       otherwise
+      */
+      double d_decimal_dig = 1 + mant_dig * log10_b;
+      int decimal_dig = d_decimal_dig;
+      if (decimal_dig < d_decimal_dig)
+	decimal_dig++;
+      builtin_define_with_int_value ("__DECIMAL_DIG__", decimal_dig);
+    }
 }
 
 /* Hook that registers front end and target-specific built-ins.  */
@@ -4830,6 +5097,20 @@ cb_register_builtins (pfile)
   builtin_define_type_precision ("__DOUBLE_BIT__", double_type_node);
   builtin_define_type_precision ("__LONG_DOUBLE_BIT__", long_double_type_node);
 
+  /* float.h needs to know these.  */
+
+  /* The radix of the exponent representation.  */
+  builtin_define_with_int_value ("__FLT_RADIX__",
+			         (TARGET_FLOAT_FORMAT == IBM_FLOAT_FORMAT
+			          ? 16 : 2));
+
+  builtin_define_with_int_value ("__FLT_EVAL_METHOD__",
+				 TARGET_FLT_EVAL_METHOD);
+
+  builtin_define_float_constants ("FLT", "F", float_type_node);
+  builtin_define_float_constants ("DBL", "", double_type_node);
+  builtin_define_float_constants ("LDBL", "L", long_double_type_node);
+
   /* For use in assembly language.  */
   builtin_define_with_value ("__REGISTER_PREFIX__", REGISTER_PREFIX, 0);
   builtin_define_with_value ("__USER_LABEL_PREFIX__", user_label_prefix, 0);
@@ -4952,6 +5233,25 @@ builtin_define_with_value (macro, expans
     sprintf (buf, "%s=\"%s\"", macro, expansion);
   else
     sprintf (buf, "%s=%s", macro, expansion);
+
+  cpp_define (parse_in, buf);
+}
+
+/* Pass an object-like macro and an integer value to define it to.  */
+static void
+builtin_define_with_int_value (macro, value)
+     const char *macro;
+     HOST_WIDE_INT value;
+{
+  char *buf;
+  size_t mlen = strlen (macro);
+  size_t vlen = 18;
+  size_t extra = 2; /* space for = and NUL.  */
+
+  buf = alloca (mlen + vlen + extra);
+  memcpy (buf, macro, mlen);
+  buf[mlen] = '=';
+  sprintf (buf + mlen + 1, HOST_WIDE_INT_PRINT_DEC, value);
 
   cpp_define (parse_in, buf);
 }
Index: gcc/config.gcc
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config.gcc,v
retrieving revision 1.242
diff -c -p -d -u -r1.242 config.gcc
--- gcc/config.gcc	28 Aug 2002 05:23:42 -0000	1.242
+++ gcc/config.gcc	3 Sep 2002 18:07:40 -0000
@@ -75,12 +75,6 @@
 #                       machine modes, if necessary and different from
 #                       "$cpu_type/$cpu_type-modes.def".
 #
-#  float_format		Set to the symbolic name for the floating-point
-#			formats used for this machine, if different from
-#			"i64".  Used to derive a header file name to
-#			include, like "vax" for "float-vax.h".  If no such
-#			file is wanted, set to "none".
-#
 #  extra_objs		List of extra objects that should be linked into
 #			the compiler proper (cc1, cc1obj, cc1plus)
 #			depending on target.
@@ -194,7 +188,6 @@ c_target_objs=
 cxx_target_objs=
 tm_defines=
 xm_defines=
-float_format=
 # Set this to force installation and use of collect2.
 use_collect2=
 # Set this to override the default target model.
@@ -542,7 +535,6 @@ alpha*-dec-osf[45]*)
 	  *-*-osf5*)
 	    tm_file="${tm_file} alpha/osf5.h"
 	    target_cpu_default=MASK_SUPPORT_ARCH
-	    float_format=i128
 	    ;;
 	esac
 	;;
@@ -687,7 +679,6 @@ c4x-*-rtems*)
 	cxx_target_objs="c4x-c.o"
 	;;
 c4x-*)
-	float_format=c4x
 	tmake_file=c4x/t-c4x
 	c_target_objs="c4x-c.o"
 	cxx_target_objs="c4x-c.o"
@@ -708,7 +699,6 @@ cris-*-linux*)
 	;;
 d30v-*)
 	tm_file="dbxelf.h elfos.h svr4.h ${tm_file}"
-	float_format=i64
 	;;
 dsp16xx-*)
 	;;
@@ -728,15 +718,12 @@ h8300-*-rtems*)
 	if test x$enable_threads = xyes; then
 	  thread_file='rtems'
 	fi
-	float_format=i32
 	;;
 h8300-*-elf*)
 	tmake_file="h8300/t-h8300 h8300/t-elf"
 	tm_file="h8300/h8300.h h8300/elf.h"
-	float_format=i32
 	;;
 h8300-*-*)
-	float_format=i32
 	;;
 hppa*64*-*-linux* | parisc*64*-*-linux*)
 	target_cpu_default="(MASK_PA_11 | MASK_PA_20)"
@@ -842,7 +829,6 @@ hppa1.0-*-hpux8*)
 hppa1.1-*-hpux10* | hppa2*-*-hpux10*)
 	target_cpu_default="MASK_PA_11"
 	tm_file="${tm_file} pa/pa32-regs.h pa/long_double.h pa/som.h pa/pa-hpux.h pa/pa-hpux10.h"
-	float_format=i128
 	xm_defines=POSIX
 	tmake_file="pa/t-pa pa/t-pa-hpux pa/t-hpux-shlib"
 	xmake_file="pa/x-ada"
@@ -859,7 +845,6 @@ hppa1.1-*-hpux10* | hppa2*-*-hpux10*)
 	;;
 hppa1.0-*-hpux10*)
 	tm_file="${tm_file} pa/pa32-regs.h pa/long_double.h pa/som.h pa/pa-hpux.h pa/pa-hpux10.h"
-	float_format=i128
 	xm_defines=POSIX
 	tmake_file="pa/t-pa pa/t-pa-hpux pa/t-hpux-shlib"
 	xmake_file="pa/x-ada"
@@ -877,7 +862,6 @@ hppa1.0-*-hpux10*)
 hppa*64*-*-hpux11*)
 	xm_defines=POSIX
 	tm_file="pa/pa64-start.h ${tm_file} pa/pa64-regs.h pa/long_double.h pa/elf.h pa/pa-hpux.h pa/pa-hpux11.h pa/pa-64.h pa/pa64-hpux.h"
-	float_format=i128
 	tmake_file="pa/t-pa64 pa/t-pa-hpux"
 	xmake_file="pa/x-ada"
 	target_cpu_default="(MASK_PA_11|MASK_PA_20|MASK_GAS)"
@@ -895,7 +879,6 @@ hppa*64*-*-hpux11*)
 hppa1.1-*-hpux11* | hppa2*-*-hpux11*)
 	target_cpu_default="MASK_PA_11"
 	tm_file="${tm_file} pa/pa32-regs.h pa/long_double.h pa/som.h pa/pa-hpux.h pa/pa-hpux11.h"
-	float_format=i128
 	xm_defines=POSIX
 	tmake_file="pa/t-pa pa/t-pa-hpux pa/t-hpux-shlib"
 	xmake_file="pa/x-ada"
@@ -911,7 +894,6 @@ hppa1.1-*-hpux11* | hppa2*-*-hpux11*)
 	;;
 hppa1.0-*-hpux11*)
 	tm_file="${tm_file} pa/pa32-regs.h pa/long_double.h pa/som.h pa/pa-hpux.h pa/pa-hpux11.h"
-	float_format=i128
 	xm_defines=POSIX
 	tmake_file="pa/t-pa pa/t-pa-hpux pa/t-hpux-shlib"
 	xmake_file="pa/x-ada"
@@ -1000,7 +982,6 @@ i[34567]86-*-darwin*)
 	cxx_target_objs="darwin-c.o"
 	# Darwin linker does collect2 functionality
 	use_collect2=no
-	float_format=i386
 	;;
 i[34567]86-*-elf*)
 	xm_defines=POSIX
@@ -1062,7 +1043,6 @@ x86_64-*-freebsd*)
 	;;
 i[34567]86-*-netbsdelf*)
 	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h"
-	float_format=i386
 	;;
 i[34567]86-*-netbsd*)
 	tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h netbsd.h netbsd-aout.h i386/netbsd.h"
@@ -1071,7 +1051,6 @@ i[34567]86-*-netbsd*)
 	;;
 x86_64-*-netbsd*)
 	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/x86-64.h i386/netbsd64.h"
-	float_format=i386
 	;;
 i[34567]86-*-openbsd*)
 	tm_file="${cpu_type}/${cpu_type}.h i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h openbsd-oldgas.h openbsd.h ${tm_file}"
@@ -1092,7 +1071,6 @@ i[34567]86-*-linux*aout*)	# Intel 80386'
 	tmake_file="t-linux-aout i386/t-crtstuff"
 	tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h linux-aout.h i386/linux-aout.h"
 	gnu_ld=yes
-	float_format=i386
 	;;
 i[34567]86-*-linux*libc1)	# Intel 80386's running GNU/Linux
 				# with ELF format using the
@@ -1101,7 +1079,6 @@ i[34567]86-*-linux*libc1)	# Intel 80386'
 	tmake_file="t-slibgcc-elf-ver t-linux t-linux-gnulibc1 i386/t-crtstuff"
 	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
 	gnu_ld=yes
-	float_format=i386
 	if test x$enable_threads = xyes; then
 		thread_file='single'
 	fi
@@ -1111,16 +1088,13 @@ i[34567]86-*-linux*)	# Intel 80386's run
 			# aka GNU/Linux C library 6
 	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h i386/linux.h"
 	tmake_file="t-slibgcc-elf-ver t-linux i386/t-crtstuff"
-	float_format=i386
 	;;
 x86_64-*-linux*)
 	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h \
 		 i386/x86-64.h i386/linux64.h"
 	tmake_file="t-slibgcc-elf-ver t-linux i386/t-crtstuff i386/t-linux64"
-	float_format=i386
 	;;
 i[34567]86-*-gnu*)
-	float_format=i386
 	;;
 i[34567]86-go32-msdos | i[34567]86-*-go32*)
 	echo "GO32/DJGPP V1.X is no longer supported. Use *-pc-msdosdjgpp for DJGPP V2.X instead."
@@ -1133,7 +1107,6 @@ i[34567]86-pc-msdosdjgpp*)
 	gnu_ld=yes
 	gas=yes
 	exeext=.exe
-	float_format=none
 	case $host in *pc-msdosdjgpp*)
 		target_alias=djgpp
 		;;
@@ -1267,7 +1240,6 @@ i386-*-vsta)			# Intel 80386's running V
 i[34567]86-*-win32)
 	xm_defines=POSIX
 	xm_file=i386/xm-cygwin.h
-	float_format=i386
 	tmake_file=i386/t-cygwin
 	tm_file="${tm_file} i386/win32.h"
 	extra_objs=winnt.o
@@ -1279,7 +1251,6 @@ i[34567]86-*-win32)
 i[34567]86-*-pe | i[34567]86-*-cygwin*)
 	xm_defines=POSIX
 	xm_file=i386/xm-cygwin.h
-	float_format=i386
 	tmake_file=i386/t-cygwin
 	tm_file=i386/cygwin.h
 	extra_objs=winnt.o
@@ -1290,7 +1261,6 @@ i[34567]86-*-pe | i[34567]86-*-cygwin*)
 	;;
 i[34567]86-*-mingw32*)
 	tm_file=i386/mingw32.h
-	float_format=i386
 	xm_defines=POSIX
 	xm_file=i386/xm-mingw32.h
 	tmake_file="i386/t-cygwin i386/t-mingw32"
@@ -1406,19 +1376,16 @@ ia64*-*-elf*)
 	then
 		target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
 	fi
-	float_format=i386
 	;;
 ia64*-*-freebsd*)
 	tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
 	target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
 	tmake_file="${tmake_file} ia64/t-ia64"
-	float_format=i386
 	;;
 ia64*-*-linux*)
 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h ia64/sysv4.h ia64/linux.h"
 	tmake_file="t-slibgcc-elf-ver t-linux ia64/t-ia64 ia64/t-glibc"
 	target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
-	float_format=i386
 	;;
 ia64*-*-hpux*)
 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h ia64/sysv4.h ia64/hpux.h ia64/hpux_longdouble.h"
@@ -1428,7 +1395,6 @@ ia64*-*-hpux*)
 		thread_file='posix'
 	fi
 	use_collect2=no
-	float_format=i128
 	;;
 ip2k-*-elf)
 	;;
@@ -1490,7 +1456,6 @@ m68k-atari-sysv4*)              # Atari 
 	xm_defines=POSIX
 	tmake_file=t-svr4
 	extra_parts="crtbegin.o crtend.o"
-	float_format=m68k
 	;;
 m68k-apollo-sysv* | m68k-bull-sysv*)
 	# can otherwise be caught by m68k-*-sysv4*
@@ -1520,7 +1485,6 @@ m68k-motorola-sysv*)
 	fi
 	gdb_needs_out_file_path=yes
 	extra_parts="crt0.o mcrt0.o"
-	float_format=m68k
 	;;
 m68k-ncr-sysv*)			# NCR Tower 32 SVR3
 	tm_file=m68k/tower-as.h
@@ -1546,22 +1510,18 @@ m68k-cbm-sysv4*)		# Commodore variant of
 	xm_defines=POSIX
 	tmake_file=t-svr4
 	extra_parts="crtbegin.o crtend.o"
-	float_format=m68k
 	;;
 m68k-ccur-rtu)
 	tm_file=m68k/ccur-GAS.h
 	use_collect2=yes
-	float_format=m68k
 	;;
 m68k-hp-bsd4.4*)		# HP 9000/3xx running 4.4bsd
 	tm_file=m68k/hp3bsd44.h
 	use_collect2=yes
-	float_format=m68k
 	;;
 m68k-hp-bsd*)			# HP 9000/3xx running Berkeley Unix
 	tm_file=m68k/hp3bsd.h
 	use_collect2=yes
-	float_format=m68k
 	;;
 m68k-hp-hpux7*)	# HP 9000 series 300 running HPUX version 7.
 	xm_defines=POSIX
@@ -1575,7 +1535,6 @@ m68k-hp-hpux7*)	# HP 9000 series 300 run
 	fi
 	install_headers_dir=install-headers-cpio
 	use_collect2=yes
-	float_format=m68k
 	;;
 m68k-hp-hpux*)	# HP 9000 series 300
 	xm_defines=POSIX
@@ -1589,12 +1548,10 @@ m68k-hp-hpux*)	# HP 9000 series 300
 	fi
 	install_headers_dir=install-headers-cpio
 	use_collect2=yes
-	float_format=m68k
 	;;
 m68k-sun-mach*)
 	tm_file=m68k/sun3mach.h
 	use_collect2=yes
-	float_format=m68k
 	;;
 m68k-sun-sunos3*)
 	if test x$with_fp = xno
@@ -1602,7 +1559,6 @@ m68k-sun-sunos3*)
 		tm_file=m68k/sun3n3.h
 	else
 		tm_file=m68k/sun3o3.h
-		float_format=m68k
 	fi
 	use_collect2=yes
 	;;
@@ -1612,7 +1568,6 @@ m68k-sun-sunos*)			# For SunOS 4 (the de
 		tm_file=m68k/sun3n.h
 	else
 		tm_file=m68k/sun3.h
-		float_format=m68k
 	fi
 	use_collect2=yes
 	;;
@@ -1620,17 +1575,14 @@ m68k-wrs-vxworks*)
 	tm_file=m68k/vxm68k.h
 	tmake_file=m68k/t-vxworks68
 	thread_file='vxworks'
-	float_format=m68k
 	;;
 m68k-*-aout*)
 	tmake_file=m68k/t-m68kbare
 	tm_file="m68k/m68k-aout.h libgloss.h"
-	float_format=m68k
 	;;
 m68k-*-coff*)
 	tmake_file=m68k/t-m68kbare
 	tm_file="m68k/m68k-coff.h dbx.h"
-	float_format=m68k
 	;;
 m68020-*-elf* | m68k-*-elf*)
 	tm_file="m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/m68kemb.h m68k/m68020-elf.h"
@@ -1648,18 +1600,15 @@ m68010-*-netbsdelf* | m68k*-*-netbsdelf*
 		target_cpu_default="MASK_68020|MASK_68881|MASK_BITFIELD"
 		;;
 	esac
-	float_format=m68k
 	;;
 m68k*-*-netbsd*)
 	tm_file=m68k/netbsd.h
 	tmake_file=t-netbsd
-	float_format=m68k
 	use_collect2=yes
 	;;
 m68k*-*-openbsd*)
 	# needed to unconfuse gdb
 	tmake_file="t-libc-ok t-openbsd m68k/t-openbsd"
-	float_format=m68k
 	# we need collect2 until our bug is fixed...
 	use_collect2=yes
 	;;
@@ -1668,13 +1617,11 @@ m68k-*-sysv4*)			# Motorola m68k's runni
 	xm_defines=POSIX
 	tmake_file=t-svr4
 	extra_parts="crtbegin.o crtend.o"
-	float_format=m68k
 	;;
 m68k-*-linux*aout*)		# Motorola m68k's running GNU/Linux
 				# with a.out format
 	tm_file=m68k/linux-aout.h
 	tmake_file="t-linux-aout m68k/t-linux-aout"
-	float_format=m68k
 	gnu_ld=yes
 	;;
 m68k-*-linux*libc1)		# Motorola m68k's running GNU/Linux
@@ -1683,7 +1630,6 @@ m68k-*-linux*libc1)		# Motorola m68k's r
 	tm_file=m68k/linux.h
 	tmake_file="t-slibgcc-elf-ver t-linux t-linux-gnulibc1 m68k/t-linux"
 	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
-	float_format=m68k
 	gnu_ld=yes
 	;;
 m68k-*-linux*)		# Motorola m68k's running GNU/Linux
@@ -1692,13 +1638,11 @@ m68k-*-linux*)		# Motorola m68k's runnin
 	tm_file=m68k/linux.h
 	tmake_file="t-slibgcc-elf-ver t-linux m68k/t-linux"
 	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
-	float_format=m68k
 	gnu_ld=yes
 	;;
 m68k-*-psos*)
 	tmake_file=m68k/t-m68kbare
 	tm_file=m68k/m68k-psos.h
-	float_format=m68k
 	;;
 m68k-*-rtemscoff*)	# would otherwise be caught by m68k-*-rtems*
 	echo "*** Configuration $machine not supported" 1>&2
@@ -1708,7 +1652,6 @@ m68k-*-rtems*)
 	xm_defines=POSIX
 	tmake_file="m68k/t-m68kbare t-rtems m68k/t-crtstuff"
 	tm_file="m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/m68kemb.h m68k/m68020-elf.h m68k/rtemself.h rtems.h"
-	float_format=m68k
 	extra_parts="crtbegin.o crtend.o"
 	if test x$enable_threads = xyes; then
 	  thread_file='rtems'
@@ -1936,7 +1879,6 @@ mipstx39-*-elf* | mipstx39el-*-elf*)
 mmix-knuth-mmixware)
 	;;
 mn10200-*-*)
-	float_format=i32
 	tm_file="dbxelf.h elfos.h svr4.h ${tm_file}"
 	if test x$stabs = xyes
 	then
@@ -2149,14 +2091,12 @@ powerpcle-*-eabi*)
 rs6000-ibm-aix3.[01]*)
 	xm_defines=POSIX
 	tm_file="${tm_file} rs6000/aix.h rs6000/aix31.h rs6000/xcoff.h"
-	float_format=none
 	use_collect2=yes
 	;;
 rs6000-ibm-aix3.2.[456789]* | powerpc-ibm-aix3.2.[456789]*)
 	xm_defines=POSIX
 	tm_file="${tm_file} rs6000/aix.h rs6000/aix3newas.h rs6000/xcoff.h"
 	tmake_file=rs6000/t-newas
-	float_format=none
 	use_collect2=yes
 	extra_headers=
 	;;
@@ -2164,7 +2104,6 @@ rs6000-ibm-aix4.[12]* | powerpc-ibm-aix4
 	xm_defines=POSIX
 	tm_file="${tm_file} rs6000/aix.h rs6000/aix41.h rs6000/xcoff.h"
 	tmake_file=rs6000/t-newas
-	float_format=none
 	use_collect2=yes
 	extra_headers=
 	;;
@@ -2172,7 +2111,6 @@ rs6000-ibm-aix4.[3456789]* | powerpc-ibm
 	xm_defines=POSIX
 	tm_file="${tm_file} rs6000/aix.h rs6000/aix43.h rs6000/xcoff.h"
 	tmake_file=rs6000/t-aix43
-	float_format=none
 	use_collect2=yes
 	thread_file='aix'
 	extra_headers=
@@ -2181,7 +2119,6 @@ rs6000-ibm-aix[56789].* | powerpc-ibm-ai
 	xm_defines=POSIX
 	tm_file="${tm_file} rs6000/aix.h rs6000/aix51.h rs6000/xcoff.h"
 	tmake_file=rs6000/t-aix43
-	float_format=none
 	use_collect2=yes
 	thread_file='aix'
 	extra_headers=
@@ -2189,13 +2126,11 @@ rs6000-ibm-aix[56789].* | powerpc-ibm-ai
 rs6000-ibm-aix*)
 	xm_defines=POSIX
 	tm_file="${tm_file} rs6000/aix.h rs6000/xcoff.h"
-	float_format=none
 	use_collect2=yes
 	;;
 rs6000-bull-bosx)
 	xm_defines=POSIX
 	tm_file="${tm_file} rs6000/aix.h rs6000/xcoff.h"
-	float_format=none
 	use_collect2=yes
 	;;
 rs6000-*-mach*)
@@ -2229,7 +2164,6 @@ sh-*-elf* | sh[2346l]*-*-elf*)
 		;;
 	esac
 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sh/embed-elf.h"
-	float_format=sh
 	case $machine in
 	sh64*)
 		tmake_file="${tmake_file} sh/t-sh64"
@@ -2250,7 +2184,6 @@ sh-*-rtemself*)
 	xm_defines=POSIX
 	tmake_file="sh/t-sh sh/t-elf t-rtems"
 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sh/embed-elf.h sh/rtemself.h rtems.h"
-	float_format=sh
 	if test x$enable_threads = xyes; then
 	  thread_file='rtems'
 	fi
@@ -2259,7 +2192,6 @@ sh-*-rtems*)
 	xm_defines=POSIX
 	tmake_file="sh/t-sh t-rtems"
 	tm_file="${tm_file} sh/coff.h sh/rtems.h rtems.h"
-	float_format=sh
 	if test x$enable_threads = xyes; then
 	  thread_file='rtems'
 	fi
@@ -2275,7 +2207,6 @@ sh-*-linux* | sh[2346lbe]*-*-linux*)
 	esac
 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sh/elf.h sh/linux.h"
 	gas=yes gnu_ld=yes
-	float_format=sh
 	case $machine in
 	sh64*)
 		tmake_file="${tmake_file} sh/t-sh64"
@@ -2324,11 +2255,9 @@ sh-*-netbsdelf* | shl*-*-netbsdelf* | sh
 		tmake_file="${tmake_file} sh/t-netbsd"
 		;;
 	esac
-	float_format=sh
 	;;
 sh-*-*)
 	tm_file="${tm_file} sh/coff.h"
-	float_format=sh
 	;;
 sparc-tti-*)
 	tm_file="${tm_file} sparc/pbd.h"
@@ -2369,7 +2298,6 @@ sparc64-*-openbsd*)
 	xm_file=sparc/xm-sp64.h
 	gas=yes gnu_ld=yes
 	with_cpu=ultrasparc
-	float_format=i128
 	;;
 sparc-*-bsd*)
 	tm_file="${tm_file} sparc/bsd.h"
@@ -2378,7 +2306,6 @@ sparc-*-chorusos*)
 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/elf.h chorus.h"
 	tmake_file="sparc/t-chorus-elf sparc/t-crtfm"
 	extra_parts="crti.o crtn.o crtbegin.o crtend.o"
-	float_format=i64
 	case x${enable_threads} in
 	  xyes | xpthreads | xposix)
 		thread_file='posix'
@@ -2389,8 +2316,6 @@ sparc-*-elf*)
 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/elf.h"
 	tmake_file="sparc/t-elf sparc/t-crtfm"
 	extra_parts="crti.o crtn.o crtbegin.o crtend.o"
-	#float_format=i128
-	float_format=i64
 	;;
 sparc-*-linux*aout*)		# Sparc's running GNU/Linux, a.out
 	tm_file="aoutos.h sparc/sparc.h sparc/aout.h sparc/linux-aout.h"
@@ -2401,12 +2326,10 @@ sparc-*-linux*libc1*)	# Sparc's running 
 	tmake_file="t-slibgcc-elf-ver t-linux t-linux-gnulibc1 sparc/t-crtfm"
 	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
 	gnu_ld=yes
-	float_format=sparc
 	;;
 sparc-*-linux*)		# Sparc's running GNU/Linux, libc6
 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux.h"
 	tmake_file="t-slibgcc-elf-ver t-linux sparc/t-crtfm"
-	float_format=sparc
 	;;
 sparc-*-lynxos*)
 	if test x$gas = xyes
@@ -2426,8 +2349,6 @@ sparc-*-rtems*)
 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/elf.h sparc/rtemself.h rtems.h"
 	tmake_file="sparc/t-elf sparc/t-crtfm t-rtems"
 	extra_parts="crti.o crtn.o crtbegin.o crtend.o"
-	#float_format=i128
-	float_format=i64
 	if test x$enable_threads = xyes; then
 	  thread_file='rtems'
 	fi
@@ -2448,7 +2369,6 @@ sparc64-*-solaris2* | sparcv9-*-solaris2
 		tmake_file="$tmake_file t-slibgcc-sld"
 	fi
 	extra_parts="crt1.o crti.o crtn.o gcrt1.o crtbegin.o crtend.o"
-	float_format=i128
 	if test x${enable_threads} = x ; then
 	    enable_threads=$have_pthread_h
 	    if test x${enable_threads} = x ; then
@@ -2474,7 +2394,6 @@ sparc-hal-solaris2*)
 		tmake_file="$tmake_file t-slibgcc-sld"
 	fi
         extra_parts="crt1.o crti.o crtn.o gmon.o crtbegin.o crtend.o"
-	float_format=i128
 	thread_file='solaris'
         ;;
 sparc-*-solaris2*)
@@ -2507,7 +2426,6 @@ sparc-*-solaris2*)
 	esac
 	xm_defines=POSIX
 	extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o"
-	float_format=i128
 	if test x${enable_threads} = x; then
 	    enable_threads=$have_pthread_h
 	    if test x${enable_threads} = x; then
@@ -2596,13 +2514,11 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd*
 sparc64-*-linux*)		# 64-bit Sparc's running GNU/Linux
 	tmake_file="t-slibgcc-elf-ver t-linux sparc/t-linux64 sparc/t-crtfm"
 	tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux64.h"
-	float_format=sparc
 	;;
 sparc64-*-netbsd*)
 	tmake_file="${tmake_file} sparc/t-netbsd64"
 	tm_file="sparc/biarch64.h ${tm_file}"
 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
-	float_format=sparc
 	;;
 strongarm-*-elf*)
 	tm_file="arm/strongarm-elf.h dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h"
@@ -2674,12 +2590,10 @@ v850-*-*)
 vax-*-bsd*)			# VAXen running BSD
 	tm_file="${tm_file} vax/bsd.h"
 	use_collect2=yes
-	float_format=vax
 	;;
 vax-*-sysv*)			# VAXen running system V
 	tm_file="${tm_file} vax/vaxv.h"
 	xm_defines=POSIX
-	float_format=vax
 	;;
 vax-*-netbsdelf*)
 	echo "GCC does not yet support the ${machine} target"; exit 1
@@ -2687,25 +2601,20 @@ vax-*-netbsdelf*)
 vax-*-netbsd*)
 	tm_file="${tm_file} netbsd.h netbsd-aout.h vax/netbsd.h"
 	tmake_file=t-netbsd
-	float_format=vax
 	use_collect2=yes
 	;;
 vax-*-openbsd*)
 	tm_file="vax/vax.h vax/openbsd1.h openbsd.h ${tm_file}"
-	float_format=vax
 	use_collect2=yes
 	;;
 vax-*-ultrix*)			# VAXen running ultrix
 	tm_file="${tm_file} vax/ultrix.h"
-	float_format=vax
 	;;
 vax-*-vms*)			# VAXen running VMS
 	xm_file=vax/xm-vms.h
 	tm_file=vax/vms.h
-	float_format=vax
 	;;
 vax-*-*)			# VAX default entry
-	float_format=vax
 	;;
 xscale-*-elf)
 	tm_file="arm/xscale-elf.h dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h"
Index: gcc/configure.in
===================================================================
RCS file: /cvs/gcc/gcc/gcc/configure.in,v
retrieving revision 1.617
diff -c -p -d -u -r1.617 configure.in
--- gcc/configure.in	15 Aug 2002 21:45:47 -0000	1.617
+++ gcc/configure.in	3 Sep 2002 18:07:40 -0000
@@ -798,15 +798,6 @@ if test x"$dwarf2" = xyes
 then tm_file="$tm_file tm-dwarf2.h"
 fi
 
-if test x$float_format = x
-then float_format=i64
-fi
-
-if test $float_format = none
-then float_h_file=Makefile.in
-else float_h_file=float-$float_format.h
-fi
-
 # Say what files are being used for the output code and MD file.
 echo "Using \`$srcdir/config/$out_file' for machine-specific logic."
 echo "Using \`$srcdir/config/$md_file' as machine description file."
@@ -2649,7 +2640,6 @@ else
 fi)
 AC_SUBST(slibdir)
 
-# Nothing to do for FLOAT_H, float_format already handled.
 objdir=`${PWDCMD-pwd}`
 AC_SUBST(objdir)
 
Index: gcc/defaults.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/defaults.h,v
retrieving revision 1.89
diff -c -p -d -u -r1.89 defaults.h
--- gcc/defaults.h	21 Aug 2002 02:41:43 -0000	1.89
+++ gcc/defaults.h	3 Sep 2002 18:07:40 -0000
@@ -559,6 +559,10 @@ You Lose!  You must define PREFERRED_DEB
    && !ROUND_TOWARDS_ZERO)
 #endif
 
+#ifndef TARGET_FLT_EVAL_METHOD
+#define TARGET_FLT_EVAL_METHOD 0
+#endif
+
 #ifndef HOT_TEXT_SECTION_NAME
 #define HOT_TEXT_SECTION_NAME "text.hot"
 #endif
Index: gcc/config/float-c4x.h
===================================================================
RCS file: gcc/config/float-c4x.h
diff -N gcc/config/float-c4x.h
--- gcc/config/float-c4x.h	3 Oct 2000 01:08:45 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,96 +0,0 @@
-/* float.h for target with TMS320C3x/C4x floating point format  */
-#ifndef _FLOAT_H_
-#define _FLOAT_H_
-/* Produced by enquire version 4.3, CWI, Amsterdam     */
-
-   /* Radix of exponent representation */
-#undef FLT_RADIX
-#define FLT_RADIX 2 
-   /* Number of base-FLT_RADIX digits in the significand of a float */
-#undef FLT_MANT_DIG
-#define FLT_MANT_DIG 24 
-   /* Number of decimal digits of precision in a float */
-#undef FLT_DIG
-#define FLT_DIG 6 
-   /* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown */
-#undef FLT_ROUNDS
-#define FLT_ROUNDS 1  
-   /* Difference between 1.0 and the minimum float greater than 1.0 */
-#undef FLT_EPSILON
-#define FLT_EPSILON 1.19209290e-07F 
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised float */
-#undef FLT_MIN_EXP
-#define FLT_MIN_EXP (-126) 
-   /* Minimum normalised float */
-#undef FLT_MIN
-#define FLT_MIN 5.8774718E-39F 
-   /* Minimum int x such that 10**x is a normalised float */
-#undef FLT_MIN_10_EXP
-#define FLT_MIN_10_EXP (-39) 
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable float */
-#undef FLT_MAX_EXP
-#define FLT_MAX_EXP 128 
-   /* Maximum float */
-#undef FLT_MAX
-#define FLT_MAX  3.4028235e+38F 
-   /* Maximum int x such that 10**x is a representable float */
-#undef FLT_MAX_10_EXP
-#define FLT_MAX_10_EXP 38
-
-   /* Number of base-FLT_RADIX digits in the significand of a double */
-#undef DBL_MANT_DIG
-#define DBL_MANT_DIG 24
-   /* Number of decimal digits of precision in a double */
-#undef DBL_DIG
-#define DBL_DIG 6
-   /* Difference between 1.0 and the minimum double greater than 1.0 */
-#undef DBL_EPSILON
-#define DBL_EPSILON 1.1920929e-07
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised double */
-#undef DBL_MIN_EXP
-#define DBL_MIN_EXP (-126)
-   /* Minimum normalised double */
-#undef DBL_MIN
-#define DBL_MIN 5.8774718E-39
-   /* Minimum int x such that 10**x is a normalised double */
-#undef DBL_MIN_10_EXP
-#define DBL_MIN_10_EXP -39
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable double */
-#undef DBL_MAX_EXP
-#define DBL_MAX_EXP 128
-   /* Maximum double */
-#undef DBL_MAX
-#define DBL_MAX 3.4028235E+38
-   /* Maximum int x such that 10**x is a representable double */
-#undef DBL_MAX_10_EXP
-#define DBL_MAX_10_EXP 38
-
-   /* Number of base-FLT_RADIX digits in the significand of a long double */
-#undef LDBL_MANT_DIG
-#define LDBL_MANT_DIG 32
-   /* Number of decimal digits of precision in a long double */
-#undef LDBL_DIG
-#define LDBL_DIG 8
-   /* Difference between 1.0 and the minimum long double greater than 1.0 */
-#undef LDBL_EPSILON
-#define LDBL_EPSILON 1.19209287e-07L
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised long double */
-#undef LDBL_MIN_EXP
-#define LDBL_MIN_EXP (-126)
-   /* Minimum normalised long double */
-#undef LDBL_MIN
-#define LDBL_MIN 5.8774717535e-39L
-   /* Minimum int x such that 10**x is a normalised long double */
-#undef LDBL_MIN_10_EXP
-#define LDBL_MIN_10_EXP (-39)
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable long double */
-#undef LDBL_MAX_EXP
-#define LDBL_MAX_EXP 128
-   /* Maximum long double */
-#undef LDBL_MAX
-#define LDBL_MAX .4028236688e+38L
-   /* Maximum int x such that 10**x is a representable long double */
-#undef LDBL_MAX_10_EXP
-#define LDBL_MAX_10_EXP 38
-
-#endif /*  _FLOAT_H_ */
Index: gcc/config/float-i128.h
===================================================================
RCS file: gcc/config/float-i128.h
diff -N gcc/config/float-i128.h
--- gcc/config/float-i128.h	11 Oct 2001 15:53:57 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,123 +0,0 @@
-/* float.h for target with IEEE 32, 64 and 128 bit floating point formats */
-#ifndef _FLOAT_H_
-#define _FLOAT_H_
-/* Produced by enquire version 4.3, CWI, Amsterdam */
-
-   /* Radix of exponent representation */
-#undef FLT_RADIX
-#define FLT_RADIX 2
-   /* Number of base-FLT_RADIX digits in the significand of a float */
-#undef FLT_MANT_DIG
-#define FLT_MANT_DIG 24
-   /* Number of decimal digits of precision in a float */
-#undef FLT_DIG
-#define FLT_DIG 6
-   /* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown */
-#undef FLT_ROUNDS
-#define FLT_ROUNDS 1
-   /* Difference between 1.0 and the minimum float greater than 1.0 */
-#undef FLT_EPSILON
-#define FLT_EPSILON 1.19209290e-07F
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised float */
-#undef FLT_MIN_EXP
-#define FLT_MIN_EXP (-125)
-   /* Minimum normalised float */
-#undef FLT_MIN
-#define FLT_MIN 1.17549435e-38F
-   /* Minimum int x such that 10**x is a normalised float */
-#undef FLT_MIN_10_EXP
-#define FLT_MIN_10_EXP (-37)
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable float */
-#undef FLT_MAX_EXP
-#define FLT_MAX_EXP 128
-   /* Maximum float */
-#undef FLT_MAX
-#define FLT_MAX 3.40282347e+38F
-   /* Maximum int x such that 10**x is a representable float */
-#undef FLT_MAX_10_EXP
-#define FLT_MAX_10_EXP 38
-
-   /* Number of base-FLT_RADIX digits in the significand of a double */
-#undef DBL_MANT_DIG
-#define DBL_MANT_DIG 53
-   /* Number of decimal digits of precision in a double */
-#undef DBL_DIG
-#define DBL_DIG 15
-   /* Difference between 1.0 and the minimum double greater than 1.0 */
-#undef DBL_EPSILON
-#define DBL_EPSILON 2.2204460492503131e-16
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised double */
-#undef DBL_MIN_EXP
-#define DBL_MIN_EXP (-1021)
-   /* Minimum normalised double */
-#undef DBL_MIN
-#define DBL_MIN 2.2250738585072014e-308
-   /* Minimum int x such that 10**x is a normalised double */
-#undef DBL_MIN_10_EXP
-#define DBL_MIN_10_EXP (-307)
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable double */
-#undef DBL_MAX_EXP
-#define DBL_MAX_EXP 1024
-   /* Maximum double */
-#undef DBL_MAX
-#define DBL_MAX 1.7976931348623157e+308
-   /* Maximum int x such that 10**x is a representable double */
-#undef DBL_MAX_10_EXP
-#define DBL_MAX_10_EXP 308
-
-   /* Number of base-FLT_RADIX digits in the significand of a long double */
-#undef LDBL_MANT_DIG
-#define LDBL_MANT_DIG 113
-   /* Number of decimal digits of precision in a long double */
-#undef LDBL_DIG
-#define LDBL_DIG 33
-   /* Difference between 1.0 and the minimum long double greater than 1.0 */
-#undef LDBL_EPSILON
-#define LDBL_EPSILON 1.925929944387235853055977942584927319E-34L
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised long double */
-#undef LDBL_MIN_EXP
-#define LDBL_MIN_EXP (-16381)
-   /* Minimum normalised long double */
-#undef LDBL_MIN
-#define LDBL_MIN 3.362103143112093506262677817321752603E-4932L
-   /* Minimum int x such that 10**x is a normalised long double */
-#undef LDBL_MIN_10_EXP
-#define LDBL_MIN_10_EXP (-4931)
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable long double */
-#undef LDBL_MAX_EXP
-#define LDBL_MAX_EXP 16384
-   /* Maximum long double */
-#undef LDBL_MAX
-#define LDBL_MAX 1.189731495357231765085759326628007016E+4932L
-   /* Maximum int x such that 10**x is a representable long double */
-#undef LDBL_MAX_10_EXP
-#define LDBL_MAX_10_EXP 4932
-
-#if  defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-   /* The floating-point expression evaluation method.
-        -1  indeterminate
-         0  evaluate all operations and constants just to the range and
-            precision of the type
-         1  evaluate operations and constants of type float and double
-            to the range and precision of the double type, evaluate
-            long double operations and constants to the range and
-            precision of the long double type
-         2  evaluate all operations and constants to the range and
-            precision of the long double type
-   */
-# undef FLT_EVAL_METHOD
-# define FLT_EVAL_METHOD	0
-
-   /* Number of decimal digits to enable rounding to the given number of
-      decimal digits without loss of precision.
-         if FLT_RADIX == 10^n:  #mantissa * log10 (FLT_RADIX)
-         else                :  ceil (1 + #mantissa * log10 (FLT_RADIX))
-      where #mantissa is the number of bits in the mantissa of the widest
-      supported floating-point type.
-   */
-# undef DECIMAL_DIG
-# define DECIMAL_DIG	36
-
-#endif	/* C99 */
-
-#endif /*  _FLOAT_H_ */
Index: gcc/config/float-i32.h
===================================================================
RCS file: gcc/config/float-i32.h
diff -N gcc/config/float-i32.h
--- gcc/config/float-i32.h	11 Oct 2001 15:53:57 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,123 +0,0 @@
-/* float.h for target with only IEEE 32 bit floating point format */
-#ifndef _FLOAT_H_
-#define _FLOAT_H_
-/* Produced by enquire version 4.3, CWI, Amsterdam */
-
-   /* Radix of exponent representation */
-#undef FLT_RADIX
-#define FLT_RADIX 2
-   /* Number of base-FLT_RADIX digits in the significand of a float */
-#undef FLT_MANT_DIG
-#define FLT_MANT_DIG 24
-   /* Number of decimal digits of precision in a float */
-#undef FLT_DIG
-#define FLT_DIG 6
-   /* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown */
-#undef FLT_ROUNDS
-#define FLT_ROUNDS 1
-   /* Difference between 1.0 and the minimum float greater than 1.0 */
-#undef FLT_EPSILON
-#define FLT_EPSILON 1.19209290e-07F
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised float */
-#undef FLT_MIN_EXP
-#define FLT_MIN_EXP (-125)
-   /* Minimum normalised float */
-#undef FLT_MIN
-#define FLT_MIN 1.17549435e-38F
-   /* Minimum int x such that 10**x is a normalised float */
-#undef FLT_MIN_10_EXP
-#define FLT_MIN_10_EXP (-37)
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable float */
-#undef FLT_MAX_EXP
-#define FLT_MAX_EXP 128
-   /* Maximum float */
-#undef FLT_MAX
-#define FLT_MAX 3.40282347e+38F
-   /* Maximum int x such that 10**x is a representable float */
-#undef FLT_MAX_10_EXP
-#define FLT_MAX_10_EXP 38
-
-   /* Number of base-FLT_RADIX digits in the significand of a double */
-#undef DBL_MANT_DIG
-#define DBL_MANT_DIG 24
-   /* Number of decimal digits of precision in a double */
-#undef DBL_DIG
-#define DBL_DIG 6
-   /* Difference between 1.0 and the minimum double greater than 1.0 */
-#undef DBL_EPSILON
-#define DBL_EPSILON 1.19209290e-07F
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised double */
-#undef DBL_MIN_EXP
-#define DBL_MIN_EXP (-125)
-   /* Minimum normalised double */
-#undef DBL_MIN
-#define DBL_MIN 1.17549435e-38F
-   /* Minimum int x such that 10**x is a normalised double */
-#undef DBL_MIN_10_EXP
-#define DBL_MIN_10_EXP (-37)
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable double */
-#undef DBL_MAX_EXP
-#define DBL_MAX_EXP 128
-   /* Maximum double */
-#undef DBL_MAX
-#define DBL_MAX 3.40282347e+38F
-   /* Maximum int x such that 10**x is a representable double */
-#undef DBL_MAX_10_EXP
-#define DBL_MAX_10_EXP 38
-
-   /* Number of base-FLT_RADIX digits in the significand of a long double */
-#undef LDBL_MANT_DIG
-#define LDBL_MANT_DIG 24
-   /* Number of decimal digits of precision in a long double */
-#undef LDBL_DIG
-#define LDBL_DIG 6
-   /* Difference between 1.0 and the minimum long double greater than 1.0 */
-#undef LDBL_EPSILON
-#define LDBL_EPSILON 1.19209290e-07F
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised long double */
-#undef LDBL_MIN_EXP
-#define LDBL_MIN_EXP (-125)
-   /* Minimum normalised long double */
-#undef LDBL_MIN
-#define LDBL_MIN 1.17549435e-38F
-   /* Minimum int x such that 10**x is a normalised long double */
-#undef LDBL_MIN_10_EXP
-#define LDBL_MIN_10_EXP (-37)
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable long double */
-#undef LDBL_MAX_EXP
-#define LDBL_MAX_EXP 128
-   /* Maximum long double */
-#undef LDBL_MAX
-#define LDBL_MAX 3.40282347e+38F
-   /* Maximum int x such that 10**x is a representable long double */
-#undef LDBL_MAX_10_EXP
-#define LDBL_MAX_10_EXP 38
-
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-   /* The floating-point expression evaluation method.
-        -1  indeterminate
-         0  evaluate all operations and constants just to the range and
-            precision of the type
-         1  evaluate operations and constants of type float and double
-            to the range and precision of the double type, evaluate
-            long double operations and constants to the range and
-            precision of the long double type
-         2  evaluate all operations and constants to the range and
-            precision of the long double type
-   */
-# undef FLT_EVAL_METHOD
-# define FLT_EVAL_METHOD	0
-
-   /* Number of decimal digits to enable rounding to the given number of
-      decimal digits without loss of precision.
-         if FLT_RADIX == 10^n:  #mantissa * log10 (FLT_RADIX)
-         else                :  ceil (1 + #mantissa * log10 (FLT_RADIX))
-      where #mantissa is the number of bits in the mantissa of the widest
-      supported floating-point type.
-   */
-# undef DECIMAL_DIG
-# define DECIMAL_DIG	9
-
-#endif	/* C99 */
-
-#endif /*  _FLOAT_H_ */
Index: gcc/config/float-i386.h
===================================================================
RCS file: gcc/config/float-i386.h
diff -N gcc/config/float-i386.h
--- gcc/config/float-i386.h	11 Oct 2001 15:53:57 -0000	1.5
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,124 +0,0 @@
-/* float.h for target with IEEE 32/64 bit and Intel 386 style 80 bit
-   floating point formats */
-#ifndef _FLOAT_H_
-#define _FLOAT_H_
-/* Produced by enquire version 4.3, CWI, Amsterdam */
-
-   /* Radix of exponent representation */
-#undef FLT_RADIX
-#define FLT_RADIX 2
-   /* Number of base-FLT_RADIX digits in the significand of a float */
-#undef FLT_MANT_DIG
-#define FLT_MANT_DIG 24
-   /* Number of decimal digits of precision in a float */
-#undef FLT_DIG
-#define FLT_DIG 6
-   /* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown */
-#undef FLT_ROUNDS
-#define FLT_ROUNDS 1
-   /* Difference between 1.0 and the minimum float greater than 1.0 */
-#undef FLT_EPSILON
-#define FLT_EPSILON 1.19209290e-07F
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised float */
-#undef FLT_MIN_EXP
-#define FLT_MIN_EXP (-125)
-   /* Minimum normalised float */
-#undef FLT_MIN
-#define FLT_MIN 1.17549435e-38F
-   /* Minimum int x such that 10**x is a normalised float */
-#undef FLT_MIN_10_EXP
-#define FLT_MIN_10_EXP (-37)
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable float */
-#undef FLT_MAX_EXP
-#define FLT_MAX_EXP 128
-   /* Maximum float */
-#undef FLT_MAX
-#define FLT_MAX 3.40282347e+38F
-   /* Maximum int x such that 10**x is a representable float */
-#undef FLT_MAX_10_EXP
-#define FLT_MAX_10_EXP 38
-
-   /* Number of base-FLT_RADIX digits in the significand of a double */
-#undef DBL_MANT_DIG
-#define DBL_MANT_DIG 53
-   /* Number of decimal digits of precision in a double */
-#undef DBL_DIG
-#define DBL_DIG 15
-   /* Difference between 1.0 and the minimum double greater than 1.0 */
-#undef DBL_EPSILON
-#define DBL_EPSILON 2.2204460492503131e-16
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised double */
-#undef DBL_MIN_EXP
-#define DBL_MIN_EXP (-1021)
-   /* Minimum normalised double */
-#undef DBL_MIN
-#define DBL_MIN 2.2250738585072014e-308
-   /* Minimum int x such that 10**x is a normalised double */
-#undef DBL_MIN_10_EXP
-#define DBL_MIN_10_EXP (-307)
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable double */
-#undef DBL_MAX_EXP
-#define DBL_MAX_EXP 1024
-   /* Maximum double */
-#undef DBL_MAX
-#define DBL_MAX 1.7976931348623157e+308
-   /* Maximum int x such that 10**x is a representable double */
-#undef DBL_MAX_10_EXP
-#define DBL_MAX_10_EXP 308
-
-   /* Number of base-FLT_RADIX digits in the significand of a long double */
-#undef LDBL_MANT_DIG
-#define LDBL_MANT_DIG 64
-   /* Number of decimal digits of precision in a long double */
-#undef LDBL_DIG
-#define LDBL_DIG 18
-   /* Difference between 1.0 and the minimum long double greater than 1.0 */
-#undef LDBL_EPSILON
-#define LDBL_EPSILON 1.08420217248550443401e-19L
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised long double */
-#undef LDBL_MIN_EXP
-#define LDBL_MIN_EXP (-16381)
-   /* Minimum normalised long double */
-#undef LDBL_MIN
-#define LDBL_MIN 3.36210314311209350626e-4932L
-   /* Minimum int x such that 10**x is a normalised long double */
-#undef LDBL_MIN_10_EXP
-#define LDBL_MIN_10_EXP (-4931)
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable long double */
-#undef LDBL_MAX_EXP
-#define LDBL_MAX_EXP 16384
-   /* Maximum long double */
-#undef LDBL_MAX
-#define LDBL_MAX 1.18973149535723176502e+4932L
-   /* Maximum int x such that 10**x is a representable long double */
-#undef LDBL_MAX_10_EXP
-#define LDBL_MAX_10_EXP 4932
-
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-   /* The floating-point expression evaluation method.
-        -1  indeterminate
-         0  evaluate all operations and constants just to the range and
-            precision of the type
-         1  evaluate operations and constants of type float and double
-            to the range and precision of the double type, evaluate
-            long double operations and constants to the range and
-            precision of the long double type
-         2  evaluate all operations and constants to the range and
-            precision of the long double type
-   */
-# undef FLT_EVAL_METHOD
-# define FLT_EVAL_METHOD	2
-
-   /* Number of decimal digits to enable rounding to the given number of
-      decimal digits without loss of precision.
-         if FLT_RADIX == 10^n:  #mantissa * log10 (FLT_RADIX)
-         else                :  ceil (1 + #mantissa * log10 (FLT_RADIX))
-      where #mantissa is the number of bits in the mantissa of the widest
-      supported floating-point type.
-   */
-# undef DECIMAL_DIG
-# define DECIMAL_DIG	21
-
-#endif	/* C99 */
-
-#endif /*  _FLOAT_H___ */
Index: gcc/config/float-i64.h
===================================================================
RCS file: gcc/config/float-i64.h
diff -N gcc/config/float-i64.h
--- gcc/config/float-i64.h	11 Oct 2001 15:53:57 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,123 +0,0 @@
-/* float.h for target with IEEE 32 bit and 64 bit floating point formats */
-#ifndef _FLOAT_H_
-#define _FLOAT_H_
-/* Produced by enquire version 4.3, CWI, Amsterdam */
-
-   /* Radix of exponent representation */
-#undef FLT_RADIX
-#define FLT_RADIX 2
-   /* Number of base-FLT_RADIX digits in the significand of a float */
-#undef FLT_MANT_DIG
-#define FLT_MANT_DIG 24
-   /* Number of decimal digits of precision in a float */
-#undef FLT_DIG
-#define FLT_DIG 6
-   /* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown */
-#undef FLT_ROUNDS
-#define FLT_ROUNDS 1
-   /* Difference between 1.0 and the minimum float greater than 1.0 */
-#undef FLT_EPSILON
-#define FLT_EPSILON 1.19209290e-07F
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised float */
-#undef FLT_MIN_EXP
-#define FLT_MIN_EXP (-125)
-   /* Minimum normalised float */
-#undef FLT_MIN
-#define FLT_MIN 1.17549435e-38F
-   /* Minimum int x such that 10**x is a normalised float */
-#undef FLT_MIN_10_EXP
-#define FLT_MIN_10_EXP (-37)
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable float */
-#undef FLT_MAX_EXP
-#define FLT_MAX_EXP 128
-   /* Maximum float */
-#undef FLT_MAX
-#define FLT_MAX 3.40282347e+38F
-   /* Maximum int x such that 10**x is a representable float */
-#undef FLT_MAX_10_EXP
-#define FLT_MAX_10_EXP 38
-
-   /* Number of base-FLT_RADIX digits in the significand of a double */
-#undef DBL_MANT_DIG
-#define DBL_MANT_DIG 53
-   /* Number of decimal digits of precision in a double */
-#undef DBL_DIG
-#define DBL_DIG 15
-   /* Difference between 1.0 and the minimum double greater than 1.0 */
-#undef DBL_EPSILON
-#define DBL_EPSILON 2.2204460492503131e-16
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised double */
-#undef DBL_MIN_EXP
-#define DBL_MIN_EXP (-1021)
-   /* Minimum normalised double */
-#undef DBL_MIN
-#define DBL_MIN 2.2250738585072014e-308
-   /* Minimum int x such that 10**x is a normalised double */
-#undef DBL_MIN_10_EXP
-#define DBL_MIN_10_EXP (-307)
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable double */
-#undef DBL_MAX_EXP
-#define DBL_MAX_EXP 1024
-   /* Maximum double */
-#undef DBL_MAX
-#define DBL_MAX 1.7976931348623157e+308
-   /* Maximum int x such that 10**x is a representable double */
-#undef DBL_MAX_10_EXP
-#define DBL_MAX_10_EXP 308
-
-   /* Number of base-FLT_RADIX digits in the significand of a long double */
-#undef LDBL_MANT_DIG
-#define LDBL_MANT_DIG 53
-   /* Number of decimal digits of precision in a long double */
-#undef LDBL_DIG
-#define LDBL_DIG 15
-   /* Difference between 1.0 and the minimum long double greater than 1.0 */
-#undef LDBL_EPSILON
-#define LDBL_EPSILON 2.2204460492503131e-16L
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised long double */
-#undef LDBL_MIN_EXP
-#define LDBL_MIN_EXP (-1021)
-   /* Minimum normalised long double */
-#undef LDBL_MIN
-#define LDBL_MIN 2.2250738585072014e-308L
-   /* Minimum int x such that 10**x is a normalised long double */
-#undef LDBL_MIN_10_EXP
-#define LDBL_MIN_10_EXP (-307)
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable long double */
-#undef LDBL_MAX_EXP
-#define LDBL_MAX_EXP 1024
-   /* Maximum long double */
-#undef LDBL_MAX
-#define LDBL_MAX 1.7976931348623157e+308L
-   /* Maximum int x such that 10**x is a representable long double */
-#undef LDBL_MAX_10_EXP
-#define LDBL_MAX_10_EXP 308
-
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-   /* The floating-point expression evaluation method.
-        -1  indeterminate
-         0  evaluate all operations and constants just to the range and
-            precision of the type
-         1  evaluate operations and constants of type float and double
-            to the range and precision of the double type, evaluate
-            long double operations and constants to the range and
-            precision of the long double type
-         2  evaluate all operations and constants to the range and
-            precision of the long double type
-   */
-# undef FLT_EVAL_METHOD
-# define FLT_EVAL_METHOD	0
-
-   /* Number of decimal digits to enable rounding to the given number of
-      decimal digits without loss of precision.
-         if FLT_RADIX == 10^n:  #mantissa * log10 (FLT_RADIX)
-         else                :  ceil (1 + #mantissa * log10 (FLT_RADIX))
-      where #mantissa is the number of bits in the mantissa of the widest
-      supported floating-point type.
-   */
-# undef DECIMAL_DIG
-# define DECIMAL_DIG	17
-
-#endif	/* C99 */
-
-#endif /*  _FLOAT_H_ */
Index: gcc/config/float-m68k.h
===================================================================
RCS file: gcc/config/float-m68k.h
diff -N gcc/config/float-m68k.h
--- gcc/config/float-m68k.h	11 Oct 2001 15:53:57 -0000	1.5
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,127 +0,0 @@
-/* float.h for target with IEEE 32 bit and 64 bit and Motorola style 96 bit
-   floating point formats */
-#ifndef _FLOAT_H_
-#define _FLOAT_H_
-/* Produced by enquire version 4.3, CWI, Amsterdam */
-
-   /* Radix of exponent representation */
-#undef FLT_RADIX
-#define FLT_RADIX 2
-   /* Number of base-FLT_RADIX digits in the significand of a float */
-#undef FLT_MANT_DIG
-#define FLT_MANT_DIG 24
-   /* Number of decimal digits of precision in a float */
-#undef FLT_DIG
-#define FLT_DIG 6
-   /* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown */
-#undef FLT_ROUNDS
-#define FLT_ROUNDS 1
-   /* Difference between 1.0 and the minimum float greater than 1.0 */
-#undef FLT_EPSILON
-#define FLT_EPSILON 1.19209290e-07F
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised float */
-#undef FLT_MIN_EXP
-#define FLT_MIN_EXP (-125)
-   /* Minimum normalised float */
-#undef FLT_MIN
-#define FLT_MIN 1.17549435e-38F
-   /* Minimum int x such that 10**x is a normalised float */
-#undef FLT_MIN_10_EXP
-#define FLT_MIN_10_EXP (-37)
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable float */
-#undef FLT_MAX_EXP
-#define FLT_MAX_EXP 128
-   /* Maximum float */
-#undef FLT_MAX
-#define FLT_MAX 3.40282347e+38F
-   /* Maximum int x such that 10**x is a representable float */
-#undef FLT_MAX_10_EXP
-#define FLT_MAX_10_EXP 38
-
-   /* Number of base-FLT_RADIX digits in the significand of a double */
-#undef DBL_MANT_DIG
-#define DBL_MANT_DIG 53
-   /* Number of decimal digits of precision in a double */
-#undef DBL_DIG
-#define DBL_DIG 15
-   /* Difference between 1.0 and the minimum double greater than 1.0 */
-#undef DBL_EPSILON
-#define DBL_EPSILON 2.2204460492503131e-16
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised double */
-#undef DBL_MIN_EXP
-#define DBL_MIN_EXP (-1021)
-   /* Minimum normalised double */
-#undef DBL_MIN
-#define DBL_MIN 2.2250738585072014e-308
-   /* Minimum int x such that 10**x is a normalised double */
-#undef DBL_MIN_10_EXP
-#define DBL_MIN_10_EXP (-307)
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable double */
-#undef DBL_MAX_EXP
-#define DBL_MAX_EXP 1024
-   /* Maximum double */
-#undef DBL_MAX
-#define DBL_MAX 1.7976931348623157e+308
-   /* Maximum int x such that 10**x is a representable double */
-#undef DBL_MAX_10_EXP
-#define DBL_MAX_10_EXP 308
-
-   /* Number of base-FLT_RADIX digits in the significand of a long double */
-#undef LDBL_MANT_DIG
-#define LDBL_MANT_DIG 64
-   /* Number of decimal digits of precision in a long double */
-#undef LDBL_DIG
-#define LDBL_DIG 18
-   /* Difference between 1.0 and the minimum long double greater than 1.0 */
-#undef LDBL_EPSILON
-#define LDBL_EPSILON 1.08420217248550443401e-19L
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised long double */
-#undef LDBL_MIN_EXP
-#define LDBL_MIN_EXP (-16382)
-   /* Minimum normalised long double */
-#undef LDBL_MIN
-#define LDBL_MIN 1.68105157155604675313e-4932L
-   /* Minimum int x such that 10**x is a normalised long double */
-#undef LDBL_MIN_10_EXP
-#define LDBL_MIN_10_EXP (-4931)
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable long double */
-#undef LDBL_MAX_EXP
-#define LDBL_MAX_EXP 16384
-   /* Maximum long double */
-#undef LDBL_MAX
-#define LDBL_MAX 1.18973149535723176502e+4932L
-   /* Maximum int x such that 10**x is a representable long double */
-#undef LDBL_MAX_10_EXP
-#define LDBL_MAX_10_EXP 4932
-
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-   /* The floating-point expression evaluation method.
-        -1  indeterminate
-         0  evaluate all operations and constants just to the range and
-            precision of the type
-         1  evaluate operations and constants of type float and double
-            to the range and precision of the double type, evaluate
-            long double operations and constants to the range and
-            precision of the long double type
-         2  evaluate all operations and constants to the range and
-            precision of the long double type
-   */
-
-/* ??? FLT_EVAL_METHOD depends on TARGET_68040_ONLY.  We do not currently
-   have a preprocessor token that we can use to tell that this is on.  */
-# undef FLT_EVAL_METHOD
-# define FLT_EVAL_METHOD -1
-
-   /* Number of decimal digits to enable rounding to the given number of
-      decimal digits without loss of precision.
-         if FLT_RADIX == 10^n:  #mantissa * log10 (FLT_RADIX)
-         else                :  ceil (1 + #mantissa * log10 (FLT_RADIX))
-      where #mantissa is the number of bits in the mantissa of the widest
-      supported floating-point type.
-   */
-# undef DECIMAL_DIG
-# define DECIMAL_DIG	21
-
-#endif	/* C99 */
-
-#endif /*  _FLOAT_H_ */
Index: gcc/config/float-sh.h
===================================================================
RCS file: gcc/config/float-sh.h
diff -N gcc/config/float-sh.h
--- gcc/config/float-sh.h	11 Oct 2001 15:53:57 -0000	1.6
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,160 +0,0 @@
-/* float.h for target sh3e with optional IEEE 32 bit double format */
-#ifndef _FLOAT_H_
-#define _FLOAT_H_
-/* Produced by enquire version 4.3, CWI, Amsterdam */
-
-   /* Radix of exponent representation */
-#undef FLT_RADIX
-#define FLT_RADIX 2
-   /* Number of base-FLT_RADIX digits in the significand of a float */
-#undef FLT_MANT_DIG
-#define FLT_MANT_DIG 24
-   /* Number of decimal digits of precision in a float */
-#undef FLT_DIG
-#define FLT_DIG 6
-   /* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown */
-#undef FLT_ROUNDS
-#define FLT_ROUNDS 1
-   /* Difference between 1.0 and the minimum float greater than 1.0 */
-#undef FLT_EPSILON
-#define FLT_EPSILON 1.19209290e-07F
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised float */
-#undef FLT_MIN_EXP
-#define FLT_MIN_EXP (-125)
-   /* Minimum normalised float */
-#undef FLT_MIN
-#define FLT_MIN 1.17549435e-38F
-   /* Minimum int x such that 10**x is a normalised float */
-#undef FLT_MIN_10_EXP
-#define FLT_MIN_10_EXP (-37)
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable float */
-#undef FLT_MAX_EXP
-#define FLT_MAX_EXP 128
-   /* Maximum float */
-#undef FLT_MAX
-#define FLT_MAX 3.40282347e+38F
-   /* Maximum int x such that 10**x is a representable float */
-#undef FLT_MAX_10_EXP
-#define FLT_MAX_10_EXP 38
-
-#if defined (__SH3E__) || defined (__SH4_SINGLE_ONLY__)
-
-   /* Number of base-FLT_RADIX digits in the significand of a double */
-#undef DBL_MANT_DIG
-#define DBL_MANT_DIG 24
-   /* Number of decimal digits of precision in a double */
-#undef DBL_DIG
-#define DBL_DIG 6
-   /* Difference between 1.0 and the minimum double greater than 1.0 */
-#undef DBL_EPSILON
-#define DBL_EPSILON 1.19209290e-07F
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised double */
-#undef DBL_MIN_EXP
-#define DBL_MIN_EXP (-125)
-   /* Minimum normalised double */
-#undef DBL_MIN
-#define DBL_MIN 1.17549435e-38F
-   /* Minimum int x such that 10**x is a normalised double */
-#undef DBL_MIN_10_EXP
-#define DBL_MIN_10_EXP (-37)
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable double */
-#undef DBL_MAX_EXP
-#define DBL_MAX_EXP 128
-   /* Maximum double */
-#undef DBL_MAX
-#define DBL_MAX 3.40282347e+38F
-   /* Maximum int x such that 10**x is a representable double */
-#undef DBL_MAX_10_EXP
-#define DBL_MAX_10_EXP 38
-
-#else
-
-   /* Number of base-FLT_RADIX digits in the significand of a double */
-#undef DBL_MANT_DIG
-#define DBL_MANT_DIG 53
-   /* Number of decimal digits of precision in a double */
-#undef DBL_DIG
-#define DBL_DIG 15
-   /* Difference between 1.0 and the minimum double greater than 1.0 */
-#undef DBL_EPSILON
-#define DBL_EPSILON 2.2204460492503131e-16
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised double */
-#undef DBL_MIN_EXP
-#define DBL_MIN_EXP (-1021)
-   /* Minimum normalised double */
-#undef DBL_MIN
-#define DBL_MIN 2.2250738585072014e-308
-   /* Minimum int x such that 10**x is a normalised double */
-#undef DBL_MIN_10_EXP
-#define DBL_MIN_10_EXP (-307)
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable double */
-#undef DBL_MAX_EXP
-#define DBL_MAX_EXP 1024
-   /* Maximum double */
-#undef DBL_MAX
-#define DBL_MAX 1.7976931348623157e+308
-   /* Maximum int x such that 10**x is a representable double */
-#undef DBL_MAX_10_EXP
-#define DBL_MAX_10_EXP 308
-
-#endif
-
-/* Because -m3e and -m4-single-only have 32-bit doubles, we append L
-   to the doubles below, so that they're not truncated.  */
-
-   /* Number of base-FLT_RADIX digits in the significand of a long double */
-#undef LDBL_MANT_DIG
-#define LDBL_MANT_DIG 53
-   /* Number of decimal digits of precision in a long double */
-#undef LDBL_DIG
-#define LDBL_DIG 15
-   /* Difference between 1.0 and the minimum long double greater than 1.0 */
-#undef LDBL_EPSILON
-#define LDBL_EPSILON 2.2204460492503131e-16L
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised long double */
-#undef LDBL_MIN_EXP
-#define LDBL_MIN_EXP (-1021)
-   /* Minimum normalised long double */
-#undef LDBL_MIN
-#define LDBL_MIN 2.2250738585072014e-308L
-   /* Minimum int x such that 10**x is a normalised long double */
-#undef LDBL_MIN_10_EXP
-#define LDBL_MIN_10_EXP (-307)
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable long double */
-#undef LDBL_MAX_EXP
-#define LDBL_MAX_EXP 1024
-   /* Maximum long double */
-#undef LDBL_MAX
-#define LDBL_MAX 1.7976931348623157e+308L
-   /* Maximum int x such that 10**x is a representable long double */
-#undef LDBL_MAX_10_EXP
-#define LDBL_MAX_10_EXP 308
-
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-   /* The floating-point expression evaluation method.
-        -1  indeterminate
-         0  evaluate all operations and constants just to the range and
-            precision of the type
-         1  evaluate operations and constants of type float and double
-            to the range and precision of the double type, evaluate
-            long double operations and constants to the range and
-            precision of the long double type
-         2  evaluate all operations and constants to the range and
-            precision of the long double type
-   */
-# undef FLT_EVAL_METHOD
-# define FLT_EVAL_METHOD	0
-
-   /* Number of decimal digits to enable rounding to the given number of
-      decimal digits without loss of precision.
-         if FLT_RADIX == 10^n:  #mantissa * log10 (FLT_RADIX)
-         else                :  ceil (1 + #mantissa * log10 (FLT_RADIX))
-      where #mantissa is the number of bits in the mantissa of the widest
-      supported floating-point type.
-   */
-# undef DECIMAL_DIG
-# define DECIMAL_DIG	17
-
-#endif	/* C99 */
-
-#endif /*  _FLOAT_H_ */
Index: gcc/config/float-sparc.h
===================================================================
RCS file: gcc/config/float-sparc.h
diff -N gcc/config/float-sparc.h
--- gcc/config/float-sparc.h	2 May 2002 21:30:38 -0000	1.7
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,153 +0,0 @@
-/* float.h for target with IEEE 32, 64 and 128 bit SPARC floating point formats
-   (on sparc-linux long double is 64 bit, while on sparc64-linux 128 bit) */
-#ifndef _FLOAT_H_
-#define _FLOAT_H_
-/* Produced by enquire version 4.3, CWI, Amsterdam */
-
-   /* Radix of exponent representation */
-#undef FLT_RADIX
-#define FLT_RADIX 2
-   /* Number of base-FLT_RADIX digits in the significand of a float */
-#undef FLT_MANT_DIG
-#define FLT_MANT_DIG 24
-   /* Number of decimal digits of precision in a float */
-#undef FLT_DIG
-#define FLT_DIG 6
-   /* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown */
-#undef FLT_ROUNDS
-#define FLT_ROUNDS 1
-   /* Difference between 1.0 and the minimum float greater than 1.0 */
-#undef FLT_EPSILON
-#define FLT_EPSILON 1.19209290e-07F
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised float */
-#undef FLT_MIN_EXP
-#define FLT_MIN_EXP (-125)
-   /* Minimum normalised float */
-#undef FLT_MIN
-#define FLT_MIN 1.17549435e-38F
-   /* Minimum int x such that 10**x is a normalised float */
-#undef FLT_MIN_10_EXP
-#define FLT_MIN_10_EXP (-37)
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable float */
-#undef FLT_MAX_EXP
-#define FLT_MAX_EXP 128
-   /* Maximum float */
-#undef FLT_MAX
-#define FLT_MAX 3.40282347e+38F
-   /* Maximum int x such that 10**x is a representable float */
-#undef FLT_MAX_10_EXP
-#define FLT_MAX_10_EXP 38
-
-   /* Number of base-FLT_RADIX digits in the significand of a double */
-#undef DBL_MANT_DIG
-#define DBL_MANT_DIG 53
-   /* Number of decimal digits of precision in a double */
-#undef DBL_DIG
-#define DBL_DIG 15
-   /* Difference between 1.0 and the minimum double greater than 1.0 */
-#undef DBL_EPSILON
-#define DBL_EPSILON 2.2204460492503131e-16
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised double */
-#undef DBL_MIN_EXP
-#define DBL_MIN_EXP (-1021)
-   /* Minimum normalised double */
-#undef DBL_MIN
-#define DBL_MIN 2.2250738585072014e-308
-   /* Minimum int x such that 10**x is a normalised double */
-#undef DBL_MIN_10_EXP
-#define DBL_MIN_10_EXP (-307)
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable double */
-#undef DBL_MAX_EXP
-#define DBL_MAX_EXP 1024
-   /* Maximum double */
-#undef DBL_MAX
-#define DBL_MAX 1.7976931348623157e+308
-   /* Maximum int x such that 10**x is a representable double */
-#undef DBL_MAX_10_EXP
-#define DBL_MAX_10_EXP 308
-
-#if defined(__sparcv9) || defined(__arch64__) || defined(__LONG_DOUBLE_128__)
-
-   /* Number of base-FLT_RADIX digits in the significand of a long double */
-#undef LDBL_MANT_DIG
-#define LDBL_MANT_DIG 113
-   /* Number of decimal digits of precision in a long double */
-#undef LDBL_DIG
-#define LDBL_DIG 33
-   /* Difference between 1.0 and the minimum long double greater than 1.0 */
-#undef LDBL_EPSILON
-#define LDBL_EPSILON 1.925929944387235853055977942584927319E-34L
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised long double */
-#undef LDBL_MIN_EXP
-#define LDBL_MIN_EXP (-16381)
-   /* Minimum normalised long double */
-#undef LDBL_MIN
-#define LDBL_MIN 3.362103143112093506262677817321752603E-4932L
-   /* Minimum int x such that 10**x is a normalised long double */
-#undef LDBL_MIN_10_EXP
-#define LDBL_MIN_10_EXP (-4931)
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable long double */
-#undef LDBL_MAX_EXP
-#define LDBL_MAX_EXP 16384
-   /* Maximum long double */
-#undef LDBL_MAX
-#define LDBL_MAX 1.189731495357231765085759326628007016E+4932L
-   /* Maximum int x such that 10**x is a representable long double */
-#undef LDBL_MAX_10_EXP
-#define LDBL_MAX_10_EXP 4932
-
-#else /* sparc32 */
-
-#undef LDBL_MANT_DIG
-#define LDBL_MANT_DIG DBL_MANT_DIG
-#undef LDBL_DIG
-#define LDBL_DIG DBL_DIG
-#undef LDBL_EPSILON
-#define LDBL_EPSILON DBL_EPSILON
-#undef LDBL_MIN_EXP
-#define LDBL_MIN_EXP DBL_MIN_EXP
-#undef LDBL_MIN
-#define LDBL_MIN DBL_MIN
-#undef LDBL_MIN_10_EXP
-#define LDBL_MIN_10_EXP DBL_MIN_10_EXP
-#undef LDBL_MAX_EXP
-#define LDBL_MAX_EXP DBL_MAX_EXP
-#undef LDBL_MAX
-#define LDBL_MAX DBL_MAX
-#undef LDBL_MAX_10_EXP
-#define LDBL_MAX_10_EXP DBL_MAX_10_EXP
-
-#endif /* sparc32 */
-
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-   /* The floating-point expression evaluation method.
-        -1  indeterminate
-         0  evaluate all operations and constants just to the range and
-            precision of the type
-         1  evaluate operations and constants of type float and double
-            to the range and precision of the double type, evaluate
-            long double operations and constants to the range and
-            precision of the long double type
-         2  evaluate all operations and constants to the range and
-            precision of the long double type
-   */
-# undef FLT_EVAL_METHOD
-# define FLT_EVAL_METHOD	0
-
-   /* Number of decimal digits to enable rounding to the given number of
-      decimal digits without loss of precision.
-         if FLT_RADIX == 10^n:  #mantissa * log10 (FLT_RADIX)
-         else                :  ceil (1 + #mantissa * log10 (FLT_RADIX))
-      where #mantissa is the number of bits in the mantissa of the widest
-      supported floating-point type.
-   */
-# undef DECIMAL_DIG
-# if LDBL_MANT_DIG == 53
-#  define DECIMAL_DIG	17
-# else
-#  define DECIMAL_DIG	36
-# endif
-
-#endif	/* C99 */
-
-#endif /*  _FLOAT_H_ */
Index: gcc/config/float-vax.h
===================================================================
RCS file: gcc/config/float-vax.h
diff -N gcc/config/float-vax.h
--- gcc/config/float-vax.h	12 Jun 2000 23:01:25 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,159 +0,0 @@
-/* float.h for target with VAX floating point formats */
-#ifndef _FLOAT_H_
-#define _FLOAT_H_
-/* Produced by enquire version 4.3, CWI, Amsterdam */
-
-   /* Radix of exponent representation */
-#undef FLT_RADIX
-#define FLT_RADIX 2
-   /* Number of base-FLT_RADIX digits in the significand of a float */
-#undef FLT_MANT_DIG
-#define FLT_MANT_DIG 24
-   /* Number of decimal digits of precision in a float */
-#undef FLT_DIG
-#define FLT_DIG 6
-   /* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown */
-#undef FLT_ROUNDS
-#define FLT_ROUNDS 1
-   /* Difference between 1.0 and the minimum float greater than 1.0 */
-#undef FLT_EPSILON
-#define FLT_EPSILON 1.19209290e-07F
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised float */
-#undef FLT_MIN_EXP
-#define FLT_MIN_EXP (-127)
-   /* Minimum normalised float */
-#undef FLT_MIN
-#define FLT_MIN 2.93873588e-39F
-   /* Minimum int x such that 10**x is a normalised float */
-#undef FLT_MIN_10_EXP
-#define FLT_MIN_10_EXP (-38)
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable float */
-#undef FLT_MAX_EXP
-#define FLT_MAX_EXP 127
-   /* Maximum float */
-#undef FLT_MAX
-#define FLT_MAX 1.70141173e+38F
-   /* Maximum int x such that 10**x is a representable float */
-#undef FLT_MAX_10_EXP
-#define FLT_MAX_10_EXP 38
-
-#ifdef __GFLOAT
-
-   /* The GFLOAT numbers may be problematic since gcc uses DFLOAT */
-
-   /* Number of base-FLT_RADIX digits in the significand of a double */
-#undef DBL_MANT_DIG
-#define DBL_MANT_DIG 53
-   /* Number of decimal digits of precision in a double */
-#undef DBL_DIG
-#define DBL_DIG 15
-   /* Difference between 1.0 and the minimum double greater than 1.0 */
-#undef DBL_EPSILON
-#define DBL_EPSILON 2.2204460492503131e-016
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised double */
-#undef DBL_MIN_EXP
-#define DBL_MIN_EXP (-1023)
-   /* Minimum normalised double */
-#undef DBL_MIN
-#define DBL_MIN 5.5626846462680035e-309
-   /* Minimum int x such that 10**x is a normalised double */
-#undef DBL_MIN_10_EXP
-#define DBL_MIN_10_EXP (-308)
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable double */
-#undef DBL_MAX_EXP
-#define DBL_MAX_EXP 1023
-   /* Maximum double */
-#undef DBL_MAX
-#define DBL_MAX 8.9884656743115775e+307
-   /* Maximum int x such that 10**x is a representable double */
-#undef DBL_MAX_10_EXP
-#define DBL_MAX_10_EXP 307
-
-   /* Number of base-FLT_RADIX digits in the significand of a long double */
-#undef LDBL_MANT_DIG
-#define LDBL_MANT_DIG 53
-   /* Number of decimal digits of precision in a long double */
-#undef LDBL_DIG
-#define LDBL_DIG 15
-   /* Difference between 1.0 and the minimum long double greater than 1.0 */
-#undef LDBL_EPSILON
-#define LDBL_EPSILON 2.2204460492503131e-016L
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised long double */
-#undef LDBL_MIN_EXP
-#define LDBL_MIN_EXP (-1023)
-   /* Minimum normalised long double */
-#undef LDBL_MIN
-#define LDBL_MIN 5.5626846462680035e-309L
-   /* Minimum int x such that 10**x is a normalised long double */
-#undef LDBL_MIN_10_EXP
-#define LDBL_MIN_10_EXP (-308)
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable long double */
-#undef LDBL_MAX_EXP
-#define LDBL_MAX_EXP 1023
-   /* Maximum long double */
-#undef LDBL_MAX
-#define LDBL_MAX 8.9884656743115775e+307L
-   /* Maximum int x such that 10**x is a representable long double */
-#undef LDBL_MAX_10_EXP
-#define LDBL_MAX_10_EXP 307
-
-#else /* !__GFLOAT */
-
-   /* Number of base-FLT_RADIX digits in the significand of a double */
-#undef DBL_MANT_DIG
-#define DBL_MANT_DIG 56
-   /* Number of decimal digits of precision in a double */
-#undef DBL_DIG
-#define DBL_DIG 16
-   /* Difference between 1.0 and the minimum double greater than 1.0 */
-#undef DBL_EPSILON
-#define DBL_EPSILON 2.77555756156289135e-17
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised double */
-#undef DBL_MIN_EXP
-#define DBL_MIN_EXP (-127)
-   /* Minimum normalised double */
-#undef DBL_MIN
-#define DBL_MIN 2.93873587705571877e-39
-   /* Minimum int x such that 10**x is a normalised double */
-#undef DBL_MIN_10_EXP
-#define DBL_MIN_10_EXP (-38)
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable double */
-#undef DBL_MAX_EXP
-#define DBL_MAX_EXP 127
-   /* Maximum double */
-#undef DBL_MAX
-#define DBL_MAX 1.70141183460469227e+38
-   /* Maximum int x such that 10**x is a representable double */
-#undef DBL_MAX_10_EXP
-#define DBL_MAX_10_EXP 38
-
-   /* Number of base-FLT_RADIX digits in the significand of a long double */
-#undef LDBL_MANT_DIG
-#define LDBL_MANT_DIG 56
-   /* Number of decimal digits of precision in a long double */
-#undef LDBL_DIG
-#define LDBL_DIG 16
-   /* Difference between 1.0 and the minimum long double greater than 1.0 */
-#undef LDBL_EPSILON
-#define LDBL_EPSILON 2.77555756156289135e-17L
-   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised long double */
-#undef LDBL_MIN_EXP
-#define LDBL_MIN_EXP (-127)
-   /* Minimum normalised long double */
-#undef LDBL_MIN
-#define LDBL_MIN 2.93873587705571877e-39L
-   /* Minimum int x such that 10**x is a normalised long double */
-#undef LDBL_MIN_10_EXP
-#define LDBL_MIN_10_EXP (-38)
-   /* Maximum int x such that FLT_RADIX**(x-1) is a representable long double */
-#undef LDBL_MAX_EXP
-#define LDBL_MAX_EXP 127
-   /* Maximum long double */
-#undef LDBL_MAX
-#define LDBL_MAX 1.70141183460469227e+38L
-   /* Maximum int x such that 10**x is a representable long double */
-#undef LDBL_MAX_10_EXP
-#define LDBL_MAX_10_EXP 38
-
-#endif /* __GFLOAT */
-#endif /*  _FLOAT_H_ */
Index: gcc/config/i386/i386.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.h,v
retrieving revision 1.280
diff -c -p -d -u -r1.280 i386.h
--- gcc/config/i386/i386.h	31 Jul 2002 23:18:43 -0000	1.280
+++ gcc/config/i386/i386.h	3 Sep 2002 18:07:41 -0000
@@ -644,6 +644,13 @@ extern int x86_prefetch_sse;
    packaged in a 128-bit or 96bit entity.  */
 #define INTEL_EXTENDED_IEEE_FORMAT 1
 
+/* Set the value of FLT_EVAL_METHOD in float.h.  When using only the
+   FPU, assume that the fpcw is set to extended precision; when using
+   only SSE, rounding is correct; when using both SSE and the FPU,
+   the rounding precision is indeterminate, since either may be chosen
+   apparently at random.  */
+#define TARGET_FLT_EVAL_METHOD \
+  (TARGET_MIX_SSE_I387 ? -1 : TARGET_SSE_MATH ? 1 : 2)
 
 #define SHORT_TYPE_SIZE 16
 #define INT_TYPE_SIZE 32
Index: gcc/config/m68k/m68k.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/m68k/m68k.h,v
retrieving revision 1.75
diff -c -p -d -u -r1.75 m68k.h
--- gcc/config/m68k/m68k.h	31 Jul 2002 02:10:05 -0000	1.75
+++ gcc/config/m68k/m68k.h	3 Sep 2002 18:07:41 -0000
@@ -297,6 +297,11 @@ extern int target_flags;
 /* Define for XFmode extended real floating point support.  */
 #define LONG_DOUBLE_TYPE_SIZE 96
 
+/* Set the value of FLT_EVAL_METHOD in float.h.  When using 68040 fp
+   instructions, we get proper intermediate rounding, otherwise we 
+   get extended precision results.  */
+#define TARGET_FLT_EVAL_METHOD (TARGET_68040_ONLY ? 0 : 2)
+
 /* Define this if most significant bit is lowest numbered
    in instructions that operate on numbered bit-fields.
    This is true for 68020 insns such as bfins and bfexts.
Index: gcc/doc/tm.texi
===================================================================
RCS file: /cvs/gcc/gcc/gcc/doc/tm.texi,v
retrieving revision 1.160
diff -c -p -d -u -r1.160 tm.texi
--- gcc/doc/tm.texi	30 Aug 2002 19:18:51 -0000	1.160
+++ gcc/doc/tm.texi	3 Sep 2002 18:07:41 -0000
@@ -1540,8 +1540,18 @@ the largest value that @code{LONG_DOUBLE
 This is used in @code{cpp}.
 
 @findex INTEL_EXTENDED_IEEE_FORMAT
+@item INTEL_EXTENDED_IEEE_FORMAT
 Define this macro to be 1 if the target machine uses 80-bit floating-point
 values with 128-bit size and alignment.  This is used in @file{real.c}.
+This also distinguishes the Intel 80-bit floating-point format from the
+Motorola 96-bit floating-point format.
+
+@findex TARGET_FLT_EVAL_METHOD
+@item TARGET_FLT_EVAL_METHOD
+A C expression for the value for @code{FLT_EVAL_METHOD} in @file{float.h},
+assuming, if applicable, that the floating-point control word is in its
+default state.  If you do not define this macro the value of
+@code{FLT_EVAL_METHOD} will be zero.
 
 @findex WIDEST_HARDWARE_FP_SIZE
 @item WIDEST_HARDWARE_FP_SIZE
Index: gcc/ginclude/float.h
===================================================================
RCS file: gcc/ginclude/float.h
diff -N gcc/ginclude/float.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gcc/ginclude/float.h	3 Sep 2002 18:07:41 -0000
@@ -0,0 +1,162 @@
+/* Copyright (C) 2002 Free Software Foundation, Inc.
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+/* As a special exception, if you include this header file into source
+   files compiled by GCC, this header file does not by itself cause
+   the resulting executable to be covered by the GNU General Public
+   License.  This exception does not however invalidate any other
+   reasons why the executable file might be covered by the GNU General
+   Public License.  */
+
+/*
+ * ISO C Standard:  5.2.4.2.2  Characteristics of floating types <float.h>
+ */
+
+#ifndef _FLOAT_H___
+#define _FLOAT_H___
+
+/* Radix of exponent representation, b. */
+#undef FLT_RADIX
+#define FLT_RADIX	__FLT_RADIX__
+
+/* Number of base-FLT_RADIX digits in the significand, p.  */
+#undef FLT_MANT_DIG
+#undef DBL_MANT_DIG
+#undef LDBL_MANT_DIG
+#define FLT_MANT_DIG	__FLT_MANT_DIG__
+#define DBL_MANT_DIG	__DBL_MANT_DIG__
+#define LDBL_MANT_DIG	__LDBL_MANT_DIG__
+
+/* Number of decimal digits, q, such that any floating-point number with q
+   decimal digits can be rounded into a floating-point number with p radix b
+   digits and back again without change to the q decimal digits,
+
+	p * log10(b)			if b is a power of 10
+	floor((p - 1) * log10(b))	otherwise
+*/
+#undef FLT_DIG
+#undef DBL_DIG
+#undef LDBL_DIG
+#define FLT_DIG		__FLT_DIG__
+#define DBL_DIG		__DBL_DIG__
+#define LDBL_DIG	__LDBL_DIG__
+
+/* Minimum int x such that FLT_RADIX**(x-1) is a normalised float, emin */
+#undef FLT_MIN_EXP
+#undef DBL_MIN_EXP
+#undef LDBL_MIN_EXP
+#define FLT_MIN_EXP	__FLT_MIN_EXP__
+#define DBL_MIN_EXP	__DBL_MIN_EXP__
+#define LDBL_MIN_EXP	__LDBL_MIN_EXP__
+
+/* Minimum negative integer such that 10 raised to that power is in the
+   range of normalized floating-point numbers,
+
+	ceil(log10(b) * (emin - 1))
+*/
+#undef FLT_MIN_10_EXP
+#undef DBL_MIN_10_EXP
+#undef LDBL_MIN_10_EXP
+#define FLT_MIN_10_EXP	__FLT_MIN_10_EXP__
+#define DBL_MIN_10_EXP	__DBL_MIN_10_EXP__
+#define LDBL_MIN_10_EXP	__LDBL_MIN_10_EXP__
+
+/* Maximum int x such that FLT_RADIX**(x-1) is a representable float, emax.  */
+#undef FLT_MAX_EXP
+#undef DBL_MAX_EXP
+#undef LDBL_MAX_EXP
+#define FLT_MAX_EXP	__FLT_MAX_EXP__
+#define DBL_MAX_EXP	__DBL_MAX_EXP__
+#define LDBL_MAX_EXP	__LDBL_MAX_EXP__
+
+/* Maximum integer such that 10 raised to that power is in the range of
+   representable finite floating-point numbers,
+
+	floor(log10((1 - b**-p) * b**emax))
+*/
+#undef FLT_MAX_10_EXP
+#undef DBL_MAX_10_EXP
+#undef LDBL_MAX_10_EXP
+#define FLT_MAX_10_EXP	__FLT_MAX_10_EXP__
+#define DBL_MAX_10_EXP	__DBL_MAX_10_EXP__
+#define LDBL_MAX_10_EXP	__LDBL_MAX_10_EXP__
+
+/* Maximum representable finite floating-point number,
+
+	(1 - b**-p) * b**emax
+*/
+#undef FLT_MAX
+#undef DBL_MAX
+#undef LDBL_MAX
+#define FLT_MAX		__FLT_MAX__
+#define DBL_MAX		__DBL_MAX__
+#define LDBL_MAX	__LDBL_MAX__
+
+/* The difference between 1 and the least value greater than 1 that is
+   representable in the given floating point type, b**1-p.  */
+#undef FLT_EPSILON
+#undef DBL_EPSILON
+#undef LDBL_EPSILON
+#define FLT_EPSILON	__FLT_EPSILON__
+#define DBL_EPSILON	__DBL_EPSILON__
+#define LDBL_EPSILON	__LDBL_EPSILON__
+
+/* Minimum normalized positive floating-point number, b**(emin - 1).  */
+#undef FLT_MIN
+#undef DBL_MIN
+#undef LDBL_MIN
+#define FLT_MIN		__FLT_MIN__
+#define DBL_MIN		__DBL_MIN__
+#define LDBL_MIN	__LDBL_MIN__
+
+/* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown.  */
+/* ??? This is supposed to change with calls to fesetround in <fenv.h>.  */
+#undef FLT_ROUNDS
+#define FLT_ROUNDS 1
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+/* The floating-point expression evaluation method.
+        -1  indeterminate
+         0  evaluate all operations and constants just to the range and
+            precision of the type
+         1  evaluate operations and constants of type float and double
+            to the range and precision of the double type, evaluate
+            long double operations and constants to the range and
+            precision of the long double type
+         2  evaluate all operations and constants to the range and
+            precision of the long double type
+
+   ??? This ought to change with the setting of the fp control word;
+   the value provided by the compiler assumes the widest setting.  */
+#undef FLT_EVAL_METHOD
+#define FLT_EVAL_METHOD	__FLT_EVAL_METHOD__
+
+/* Number of decimal digits, n, such that any floating-point number in the
+   widest supported floating type with pmax radix b digits can be rounded
+   to a floating-point number with n decimal digits and back again without
+   change to the value,
+
+	pmax * log10(b)			if b is a power of 10
+	ceil(1 + pmax * log10(b))	otherwise
+*/
+#undef DECIMAL_DIG
+#define DECIMAL_DIG	__DECIMAL_DIG__
+
+#endif /* C99 */
+#endif /* _FLOAT_H___ */
Index: libstdc++-v3/include/std/std_limits.h
===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/include/std/std_limits.h,v
retrieving revision 1.8
diff -c -p -d -u -r1.8 std_limits.h
--- libstdc++-v3/include/std/std_limits.h	28 Aug 2002 21:41:55 -0000	1.8
+++ libstdc++-v3/include/std/std_limits.h	3 Sep 2002 18:07:41 -0000
@@ -150,17 +150,7 @@
 #define __glibcpp_u64_digits 64
 #define __glibcpp_u64_digits10 19
 
-#define __glibcpp_f32_min 1.17549435e-38F
-#define __glibcpp_f32_max 3.40282347e+38F
-#define __glibcpp_f32_digits 24
-#define __glibcpp_f32_digits10 6
-#define __glibcpp_f32_radix 2
-#define __glibcpp_f32_epsilon 1.19209290e-07F
 #define __glibcpp_f32_round_error 1.0F
-#define __glibcpp_f32_min_exponent -125
-#define __glibcpp_f32_min_exponent10 -37
-#define __glibcpp_f32_max_exponent 128
-#define __glibcpp_f32_max_exponent10 38
 #if __GCC_FLOAT_FORMAT__ == __IEEE_FORMAT__
 #  define __glibcpp_f32_infinity_bytes { 0x7f800000 }
 #  define __glibcpp_f32_has_infinity true
@@ -191,17 +181,7 @@
 #ifndef __glibcpp_f32_is_iec559
 #  define __glibcpp_f32_is_iec559 false
 #endif 
-#define __glibcpp_f64_min 2.2250738585072014e-308
-#define __glibcpp_f64_max 1.7976931348623157e+308
-#define __glibcpp_f64_digits 53
-#define __glibcpp_f64_digits10 15
-#define __glibcpp_f64_radix 2
-#define __glibcpp_f64_epsilon 2.2204460492503131e-16
 #define __glibcpp_f64_round_error 1.0
-#define __glibcpp_f64_min_exponent -1021
-#define __glibcpp_f64_min_exponent10 -307
-#define __glibcpp_f64_max_exponent 1024
-#define __glibcpp_f64_max_exponent10 308
 #if __GCC_FLOAT_FORMAT__ == __IEEE_FORMAT__
 #  if __TARGET_FLOAT_WORDS_ORDER__ == __GCC_BIG_ENDIAN__
 #    define __glibcpp_f64_infinity_bytes { 0x7ff00000, 0x0 }
@@ -239,17 +219,7 @@
 #ifndef __glibcpp_f64_is_iec559
 #  define __glibcpp_f64_is_iec559 false
 #endif 
-#define __glibcpp_f80_min 3.36210314311209350626e-4932L
-#define __glibcpp_f80_max 1.18973149535723176502e+4932L
-#define __glibcpp_f80_digits 64
-#define __glibcpp_f80_digits10 18
-#define __glibcpp_f80_radix 2
-#define __glibcpp_f80_epsilon 1.08420217248550443401e-19L
 #define __glibcpp_f80_round_error 1.0L
-#define __glibcpp_f80_min_exponent -16381
-#define __glibcpp_f80_min_exponent10 -4931
-#define __glibcpp_f80_max_exponent 16384
-#define __glibcpp_f80_max_exponent10 4932
 #if __GCC_FLOAT_FORMAT__ == __IEEE_FORMAT__
 #  if __TARGET_BYTES_ORDER__ == __GCC_BIG_ENDIAN__
 #    define __glibcpp_f80_infinity_bytes   \
@@ -295,17 +265,7 @@
 #ifndef __glibcpp_f80_is_iec559
 #  define __glibcpp_f80_is_iec559 false
 #endif 
-#define __glibcpp_f96_min 1.68105157155604675313e-4932L
-#define __glibcpp_f96_max 1.18973149535723176502e+4932L
-#define __glibcpp_f96_digits 64
-#define __glibcpp_f96_digits10 18
-#define __glibcpp_f96_radix 2
-#define __glibcpp_f96_epsilon 1.08420217248550443401e-19L
 #define __glibcpp_f96_round_error 1.0L
-#define __glibcpp_f96_min_exponent -16382
-#define __glibcpp_f96_min_exponent10 -4931
-#define __glibcpp_f96_max_exponent 16384
-#define __glibcpp_f96_max_exponent10 4932
 #if __GCC_FLOAT_FORMAT__ == __IEEE_FORMAT__
 #  if __TARGET_BYTES_ORDER__ == __GCC_BIG_ENDIAN__
 #    define __glibcpp_f96_infinity_bytes { 0x7ff0000, 0x0, 0x0 } 
@@ -340,17 +300,7 @@
 #  define __glibcpp_f96_denorm_min_bytes { }
 #  define __glibcpp_f96_has denorm_indeterminate
 #endif
-#define __glibcpp_f128_min 3.362103143112093506262677817321752603E-4932L
-#define __glibcpp_f128_max 1.189731495357231765085759326628007016E+4932L
-#define __glibcpp_f128_digits 113
-#define __glibcpp_f128_digits10 33
-#define __glibcpp_f128_radix 2
-#define __glibcpp_f128_epsilon 1.925929944387235853055977942584927319E-34L
 #define __glibcpp_f128_round_error 1.0L
-#define __glibcpp_f128_min_exponent -16381
-#define __glibcpp_f128_min_exponent10 -4931
-#define __glibcpp_f128_max_exponent 16384
-#define __glibcpp_f128_max_exponent10 4932
 #if __GCC_FLOAT_FORMAT__ == __IEEE_FORMAT__
 #  if __TARGET_FLOAT_WORDS_ORDER__ == __GCC_BIG_ENDIAN__
 #    define __glibcpp_f128_infinity_bytes { 0x7fff0000, 0x0, 0x0, 0x0 }
@@ -708,17 +658,7 @@
 //
 
 #if __FLOAT_BIT__ == 32
-#  define __glibcpp_float_min __glibcpp_f32_min
-#  define __glibcpp_float_max __glibcpp_f32_max
-#  define __glibcpp_float_digits __glibcpp_f32_digits
-#  define __glibcpp_float_digits10 __glibcpp_f32_digits10
-#  define __glibcpp_float_radix __glibcpp_f32_radix
-#  define __glibcpp_float_epsilon __glibcpp_f32_epsilon
 #  define __glibcpp_float_round_error __glibcpp_f32_round_error
-#  define __glibcpp_float_min_exponent __glibcpp_f32_min_exponent
-#  define __glibcpp_float_min_exponent10 __glibcpp_f32_min_exponent10
-#  define __glibcpp_float_max_exponent __glibcpp_f32_max_exponent
-#  define __glibcpp_float_max_exponent10 __glibcpp_f32_max_exponent10
 #  define __glibcpp_float_infinity_bytes __glibcpp_f32_infinity_bytes
 #  define __glibcpp_float_QNaN_bytes  __glibcpp_f32_QNaN_bytes
 #  define __glibcpp_float_SNaN_bytes  __glibcpp_f32_SNaN_bytes
@@ -729,17 +669,7 @@
 #  define __glibcpp_float_has_denorm __glibcpp_f32_has_denorm
 #  define __glibcpp_float_is_iec559 __glibcpp_f32_is_iec559
 #elif __FLOAT_BIT__ == 64
-#  define __glibcpp_float_min __glibcpp_f64_min
-#  define __glibcpp_float_max __glibcpp_f64_max
-#  define __glibcpp_float_digits __glibcpp_f64_digits
-#  define __glibcpp_float_digits10 __glibcpp_f64_digits10
-#  define __glibcpp_float_radix __glibcpp_f64_radix
-#  define __glibcpp_float_epsilon __glibcpp_f64_epsilon
 #  define __glibcpp_float_round_error __glibcpp_f64_round_error
-#  define __glibcpp_float_min_exponent __glibcpp_f64_min_exponent
-#  define __glibcpp_float_min_exponent10 __glibcpp_f64_min_exponent10
-#  define __glibcpp_float_max_exponent __glibcpp_f64_max_exponent
-#  define __glibcpp_float_max_exponent10 __glibcpp_f64_max_exponent10
 #  define __glibcpp_float_infinity_bytes __glibcpp_f64_infinity_bytes
 #  define __glibcpp_float_QNaN_bytes  __glibcpp_f64_QNaN_bytes
 #  define __glibcpp_float_SNaN_bytes  __glibcpp_f64_SNaN_bytes
@@ -750,17 +680,7 @@
 #  define __glibcpp_float_has_denorm __glibcpp_f64_has_denorm
 #  define __glibcpp_float_is_iec559 __glibcpp_f64_is_iec559
 #elif __FLOAT_BIT__ == 80
-#  define __glibcpp_float_min __glibcpp_f80_min
-#  define __glibcpp_float_max __glibcpp_f80_max
-#  define __glibcpp_float_digits __glibcpp_f80_digits
-#  define __glibcpp_float_digits10 __glibcpp_f80_digits10
-#  define __glibcpp_float_radix __glibcpp_f80_radix
-#  define __glibcpp_float_epsilon __glibcpp_f80_epsilon
 #  define __glibcpp_float_round_error __glibcpp_f80_round_error
-#  define __glibcpp_float_min_exponent __glibcpp_f80_min_exponent
-#  define __glibcpp_float_min_exponent10 __glibcpp_f80_min_exponent10
-#  define __glibcpp_float_max_exponent __glibcpp_f80_max_exponent
-#  define __glibcpp_float_max_exponent10 __glibcpp_f80_max_exponent10
 #  define __glibcpp_float_infinity_bytes __glibcpp_f80_infinity_bytes
 #  define __glibcpp_float_QNaN_bytes  __glibcpp_f80_QNaN_bytes
 #  define __glibcpp_float_SNaN_bytes  __glibcpp_f80_SNaN_bytes
@@ -827,17 +747,7 @@
 // double
 
 #if __DOUBLE_BIT__ == 32
-#  define __glibcpp_double_min __glibcpp_f32_min
-#  define __glibcpp_double_max __glibcpp_f32_max
-#  define __glibcpp_double_digits __glibcpp_f32_digits
-#  define __glibcpp_double_digits10 __glibcpp_f32_digits10
-#  define __glibcpp_double_radix __glibcpp_f32_radix
-#  define __glibcpp_double_epsilon __glibcpp_f32_epsilon
 #  define __glibcpp_double_round_error __glibcpp_f32_round_error
-#  define __glibcpp_double_min_exponent __glibcpp_f32_min_exponent
-#  define __glibcpp_double_min_exponent10 __glibcpp_f32_min_exponent10
-#  define __glibcpp_double_max_exponent __glibcpp_f32_max_exponent
-#  define __glibcpp_double_max_exponent10 __glibcpp_f32_max_exponent10
 #  define __glibcpp_double_infinity_bytes __glibcpp_f32_infinity_bytes
 #  define __glibcpp_double_QNaN_bytes __glibcpp_f32_QNaN_bytes
 #  define __glibcpp_double_SNaN_bytes __glibcpp_f32_SNaN_bytes
@@ -848,17 +758,7 @@
 #  define __glibcpp_double_has_denorm __glibcpp_f32_has_denorm
 #  define __glibcpp_double_is_iec559 __glibcpp_f32_is_iec559
 #elif __DOUBLE_BIT__ == 64
-#  define __glibcpp_double_min __glibcpp_f64_min
-#  define __glibcpp_double_max __glibcpp_f64_max
-#  define __glibcpp_double_digits __glibcpp_f64_digits
-#  define __glibcpp_double_digits10 __glibcpp_f64_digits10
-#  define __glibcpp_double_radix __glibcpp_f64_radix
-#  define __glibcpp_double_epsilon __glibcpp_f64_epsilon
 #  define __glibcpp_double_round_error __glibcpp_f64_round_error
-#  define __glibcpp_double_min_exponent __glibcpp_f64_min_exponent
-#  define __glibcpp_double_min_exponent10 __glibcpp_f64_min_exponent10
-#  define __glibcpp_double_max_exponent __glibcpp_f64_max_exponent
-#  define __glibcpp_double_max_exponent10 __glibcpp_f64_max_exponent10
 #  define __glibcpp_double_infinity_bytes __glibcpp_f64_infinity_bytes
 #  define __glibcpp_double_QNaN_bytes __glibcpp_f64_QNaN_bytes
 #  define __glibcpp_double_SNaN_bytes __glibcpp_f64_SNaN_bytes
@@ -869,17 +769,7 @@
 #  define __glibcpp_double_has_denorm __glibcpp_f64_has_denorm
 #  define __glibcpp_double_is_iec559 __glibcpp_f64_is_iec559
 #elif __DOUBLE_BIT__ == 80
-#  define __glibcpp_double_min __glibcpp_f80_min
-#  define __glibcpp_double_max __glibcpp_f80_max
-#  define __glibcpp_double_digits __glibcpp_f80_digits
-#  define __glibcpp_double_digits10 __glibcpp_f80_digits10
-#  define __glibcpp_double_radix __glibcpp_f80_radix
-#  define __glibcpp_double_epsilon __glibcpp_f80_epsilon
 #  define __glibcpp_double_round_error __glibcpp_f80_round_error
-#  define __glibcpp_double_min_exponent __glibcpp_f80_min_exponent
-#  define __glibcpp_double_min_exponent10 __glibcpp_f80_min_exponent10
-#  define __glibcpp_double_max_exponent __glibcpp_f80_max_exponent
-#  define __glibcpp_double_max_exponent10 __glibcpp_f80_max_exponent10
 #  define __glibcpp_double_infinity_bytes __glibcpp_f80_infinity_bytes
 #  define __glibcpp_double_QNaN_bytes __glibcpp_f80_QNaN_bytes
 #  define __glibcpp_double_SNaN_bytes __glibcpp_f80_SNaN_bytes
@@ -946,17 +836,7 @@
 // long double
 
 #if __LONG_DOUBLE_BIT__ == 32
-#  define __glibcpp_long_double_min __glibcpp_f32_min
-#  define __glibcpp_long_double_max __glibcpp_f32_max
-#  define __glibcpp_long_double_digits __glibcpp_f32_digits
-#  define __glibcpp_long_double_digits10 __glibcpp_f32_digits10
-#  define __glibcpp_long_double_radix __glibcpp_f32_radix
-#  define __glibcpp_long_double_epsilon __glibcpp_f32_epsilon
 #  define __glibcpp_long_double_round_error __glibcpp_f32_round_error
-#  define __glibcpp_long_double_min_exponent __glibcpp_f32_min_exponent
-#  define __glibcpp_long_double_min_exponent10 __glibcpp_f32_min_exponent10
-#  define __glibcpp_long_double_max_exponent __glibcpp_f32_max_exponent
-#  define __glibcpp_long_double_max_exponent10 __glibcpp_f32_max_exponent10
 #  define __glibcpp_long_double_infinity_bytes __glibcpp_f32_infinity_bytes
 #  define __glibcpp_long_double_QNaN_bytes __glibcpp_f32_QNaN_bytes
 #  define __glibcpp_long_double_SNaN_bytes __glibcpp_f32_SNaN_bytes
@@ -967,17 +847,7 @@
 #  define __glibcpp_long_double_has_denorm __glibcpp_f32_has_denorm
 #  define __glibcpp_long_double_is_iec559 __glibcpp_f32_is_iec559
 #elif __LONG_DOUBLE_BIT__ == 64
-#  define __glibcpp_long_double_min __glibcpp_f64_min
-#  define __glibcpp_long_double_max __glibcpp_f64_max
-#  define __glibcpp_long_double_digits __glibcpp_f64_digits
-#  define __glibcpp_long_double_digits10 __glibcpp_f64_digits10
-#  define __glibcpp_long_double_radix __glibcpp_f64_radix
-#  define __glibcpp_long_double_epsilon __glibcpp_f64_epsilon
 #  define __glibcpp_long_double_round_error __glibcpp_f64_round_error
-#  define __glibcpp_long_double_min_exponent __glibcpp_f64_min_exponent
-#  define __glibcpp_long_double_min_exponent10 __glibcpp_f64_min_exponent10
-#  define __glibcpp_long_double_max_exponent __glibcpp_f64_max_exponent
-#  define __glibcpp_long_double_max_exponent10 __glibcpp_f64_max_exponent10
 #  define __glibcpp_long_double_infinity_bytes __glibcpp_f64_infinity_bytes
 #  define __glibcpp_long_double_QNaN_bytes __glibcpp_f64_QNaN_bytes
 #  define __glibcpp_long_double_SNaN_bytes __glibcpp_f64_SNaN_bytes
@@ -988,17 +858,7 @@
 #  define __glibcpp_long_double_has_denorm __glibcpp_f64_has_denorm
 #  define __glibcpp_long_double_is_iec559 __glibcpp_f64_is_iec559
 #elif __LONG_DOUBLE_BIT__ == 80
-#  define __glibcpp_long_double_min __glibcpp_f80_min
-#  define __glibcpp_long_double_max __glibcpp_f80_max
-#  define __glibcpp_long_double_digits __glibcpp_f80_digits
-#  define __glibcpp_long_double_digits10 __glibcpp_f80_digits10
-#  define __glibcpp_long_double_radix __glibcpp_f80_radix
-#  define __glibcpp_long_double_epsilon __glibcpp_f80_epsilon
 #  define __glibcpp_long_double_round_error __glibcpp_f80_round_error
-#  define __glibcpp_long_double_min_exponent __glibcpp_f80_min_exponent
-#  define __glibcpp_long_double_min_exponent10 __glibcpp_f80_min_exponent10
-#  define __glibcpp_long_double_max_exponent __glibcpp_f80_max_exponent
-#  define __glibcpp_long_double_max_exponent10 __glibcpp_f80_max_exponent10
 #  define __glibcpp_long_double_infinity_bytes __glibcpp_f80_infinity_bytes
 #  define __glibcpp_long_double_QNaN_bytes __glibcpp_f80_QNaN_bytes
 #  define __glibcpp_long_double_SNaN_bytes __glibcpp_f80_SNaN_bytes
@@ -1009,17 +869,7 @@
 #  define __glibcpp_long_double_has_denorm __glibcpp_f80_has_denorm
 #  define __glibcpp_long_double_is_iec559 __glibcpp_f80_is_iec559
 #elif __LONG_DOUBLE_BIT__ == 96
-#  define __glibcpp_long_double_min __glibcpp_f96_min
-#  define __glibcpp_long_double_max __glibcpp_f96_max
-#  define __glibcpp_long_double_digits __glibcpp_f96_digits
-#  define __glibcpp_long_double_digits10 __glibcpp_f96_digits10
-#  define __glibcpp_long_double_radix __glibcpp_f96_radix
-#  define __glibcpp_long_double_epsilon __glibcpp_f96_epsilon
 #  define __glibcpp_long_double_round_error __glibcpp_f96_round_error
-#  define __glibcpp_long_double_min_exponent __glibcpp_f96_min_exponent
-#  define __glibcpp_long_double_min_exponent10 __glibcpp_f96_min_exponent10
-#  define __glibcpp_long_double_max_exponent __glibcpp_f96_max_exponent
-#  define __glibcpp_long_double_max_exponent10 __glibcpp_f96_max_exponent10
 #  define __glibcpp_long_double_infinity_bytes __glibcpp_f96_infinity_bytes
 #  define __glibcpp_long_double_QNaN_bytes __glibcpp_f96_QNaN_bytes
 #  define __glibcpp_long_double_SNaN_bytes __glibcpp_f96_SNaN_bytes
@@ -1030,17 +880,7 @@
 #  define __glibcpp_long_double_has_denorm __glibcpp_f96_has_denorm
 #  define __glibcpp_long_double_is_iec559 __glibcpp_f96_is_iec559
 #elif __LONG_DOUBLE_BIT__ == 128
-#  define __glibcpp_long_double_min __glibcpp_f128_min
-#  define __glibcpp_long_double_max __glibcpp_f128_max
-#  define __glibcpp_long_double_digits __glibcpp_f128_digits
-#  define __glibcpp_long_double_digits10 __glibcpp_f128_digits10
-#  define __glibcpp_long_double_radix __glibcpp_f128_radix
-#  define __glibcpp_long_double_epsilon __glibcpp_f128_epsilon
 #  define __glibcpp_long_double_round_error __glibcpp_f128_round_error
-#  define __glibcpp_long_double_min_exponent __glibcpp_f128_min_exponent
-#  define __glibcpp_long_double_min_exponent10 __glibcpp_f128_min_exponent10
-#  define __glibcpp_long_double_max_exponent __glibcpp_f128_max_exponent
-#  define __glibcpp_long_double_max_exponent10 __glibcpp_f128_max_exponent10
 #  define __glibcpp_long_double_infinity_bytes __glibcpp_f128_infinity_bytes
 #  define __glibcpp_long_double_QNaN_bytes __glibcpp_f128_QNaN_bytes
 #  define __glibcpp_long_double_SNaN_bytes __glibcpp_f128_SNaN_bytes
@@ -1970,25 +1810,25 @@ namespace std
       static const bool is_specialized = true;
 
       static float min() throw()
-      { return __glibcpp_float_min; }
+      { return __FLT_MIN__; }
       static float max() throw()
-      { return __glibcpp_float_max; }
+      { return __FLT_MAX__; }
 
-      static const int digits = __glibcpp_float_digits;
-      static const int digits10 = __glibcpp_float_digits10;
+      static const int digits = __FLT_MANT_DIG__;
+      static const int digits10 = __FLT_DIG__;
       static const bool is_signed = true;
       static const bool is_integer = false;
       static const bool is_exact = false;
-      static const int radix = __glibcpp_float_radix;
+      static const int radix = __FLT_RADIX__;
       static float epsilon() throw()
-      { return __glibcpp_float_epsilon; }
+      { return __FLT_EPSILON__; }
       static float round_error() throw()
       { return __glibcpp_float_round_error; }
 
-      static const int min_exponent = __glibcpp_float_min_exponent;
-      static const int min_exponent10 = __glibcpp_float_min_exponent10;
-      static const int max_exponent = __glibcpp_float_max_exponent;
-      static const int max_exponent10 = __glibcpp_float_max_exponent10;
+      static const int min_exponent = __FLT_MIN_EXP__;
+      static const int min_exponent10 = __FLT_MIN_10_EXP__;
+      static const int max_exponent = __FLT_MAX_EXP__;
+      static const int max_exponent10 = __FLT_MAX_10_EXP__;
 
       static const bool has_infinity = __glibcpp_float_has_infinity;
       static const bool has_quiet_NaN = __glibcpp_float_has_QNaN;
@@ -2014,16 +1854,7 @@ namespace std
       static const float_round_style round_style = __glibcpp_float_round_style;
     };
 
-#undef __glibcpp_float_min
-#undef __glibcpp_float_max
-#undef __glibcpp_float_digits
-#undef __glibcpp_float_digits10
-#undef __glibcpp_float_radix
 #undef __glibcpp_float_round_error
-#undef __glibcpp_float_min_exponent
-#undef __glibcpp_float_min_exponent10
-#undef __glibcpp_float_max_exponent
-#undef __glibcpp_float_max_exponent10
 #undef __glibcpp_float_has_infinity
 #undef __glibcpp_float_has_QNaN
 #undef __glibcpp_float_has_SNaN
@@ -2042,25 +1873,25 @@ namespace std
       static const bool is_specialized = true;
 
       static double min() throw()
-      { return __glibcpp_double_min; }
+      { return __DBL_MIN__; }
       static double max() throw()
-      { return __glibcpp_double_max; }
+      { return __DBL_MAX__; }
 
-      static const int digits = __glibcpp_double_digits;
-      static const int digits10 = __glibcpp_double_digits10;
+      static const int digits = __DBL_MANT_DIG__;
+      static const int digits10 = __DBL_DIG__;
       static const bool is_signed = true;
       static const bool is_integer = false;
       static const bool is_exact = false;
-      static const int radix = __glibcpp_double_radix;
+      static const int radix = __FLT_RADIX__;
       static double epsilon() throw()
-      { return __glibcpp_double_epsilon; }
+      { return __DBL_EPSILON__; }
       static double round_error() throw()
       { return __glibcpp_double_round_error; }
 
-      static const int min_exponent = __glibcpp_double_min_exponent;
-      static const int min_exponent10 = __glibcpp_double_min_exponent10;
-      static const int max_exponent = __glibcpp_double_max_exponent;
-      static const int max_exponent10 = __glibcpp_double_max_exponent10;
+      static const int min_exponent = __DBL_MIN_EXP__;
+      static const int min_exponent10 = __DBL_MIN_10_EXP__;
+      static const int max_exponent = __DBL_MAX_EXP__;
+      static const int max_exponent10 = __DBL_MAX_10_EXP__;
 
       static const bool has_infinity = __glibcpp_double_has_infinity;
       static const bool has_quiet_NaN = __glibcpp_double_has_QNaN;
@@ -2088,16 +1919,7 @@ namespace std
               __glibcpp_double_round_style;
     };
 
-#undef __glibcpp_double_min
-#undef __glibcpp_double_max
-#undef __glibcpp_double_digits
-#undef __glibcpp_double_digits10
-#undef __glibcpp_double_radix
 #undef __glibcpp_double_round_error
-#undef __glibcpp_double_min_exponent
-#undef __glibcpp_double_min_exponent10
-#undef __glibcpp_double_max_exponent
-#undef __glibcpp_double_max_exponent10
 #undef __glibcpp_double_has_infinity
 #undef __glibcpp_double_has_QNaN
 #undef __glibcpp_double_has_SNaN
@@ -2117,25 +1939,25 @@ namespace std
       static const bool is_specialized = true;
 
       static long double min() throw()
-      { return __glibcpp_long_double_min; }
+      { return __LDBL_MIN__; }
       static long double max() throw()
-      { return __glibcpp_long_double_max; }
+      { return __LDBL_MAX__; }
 
-      static const int digits = __glibcpp_long_double_digits;
-      static const int digits10 = __glibcpp_long_double_digits10;
+      static const int digits = __LDBL_MANT_DIG__;
+      static const int digits10 = __LDBL_DIG__;
       static const bool is_signed = true;
       static const bool is_integer = false;
       static const bool is_exact = false;
-      static const int radix = __glibcpp_long_double_radix;
+      static const int radix = __FLT_RADIX__;
       static long double epsilon() throw()
-      { return __glibcpp_long_double_epsilon; }
+      { return __LDBL_EPSILON__; }
       static long double round_error() throw()
       { return __glibcpp_long_double_round_error; }
 
-      static const int min_exponent = __glibcpp_long_double_min_exponent;
-      static const int min_exponent10 = __glibcpp_long_double_min_exponent10;
-      static const int max_exponent = __glibcpp_long_double_max_exponent;
-      static const int max_exponent10 = __glibcpp_long_double_max_exponent10;
+      static const int min_exponent = __LDBL_MIN_EXP__;
+      static const int min_exponent10 = __LDBL_MIN_10_EXP__;
+      static const int max_exponent = __LDBL_MAX_EXP__;
+      static const int max_exponent10 = __LDBL_MAX_10_EXP__;
 
       static const bool has_infinity = __glibcpp_long_double_has_infinity;
       static const bool has_quiet_NaN = __glibcpp_long_double_has_SNaN;
@@ -2179,16 +2001,7 @@ namespace std
         __glibcpp_long_double_round_style;
     };
 
-#undef __glibcpp_long_double_min
-#undef __glibcpp_long_double_max
-#undef __glibcpp_long_double_digits
-#undef __glibcpp_long_double_digits10
-#undef __glibcpp_long_double_radix
 #undef __glibcpp_long_double_round_error
-#undef __glibcpp_long_double_min_exponent
-#undef __glibcpp_long_double_min_exponent10
-#undef __glibcpp_long_double_max_exponent
-#undef __glibcpp_long_double_max_exponent10
 #undef __glibcpp_long_double_has_infinity
 #undef __glibcpp_long_double_has_QNaN
 #undef __glibcpp_long_double_has_SNaN



More information about the Gcc-patches mailing list