patches/gcc/4.2.3/270-soft-float.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Jul 17 22:43:07 2011 +0200 (2011-07-17)
changeset 2893 a8a65758664f
parent 616 6e78f7085707
permissions -rw-r--r--
cc/gcc: do not use the core pass-2 to build the baremetal compiler

In case we build a baremetal compiler, use the standard passes:
- core_cc is used to build the C library;
- as such, it is meant to run on build, not host;
- the final compiler is meant to run on host;

As the current final compiler step can not build a baremetal compiler,
call the core backend from the final step.

NB: Currently, newlib is built during the start_files pass, so we have
to have a core compiler by then... Once we can build the baremetal
compiler from the final cc step, then we can move the newlib build to
the proper step, and then get rid of the core pass-1 static compiler...

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
yann@616
     1
diff -uNpr gcc-4.2.1_orig/gcc/config/rs6000/darwin-ldouble.c gcc-4.2.1/gcc/config/rs6000/darwin-ldouble.c
yann@616
     2
--- gcc-4.2.1_orig/gcc/config/rs6000/darwin-ldouble.c	2007-03-05 11:54:00.000000000 -0500
yann@616
     3
+++ gcc-4.2.1/gcc/config/rs6000/darwin-ldouble.c	2008-01-31 17:51:24.000000000 -0500
yann@616
     4
@@ -70,6 +70,8 @@ Software Foundation, 51 Franklin Street,
yann@616
     5
    but GCC currently generates poor code when a union is used to turn
yann@616
     6
    a long double into a pair of doubles.  */
yann@616
     7
 
yann@616
     8
+#if defined (_SOFT_FLOAT) && defined (__LONG_DOUBLE_128__)
yann@616
     9
+
yann@616
    10
 long double __gcc_qadd (double, double, double, double);
yann@616
    11
 long double __gcc_qsub (double, double, double, double);
yann@616
    12
 long double __gcc_qmul (double, double, double, double);
yann@616
    13
@@ -219,8 +221,6 @@ __gcc_qdiv (double a, double b, double c
yann@616
    14
   return z.ldval;
yann@616
    15
 }
yann@616
    16
 
yann@616
    17
-#if defined (_SOFT_FLOAT) && defined (__LONG_DOUBLE_128__)
yann@616
    18
-
yann@616
    19
 long double __gcc_qneg (double, double);
yann@616
    20
 int __gcc_qeq (double, double, double, double);
yann@616
    21
 int __gcc_qne (double, double, double, double);