patches/gcc/2.95.3/170-pr3106.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat Jan 31 17:49:27 2009 +0000 (2009-01-31)
changeset 1183 268544004e77
parent 402 197e1b49586e
permissions -rw-r--r--
On 20090131.1659+0100, Vincent Sanders <vince@kyllikki.org> wrote:
[This]patch is a bit more involved. The patch addresses a gcc
regression in the 4.3 series (specifically this patch is against 4.3.2
which does *not* have a lot of other issues which affect kernel building)

GCC bug tracker has this issue as
#38453 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38453
#32044 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32044

comment 65 of #32044 has the fix being applied to gcc trunk as revision #142719

The attached patch is a backport to gcc 4.3.2 which allows this
version to be used to generate correct output for various ARM kernel
build (and indeed is teh correct answer in general).

/trunk/patches/gcc/4.3.2/360-fix-expensive-optimize.patch | 207 207 0 0 +++++++++++++++++++++
1 file changed, 207 insertions(+)
     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