patches/gcc/4.3.1/130-cross-compile.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Sep 12 23:38:18 2010 +0200 (2010-09-12)
changeset 2120 48de021b3a9e
parent 746 b150d6f590fc
permissions -rw-r--r--
arch/mips: add experimental mips64 samples

Both toolchains were tested to successfully:
- _build_ busybox, giving respectively an n32 and an n64 binary
although it has not been run-tested.
- build linux-2.6.36-rc3 for Loongson, giving an n64 vmlinux
(which is expected, due to the way the kernel is built),
and the kernel properly boots!

Credits are due to Julien MOUTHINO (julm on freenode#uClibc) for
testing that the kernel boots on his hardware! Cheers! ;-)

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.1.orig/gcc/configure gcc-4.3.1/gcc/configure
     7 --- gcc-4.3.1.orig/gcc/configure	2008-05-21 10:54:15.000000000 +0200
     8 +++ gcc-4.3.1/gcc/configure	2008-06-10 14:57:42.000000000 +0200
     9 @@ -13283,7 +13283,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.1.orig/gcc/configure.ac gcc-4.3.1/gcc/configure.ac
    19 --- gcc-4.3.1.orig/gcc/configure.ac	2008-05-21 10:54:15.000000000 +0200
    20 +++ gcc-4.3.1/gcc/configure.ac	2008-06-10 14:57:42.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.1.orig/gcc/unwind-dw2.c gcc-4.3.1/gcc/unwind-dw2.c
    31 --- gcc-4.3.1.orig/gcc/unwind-dw2.c	2007-07-25 20:14:57.000000000 +0200
    32 +++ gcc-4.3.1/gcc/unwind-dw2.c	2008-06-10 14:57:42.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,