patches/gcc/4.1.2/110-arm-eabi.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 1 eeea35fbf182
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 --- gcc-4.1.2.orig/gcc/config.gcc	2007-03-04 23:25:37.000000000 +0100
     2 +++ gcc-4.1.2/gcc/config.gcc	2007-03-04 23:25:45.000000000 +0100
     3 @@ -674,7 +674,7 @@
     4  	tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h" 
     5  	tmake_file="${tmake_file} t-linux arm/t-arm"
     6  	case ${target} in
     7 -	arm*-*-linux-gnueabi)
     8 +	arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
     9  	    tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
    10  	    tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
    11    	    # The BPABI long long divmod functions return a 128-bit value in 
    12 --- gcc-4.1.2.orig/gcc/config/arm/linux-eabi.h	2005-11-15 15:32:13.000000000 +0100
    13 +++ gcc-4.1.2/gcc/config/arm/linux-eabi.h	2007-03-04 23:25:45.000000000 +0100
    14 @@ -53,7 +53,11 @@
    15  /* Use ld-linux.so.3 so that it will be possible to run "classic"
    16     GNU/Linux binaries on an EABI system.  */
    17  #undef LINUX_TARGET_INTERPRETER
    18 +#ifdef USE_UCLIBC
    19 +#define LINUX_TARGET_INTERPRETER "/lib/ld-uClibc.so.0"
    20 +#else
    21  #define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.3"
    22 +#endif
    23  
    24  /* At this point, bpabi.h will have clobbered LINK_SPEC.  We want to
    25     use the GNU/Linux version, not the generic BPABI version.  */