patches/gcc/4.3.3/200-pr24170.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
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 Original patch from: ../4.3.2/200-pr24170.patch
     2 
     3 -= BEGIN original header =-
     4 Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/61_all_gcc43-pr24170.patch
     5 http://gcc.gnu.org/PR24170
     6 
     7 2008-02-20  Tom Tromey  <tromey@redhat.com>
     8 
     9 	PR libgcj/24170:
    10 	* java/io/natFilePosix.cc (File::performList): Don't use
    11 	readdir_r.
    12 	* configure, include/config.h.in: Rebuilt.
    13 	* configure.ac: Don't check for readdir_r.
    14 
    15 -= END original header =-
    16 
    17 diff -durN gcc-4.3.3.orig/libjava/configure.ac gcc-4.3.3/libjava/configure.ac
    18 --- gcc-4.3.3.orig/libjava/configure.ac	2009-01-27 22:19:16.000000000 +0100
    19 +++ gcc-4.3.3/libjava/configure.ac	2009-01-27 22:19:36.000000000 +0100
    20 @@ -1030,7 +1030,7 @@
    21     PLATFORMNET=NoNet
    22  else
    23     AC_CHECK_FUNCS([strerror_r select fstat open fsync sleep opendir \
    24 -                   localtime_r readdir_r getpwuid_r getcwd \
    25 +                   localtime_r getpwuid_r getcwd \
    26  		   access stat lstat mkdir rename rmdir unlink utime chmod readlink \
    27  		   nl_langinfo setlocale \
    28  		   inet_pton uname inet_ntoa \
    29 diff -durN gcc-4.3.3.orig/libjava/include/config.h.in gcc-4.3.3/libjava/include/config.h.in
    30 --- gcc-4.3.3.orig/libjava/include/config.h.in	2007-07-31 18:17:21.000000000 +0200
    31 +++ gcc-4.3.3/libjava/include/config.h.in	2009-01-27 22:19:36.000000000 +0100
    32 @@ -214,9 +214,6 @@
    33  /* Define to 1 if you have the <pwd.h> header file. */
    34  #undef HAVE_PWD_H
    35  
    36 -/* Define to 1 if you have the `readdir_r' function. */
    37 -#undef HAVE_READDIR_R
    38 -
    39  /* Define to 1 if you have the `readlink' function. */
    40  #undef HAVE_READLINK
    41  
    42 diff -durN gcc-4.3.3.orig/libjava/java/io/natFilePosix.cc gcc-4.3.3/libjava/java/io/natFilePosix.cc
    43 --- gcc-4.3.3.orig/libjava/java/io/natFilePosix.cc	2007-08-04 23:50:01.000000000 +0200
    44 +++ gcc-4.3.3/libjava/java/io/natFilePosix.cc	2009-01-27 22:19:36.000000000 +0100
    45 @@ -1,6 +1,6 @@
    46  // natFile.cc - Native part of File class for POSIX.
    47  
    48 -/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006
    49 +/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006, 2008
    50     Free Software Foundation
    51  
    52     This file is part of libgcj.
    53 @@ -292,13 +292,7 @@
    54  
    55    java::util::ArrayList *list = new java::util::ArrayList ();
    56    struct dirent *d;
    57 -#if defined(HAVE_READDIR_R) && defined(_POSIX_PTHREAD_SEMANTICS)
    58 -  int name_max = pathconf (buf, _PC_NAME_MAX);
    59 -  char dbuf[sizeof (struct dirent) + name_max + 1];
    60 -  while (readdir_r (dir, (struct dirent *) dbuf, &d) == 0 && d != NULL)
    61 -#else /* HAVE_READDIR_R */
    62    while ((d = readdir (dir)) != NULL)
    63 -#endif /* HAVE_READDIR_R */
    64      {
    65        // Omit "." and "..".
    66        if (d->d_name[0] == '.'