patches/gcc/4.3.4/200-pr24170.patch
author Anthony Foiani <anthony.foiani@gmail.com>
Thu May 19 23:06:16 2011 +0200 (2011-05-19)
changeset 2461 ec30b191f0e3
permissions -rw-r--r--
complibs/ppl: build only C and C++ interfaces for PPL

By default, PPL wants to build interfaces for any of a variety of
langauges it finds on the local host (python, java, possibly perl, also
more esoteric languages such as ocaml and prolog).

These extra interfaces can double the compile time for the library. For
single-process builds, I found a savings of more than 40%:

default / j1: 716s total, 143.2s avg, 0.52s stdev
just_c / j1: 406s total, 81.2s avg, 0.33s stdev
just_c_cpp / j1: 413s total, 82.6s avg, 0.22s stdev

And for multi-process builds, it approached 50%:

default / j4: 625s total, 125.0s avg, 0.57s stdev
just_c / j4: 338s total, 67.6s avg, 1.25s stdev
just_c_cpp / j4: 327s total, 65.4s avg, 0.36s stdev

Since the PPL we build within ct-ng is only used by GCC, we only need to
build the C and C++ interfaces.

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