patches/gcc/4.3.2/130-cross-compile.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 747 d3e603e7c17c
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>
     1 Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/08_all_gcc-4.1-cross-compile.patch
     2 Some notes on the 'bootstrap with or without libc headers' debate:
     3 http://linuxfromscratch.org/pipermail/lfs-dev/2005-July/052409.html
     4 http://gcc.gnu.org/ml/gcc/2005-07/msg01195.html
     5 
     6 diff -durN gcc-4.3.2.orig/gcc/configure gcc-4.3.2/gcc/configure
     7 --- gcc-4.3.2.orig/gcc/configure	2008-08-01 11:51:03.000000000 +0200
     8 +++ gcc-4.3.2/gcc/configure	2008-09-23 19:39:43.000000000 +0200
     9 @@ -13442,7 +13442,7 @@
    10  	    | powerpc*-*-*,powerpc64*-*-*)
    11  		CROSS="$CROSS -DNATIVE_CROSS" ;;
    12  	esac
    13 -elif test "x$TARGET_SYSTEM_ROOT" != x; then
    14 +elif test "x$TARGET_SYSTEM_ROOT" != x -o $build != $host; then
    15          SYSTEM_HEADER_DIR=$build_system_header_dir
    16  fi
    17  
    18 diff -durN gcc-4.3.2.orig/gcc/configure.ac gcc-4.3.2/gcc/configure.ac
    19 --- gcc-4.3.2.orig/gcc/configure.ac	2008-08-01 11:51:03.000000000 +0200
    20 +++ gcc-4.3.2/gcc/configure.ac	2008-09-23 19:39:43.000000000 +0200
    21 @@ -1749,7 +1749,7 @@
    22  	    | powerpc*-*-*,powerpc64*-*-*)
    23  		CROSS="$CROSS -DNATIVE_CROSS" ;;
    24  	esac
    25 -elif test "x$TARGET_SYSTEM_ROOT" != x; then
    26 +elif test "x$TARGET_SYSTEM_ROOT" != x -o $build != $host; then
    27          SYSTEM_HEADER_DIR=$build_system_header_dir 
    28  fi
    29  
    30 diff -durN gcc-4.3.2.orig/gcc/unwind-dw2.c gcc-4.3.2/gcc/unwind-dw2.c
    31 --- gcc-4.3.2.orig/gcc/unwind-dw2.c	2007-07-25 20:14:57.000000000 +0200
    32 +++ gcc-4.3.2/gcc/unwind-dw2.c	2008-09-23 19:39:43.000000000 +0200
    33 @@ -334,9 +334,11 @@
    34  }
    35  #endif
    36  
    37 +#ifndef inhibit_libc
    38  #ifdef MD_UNWIND_SUPPORT
    39  #include MD_UNWIND_SUPPORT
    40  #endif
    41 +#endif
    42  
    43  /* Extract any interesting information from the CIE for the translation
    44     unit F belongs to.  Return a pointer to the byte after the augmentation,