patches/gcc/4.1.1/110-arm-eabi.patch
author Zoltan Devai <zdevai@gmail.com>
Wed Oct 28 12:03:38 2009 +0100 (2009-10-28)
changeset 1602 1ba79f2126df
permissions -rw-r--r--
libc/uClibc: fix building on system with recent glibc

While trying to build a toolchain with ct-ng 1.5.0,
arm-unknown-linux-uclibcgnueabi target,
I get the following error:

[INFO ] Installing C library headers
[EXTRA] Copying sources to build dir
[EXTRA] Applying configuration
[EXTRA] Building headers
[EXTRA] Installing headers
[ERROR] extra/scripts/unifdef.c:209: error: conflicting types for 'getline'
[ERROR] make[2]: *** [extra/scripts/unifdef] Error 1
[ERROR] Build failed in step 'Installing C library headers'

The following patch solves the problem.
(It's a backport of this uClibc commit:
http://git.uclibc.org/uClibc/commit/?id=49e81cada73616864b9b31df0aeb6961c30f5a6e
)

[--SNIP from another mail--]
AFAIK this is a problem since glibc 2.10.
     1 --- gcc-2005q3-1.orig/gcc/config.gcc	2005-10-31 19:02:54.000000000 +0300
     2 +++ gcc-2005q3-1/gcc/config.gcc	2006-01-27 01:09:09.000000000 +0300
     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 
    13 diff -urN gcc-2005q3-2/gcc/config/arm/linux-eabi.h gcc-2005q3-2.new/gcc/config/arm/linux-eabi.h
    14 --- gcc-2005q3-2/gcc/config/arm/linux-eabi.h	2005-12-07 23:14:16.000000000 +0300
    15 +++ gcc-2005q3-2.new/gcc/config/arm/linux-eabi.h	2006-03-29 19:02:34.000000000 +0400
    16 @@ -53,7 +53,11 @@
    17  /* Use ld-linux.so.3 so that it will be possible to run "classic"
    18     GNU/Linux binaries on an EABI system.  */
    19  #undef LINUX_TARGET_INTERPRETER
    20 +#ifdef USE_UCLIBC
    21 +#define LINUX_TARGET_INTERPRETER "/lib/ld-uClibc.so.0"
    22 +#else
    23  #define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.3"
    24 +#endif
    25  
    26  /* At this point, bpabi.h will have clobbered LINK_SPEC.  We want to
    27     use the GNU/Linux version, not the generic BPABI version.  */