patches/gcc/4.2.0/220-libstdc++-namespace.patch
author Anthony Foiani <anthony.foiani@gmail.com>
Thu May 19 23:06:16 2011 +0200 (2011-05-19)
changeset 2461 ec30b191f0e3
parent 111 2e16b9fc302d
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>
yann@111
     1
diff -rup gcc-4.2.orig/libstdc++-v3/config/locale/uclibc/messages_members.h gcc-4.2/libstdc++-v3/config/locale/uclibc/messages_members.h
yann@111
     2
--- gcc-4.2.orig/libstdc++-v3/config/locale/uclibc/messages_members.h	2006-12-22 13:06:56.000000000 +0100
yann@111
     3
+++ gcc-4.2/libstdc++-v3/config/locale/uclibc/messages_members.h	2006-12-22 15:23:41.000000000 +0100
yann@111
     4
@@ -32,7 +32,8 @@
yann@111
     5
 //
yann@111
     6
 
yann@111
     7
 // Written by Benjamin Kosnik <bkoz@redhat.com>
yann@111
     8
-
yann@111
     9
+namespace std
yann@111
    10
+{
yann@111
    11
 #ifdef __UCLIBC_MJN3_ONLY__
yann@111
    12
 #warning fix prototypes for *textdomain funcs
yann@111
    13
 #endif
yann@111
    14
@@ -115,3 +116,4 @@
yann@111
    15
 	   this->_S_create_c_locale(this->_M_c_locale_messages, __s); 
yann@111
    16
 	 }
yann@111
    17
      }
yann@111
    18
+}
yann@111
    19
diff -rup gcc-4.2.orig/libstdc++-v3/config/locale/uclibc/time_members.h gcc-4.2/libstdc++-v3/config/locale/uclibc/time_members.h
yann@111
    20
--- gcc-4.2.orig/libstdc++-v3/config/locale/uclibc/time_members.h	2006-12-22 13:06:56.000000000 +0100
yann@111
    21
+++ gcc-4.2/libstdc++-v3/config/locale/uclibc/time_members.h	2006-12-22 15:20:31.000000000 +0100
yann@111
    22
@@ -33,7 +33,8 @@
yann@111
    23
 //
yann@111
    24
 
yann@111
    25
 // Written by Benjamin Kosnik <bkoz@redhat.com>
yann@111
    26
-
yann@111
    27
+namespace std
yann@111
    28
+{
yann@111
    29
   template<typename _CharT>
yann@111
    30
     __timepunct<_CharT>::__timepunct(size_t __refs) 
yann@111
    31
     : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL), 
yann@111
    32
@@ -74,3 +75,4 @@
yann@111
    33
       delete _M_data; 
yann@111
    34
       _S_destroy_c_locale(_M_c_locale_timepunct); 
yann@111
    35
     }
yann@111
    36
+}