patches/gcc/2.95.3/170-pr3106.patch
author Zoltan Devai <zdevai@gmail.com>
Wed Oct 28 12:03:38 2009 +0100 (2009-10-28)
changeset 1602 1ba79f2126df
parent 402 197e1b49586e
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 See http://gcc.gnu.org/PR3106
     2 Backported from gcc-3.0.x
     3 
     4 Fixes error
     5   .../binutils-2.11.2/libiberty/strerror.c:468: error: conflicting types for `sys_nerr'
     6   /usr/include/stdio.h:258: error: previous declaration of `sys_nerr'
     7   make[1]: *** [strerror.o] Error 1
     8   make: *** [all-libiberty] Error 2
     9 on Mac OS X.
    10 
    11 --- gcc-2.95.3/libiberty/strerror.c.old	2004-03-24 16:23:19.000000000 -0800
    12 +++ gcc-2.95.3/libiberty/strerror.c	2004-03-24 16:23:48.000000000 -0800
    13 @@ -13,6 +13,7 @@
    14     incompatible with our later declaration, perhaps by using const
    15     attributes.  So we hide the declaration in errno.h (if any) using a
    16     macro. */
    17 +#define sys_nerr sys_nerr__
    18  #define sys_errlist sys_errlist__
    19  #endif
    20  
    21 @@ -20,6 +21,7 @@
    22  #include <errno.h>
    23  
    24  #ifdef HAVE_SYS_ERRLIST
    25 +#undef sys_nerr
    26  #undef sys_errlist
    27  #endif
    28