]> git.pld-linux.org Git - packages/gcc4.git/commitdiff
This commit was manufactured by cvs2git to create branch 'GCC_3_4'. GCC_3_4
authorcvs2git <feedback@pld-linux.org>
Sun, 11 Dec 2005 09:15:20 +0000 (09:15 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Cherrypick from master 2005-12-11 09:15:20 UTC Jakub Bogusz <qboosh@pld-linux.org> '- can't use tab in gnat_ugn.texi':
    gcc4-info.patch -> 1.12
    gcc4-nodebug.patch -> 1.6
    gcc4-nolocalefiles.patch -> 1.4
    gcc4-optimize-la.pl -> 1.2
    gcc4-pr17390.patch -> 1.1
    gcc4-pr19505.patch -> 1.1
    gcc4-pr19664_gnu_internal.patch -> 1.1
    gcc4-pr19664_libstdc++.patch -> 1.1
    gcc4-pr24419.patch -> 1.1
    gcc4-pr24669.patch -> 1.1
    gcc4-pr7776.patch -> 1.1
    gcc4.spec -> 1.397

12 files changed:
gcc4-info.patch [new file with mode: 0644]
gcc4-nodebug.patch [new file with mode: 0644]
gcc4-nolocalefiles.patch [new file with mode: 0644]
gcc4-optimize-la.pl [new file with mode: 0644]
gcc4-pr17390.patch [new file with mode: 0644]
gcc4-pr19505.patch [new file with mode: 0644]
gcc4-pr19664_gnu_internal.patch [new file with mode: 0644]
gcc4-pr19664_libstdc++.patch [new file with mode: 0644]
gcc4-pr24419.patch [new file with mode: 0644]
gcc4-pr24669.patch [new file with mode: 0644]
gcc4-pr7776.patch [new file with mode: 0644]
gcc4.spec [new file with mode: 0644]

diff --git a/gcc4-info.patch b/gcc4-info.patch
new file mode 100644 (file)
index 0000000..22cfba8
--- /dev/null
@@ -0,0 +1,342 @@
+--- gcc-4.0-20040919.orig/gcc/doc/cpp.texi     2004-09-17 10:22:36.000000000 +0200
++++ gcc-4.0-20040919/gcc/doc/cpp.texi  2004-09-26 10:58:58.166721432 +0200
+@@ -52,9 +52,9 @@
+ @set cppmanual
+ @ifinfo
+-@dircategory Programming
++@dircategory Programming Languages:
+ @direntry
+-* Cpp: (cpp).                The GNU C preprocessor.
++* Cpp: (cpp).                         The GNU C preprocessor
+ @end direntry
+ @end ifinfo
+--- gcc-4.0-20040919.orig/gcc/doc/cppinternals.texi    2004-07-03 01:57:11.000000000 +0200
++++ gcc-4.0-20040919/gcc/doc/cppinternals.texi 2004-09-26 10:58:58.208715048 +0200
+@@ -3,9 +3,9 @@
+ @settitle The GNU C Preprocessor Internals
+ @ifinfo
+-@dircategory Programming
++@dircategory Programming Languages:
+ @direntry
+-* Cpplib: (cppinternals).      Cpplib internals.
++* Cpplib: (cppinternals).             Cpplib internals
+ @end direntry
+ @end ifinfo
+--- gcc-4.0-20040919.orig/gcc/doc/gcc.texi     2004-07-22 22:12:20.000000000 +0200
++++ gcc-4.0-20040919/gcc/doc/gcc.texi  2004-09-26 10:58:58.218713528 +0200
+@@ -62,9 +62,9 @@
+      funds for GNU development.
+ @end copying
+ @ifnottex
+-@dircategory Programming
++@dircategory Programming Languages:
+ @direntry
+-* gcc: (gcc).                  The GNU Compiler Collection.
++* gcc: (gcc).                         The GNU Compiler Collection
+ @end direntry
+ This file documents the use of the GNU compilers.
+ @sp 1
+--- gcc-4.0-20040919.orig/gcc/doc/gccint.texi  2004-05-24 00:54:29.000000000 +0200
++++ gcc-4.0-20040919/gcc/doc/gccint.texi       2004-09-26 10:58:58.222712920 +0200
+@@ -46,9 +46,9 @@
+      funds for GNU development.
+ @end copying
+ @ifnottex
+-@dircategory Programming
++@dircategory Programming Languages:
+ @direntry
+-* gccint: (gccint).            Internals of the GNU Compiler Collection.
++* gccint: (gccint).                   Internals of the GNU Compiler Collection
+ @end direntry
+ This file documents the internals of the GNU compilers.
+ @sp 1
+--- gcc-4.0-20040919.orig/gcc/ada/gnat-style.texi      2004-09-01 13:51:52.000000000 +0200
++++ gcc-4.0-20040919/gcc/ada/gnat-style.texi   2004-09-26 10:58:58.342694680 +0200
+@@ -28,9 +28,9 @@
+ @setchapternewpage odd
+-@dircategory Programming
++@dircategory Programming Languages:
+ @direntry
+-* gnat-style: (gnat-style).      GNAT Coding Style
++* gnat-style: (gnat-style).           GNAT Coding Style
+ @end direntry
+ @macro syntax{element}
+--- gcc-4_1-branch/gcc/ada/gnat_ugn.texi.orig  2005-12-06 23:45:52.983574000 +0100
++++ gcc-4_1-branch/gcc/ada/gnat_ugn.texi       2005-12-11 02:35:45.580878360 +0100
+@@ -99,9 +99,9 @@
+ @end ifset
+ @settitle @value{EDITION} User's Guide @value{PLATFORM}
+-@dircategory GNU Ada tools
++@dircategory Programming Languages:
+ @direntry
+-* @value{EDITION} User's Guide (@value{FILE}) @value{PLATFORM}
++* GNAT User's Guide (gnat_ugn_unw).     GNAT User's Guide
+ @end direntry
+ @include gcc-common.texi
+--- gcc-4.0-20040919.orig/gcc/fortran/gfortran.texi    2004-09-16 15:13:39.000000000 +0200
++++ gcc-4.0-20040919/gcc/fortran/gfortran.texi 2004-09-26 11:05:50.258074024 +0200
+@@ -62,9 +62,9 @@
+ @end copying
+ @ifinfo
+-@dircategory Programming
++@dircategory Programming Languages:
+ @direntry
+-* gfortran: (gfortran).                  The GNU Fortran 95 Compiler.
++* gfortran: (gfortran).                       The GNU Fortran 95 Compiler
+ @end direntry
+ This file documents the use and the internals of
+ the GNU Fortran 95 compiler, (@command{gfortran}).
+--- gcc-4.0-20050507/gcc/java/gcj.texi.orig    2005-05-07 00:53:37.000000000 +0200
++++ gcc-4.0-20050507/gcc/java/gcj.texi 2005-05-08 13:09:27.000000000 +0200
+@@ -50,30 +50,22 @@
+ @ifinfo
+ @format
+-@dircategory Programming
++@dircategory Programming Languages:
+ @direntry
+-* Gcj: (gcj).               Ahead-of-time compiler for the Java language
++* Gcj: (gcj).                         Ahead-of-time compiler for the Java language
+ @end direntry
+-@dircategory Individual utilities
++@dircategory Programming tools:
+ @direntry
+-* gcjh: (gcj)Invoking gcjh.
+-                            Generate header files from Java class files
+-* gjnih: (gcj)Invoking gjnih.
+-                            Generate JNI header files from Java class files
+-* jv-scan: (gcj)Invoking jv-scan.
+-                            Print information about Java source files
+-* jcf-dump: (gcj)Invoking jcf-dump.
+-                            Print information about Java class files
+-* gij: (gcj)Invoking gij.   GNU interpreter for Java bytecode
+-* gcj-dbtool: (gcj)Invoking gcj-dbtool.
+-                            Tool for manipulating class file databases.
+-* jv-convert: (gcj)Invoking jv-convert.
+-                            Convert file from one encoding to another
+-* grmic: (gcj)Invoking grmic.
+-                            Generate stubs for Remote Method Invocation.
+-* grmiregistry: (gcj)Invoking grmiregistry.
+-                            The remote object registry.
++* gcjh: (gcj)gcjh.                    Generate header files from Java class files
++* gjnih: (gcj)Invoking gjnih.         Generate JNI header files from Java class files
++* jv-scan: (gcj)jv-scan.              Print information about Java source files
++* jcf-dump: (gcj)jcf-dump.            Print information about Java class files
++* gij: (gcj)gij.                      GNU interpreter for Java bytecode
++* jv-convert: (gcj)jv-convert.                Convert file from one encoding to another
++* gcj-dbtool: (gcj)gcj-dbtool.                Db tool.
++* grmic: (gcj)grmic.                  Generate stubs for Remote Method Invocation.
++* grmiregistry: (gcj)grmiregistry.    The remote object registry.
+ @end direntry
+ @end format
+@@ -107,20 +99,20 @@
+ @file{.class} files.
+ @menu
+-* Copying::            The GNU General Public License
++* Copying::           The GNU General Public License
+ * GNU Free Documentation License::
+                       How you can share and copy this manual
+-* Invoking gcj::      Compiler options supported by @command{gcj}
++* gcj::                       Compiler options supported by @command{gcj}
+ * Compatibility::     Compatibility between gcj and other tools for Java
+-* Invoking gcjh::       Generate header files from class files
+-* Invoking gjnih::      Generate JNI header files from class files
+-* Invoking jv-scan::    Print information about source files
+-* Invoking jcf-dump::   Print information about class files
+-* Invoking gij::      Interpreting Java bytecodes
+-* Invoking gcj-dbtool:: Tool for manipulating class file databases.
+-* Invoking jv-convert:: Converting from one encoding to another
+-* Invoking grmic::      Generate stubs for Remote Method Invocation.
+-* Invoking grmiregistry:: The remote object registry.
++* gcjh::              Generate header files from class files
++* gjnih::             Generate JNI header files from class files
++* jv-scan::           Print information about source files
++* jcf-dump::          Print information about class files
++* gij::                       Interpreting Java bytecodes
++* jv-convert::                Converting from one encoding to another
++* gcj-dbtool::                Db tool.
++* grmic::             Generate stubs for Remote Method Invocation.
++* grmiregistry::      The remote object registry.
+ * About CNI::           Description of the Compiled Native Interface
+ * System properties::   Modifying runtime behavior of the libgcj library
+ * Resources::         Where to look for more information
+@@ -132,7 +124,7 @@
+ @include fdl.texi
+-@node Invoking gcj
++@node gcj
+ @chapter Invoking gcj
+ @c man title gcj Ahead-of-time compiler for the Java language
+@@ -659,7 +651,7 @@
+ @end itemize
+-@node Invoking gcjh
++@node gcjh
+ @chapter Invoking gcjh
+ @c man title gcjh generate header files from Java class files
+@@ -775,7 +767,7 @@
+ @c man end
+-@node Invoking gjnih
++@node gjnih
+ @chapter Invoking gjnih
+ @c man title gjnih generate JNI header files from Java class files
+@@ -889,7 +881,7 @@
+ @c man end
+-@node Invoking jv-scan
++@node jv-scan
+ @chapter Invoking jv-scan
+ @c man title jv-scan print information about Java source file
+@@ -952,7 +944,7 @@
+ @c man end
+-@node Invoking jcf-dump
++@node jcf-dump
+ @chapter Invoking jcf-dump
+ @c man title jcf-dump print information about Java class files
+@@ -1012,7 +1004,7 @@
+ @c man end
+-@node Invoking gij
++@node gij
+ @chapter Invoking gij
+ @c man title gij GNU interpreter for Java bytecode
+@@ -1132,7 +1124,7 @@
+ @c man end
+-@node Invoking gcj-dbtool
++@node gcj-dbtool
+ @chapter Invoking gcj-dbtool.
+ @c man title gcj-dbtool Manipulate class file mapping databases for libgcj
+@@ -1223,7 +1215,7 @@
+ @c man end
+-@node Invoking jv-convert
++@node jv-convert
+ @chapter Invoking jv-convert
+ @c man title jv-convert Convert file from one encoding to another
+@@ -1282,7 +1274,7 @@
+ @c man end
+-@node Invoking grmic
++@node grmic
+ @chapter Invoking grmic
+ @c man title grmic Generate stubs for Remote Method Invocation
+@@ -1361,7 +1353,7 @@
+ @c man end
+-@node Invoking grmiregistry
++@node grmiregistry
+ @chapter Invoking grmiregistry
+ @c man title grmiregistry Remote object registry
+--- gcc-4_1-branch/gcc/ada/gnat_rm.texi.orig   2005-11-30 12:12:06.000000000 +0100
++++ gcc-4_1-branch/gcc/ada/gnat_rm.texi        2005-12-11 02:36:14.863426736 +0100
+@@ -26,9 +26,9 @@
+ @include gcc-common.texi
+-@dircategory GNU Ada tools
++@dircategory Programming Languages:
+ @direntry
+-* GNAT Reference Manual: (gnat_rm).  Reference Manual for GNU Ada tools.
++* GNAT Reference Manual: (gnat_rm).   Reference Manual for GNU Ada tools
+ @end direntry
+ @copying
+--- gcc-4_1-branch/fastjar/fastjar.texi.orig   2005-11-30 12:19:45.000000000 +0100
++++ gcc-4_1-branch/fastjar/fastjar.texi        2005-12-11 02:41:00.190050496 +0100
+@@ -17,17 +17,11 @@
+ @ifinfo
+ @format
+-@dircategory Programming
++@dircategory Programming tools:
+ @direntry
+-* fastjar: (fastjar).       GNU jar utilities
+-@end direntry
+-
+-@dircategory Individual utilities
+-@direntry
+-* fastjar: (fastjar)Invoking fastjar.
+-                            An archive tool for Java archives
+-* grepjar: (fastjar)Invoking grepjar.
+-                            Search files in a jar file for a pattern
++* fastjar: (fastjar).                 GNU jar utilities
++* fastjar: (fastjar)fastjar.          An archive tool for Java archives
++* grepjar: (fastjar)grepjar.          Search files in a jar file for a pattern
+ @end direntry
+ @end format
+@@ -77,12 +71,12 @@
+ This manual describes how to use @command{fastjar} and @command{grepjar}.
+ @menu
+-* Invoking fastjar::  Options supported by @command{fastjar}
+-* Invoking grepjar::    Options supported by @command{grepjar}
++* fastjar::             Options supported by @command{fastjar}
++* grepjar::             Options supported by @command{grepjar}
+ * Copying::           The GNU General Public License
+ @end menu
+-@node Invoking fastjar
++@node fastjar
+ @chapter Invoking fastjar
+ @c man title fastjar archive tool for Java archives
+@@ -172,7 +166,7 @@
+ @c man end
+-@node Invoking grepjar
++@node grepjar
+ @chapter Invoking grepjar
+ @c man title grepjar search files in a jar file for a pattern
+--- gcc-4_1-branch/gcc/doc/install.texi.orig   2005-11-30 12:02:42.000000000 +0100
++++ gcc-4_1-branch/gcc/doc/install.texi        2005-12-11 02:44:22.598279768 +0100
+@@ -87,9 +87,9 @@
+ @ifinfo
+ @insertcopying
+ @end ifinfo
+-@dircategory Programming
++@dircategory Programming Languages:
+ @direntry
+-* gccinstall: (gccinstall).    Installing the GNU Compiler Collection.
++* gccinstall: (gccinstall).           Installing the GNU Compiler Collection
+ @end direntry
+ @c Part 3 Titlepage and Copyright
diff --git a/gcc4-nodebug.patch b/gcc4-nodebug.patch
new file mode 100644 (file)
index 0000000..545d849
--- /dev/null
@@ -0,0 +1,102 @@
+--- gcc-4.1-20050522/gcc/Makefile.in.orig      2005-05-20 21:17:40.000000000 +0000
++++ gcc-4.1-20050522/gcc/Makefile.in   2005-05-26 10:49:01.000000000 +0000
+@@ -148,10 +148,10 @@
+ # TCFLAGS is used for compilations with the GCC just built.
+ XCFLAGS =
+ TCFLAGS =
+-CFLAGS = -g
+-STAGE1_CFLAGS = -g @stage1_cflags@
++CFLAGS =
++STAGE1_CFLAGS = @stage1_cflags@
+ STAGE1_CHECKING = -DENABLE_CHECKING -DENABLE_ASSERT_CHECKING
+-BOOT_CFLAGS = -g -O2
++BOOT_CFLAGS = -O2
+ # Flags to determine code coverage. When coverage is disabled, this will
+ # contain the optimization flags, as you normally want code coverage
+@@ -520,7 +520,7 @@
+ # Options to use when compiling libgcc2.a.
+ #
+-LIBGCC2_DEBUG_CFLAGS = -g
++LIBGCC2_DEBUG_CFLAGS =
+ LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(TARGET_LIBGCC2_CFLAGS) \
+                $(LIBGCC2_DEBUG_CFLAGS) $(GTHREAD_FLAGS) \
+                -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED @inhibit_libc@
+--- gcc-4.0-20040919/gcc/ada/Makefile.in.orig  2004-09-13 12:18:40.000000000 +0200
++++ gcc-4.0-20040919/gcc/ada/Makefile.in       2004-09-26 11:40:30.070894416 +0200
+@@ -73,7 +73,7 @@
+ # to the stage2 and stage3 compilations
+ # XCFLAGS is used for most compilations but not when using the GCC just built.
+ XCFLAGS =
+-CFLAGS = -g
++CFLAGS =
+ BOOT_CFLAGS = -O $(CFLAGS)
+ # These exists to be overridden by the x-* and t-* files, respectively.
+ X_CFLAGS =
+@@ -118,9 +118,9 @@
+ ADA_CFLAGS =
+ ADAFLAGS = -W -Wall -gnatpg -gnata
+ SOME_ADAFLAGS =-gnata
+-FORCE_DEBUG_ADAFLAGS = -g
++FORCE_DEBUG_ADAFLAGS =
+ GNATLIBFLAGS = -gnatpg -nostdinc
+-GNATLIBCFLAGS = -g -O2
++GNATLIBCFLAGS = -O2
+ GNATLIBCFLAGS_FOR_C = $(GNATLIBCFLAGS) $(TARGET_LIBGCC2_CFLAGS) -fexceptions \
+       -DIN_RTS
+ ALL_ADA_CFLAGS = $(X_ADA_CFLAGS) $(T_ADA_CFLAGS) $(ADA_CFLAGS)
+--- gcc/libada/Makefile.in.orig        2005-11-04 13:49:08.000000000 +0000
++++ gcc/libada/Makefile.in     2005-11-24 23:52:14.739531296 +0000
+@@ -54,7 +54,6 @@
+ include $(GCC_DIR)/libada-mk
+ TARGET_LIBGCC2_CFLAGS=
+-GNATLIBCFLAGS= -g -O2
+ # Get target-specific overrides for TARGET_LIBGCC2_CFLAGS
+ # and possibly GNATLIBCFLAGS.  Currently this uses files
+ # in gcc/config.  The 'subst' call is used to rerelativize them
+--- gcc-4.0-20040919/libffi/Makefile.am.orig   2004-08-30 17:42:59.000000000 +0200
++++ gcc-4.0-20040919/libffi/Makefile.am        2004-09-26 11:44:10.789340112 +0200
+@@ -138,7 +138,7 @@
+ libffi_convenience_la_SOURCES = $(libffi_la_SOURCES)
+ nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES)
+-AM_CFLAGS = -Wall -g -fexceptions
++AM_CFLAGS = -Wall -fexceptions
+ libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version`
+--- gcc-4.0-20040919/libffi/Makefile.in.orig   2004-09-19 19:47:04.000000000 +0200
++++ gcc-4.0-20040919/libffi/Makefile.in        2004-09-26 11:44:17.253357432 +0200
+@@ -385,7 +385,7 @@
+ nodist_libffi_la_SOURCES = $(am__append_1) $(am__append_2) $(am__append_3) $(am__append_4) $(am__append_5) $(am__append_6) $(am__append_7) $(am__append_8) $(am__append_9) $(am__append_10) $(am__append_11) $(am__append_12) $(am__append_13) $(am__append_14) $(am__append_15) $(am__append_16) $(am__append_17) $(am__append_18)
+ libffi_convenience_la_SOURCES = $(libffi_la_SOURCES)
+ nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES)
+-AM_CFLAGS = -Wall -g -fexceptions
++AM_CFLAGS = -Wall -fexceptions
+ libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version`
+ AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
+ AM_CCASFLAGS = $(AM_CPPFLAGS)
+--- gcc-4.0-20040919/libjava/Makefile.am.orig  2004-09-10 10:22:58.000000000 +0200
++++ gcc-4.0-20040919/libjava/Makefile.am       2004-09-26 11:46:24.041082768 +0200
+@@ -179,7 +179,7 @@
+ ## Extra CFLAGS used for JNI C sources shared with GNU Classpath.
+ PEDANTIC_CFLAGS = -ansi -pedantic -Wall -Wno-long-long
+-JCFLAGS = -g
++JCFLAGS =
+ JC1FLAGS = @LIBGCJ_JAVAFLAGS@ $(GCJFLAGS)
+ LIBFFIINCS = @LIBFFIINCS@
+--- gcc-4.0-20040919/libjava/Makefile.in.orig  2004-09-19 19:47:04.000000000 +0200
++++ gcc-4.0-20040919/libjava/Makefile.in       2004-09-26 11:47:02.431246576 +0200
+@@ -4167,7 +4167,7 @@
+ @USING_GCC_FALSE@AM_CFLAGS = @LIBGCJ_CFLAGS@
+ @USING_GCC_TRUE@AM_CFLAGS = @LIBGCJ_CFLAGS@ $(WARNINGS)
+ PEDANTIC_CFLAGS = -ansi -pedantic -Wall -Wno-long-long
+-JCFLAGS = -g
++JCFLAGS =
+ JC1FLAGS = @LIBGCJ_JAVAFLAGS@ $(GCJFLAGS)
+ AM_CPPFLAGS = -I$(top_srcdir) -Iinclude -I$(top_srcdir)/include \
+       $(GCINCS) $(THREADINCS) $(INCLTDL) \
diff --git a/gcc4-nolocalefiles.patch b/gcc4-nolocalefiles.patch
new file mode 100644 (file)
index 0000000..1d63e1d
--- /dev/null
@@ -0,0 +1,11 @@
+--- gcc-4.0-20040919/libstdc++-v3/configure.orig       2004-09-03 20:09:37.000000000 +0200
++++ gcc-4.0-20040919/libstdc++-v3/configure    2004-09-26 11:29:06.830762704 +0200
+@@ -5752,7 +5752,7 @@
+               int j;
+               __locale_t        loc;
+                __locale_t        loc_dup;
+-              loc = __newlocale(1 << LC_ALL, "de_DE", 0);
++              loc = __newlocale(1 << LC_ALL, "C", 0);
+               loc_dup = __duplocale(loc);
+               i = __strcoll_l(__one, __two, loc);
+               j = __strcoll_l(__one, __two, loc_dup);
diff --git a/gcc4-optimize-la.pl b/gcc4-optimize-la.pl
new file mode 100644 (file)
index 0000000..5624529
--- /dev/null
@@ -0,0 +1,43 @@
+#!/usr/bin/perl
+
+sub trim
+{
+    my $string = shift;
+    $string =~ s/^\s+//;
+    $string =~ s/\s+$//;
+    return $string;
+}
+
+open(F, $ARGV[0]) or die("cannot open file: $ARGV[0]\n");
+@lines = <F>;
+close(F);
+
+@deps = ();
+
+foreach (@lines)
+{
+    if (/(^dependency_libs='(.*)')/)
+    {
+       @libs = split(/[\ \t\n]+/, trim($2));
+       @L = grep(/^-L.*gcc\/.*\/\d\.\d\.\d(\/32)*$/, @libs);
+       @l = grep(/^-l.*/, @libs);
+       $opt_L = join(' ', @L);
+       $opt_l = join(' ', @l);
+       print("dependency_libs='");
+       print($opt_L);
+       if (scalar(@L))
+       {
+           print(" ");
+       }
+       print($opt_l);
+       print("'\n");
+    }
+    elsif (/^libdir='(.*)'/)
+    {
+       print("libdir='$ARGV[1]'\n");
+    }
+    else
+    {
+       print($_);
+    }
+}
diff --git a/gcc4-pr17390.patch b/gcc4-pr17390.patch
new file mode 100644 (file)
index 0000000..43b8228
--- /dev/null
@@ -0,0 +1,394 @@
+--- gcc/gcc/Makefile.in        12 Oct 2005 12:38:00 -0000      1.1547
++++ gcc/gcc/Makefile.in        21 Oct 2005 11:22:39 -0000
+@@ -2375,7 +2376,7 @@ postreload.o : postreload.c $(CONFIG_H) 
+    $(RTL_H) real.h $(FLAGS_H) $(EXPR_H) $(OPTABS_H) reload.h $(REGS_H) \
+    hard-reg-set.h insn-config.h $(BASIC_BLOCK_H) $(RECOG_H) output.h \
+    function.h toplev.h cselib.h $(TM_P_H) except.h $(TREE_H) $(MACHMODE_H) \
+-   $(OBSTACK_H) timevar.h tree-pass.h
++   $(TARGET_H) $(OBSTACK_H) timevar.h tree-pass.h
+ postreload-gcse.o : postreload-gcse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
+    $(TM_H) $(RTL_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) real.h insn-config.h \
+    $(RECOG_H) $(EXPR_H) $(BASIC_BLOCK_H) function.h output.h toplev.h \
+--- gcc/gcc/passes.c   11 Oct 2005 19:18:24 -0000      2.117
++++ gcc/gcc/passes.c   21 Oct 2005 11:22:40 -0000
+@@ -650,6 +650,7 @@ init_optimization_passes (void)
+   NEXT_PASS (pass_postreload_cse);
+   NEXT_PASS (pass_gcse2);
+   NEXT_PASS (pass_flow2);
++  NEXT_PASS (pass_machine_postreload);
+   NEXT_PASS (pass_stack_adjustments);
+   NEXT_PASS (pass_peephole2);
+   NEXT_PASS (pass_if_after_reload);
+--- gcc/gcc/postreload.c       5 Jul 2005 16:20:09 -0000       2.33
++++ gcc/gcc/postreload.c       21 Oct 2005 11:22:40 -0000
+@@ -41,6 +41,7 @@ Software Foundation, 51 Franklin Street,
+ #include "output.h"
+ #include "cselib.h"
+ #include "real.h"
++#include "target.h"
+ #include "toplev.h"
+ #include "except.h"
+ #include "tree.h"
+@@ -1599,3 +1600,33 @@ struct tree_opt_pass pass_postreload_cse
+   'o'                                   /* letter */
+ };
++/* Machine dependent postreload pass.  */
++static bool
++gate_handle_machine_postreload (void)
++{
++  return targetm.machine_dependent_postreload != 0;
++}
++
++
++static void
++rest_of_handle_machine_postreload (void)
++{
++  targetm.machine_dependent_postreload ();
++}
++
++struct tree_opt_pass pass_machine_postreload =
++{
++  "mach-postreload",                    /* name */
++  gate_handle_machine_postreload,       /* gate */
++  rest_of_handle_machine_postreload,    /* execute */
++  NULL,                                 /* sub */
++  NULL,                                 /* next */
++  0,                                    /* static_pass_number */
++  TV_MACH_DEP_AFTER_RELOAD,             /* tv_id */
++  0,                                    /* properties_required */
++  0,                                    /* properties_provided */
++  0,                                    /* properties_destroyed */
++  0,                                    /* todo_flags_start */
++  TODO_dump_func,                       /* todo_flags_finish */
++  0                                     /* letter */
++};
+--- gcc/gcc/target-def.h       12 Oct 2005 20:54:48 -0000      1.134
++++ gcc/gcc/target-def.h       21 Oct 2005 11:22:40 -0000
+@@ -395,6 +395,7 @@ Foundation, 51 Franklin Street, Fifth Fl
+ #define TARGET_CC_MODES_COMPATIBLE default_cc_modes_compatible
++#define TARGET_MACHINE_DEPENDENT_AFTER_RELOAD 0
+ #define TARGET_MACHINE_DEPENDENT_REORG 0
+ #define TARGET_BUILD_BUILTIN_VA_LIST std_build_builtin_va_list
+@@ -587,6 +588,7 @@ Foundation, 51 Franklin Street, Fifth Fl
+   TARGET_DWARF_REGISTER_SPAN,                   \
+   TARGET_FIXED_CONDITION_CODE_REGS,           \
+   TARGET_CC_MODES_COMPATIBLE,                 \
++  TARGET_MACHINE_DEPENDENT_AFTER_RELOAD,      \
+   TARGET_MACHINE_DEPENDENT_REORG,             \
+   TARGET_BUILD_BUILTIN_VA_LIST,                       \
+   TARGET_GIMPLIFY_VA_ARG_EXPR,                        \
+--- gcc/gcc/target.h   12 Oct 2005 20:54:48 -0000      1.145
++++ gcc/gcc/target.h   21 Oct 2005 11:22:40 -0000
+@@ -478,6 +478,10 @@ struct gcc_target
+   enum machine_mode (* cc_modes_compatible) (enum machine_mode,
+                                            enum machine_mode);
++  /* Do machine-dependent post-reload pass.  Called after
++     flow2 pass.  */
++  void (* machine_dependent_postreload) (void);
++
+   /* Do machine-dependent code transformations.  Called just before
+      delayed-branch scheduling.  */
+   void (* machine_dependent_reorg) (void);
+--- gcc/gcc/timevar.def        1 Aug 2005 07:47:23 -0000       1.54
++++ gcc/gcc/timevar.def        21 Oct 2005 11:22:40 -0000
+@@ -148,8 +148,9 @@ DEFTIMEVAR (TV_SCHED                 , "
+ DEFTIMEVAR (TV_LOCAL_ALLOC           , "local alloc")
+ DEFTIMEVAR (TV_GLOBAL_ALLOC          , "global alloc")
+ DEFTIMEVAR (TV_RELOAD_CSE_REGS       , "reload CSE regs")
+-DEFTIMEVAR (TV_GCSE_AFTER_RELOAD      , "load CSE after reload")
++DEFTIMEVAR (TV_GCSE_AFTER_RELOAD     , "load CSE after reload")
+ DEFTIMEVAR (TV_FLOW2                 , "flow 2")
++DEFTIMEVAR (TV_MACH_DEP_AFTER_RELOAD , "mach-dep after reload")
+ DEFTIMEVAR (TV_IFCVT2              , "if-conversion 2")
+ DEFTIMEVAR (TV_PEEPHOLE2             , "peephole 2")
+ DEFTIMEVAR (TV_RENAME_REGISTERS      , "rename registers")
+--- gcc/gcc/tree-pass.h        11 Oct 2005 19:18:24 -0000      2.59
++++ gcc/gcc/tree-pass.h        21 Oct 2005 11:22:40 -0000
+@@ -352,6 +352,7 @@ extern struct tree_opt_pass pass_remove_
+ extern struct tree_opt_pass pass_postreload_cse;
+ extern struct tree_opt_pass pass_gcse2;
+ extern struct tree_opt_pass pass_flow2;
++extern struct tree_opt_pass pass_machine_postreload;
+ extern struct tree_opt_pass pass_stack_adjustments;
+ extern struct tree_opt_pass pass_peephole2;
+ extern struct tree_opt_pass pass_if_after_reload;
+--- gcc/gcc/config/i386/i386.c 19 Oct 2005 02:13:37 -0000      1.864
++++ gcc/gcc/config/i386/i386.c 21 Oct 2005 11:22:43 -0000
+@@ -860,6 +860,7 @@ static void x86_output_mi_thunk (FILE *,
+                                HOST_WIDE_INT, tree);
+ static bool x86_can_output_mi_thunk (tree, HOST_WIDE_INT, HOST_WIDE_INT, tree);
+ static void x86_file_start (void);
++static void ix86_postreload (void);
+ static void ix86_reorg (void);
+ static bool ix86_expand_carry_flag_compare (enum rtx_code, rtx, rtx, rtx*);
+ static tree ix86_build_builtin_va_list (void);
+@@ -1062,6 +1063,9 @@ static void x86_64_elf_select_section (t
+ #undef TARGET_CC_MODES_COMPATIBLE
+ #define TARGET_CC_MODES_COMPATIBLE ix86_cc_modes_compatible
++#undef TARGET_MACHINE_DEPENDENT_AFTER_RELOAD
++#define TARGET_MACHINE_DEPENDENT_AFTER_RELOAD ix86_postreload
++
+ #undef TARGET_MACHINE_DEPENDENT_REORG
+ #define TARGET_MACHINE_DEPENDENT_REORG ix86_reorg
+@@ -16908,6 +16912,236 @@ min_insn_size (rtx insn)
+     return 2;
+ }
++/* Non-fcomi 387 FP compare sequences can not be CSE'd during cse1 pass.
++   This function implements elimination of redundant 387 FP compare
++   sequences.  We look for a sequence of:
++
++   fucom(p), fcom(p), ficom(p), fcompp, ftst
++   fnstsw %ax
++   sahf or test %ax
++   j<cc>
++
++   After the FP compare sequence has been found, redundant instructions in
++   successor blocks are deleted:
++
++   a) fcom/fnstsw combination iff compare arguments
++      and AX reg were not modified.
++   b) sahf (test %ax) and fcom/fnstsw iff compare arguments up to compare
++      insn and CC reg were not modified.
++
++   This code is partially based on code from cse_condition_code_reg () and 
++   cse_cc_succs () functions, as found in cse.c source file.  */
++
++static void
++ix86_cse_i387_compares (void)
++{
++  rtx cc_reg = gen_rtx_REG (CCmode, FLAGS_REG);
++  rtx ax_reg;
++  basic_block bb;
++
++  FOR_EACH_BB (bb)
++    {
++      rtx last_insn;
++      rtx insn;
++      rtx cc_src_insn;
++      rtx cc_src;
++      rtx ax_src_insn;
++      rtx ax_src;
++
++      bool cc_src_clobbered_pred;
++
++      edge e;
++      edge_iterator ei;
++
++      last_insn = BB_END (bb);
++      if (!JUMP_P (last_insn))
++      continue;
++
++      /* Find CC setting insn.  */
++      if (! reg_referenced_p (cc_reg, PATTERN (last_insn)))
++      continue;
++
++      cc_src_insn = NULL_RTX;
++      cc_src = NULL_RTX;
++      for (insn = PREV_INSN (last_insn);
++         insn && insn != PREV_INSN (BB_HEAD (bb));
++         insn = PREV_INSN (insn))
++      {
++        rtx set;
++
++        if (! INSN_P (insn))
++          continue;
++
++        set = single_set (insn);
++        if (set
++            && REG_P (SET_DEST (set))
++            && REGNO (SET_DEST (set)) == REGNO (cc_reg))
++          {
++            cc_src_insn = insn;
++            cc_src = SET_SRC (set);
++            break;
++          }
++        else if (reg_set_p (cc_reg, insn))
++          break;
++      }
++
++      if (! cc_src_insn)
++      continue;
++
++      /* Check if argument to CC setting insn (AX reg) has been
++       modified between CC setting insn and jump insn.  */
++      cc_src_clobbered_pred
++      = modified_between_p (cc_src, cc_src_insn, NEXT_INSN (last_insn))
++      ? true : false;
++
++      /* Find AX setting insn.  */
++      ax_reg = gen_rtx_REG (HImode, 0);
++
++      if (! reg_referenced_p (ax_reg, PATTERN (cc_src_insn)))
++      continue;
++
++      ax_src_insn = NULL_RTX;
++      ax_src = NULL_RTX;
++      for (insn = PREV_INSN (cc_src_insn);
++         insn && insn != PREV_INSN (BB_HEAD (bb));
++         insn = PREV_INSN (insn))
++      {
++        rtx set;
++
++        if (! INSN_P (insn))
++          continue;
++
++        set = single_set (insn);
++        if (set
++            && REG_P (SET_DEST (set))
++            && REGNO (SET_DEST (set)) == REGNO (ax_reg))
++          {
++            ax_src_insn = insn;
++            ax_src = SET_SRC (set);
++            break;
++          }
++        else if (reg_set_p (ax_reg, insn))
++          break;
++      }
++
++      if (! ax_src_insn)
++      continue;
++
++      if (! (GET_CODE (ax_src) == UNSPEC
++           && XINT (ax_src, 1) == UNSPEC_FNSTSW))
++      continue;
++
++      /* Leave this BB if input arguments to AX setting insn (compare)
++       have been modified between compare and jump insn.  */
++      if (modified_between_p (ax_src, ax_src_insn, NEXT_INSN (last_insn)))
++      continue;
++
++      /* FP compare sequence has been found. Check successor blocks
++       for redundant insns.  */
++      FOR_EACH_EDGE (e, ei, bb->succs)
++      {
++        rtx insn;
++        rtx end;
++
++        rtx delete_cc_src_insn = NULL_RTX;
++        rtx delete_ax_src_insn = NULL_RTX;
++        rtx maybe_delete_ax_src_insn = NULL_RTX;
++
++        bool cc_src_clobbered;
++        bool cc_reg_clobbered;
++
++        if (e->flags & EDGE_COMPLEX)
++          continue;
++
++        if (EDGE_COUNT (e->dest->preds) != 1
++            || e->dest == EXIT_BLOCK_PTR)
++          continue;
++
++        end = NEXT_INSN (BB_END (e->dest));
++
++        cc_src_clobbered = cc_src_clobbered_pred;
++        cc_reg_clobbered = false;
++
++        for (insn = BB_HEAD (e->dest); insn != end; insn = NEXT_INSN (insn))
++          {
++            rtx set;
++
++            if (! INSN_P (insn))
++              continue;
++
++            /* If compare arguments are modified, we have to
++               stop looking for a compare which uses it.  */
++            if (modified_in_p (ax_src, insn)
++                && maybe_delete_ax_src_insn == NULL_RTX)
++              break;
++
++            set = single_set (insn);
++
++            /* A compare insn can be deleted if it sets AX_REG
++               from AX_SRC and where CC_SRC is not clobbered yet. */
++            if (set
++                && REG_P (SET_DEST (set))
++                && REGNO (SET_DEST (set)) == REGNO (ax_reg)
++                && rtx_equal_p (ax_src, SET_SRC (set)))
++              {
++                maybe_delete_ax_src_insn = insn;
++                if (!cc_src_clobbered)
++                  {
++                    delete_ax_src_insn = insn;
++                    continue;
++                  }
++              }
++
++            /* A CC setting insn can be deleted if it sets
++               CC_REG from CC_SRC, and CC is not clobbered yet.
++               In this case, compare insn should also be deleted.  */
++            if (set
++                && REG_P (SET_DEST (set))
++                && REGNO (SET_DEST (set)) == REGNO (cc_reg)
++                && rtx_equal_p (cc_src, SET_SRC (set))
++                && !cc_reg_clobbered
++                /* There should be a compare insn present in front.  */
++                && maybe_delete_ax_src_insn != NULL_RTX)
++              {
++                delete_ax_src_insn = maybe_delete_ax_src_insn;
++                delete_cc_src_insn = insn;
++                break;
++              }
++
++            if (modified_in_p (cc_src, insn))
++              cc_src_clobbered = true;
++
++            if (modified_in_p (cc_reg, insn))
++              cc_reg_clobbered = true;
++
++            /* No usable register remains unclobbered.  */
++            if (cc_src_clobbered && cc_reg_clobbered)
++              break;
++          }
++
++        /* Delete comparison.  */
++        if (delete_ax_src_insn)
++          {
++            gcc_assert (maybe_delete_ax_src_insn != NULL_RTX);
++            delete_insn (delete_ax_src_insn);
++          }
++
++        /* Delete CC setting instruction.  */
++        if (delete_cc_src_insn)
++          delete_insn (delete_cc_src_insn);
++      }
++    }
++}
++
++/* Implement machine specific post-reload optimizations. */
++static void
++ix86_postreload (void)
++{
++  if (TARGET_80387 && !TARGET_CMOVE &&
++      !flag_trapping_math && flag_expensive_optimizations)
++    ix86_cse_i387_compares ();
++}
++
+ /* AMD K8 core mispredicts jumps when there are more than 3 jumps in 16 byte
+    window.  */
+--- gcc/gcc/doc/tm.texi        12 Oct 2005 20:54:49 -0000      1.447
++++ gcc/gcc/doc/tm.texi        21 Oct 2005 11:29:35 -0000
+@@ -9300,6 +9300,15 @@ added to the @code{struct ce_if_block} s
+ by the @code{IFCVT_INIT_EXTRA_FIELDS} macro.
+ @end defmac
++@deftypefn {Target Hook} void TARGET_MACHINE_DEPENDENT_AFTER_RELOAD ()
++If non-null, this hook performs a target-specific pass over the
++instruction stream.  The compiler will run it at all optimization levels,
++after instructions have been split in flow2 pass.
++
++You need not implement the hook if it has nothing to do.  The default
++definition is null.
++@end deftypefn
++
+ @deftypefn {Target Hook} void TARGET_MACHINE_DEPENDENT_REORG ()
+ If non-null, this hook performs a target-specific pass over the
+ instruction stream.  The compiler will run it at all optimization levels,
diff --git a/gcc4-pr19505.patch b/gcc4-pr19505.patch
new file mode 100644 (file)
index 0000000..3d6194a
--- /dev/null
@@ -0,0 +1,32 @@
+The problem here is that have two basic block forwarders which go to the
+same basic block but destination of two different eh regions.  We cannot
+forward both of these basic blocks to that other basic block.
+
+The way I fixed the issue is to make sure that if we removing
+a forwarder block which is coming in from a EH edge, make sure
+that the destination basic block have only one single predecessor.
+Yes this is too strong but there is no simple way to check if a basic
+block is the destination of a different eh region.
+
+--- gcc/gcc/tree-cfgcleanup.c  19 Aug 2005 18:52:55 -0000      2.7
++++ gcc/gcc/tree-cfgcleanup.c  24 Sep 2005 23:30:54 -0000
+@@ -392,7 +392,18 @@ remove_forwarder_block (basic_block bb, 
+           return false;
+       }
+     }
+-
++  /* Check to make sure that we can remove a forwarder block for eh edges.  */
++  FOR_EACH_EDGE (e, ei, bb->preds)
++    {
++      /* This check is too strong, we should also be checking eh regions
++         but this is much harder.  */
++      if (e->flags & EDGE_EH)
++        {
++        if (!single_pred_p (dest))
++          return false;
++      }
++    }
++  
+   /* Redirect the edges.  */
+   for (ei = ei_start (bb->preds); (e = ei_safe_edge (ei)); )
+     {
diff --git a/gcc4-pr19664_gnu_internal.patch b/gcc4-pr19664_gnu_internal.patch
new file mode 100644 (file)
index 0000000..c42438e
--- /dev/null
@@ -0,0 +1,256 @@
+2005-10-31  Benjamin Kosnik  <bkoz@redhat.com>
+
+       * src/mt_allocator.cc (__gnu_internal): Make hidden.
+       * src/pool_allocator.cc: Same.
+       * src/locale_init.cc (__gnu_internal): Same.
+       * src/locale.cc (__gnu_internal): Same.
+       * src/ios_init.cc (__gnu_internal): Same.
+       * src/globals_io.cc: Same.
+       * src/globals_locale.cc (__gnu_internal): Same.
+       * src/debug.cc (__gnu_internal): Same.
+       * src/ext-inst.cc (__gnu_internal): Same.
+
+*** gcc/libstdc++-v3/src/debug.cc      9 Sep 2005 10:14:33 -0000       1.15
+--- gcc/libstdc++-v3/src/debug.cc      28 Oct 2005 00:44:54 -0000
+*************** using namespace std;
+*** 41,47 ****
+--- 41,51 ----
+  
+  namespace __gnu_internal
+  {
++ #pragma GCC visibility push(hidden)
++ 
+    static __glibcxx_mutex_define_initialized(iterator_base_mutex);
++ 
++ #pragma GCC visibility pop
+  } // namespace __gnu_internal
+  
+  namespace __gnu_debug
+*** gcc/libstdc++-v3/src/ext-inst.cc   17 Aug 2005 02:14:21 -0000      1.8
+--- gcc/libstdc++-v3/src/ext-inst.cc   28 Oct 2005 00:44:54 -0000
+***************
+*** 1,6 ****
+  // Explicit instantiation file.
+  
+! // Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
+  //
+  // This file is part of the GNU ISO C++ Library.  This library is free
+  // software; you can redistribute it and/or modify it under the
+--- 1,6 ----
+  // Explicit instantiation file.
+  
+! // Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
+  //
+  // This file is part of the GNU ISO C++ Library.  This library is free
+  // software; you can redistribute it and/or modify it under the
+***************
+*** 36,42 ****
+--- 36,46 ----
+  
+  namespace __gnu_internal
+  {
++ #pragma GCC visibility push(hidden)
++ 
+    const int min_len = __gnu_cxx::_Rope_constants::_S_max_rope_depth + 1;
++ 
++ #pragma GCC visibility pop
+  }
+  
+  namespace __gnu_cxx
+*** gcc/libstdc++-v3/src/globals_io.cc 17 Aug 2005 02:14:22 -0000      1.3
+--- gcc/libstdc++-v3/src/globals_io.cc 28 Oct 2005 00:44:54 -0000
+***************
+*** 1,4 ****
+! // Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+  //
+  // This file is part of the GNU ISO C++ Library.  This library is free
+  // software; you can redistribute it and/or modify it under the
+--- 1,4 ----
+! // Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+  //
+  // This file is part of the GNU ISO C++ Library.  This library is free
+  // software; you can redistribute it and/or modify it under the
+*************** namespace std
+*** 76,81 ****
+--- 76,83 ----
+  
+  namespace __gnu_internal
+  {
++ #pragma GCC visibility push(hidden)
++ 
+    using namespace std;
+    using namespace __gnu_cxx;
+  
+*************** namespace __gnu_internal
+*** 126,129 ****
+--- 128,133 ----
+    _GLIBCXX_mutex_address_init ()
+    { __GTHREAD_MUTEX_INIT_FUNCTION (_GLIBCXX_mutex_address); }
+  #endif
++ 
++ #pragma GCC visibility pop
+  } // namespace __gnu_internal
+*** gcc/libstdc++-v3/src/globals_locale.cc     17 Aug 2005 02:14:22 -0000      1.4
+--- gcc/libstdc++-v3/src/globals_locale.cc     28 Oct 2005 00:44:54 -0000
+***************
+*** 1,4 ****
+! // Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+  //
+  // This file is part of the GNU ISO C++ Library.  This library is free
+  // software; you can redistribute it and/or modify it under the
+--- 1,4 ----
+! // Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+  //
+  // This file is part of the GNU ISO C++ Library.  This library is free
+  // software; you can redistribute it and/or modify it under the
+***************
+*** 45,50 ****
+--- 45,52 ----
+  
+  namespace __gnu_internal
+  {
++ #pragma GCC visibility push(hidden)
++ 
+    using namespace std;
+  
+    typedef char fake_locale_Impl[sizeof(locale::_Impl)]
+*************** namespace __gnu_internal
+*** 207,210 ****
+--- 209,214 ----
+    __attribute__ ((aligned(__alignof__(std::__timepunct_cache<wchar_t>))));
+    fake_time_cache_w timepunct_cache_w;
+  #endif
++ 
++ #pragma GCC visibility pop
+  } // namespace __gnu_internal
+*** gcc/libstdc++-v3/src/ios_init.cc   17 Aug 2005 02:14:22 -0000      1.8
+--- gcc/libstdc++-v3/src/ios_init.cc   28 Oct 2005 00:44:54 -0000
+***************
+*** 1,6 ****
+  // Iostreams base classes -*- C++ -*-
+  
+! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+  // Free Software Foundation, Inc.
+  //
+  // This file is part of the GNU ISO C++ Library.  This library is free
+--- 1,6 ----
+  // Iostreams base classes -*- C++ -*-
+  
+! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+  // Free Software Foundation, Inc.
+  //
+  // This file is part of the GNU ISO C++ Library.  This library is free
+***************
+*** 42,47 ****
+--- 42,49 ----
+  
+  namespace __gnu_internal
+  {
++ #pragma GCC visibility push(hidden)
++ 
+    using namespace __gnu_cxx;
+  
+    // Extern declarations for global objects in src/globals.cc.
+*************** namespace __gnu_internal
+*** 62,67 ****
+--- 64,71 ----
+    extern stdio_filebuf<wchar_t> buf_wcin;
+    extern stdio_filebuf<wchar_t> buf_wcerr;
+  #endif
++ 
++ #pragma GCC visibility pop
+  } // namespace __gnu_internal
+  
+  namespace std 
+*** gcc/libstdc++-v3/src/locale.cc     11 Oct 2005 06:19:13 -0000      1.112
+--- gcc/libstdc++-v3/src/locale.cc     28 Oct 2005 00:44:54 -0000
+***************
+*** 1,4 ****
+! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+  // Free Software Foundation, Inc.
+  //
+  // This file is part of the GNU ISO C++ Library.  This library is free
+--- 1,4 ----
+! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+  // Free Software Foundation, Inc.
+  //
+  // This file is part of the GNU ISO C++ Library.  This library is free
+***************
+*** 37,44 ****
+--- 37,48 ----
+  
+  namespace __gnu_internal
+  {
++ #pragma GCC visibility push(hidden)
++ 
+    // Mutex object for cache access
+    static __glibcxx_mutex_define_initialized(locale_cache_mutex);
++ 
++ #pragma GCC visibility pop
+  }
+  
+  namespace std 
+*** gcc/libstdc++-v3/src/locale_init.cc        9 Sep 2005 10:14:34 -0000       1.17
+--- gcc/libstdc++-v3/src/locale_init.cc        28 Oct 2005 00:44:54 -0000
+***************
+*** 37,42 ****
+--- 37,44 ----
+  
+  namespace __gnu_internal
+  {
++ #pragma GCC visibility push(hidden)
++ 
+    // Defined in globals.cc.
+    extern std::locale                 c_locale;
+    extern std::locale::_Impl  c_locale_impl;
+*************** namespace __gnu_internal
+*** 91,96 ****
+--- 93,100 ----
+  
+    // Mutex object for locale initialization.
+    static __glibcxx_mutex_define_initialized(locale_mutex);
++ 
++ #pragma GCC visibility pop
+  } // namespace __gnu_internal
+  
+  namespace std 
+*** gcc/libstdc++-v3/src/mt_allocator.cc       12 Sep 2005 04:49:10 -0000      1.13
+--- gcc/libstdc++-v3/src/mt_allocator.cc       28 Oct 2005 00:44:54 -0000
+***************
+*** 37,42 ****
+--- 37,44 ----
+  
+  namespace __gnu_internal
+  {
++ #pragma GCC visibility push(hidden)
++ 
+  #ifdef __GTHREADS
+    struct __freelist
+    {
+*************** namespace __gnu_internal
+*** 74,79 ****
+--- 76,83 ----
+      freelist._M_thread_freelist = __tr;
+    }
+  #endif
++ 
++ #pragma GCC visibility pop
+  }
+  
+  namespace __gnu_cxx
+*** gcc/libstdc++-v3/src/pool_allocator.cc     9 Sep 2005 10:14:34 -0000       1.6
+--- gcc/libstdc++-v3/src/pool_allocator.cc     28 Oct 2005 00:44:54 -0000
+***************
+*** 37,43 ****
+--- 37,47 ----
+  
+  namespace __gnu_internal
+  {
++ #pragma GCC visibility push(hidden)
++ 
+    static __glibcxx_mutex_define_initialized(palloc_init_mutex);
++ 
++ #pragma GCC visibility pop
+  }
+  
+  namespace __gnu_cxx
diff --git a/gcc4-pr19664_libstdc++.patch b/gcc4-pr19664_libstdc++.patch
new file mode 100644 (file)
index 0000000..3bb3391
--- /dev/null
@@ -0,0 +1,1717 @@
+--- gcc/libstdc++-v3/include/ext/algorithm.vis1~       2005-10-31 21:15:57.000000000 +0100
++++ gcc/libstdc++-v3/include/ext/algorithm     2005-11-03 10:28:32.000000000 +0100
+@@ -1,6 +1,6 @@
+ // Algorithm extensions -*- C++ -*-
+-// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
++// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -62,6 +62,7 @@
+ #define _EXT_ALGORITHM 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <algorithm>
+@@ -523,4 +524,6 @@
+     }
+ } // namespace __gnu_cxx
++#pragma GCC visibility pop
++
+ #endif /* _EXT_ALGORITHM */
+--- gcc/libstdc++-v3/include/ext/array_allocator.h.vis1~       2005-10-31 21:15:57.000000000 +0100
++++ gcc/libstdc++-v3/include/ext/array_allocator.h     2005-11-03 10:28:32.000000000 +0100
+@@ -34,6 +34,8 @@
+ #ifndef _ARRAY_ALLOCATOR_H
+ #define _ARRAY_ALLOCATOR_H 1
++#pragma GCC visibility push(default)
++
+ #include <cstddef>
+ #include <new>
+ #include <bits/functexcept.h>
+@@ -142,4 +144,6 @@
+     { return false; }
+ } // namespace __gnu_cxx
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/ext/bitmap_allocator.h.vis1~      2005-10-31 21:15:57.000000000 +0100
++++ gcc/libstdc++-v3/include/ext/bitmap_allocator.h    2005-11-03 10:28:32.000000000 +0100
+@@ -34,6 +34,8 @@
+ #ifndef _BITMAP_ALLOCATOR_H
+ #define _BITMAP_ALLOCATOR_H 1
++#pragma GCC visibility push(default)
++
+ // For std::size_t, and ptrdiff_t.
+ #include <cstddef>
+@@ -1289,6 +1291,8 @@
+ }
++#pragma GCC visibility pop
++
+ #endif 
+ //  LocalWords:  namespace GTHREADS bool const gthread endif Mutex mutex
+--- gcc/libstdc++-v3/include/ext/debug_allocator.h.vis1~       2005-10-31 21:15:57.000000000 +0100
++++ gcc/libstdc++-v3/include/ext/debug_allocator.h     2005-11-03 10:28:32.000000000 +0100
+@@ -48,6 +48,8 @@
+ #ifndef _DEBUG_ALLOCATOR_H
+ #define _DEBUG_ALLOCATOR_H 1
++#pragma GCC visibility push(default)
++
+ #include <stdexcept>
+ namespace __gnu_cxx
+@@ -122,4 +124,6 @@
+     };
+ } // namespace __gnu_cxx
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/ext/functional.vis1~      2005-10-31 21:15:57.000000000 +0100
++++ gcc/libstdc++-v3/include/ext/functional    2005-11-03 10:28:32.000000000 +0100
+@@ -1,6 +1,6 @@
+ // Functional extensions -*- C++ -*-
+-// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
++// Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -62,6 +62,7 @@
+ #define _EXT_FUNCTIONAL 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <functional>
+@@ -421,5 +422,8 @@
+     mem_fun1_ref(_Ret (_Tp::*__f)(_Arg) const)
+     { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }
+ } // namespace __gnu_cxx
++
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/ext/hash_map.vis1~        2005-10-31 21:15:57.000000000 +0100
++++ gcc/libstdc++-v3/include/ext/hash_map      2005-11-03 10:30:29.000000000 +0100
+@@ -61,6 +61,8 @@
+ #ifndef _HASH_MAP
+ #define _HASH_MAP 1
++#pragma GCC visibility push(default)
++
+ #include <ext/hashtable.h>
+ #include <bits/concept_check.h>
+@@ -622,4 +624,6 @@
+ # include <debug/hash_map>
+ #endif
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/ext/hash_set.vis1~        2005-10-31 21:15:57.000000000 +0100
++++ gcc/libstdc++-v3/include/ext/hash_set      2005-11-03 10:30:57.000000000 +0100
+@@ -61,6 +61,8 @@
+ #ifndef _HASH_SET
+ #define _HASH_SET 1
++#pragma GCC visibility push(default)
++
+ #include <ext/hashtable.h>
+ #include <bits/concept_check.h>
+@@ -588,4 +590,6 @@
+ # include <debug/hash_set>
+ #endif
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/ext/iterator.vis1~        2005-10-31 21:15:57.000000000 +0100
++++ gcc/libstdc++-v3/include/ext/iterator      2005-11-03 10:28:34.000000000 +0100
+@@ -1,6 +1,6 @@
+ // HP/SGI iterator extensions -*- C++ -*-
+-// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
++// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -62,6 +62,7 @@
+ #define _EXT_ITERATOR 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/concept_check.h>
+ #include <iterator>
+@@ -113,5 +114,7 @@
+     }
+ } // namespace __gnu_cxx
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/ext/malloc_allocator.h.vis1~      2005-10-31 21:15:57.000000000 +0100
++++ gcc/libstdc++-v3/include/ext/malloc_allocator.h    2005-11-03 10:28:34.000000000 +0100
+@@ -1,6 +1,7 @@
+ // Allocator that wraps "C" malloc -*- C++ -*-
+-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
++// Copyright (C) 2001, 2002, 2003, 2004, 2005
++// Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -34,6 +35,8 @@
+ #ifndef _MALLOC_ALLOCATOR_H
+ #define _MALLOC_ALLOCATOR_H 1
++#pragma GCC visibility push(default)
++
+ #include <cstdlib>
+ #include <new>
+ #include <bits/functexcept.h>
+@@ -122,4 +125,6 @@
+     { return false; }
+ } // namespace __gnu_cxx
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/ext/memory.vis1~  2005-10-31 21:15:57.000000000 +0100
++++ gcc/libstdc++-v3/include/ext/memory        2005-11-03 10:28:34.000000000 +0100
+@@ -1,6 +1,6 @@
+ // Memory extensions -*- C++ -*-
+-// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
++// Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -62,6 +62,7 @@
+ #define _EXT_MEMORY 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <memory>
+ #include <bits/stl_tempbuf.h>
+@@ -194,5 +195,7 @@
+     };
+ } // namespace __gnu_cxx
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/ext/mt_allocator.h.vis1~  2005-10-31 21:15:57.000000000 +0100
++++ gcc/libstdc++-v3/include/ext/mt_allocator.h        2005-11-03 10:28:34.000000000 +0100
+@@ -34,6 +34,8 @@
+ #ifndef _MT_ALLOCATOR_H
+ #define _MT_ALLOCATOR_H 1
++#pragma GCC visibility push(default)
++
+ #include <new>
+ #include <cstdlib>
+ #include <bits/functexcept.h>
+@@ -731,4 +733,6 @@
+ #undef __thread_default
+ } // namespace __gnu_cxx
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/ext/new_allocator.h.vis1~ 2005-10-31 21:15:57.000000000 +0100
++++ gcc/libstdc++-v3/include/ext/new_allocator.h       2005-11-03 10:28:34.000000000 +0100
+@@ -1,6 +1,6 @@
+ // Allocator that wraps operator new -*- C++ -*-
+-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
++// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -34,6 +34,8 @@
+ #ifndef _NEW_ALLOCATOR_H
+ #define _NEW_ALLOCATOR_H 1
++#pragma GCC visibility push(default)
++
+ #include <new>
+ #include <bits/functexcept.h>
+@@ -118,4 +120,6 @@
+     { return false; }
+ } // namespace __gnu_cxx
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/ext/numeric.vis1~ 2005-10-31 21:15:57.000000000 +0100
++++ gcc/libstdc++-v3/include/ext/numeric       2005-11-03 10:28:34.000000000 +0100
+@@ -1,6 +1,6 @@
+ // Numeric extensions -*- C++ -*-
+-// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
++// Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -62,6 +62,7 @@
+ #define _EXT_NUMERIC 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/concept_check.h>
+ #include <numeric>
+@@ -146,5 +147,7 @@
+     }
+ } // namespace __gnu_cxx
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/ext/pod_char_traits.h.vis1~       2005-10-31 21:15:57.000000000 +0100
++++ gcc/libstdc++-v3/include/ext/pod_char_traits.h     2005-11-03 10:28:34.000000000 +0100
+@@ -37,6 +37,8 @@
+ #ifndef _POD_CHAR_TRAITS_H
+ #define _POD_CHAR_TRAITS_H 1
++#pragma GCC visibility push(default)
++
+ #include <string>
+ namespace __gnu_cxx
+@@ -182,4 +184,6 @@
+     };
+ }
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/ext/pool_allocator.h.vis1~        2005-10-31 21:15:57.000000000 +0100
++++ gcc/libstdc++-v3/include/ext/pool_allocator.h      2005-11-03 10:28:34.000000000 +0100
+@@ -1,6 +1,6 @@
+ // Allocators -*- C++ -*-
+-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
++// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -47,6 +47,8 @@
+ #ifndef _POOL_ALLOCATOR_H
+ #define _POOL_ALLOCATOR_H 1
++#pragma GCC visibility push(default)
++
+ #include <bits/c++config.h>
+ #include <cstdlib>
+ #include <new>
+@@ -252,4 +254,6 @@
+     }
+ } // namespace __gnu_cxx
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/ext/rb_tree.vis1~ 2005-10-31 21:15:57.000000000 +0100
++++ gcc/libstdc++-v3/include/ext/rb_tree       2005-11-03 10:28:34.000000000 +0100
+@@ -1,6 +1,6 @@
+ // rb_tree extension -*- C++ -*-
+-// Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
++// Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -62,6 +62,7 @@
+ #define _RB_TREE 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/stl_tree.h>
+@@ -94,4 +95,6 @@
+     };
+ } // namespace __gnu_cxx
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/ext/rope.vis1~    2005-10-31 21:15:57.000000000 +0100
++++ gcc/libstdc++-v3/include/ext/rope  2005-11-03 10:28:34.000000000 +0100
+@@ -48,6 +48,8 @@
+ #ifndef _ROPE
+ #define _ROPE 1
++#pragma GCC visibility push(default)
++
+ #include <bits/stl_algobase.h>
+ #include <bits/stl_construct.h>
+ #include <bits/stl_uninitialized.h>
+@@ -2898,4 +2900,6 @@
+ # include <ext/ropeimpl.h>
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/ext/slist.vis1~   2005-10-31 21:15:57.000000000 +0100
++++ gcc/libstdc++-v3/include/ext/slist 2005-11-03 10:28:34.000000000 +0100
+@@ -49,6 +49,8 @@
+ #ifndef _SLIST
+ #define _SLIST 1
++#pragma GCC visibility push(default)
++
+ #include <bits/stl_algobase.h>
+ #include <bits/allocator.h>
+ #include <bits/stl_construct.h>
+@@ -1076,4 +1078,7 @@
+ };
+ } // namespace std
++
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/ext/stdio_filebuf.h.vis1~ 2005-10-31 21:15:57.000000000 +0100
++++ gcc/libstdc++-v3/include/ext/stdio_filebuf.h       2005-11-03 10:28:34.000000000 +0100
+@@ -1,6 +1,6 @@
+ // File descriptor layer for filebuf -*- C++ -*-
+-// Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
++// Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -35,6 +35,7 @@
+ #define _STDIO_FILEBUF_H 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <fstream>
+@@ -158,4 +159,6 @@
+     }
+ } // namespace __gnu_cxx
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/ext/stdio_sync_filebuf.h.vis1~    2005-10-31 21:15:57.000000000 +0100
++++ gcc/libstdc++-v3/include/ext/stdio_sync_filebuf.h  2005-11-03 10:28:34.000000000 +0100
+@@ -1,6 +1,6 @@
+ // Iostreams wrapper for stdio FILE* -*- C++ -*-
+-// Copyright (C) 2003, 2004 Free Software Foundation, Inc.
++// Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -35,6 +35,7 @@
+ #define _STDIO_SYNC_FILEBUF_H 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <streambuf>
+ #include <unistd.h>
+@@ -279,4 +280,6 @@
+ #endif
+ } // namespace __gnu_cxx
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/debug/bitset.vis1~        2005-10-31 21:16:05.000000000 +0100
++++ gcc/libstdc++-v3/include/debug/bitset      2005-11-03 10:27:12.000000000 +0100
+@@ -31,6 +31,8 @@
+ #ifndef _GLIBCXX_DEBUG_BITSET
+ #define _GLIBCXX_DEBUG_BITSET
++#pragma GCC visibility push(default)
++
+ #include <bitset>
+ #include <debug/safe_sequence.h>
+ #include <debug/safe_iterator.h>
+@@ -318,4 +320,6 @@
+     { return __os << __x._M_base(); }
+ } // namespace __gnu_debug_def
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/debug/deque.vis1~ 2005-10-31 21:16:05.000000000 +0100
++++ gcc/libstdc++-v3/include/debug/deque       2005-11-03 10:28:26.000000000 +0100
+@@ -31,6 +31,8 @@
+ #ifndef _GLIBCXX_DEBUG_DEQUE
+ #define _GLIBCXX_DEBUG_DEQUE 1
++#pragma GCC visibility push(default)
++
+ #include <deque>
+ #include <debug/safe_sequence.h>
+ #include <debug/safe_iterator.h>
+@@ -383,4 +385,6 @@
+     { __lhs.swap(__rhs); }
+ } // namespace __gnu_debug_def
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/debug/hash_map.vis1~      2005-10-31 21:16:05.000000000 +0100
++++ gcc/libstdc++-v3/include/debug/hash_map    2005-11-03 10:31:55.000000000 +0100
+@@ -31,8 +31,12 @@
+ #ifndef _GLIBCXX_DEBUG_HASH_MAP
+ #define _GLIBCXX_DEBUG_HASH_MAP 1
++#pragma GCC visibility push(default)
++
+ #include <ext/hash_map>
+ #include <debug/hash_map.h>
+ #include <debug/hash_multimap.h>
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/debug/hash_set.vis1~      2005-10-31 21:16:05.000000000 +0100
++++ gcc/libstdc++-v3/include/debug/hash_set    2005-11-03 10:32:22.000000000 +0100
+@@ -31,8 +31,12 @@
+ #ifndef _GLIBCXX_DEBUG_HASH_SET
+ #define _GLIBCXX_DEBUG_HASH_SET 1
++#pragma GCC visibility push(default)
++
+ #include <ext/hash_set>
+ #include <debug/hash_set.h>
+ #include <debug/hash_multiset.h>
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/debug/list.vis1~  2005-10-31 21:16:05.000000000 +0100
++++ gcc/libstdc++-v3/include/debug/list        2005-11-03 10:28:28.000000000 +0100
+@@ -31,6 +31,8 @@
+ #ifndef _GLIBCXX_DEBUG_LIST
+ #define _GLIBCXX_DEBUG_LIST 1
++#pragma GCC visibility push(default)
++
+ #include <list>
+ #include <bits/stl_algo.h>
+ #include <debug/safe_sequence.h>
+@@ -502,4 +504,6 @@
+     { __lhs.swap(__rhs); }
+ } // namespace __gnu_debug_def
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/debug/map.vis1~   2005-10-31 21:16:05.000000000 +0100
++++ gcc/libstdc++-v3/include/debug/map 2005-11-03 10:28:28.000000000 +0100
+@@ -1,6 +1,6 @@
+ // Debugging map/multimap implementation -*- C++ -*-
+-// Copyright (C) 2003
++// Copyright (C) 2003, 2005
+ // Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+@@ -31,8 +31,12 @@
+ #ifndef _GLIBCXX_DEBUG_MAP
+ #define _GLIBCXX_DEBUG_MAP 1
++#pragma GCC visibility push(default)
++
+ #include <map>
+ #include <debug/map.h>
+ #include <debug/multimap.h>
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/debug/set.vis1~   2005-10-31 21:16:05.000000000 +0100
++++ gcc/libstdc++-v3/include/debug/set 2005-11-03 10:28:28.000000000 +0100
+@@ -1,6 +1,6 @@
+ // Debugging set/multiset implementation -*- C++ -*-
+-// Copyright (C) 2003
++// Copyright (C) 2003, 2005
+ // Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+@@ -31,8 +31,12 @@
+ #ifndef _GLIBCXX_DEBUG_SET
+ #define _GLIBCXX_DEBUG_SET 1
++#pragma GCC visibility push(default)
++
+ #include <set>
+ #include <debug/set.h>
+ #include <debug/multiset.h>
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/debug/string.vis1~        2005-10-31 21:16:05.000000000 +0100
++++ gcc/libstdc++-v3/include/debug/string      2005-11-03 10:28:30.000000000 +0100
+@@ -31,6 +31,8 @@
+ #ifndef _GLIBCXX_DEBUG_STRING
+ #define _GLIBCXX_DEBUG_STRING 1
++#pragma GCC visibility push(default)
++
+ #include <string>
+ #include <debug/safe_sequence.h>
+ #include <debug/safe_iterator.h>
+@@ -1015,4 +1017,6 @@
+ } // namespace __gnu_debug
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/debug/vector.vis1~        2005-10-31 21:16:05.000000000 +0100
++++ gcc/libstdc++-v3/include/debug/vector      2005-11-03 10:28:32.000000000 +0100
+@@ -31,6 +31,8 @@
+ #ifndef _GLIBCXX_DEBUG_VECTOR
+ #define _GLIBCXX_DEBUG_VECTOR 1
++#pragma GCC visibility push(default)
++
+ #include <vector>
+ #include <utility>
+ #include <debug/safe_sequence.h>
+@@ -413,4 +415,6 @@
+     { __lhs.swap(__rhs); }
+ } // namespace __gnu_debug_def
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/tr1/array.vis1~   2005-10-31 21:16:08.000000000 +0100
++++ gcc/libstdc++-v3/include/tr1/array 2005-11-03 10:28:38.000000000 +0100
+@@ -34,6 +34,8 @@
+ #ifndef _ARRAY
+ #define _ARRAY 1
++#pragma GCC visibility push(default)
++
+ #include <new>
+ #include <iterator>
+ #include <algorithm>
+@@ -231,4 +233,6 @@
+ } // namespace std::tr1
+ }
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/tr1/functional.vis1~      2005-10-31 21:16:08.000000000 +0100
++++ gcc/libstdc++-v3/include/tr1/functional    2005-11-03 10:28:38.000000000 +0100
+@@ -36,6 +36,8 @@
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
++
+ #include "../functional"
+ #include <typeinfo>
+ #include <tr1/type_traits>
+@@ -1270,4 +1272,6 @@
+ }
+ }
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/tr1/memory.vis1~  2005-10-31 21:16:08.000000000 +0100
++++ gcc/libstdc++-v3/include/tr1/memory        2005-11-03 10:28:38.000000000 +0100
+@@ -30,6 +30,8 @@
+ #ifndef _TR1_MEMORY
+ #define _TR1_MEMORY 1
++#pragma GCC visibility push(default)
++
+ #include "../memory"
+ #include <functional>       // std::less
+ #include <exception>        // std::exception
+@@ -48,4 +50,6 @@
+ #include <tr1/boost_shared_ptr.h>
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/tr1/tuple.vis1~   2005-10-31 21:16:08.000000000 +0100
++++ gcc/libstdc++-v3/include/tr1/tuple 2005-11-03 10:28:38.000000000 +0100
+@@ -36,6 +36,8 @@
+ #ifndef _TUPLE
+ #define _TUPLE 1
++#pragma GCC visibility push(default)
++
+ #include <tr1/utility>
+ #include <tr1/ref_fwd.h>
+@@ -272,4 +274,6 @@
+ #include <tr1/functional>
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/tr1/type_traits.vis1~     2005-10-31 21:16:08.000000000 +0100
++++ gcc/libstdc++-v3/include/tr1/type_traits   2005-11-03 10:28:38.000000000 +0100
+@@ -34,6 +34,8 @@
+ #ifndef _TYPE_TRAITS
+ #define _TYPE_TRAITS 1
++#pragma GCC visibility push(default)
++
+ #include <bits/c++config.h>
+ #include <tr1/type_traits_fwd.h>
+@@ -703,4 +705,6 @@
+ }
+ }
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/tr1/unordered_map.vis1~   2005-10-31 21:16:08.000000000 +0100
++++ gcc/libstdc++-v3/include/tr1/unordered_map 2005-11-03 10:28:38.000000000 +0100
+@@ -34,6 +34,8 @@
+ #ifndef GNU_LIBSTDCXX_TR1_UNORDERED_MAP_
+ #define GNU_LIBSTDCXX_TR1_UNORDERED_MAP_
++#pragma GCC visibility push(default)
++
+ #include <tr1/hashtable>
+ #include <tr1/functional>
+ #include <tr1/functional>
+@@ -167,4 +169,6 @@
+ }
+ }
++#pragma GCC visibility pop
++
+ #endif /* GNU_LIBSTDCXX_TR1_UNORDERED_MAP_ */
+--- gcc/libstdc++-v3/include/tr1/unordered_set.vis1~   2005-10-31 21:16:08.000000000 +0100
++++ gcc/libstdc++-v3/include/tr1/unordered_set 2005-11-03 10:28:38.000000000 +0100
+@@ -34,6 +34,8 @@
+ #ifndef GNU_LIBSTDCXX_TR1_UNORDERED_SET_
+ #define GNU_LIBSTDCXX_TR1_UNORDERED_SET_
++#pragma GCC visibility push(default)
++
+ #include <tr1/hashtable>
+ #include <tr1/functional>
+ #include <memory>
+@@ -162,4 +164,6 @@
+ }
+ }
++#pragma GCC visibility pop
++
+ #endif /* GNU_LIBSTDCXX_TR1_UNORDERED_SET_ */
+--- gcc/libstdc++-v3/include/tr1/utility.vis1~ 2005-10-31 21:16:08.000000000 +0100
++++ gcc/libstdc++-v3/include/tr1/utility       2005-11-03 10:28:38.000000000 +0100
+@@ -34,6 +34,8 @@
+ #ifndef _TR1_UTILITY
+ #define _TR1_UTILITY 1
++#pragma GCC visibility push(default)
++
+ #include "../utility"
+ namespace std
+@@ -93,6 +95,8 @@
+      get(const pair<_Tp1, _Tp2>& __in)
+      { return __pair_get<_Int>::__const_get(__in); }
+ }
+-} 
++}
++
++#pragma GCC visibility pop
+ #endif
+--- gcc/libstdc++-v3/include/std/std_algorithm.h.vis1~ 2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_algorithm.h       2005-11-03 10:28:34.000000000 +0100
+@@ -1,6 +1,6 @@
+ // <algorithm> -*- C++ -*-
+-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
++// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -61,10 +61,13 @@
+ #define _GLIBCXX_ALGORITHM 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/stl_algobase.h>
+ #include <bits/stl_construct.h>
+ #include <bits/stl_uninitialized.h>
+ #include <bits/stl_algo.h>
++#pragma GCC visibility pop
++
+ #endif /* _GLIBCXX_ALGORITHM */
+--- gcc/libstdc++-v3/include/std/std_bitset.h.vis1~    2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_bitset.h  2005-11-03 10:28:34.000000000 +0100
+@@ -48,6 +48,7 @@
+ #define _GLIBCXX_BITSET 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <cstddef>     // For size_t
+ #include <cstring>     // For memset
+@@ -1300,4 +1301,6 @@
+ # include <debug/bitset>
+ #endif
++#pragma GCC visibility pop
++
+ #endif /* _GLIBCXX_BITSET */
+--- gcc/libstdc++-v3/include/std/std_complex.h.vis1~   2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_complex.h 2005-11-03 10:28:34.000000000 +0100
+@@ -43,6 +43,7 @@
+ #define _GLIBCXX_COMPLEX 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/c++config.h>
+ #include <bits/cpp_type_traits.h>
+@@ -1485,4 +1486,6 @@
+   : _M_value(__z.__rep()) { }
+ } // namespace std
++#pragma GCC visibility pop
++
+ #endif        /* _GLIBCXX_COMPLEX */
+--- gcc/libstdc++-v3/include/std/std_deque.h.vis1~     2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_deque.h   2005-11-03 10:28:34.000000000 +0100
+@@ -1,6 +1,6 @@
+ // <deque> -*- C++ -*-
+-// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
++// Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -61,6 +61,7 @@
+ #define _GLIBCXX_DEQUE 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/functexcept.h>
+ #include <bits/stl_algobase.h>
+@@ -77,4 +78,6 @@
+ # include <debug/deque>
+ #endif
++#pragma GCC visibility pop
++
+ #endif /* _GLIBCXX_DEQUE */
+--- gcc/libstdc++-v3/include/std/std_fstream.h.vis1~   2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_fstream.h 2005-11-03 10:28:34.000000000 +0100
+@@ -40,6 +40,7 @@
+ #define _GLIBCXX_FSTREAM 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <istream>
+ #include <ostream>
+@@ -782,4 +783,6 @@
+ # include <bits/fstream.tcc>
+ #endif
++#pragma GCC visibility pop
++
+ #endif /* _GLIBCXX_FSTREAM */
+--- gcc/libstdc++-v3/include/std/std_functional.h.vis1~        2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_functional.h      2005-11-03 10:28:34.000000000 +0100
+@@ -1,6 +1,6 @@
+ // <functional> -*- C++ -*-
+-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
++// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -49,9 +49,12 @@
+ #define _GLIBCXX_FUNCTIONAL 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/c++config.h>
+ #include <cstddef>
+ #include <bits/stl_function.h>
++#pragma GCC visibility pop
++
+ #endif /* _GLIBCXX_FUNCTIONAL */
+--- gcc/libstdc++-v3/include/std/std_iomanip.h.vis1~   2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_iomanip.h 2005-11-03 10:28:34.000000000 +0100
+@@ -1,6 +1,6 @@
+ // Standard stream manipulators -*- C++ -*-
+-// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003
++// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2005
+ // Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+@@ -40,6 +40,7 @@
+ #define _GLIBCXX_IOMANIP 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/c++config.h>
+ #include <istream>
+@@ -296,4 +297,6 @@
+ #endif
+ } // namespace std
++#pragma GCC visibility pop
++
+ #endif /* _GLIBCXX_IOMANIP */
+--- gcc/libstdc++-v3/include/std/std_ios.h.vis1~       2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_ios.h     2005-11-03 10:28:34.000000000 +0100
+@@ -1,6 +1,7 @@
+ // Iostreams base classes -*- C++ -*-
+-// Copyright (C) 1997, 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
++// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2005
++// Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -39,6 +40,7 @@
+ #define _GLIBCXX_IOS 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <iosfwd>
+ #include <exception>          // For ios_base::failure
+@@ -49,4 +51,6 @@
+ #include <streambuf> 
+ #include <bits/basic_ios.h>
++#pragma GCC visibility pop
++
+ #endif        /* _GLIBCXX_IOS */
+--- gcc/libstdc++-v3/include/std/std_iosfwd.h.vis1~    2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_iosfwd.h  2005-11-03 10:28:34.000000000 +0100
+@@ -1,6 +1,6 @@
+ // Forwarding declarations -*- C++ -*-
+-// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003
++// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2005
+ // Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+@@ -40,6 +40,7 @@
+ #define _GLIBCXX_IOSFWD 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/c++config.h>
+ #include <bits/c++locale.h> 
+@@ -164,4 +165,6 @@
+   /** @}  */
+ } // namespace std
++#pragma GCC visibility pop
++
+ #endif /* _GLIBCXX_IOSFWD */
+--- gcc/libstdc++-v3/include/std/std_iostream.h.vis1~  2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_iostream.h        2005-11-03 10:28:34.000000000 +0100
+@@ -1,6 +1,7 @@
+ // Standard iostream objects -*- C++ -*-
+-// Copyright (C) 1997, 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
++// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2005
++// Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -39,6 +40,7 @@
+ #define _GLIBCXX_IOSTREAM 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/c++config.h>
+ #include <ostream>
+@@ -76,4 +78,6 @@
+   static ios_base::Init __ioinit;
+ } // namespace std
++#pragma GCC visibility pop
++
+ #endif /* _GLIBCXX_IOSTREAM */
+--- gcc/libstdc++-v3/include/std/std_istream.h.vis1~   2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_istream.h 2005-11-03 10:28:35.000000000 +0100
+@@ -40,6 +40,7 @@
+ #define _GLIBCXX_ISTREAM 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <ios>
+ #include <limits> // For numeric_limits
+@@ -819,4 +820,6 @@
+ # include <bits/istream.tcc>
+ #endif
++#pragma GCC visibility pop
++
+ #endif        /* _GLIBCXX_ISTREAM */
+--- gcc/libstdc++-v3/include/std/std_iterator.h.vis1~  2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_iterator.h        2005-11-03 10:28:35.000000000 +0100
+@@ -1,6 +1,6 @@
+ // <iterator> -*- C++ -*-
+-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
++// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -61,6 +61,7 @@
+ #define _GLIBCXX_ITERATOR 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/c++config.h>
+ #include <cstddef>
+@@ -72,4 +73,6 @@
+ #include <bits/stream_iterator.h>
+ #include <bits/streambuf_iterator.h>
++#pragma GCC visibility pop
++
+ #endif /* _GLIBCXX_ITERATOR */
+--- gcc/libstdc++-v3/include/std/std_limits.h.vis1~    2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_limits.h  2005-11-03 10:28:35.000000000 +0100
+@@ -1,6 +1,7 @@
+ // The template and inlines for the -*- C++ -*- numeric_limits classes.
+-// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
++// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005
++// Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -43,6 +44,7 @@
+ #define _GLIBCXX_NUMERIC_LIMITS 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/c++config.h>
+@@ -1156,4 +1158,6 @@
+ #undef __glibcxx_digits
+ #undef __glibcxx_digits10
++#pragma GCC visibility pop
++
+ #endif // _GLIBCXX_NUMERIC_LIMITS
+--- gcc/libstdc++-v3/include/std/std_list.h.vis1~      2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_list.h    2005-11-03 10:28:35.000000000 +0100
+@@ -1,6 +1,6 @@
+ // <list> -*- C++ -*-
+-// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
++// Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -61,6 +61,7 @@
+ #define _GLIBCXX_LIST 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/functexcept.h>
+ #include <bits/stl_algobase.h>
+@@ -77,5 +78,7 @@
+ # include <debug/list>
+ #endif
++#pragma GCC visibility pop
++
+ #endif /* _GLIBCXX_LIST */
+--- gcc/libstdc++-v3/include/std/std_locale.h.vis1~    2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_locale.h  2005-11-03 10:28:35.000000000 +0100
+@@ -1,6 +1,7 @@
+ // Locale support -*- C++ -*-
+-// Copyright (C) 1997, 1998, 1999, 2002, 2003 Free Software Foundation, Inc.
++// Copyright (C) 1997, 1998, 1999, 2002, 2003, 2005
++// Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -39,10 +40,13 @@
+ #define _GLIBCXX_LOCALE       1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/localefwd.h>
+ #include <bits/locale_classes.h>
+ #include <bits/locale_facets.h>
+ #include <bits/locale_facets.tcc>
++#pragma GCC visibility pop
++
+ #endif /* _GLIBCXX_LOCALE */
+--- gcc/libstdc++-v3/include/std/std_map.h.vis1~       2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_map.h     2005-11-03 10:28:35.000000000 +0100
+@@ -1,6 +1,6 @@
+ // <map> -*- C++ -*-
+-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
++// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -61,6 +61,7 @@
+ #define _GLIBCXX_MAP 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/stl_tree.h>
+ #include <bits/stl_map.h>
+@@ -70,4 +71,6 @@
+ # include <debug/map>
+ #endif
++#pragma GCC visibility pop
++
+ #endif /* _GLIBCXX_MAP */
+--- gcc/libstdc++-v3/include/std/std_memory.h.vis1~    2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_memory.h  2005-11-03 10:28:35.000000000 +0100
+@@ -1,6 +1,6 @@
+ // <memory> -*- C++ -*-
+-// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
++// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -49,6 +49,7 @@
+ #define _GLIBCXX_MEMORY 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/stl_algobase.h>
+ #include <bits/allocator.h>
+@@ -370,4 +371,6 @@
+   };
+ } // namespace std
++#pragma GCC visibility pop
++
+ #endif /* _GLIBCXX_MEMORY */
+--- gcc/libstdc++-v3/include/std/std_numeric.h.vis1~   2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_numeric.h 2005-11-03 10:28:35.000000000 +0100
+@@ -1,6 +1,6 @@
+ // <numeric> -*- C++ -*-
+-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
++// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -61,6 +61,7 @@
+ #define _GLIBCXX_NUMERIC 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/c++config.h>
+ #include <cstddef>
+@@ -68,4 +69,6 @@
+ #include <bits/stl_function.h>
+ #include <bits/stl_numeric.h>
++#pragma GCC visibility pop
++
+ #endif /* _GLIBCXX_NUMERIC */
+--- gcc/libstdc++-v3/include/std/std_ostream.h.vis1~   2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_ostream.h 2005-11-03 10:28:35.000000000 +0100
+@@ -1,6 +1,6 @@
+ // Output streams -*- C++ -*-
+-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
++// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
+ // Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+@@ -40,6 +40,7 @@
+ #define _GLIBCXX_OSTREAM 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <ios>
+@@ -525,4 +526,6 @@
+ # include <bits/ostream.tcc>
+ #endif
++#pragma GCC visibility pop
++
+ #endif        /* _GLIBCXX_OSTREAM */
+--- gcc/libstdc++-v3/include/std/std_queue.h.vis1~     2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_queue.h   2005-11-03 10:28:35.000000000 +0100
+@@ -1,6 +1,6 @@
+ // <queue> -*- C++ -*-
+-// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
++// Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -61,6 +61,7 @@
+ #define _GLIBCXX_QUEUE 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/c++config.h>
+ #include <bits/functexcept.h>
+@@ -74,4 +75,6 @@
+ #include <vector>
+ #include <bits/stl_queue.h>
++#pragma GCC visibility pop
++
+ #endif /* _GLIBCXX_QUEUE */
+--- gcc/libstdc++-v3/include/std/std_set.h.vis1~       2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_set.h     2005-11-03 10:28:35.000000000 +0100
+@@ -1,6 +1,6 @@
+ // <set> -*- C++ -*-
+-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
++// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -61,7 +61,8 @@
+ #define _GLIBCXX_SET 1
+ #pragma GCC system_header
+-
++#pragma GCC visibility push(default)
++ 
+ #include <bits/stl_tree.h>
+ #include <bits/stl_set.h>
+ #include <bits/stl_multiset.h>
+@@ -70,4 +71,6 @@
+ # include <debug/set>
+ #endif
++#pragma GCC visibility pop
++
+ #endif /* _GLIBCXX_SET */
+--- gcc/libstdc++-v3/include/std/std_sstream.h.vis1~   2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_sstream.h 2005-11-03 10:28:36.000000000 +0100
+@@ -40,6 +40,7 @@
+ #define _GLIBCXX_SSTREAM 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <istream>
+ #include <ostream>
+@@ -614,4 +615,6 @@
+ # include <bits/sstream.tcc>
+ #endif
++#pragma GCC visibility pop
++
+ #endif /* _GLIBCXX_SSTREAM */
+--- gcc/libstdc++-v3/include/std/std_stack.h.vis1~     2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_stack.h   2005-11-03 10:28:36.000000000 +0100
+@@ -1,6 +1,6 @@
+ // <stack> -*- C++ -*-
+-// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
++// Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -61,6 +61,7 @@
+ #define _GLIBCXX_STACK 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/stl_algobase.h>
+ #include <bits/allocator.h>
+@@ -69,4 +70,6 @@
+ #include <deque>
+ #include <bits/stl_stack.h>
++#pragma GCC visibility pop
++
+ #endif /* _GLIBCXX_STACK */
+--- gcc/libstdc++-v3/include/std/std_stdexcept.h.vis1~ 2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_stdexcept.h       2005-11-03 10:28:36.000000000 +0100
+@@ -1,6 +1,6 @@
+ // Standard exception classes  -*- C++ -*-
+-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
++// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -39,6 +39,7 @@
+ #define _GLIBCXX_STDEXCEPT 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <exception>
+ #include <string>
+@@ -144,4 +145,6 @@
+   };
+ } // namespace std
++#pragma GCC visibility pop
++
+ #endif /* _GLIBCXX_STDEXCEPT */
+--- gcc/libstdc++-v3/include/std/std_streambuf.h.vis1~ 2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_streambuf.h       2005-11-03 10:28:37.000000000 +0100
+@@ -40,6 +40,7 @@
+ #define _GLIBXX_STREAMBUF 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/c++config.h>
+ #include <iosfwd>
+@@ -806,4 +807,6 @@
+ # include <bits/streambuf.tcc>
+ #endif
++#pragma GCC visibility pop
++
+ #endif /* _GLIBCXX_STREAMBUF */
+--- gcc/libstdc++-v3/include/std/std_string.h.vis1~    2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_string.h  2005-11-03 10:28:37.000000000 +0100
+@@ -40,6 +40,7 @@
+ #define _GLIBCXX_STRING       1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/c++config.h>
+ #include <bits/stringfwd.h>
+@@ -56,4 +57,6 @@
+ # include <bits/basic_string.tcc> 
+ #endif
++#pragma GCC visibility pop
++
+ #endif /* _GLIBCXX_STRING */
+--- gcc/libstdc++-v3/include/std/std_utility.h.vis1~   2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_utility.h 2005-11-03 10:28:37.000000000 +0100
+@@ -1,6 +1,6 @@
+ // <utility> -*- C++ -*-
+-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
++// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -61,9 +61,12 @@
+ #define _GLIBCXX_UTILITY 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/c++config.h>
+ #include <bits/stl_relops.h>
+ #include <bits/stl_pair.h>
++#pragma GCC visibility pop
++
+ #endif /* _GLIBCXX_UTILITY */
+--- gcc/libstdc++-v3/include/std/std_valarray.h.vis1~  2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_valarray.h        2005-11-03 10:28:37.000000000 +0100
+@@ -1,6 +1,6 @@
+ // The template and inlines for the -*- C++ -*- valarray class.
+-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004
++// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005
+ // Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+@@ -38,6 +38,7 @@
+ #define _GLIBCXX_VALARRAY 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/c++config.h>
+ #include <cstddef>
+@@ -1007,4 +1008,6 @@
+ } // namespace std
++#pragma GCC visibility pop
++
+ #endif /* _GLIBCXX_VALARRAY */
+--- gcc/libstdc++-v3/include/std/std_vector.h.vis1~    2005-10-31 21:16:10.000000000 +0100
++++ gcc/libstdc++-v3/include/std/std_vector.h  2005-11-03 10:28:37.000000000 +0100
+@@ -1,6 +1,6 @@
+ // <vector> -*- C++ -*-
+-// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
++// Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -61,6 +61,7 @@
+ #define _GLIBCXX_VECTOR 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/functexcept.h>
+ #include <bits/stl_algobase.h>
+@@ -78,5 +79,7 @@
+ # include <debug/vector>
+ #endif
++#pragma GCC visibility pop
++
+ #endif /* _GLIBCXX_VECTOR */
+--- gcc/libstdc++-v3/include/c_std/std_cassert.h.vis1~ 2005-10-31 21:16:11.000000000 +0100
++++ gcc/libstdc++-v3/include/c_std/std_cassert.h       2005-11-03 10:27:12.000000000 +0100
+@@ -45,5 +45,8 @@
+ // No include guards on this header...
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <assert.h>
++
++#pragma GCC visibility pop
+--- gcc/libstdc++-v3/include/c_std/std_cctype.h.vis1~  2005-10-31 21:16:11.000000000 +0100
++++ gcc/libstdc++-v3/include/c_std/std_cctype.h        2005-11-03 10:27:12.000000000 +0100
+@@ -46,6 +46,7 @@
+ #define _GLIBCXX_CCTYPE 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/c++config.h>
+ #include <ctype.h>
+@@ -82,4 +83,6 @@
+   using ::toupper;
+ }
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/c_std/std_cerrno.h.vis1~  2005-10-31 21:16:11.000000000 +0100
++++ gcc/libstdc++-v3/include/c_std/std_cerrno.h        2005-11-03 10:27:12.000000000 +0100
+@@ -46,6 +46,7 @@
+ #define _GLIBCXX_CERRNO 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <errno.h>
+@@ -54,4 +55,6 @@
+ #define errno errno
+ #endif
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/c_std/std_cfloat.h.vis1~  2005-10-31 21:16:11.000000000 +0100
++++ gcc/libstdc++-v3/include/c_std/std_cfloat.h        2005-11-03 10:27:12.000000000 +0100
+@@ -46,7 +46,10 @@
+ #define _GLIBCXX_CFLOAT 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <float.h>
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/c_std/std_climits.h.vis1~ 2005-10-31 21:16:11.000000000 +0100
++++ gcc/libstdc++-v3/include/c_std/std_climits.h       2005-11-03 10:27:12.000000000 +0100
+@@ -46,7 +46,9 @@
+ #define _GLIBCXX_CLIMITS 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <limits.h>
++#pragma GCC visibility pop
+ #endif
+--- gcc/libstdc++-v3/include/c_std/std_clocale.h.vis1~ 2005-10-31 21:16:11.000000000 +0100
++++ gcc/libstdc++-v3/include/c_std/std_clocale.h       2005-11-03 10:27:12.000000000 +0100
+@@ -46,6 +46,7 @@
+ #define _GLIBCXX_CLOCALE 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <locale.h>
+@@ -60,4 +61,6 @@
+   using ::localeconv;
+ }
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/c_std/std_cmath.h.vis1~   2005-10-31 21:16:11.000000000 +0100
++++ gcc/libstdc++-v3/include/c_std/std_cmath.h 2005-11-03 10:27:12.000000000 +0100
+@@ -46,6 +46,7 @@
+ #define _GLIBCXX_CMATH 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/c++config.h>
+ #include <bits/cpp_type_traits.h>
+@@ -575,4 +576,6 @@
+ # include <bits/cmath.tcc>
+ #endif
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/c_std/std_csetjmp.h.vis1~ 2005-10-31 21:16:11.000000000 +0100
++++ gcc/libstdc++-v3/include/c_std/std_csetjmp.h       2005-11-03 10:27:12.000000000 +0100
+@@ -46,6 +46,7 @@
+ #define _GLIBCXX_CSETJMP 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <setjmp.h>
+@@ -63,4 +64,6 @@
+   using ::longjmp;
+ }
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/c_std/std_csignal.h.vis1~ 2005-10-31 21:16:11.000000000 +0100
++++ gcc/libstdc++-v3/include/c_std/std_csignal.h       2005-11-03 10:27:12.000000000 +0100
+@@ -46,6 +46,7 @@
+ #define _GLIBCXX_CSIGNAL 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <signal.h>
+@@ -59,4 +60,6 @@
+   using ::raise;
+ }
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/c_std/std_cstdarg.h.vis1~ 2005-10-31 21:16:11.000000000 +0100
++++ gcc/libstdc++-v3/include/c_std/std_cstdarg.h       2005-11-03 10:27:12.000000000 +0100
+@@ -46,6 +46,7 @@
+ #define _GLIBCXX_CSTDARG 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <stdarg.h>
+@@ -59,4 +60,6 @@
+   using ::va_list;
+ }
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/c_std/std_cstddef.h.vis1~ 2005-10-31 21:16:11.000000000 +0100
++++ gcc/libstdc++-v3/include/c_std/std_cstddef.h       2005-11-03 10:27:12.000000000 +0100
+@@ -46,6 +46,7 @@
+ #define _GLIBCXX_CSTDDEF 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <stddef.h>
+@@ -55,4 +56,6 @@
+   using ::size_t;
+ }
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/c_std/std_cstdio.h.vis1~  2005-10-31 21:16:11.000000000 +0100
++++ gcc/libstdc++-v3/include/c_std/std_cstdio.h        2005-11-03 10:27:12.000000000 +0100
+@@ -46,6 +46,7 @@
+ #define _GLIBCXX_CSTDIO 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/c++config.h>
+ #include <cstddef>
+@@ -184,4 +185,6 @@
+ }
+ #endif
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/c_std/std_cstdlib.h.vis1~ 2005-10-31 21:16:11.000000000 +0100
++++ gcc/libstdc++-v3/include/c_std/std_cstdlib.h       2005-11-03 10:27:12.000000000 +0100
+@@ -46,6 +46,7 @@
+ #define _GLIBCXX_CSTDLIB 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/c++config.h>
+ #include <cstddef>
+@@ -215,4 +216,6 @@
+ }
+ #endif
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/c_std/std_cstring.h.vis1~ 2005-10-31 21:16:11.000000000 +0100
++++ gcc/libstdc++-v3/include/c_std/std_cstring.h       2005-11-03 10:27:12.000000000 +0100
+@@ -46,6 +46,7 @@
+ #define _GLIBCXX_CSTRING 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <cstddef>
+@@ -126,4 +127,6 @@
+   { return __builtin_strstr(const_cast<const char*>(__s1), __s2); }
+ }
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/c_std/std_ctime.h.vis1~   2005-10-31 21:16:11.000000000 +0100
++++ gcc/libstdc++-v3/include/c_std/std_ctime.h 2005-11-03 10:27:12.000000000 +0100
+@@ -46,6 +46,7 @@
+ #define _GLIBCXX_CTIME 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <cstddef>
+@@ -79,4 +80,6 @@
+   using ::strftime;
+ }
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/c_std/std_cwchar.h.vis1~  2005-10-31 21:16:11.000000000 +0100
++++ gcc/libstdc++-v3/include/c_std/std_cwchar.h        2005-11-03 10:27:12.000000000 +0100
+@@ -46,6 +46,7 @@
+ #define _GLIBCXX_CWCHAR 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/c++config.h>
+ #include <cstddef>
+@@ -271,4 +272,6 @@
+ #endif //_GLIBCXX_USE_WCHAR_T
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/include/c_std/std_cwctype.h.vis1~ 2005-10-31 21:16:11.000000000 +0100
++++ gcc/libstdc++-v3/include/c_std/std_cwctype.h       2005-11-03 10:27:12.000000000 +0100
+@@ -46,6 +46,7 @@
+ #define _GLIBCXX_CWCTYPE 1
+ #pragma GCC system_header
++#pragma GCC visibility push(default)
+ #include <bits/c++config.h>
+@@ -106,4 +107,6 @@
+ }
+ #endif //_GLIBCXX_USE_WCHAR_T
++#pragma GCC visibility pop
++
+ #endif
+--- gcc/libstdc++-v3/testsuite/20_util/memory/auto_ptr/assign_neg.cc.vis1~     2005-10-31 21:19:34.000000000 +0100
++++ gcc/libstdc++-v3/testsuite/20_util/memory/auto_ptr/assign_neg.cc   2005-11-03 10:28:38.000000000 +0100
+@@ -46,5 +46,5 @@
+   test01();
+   return 0;
+ }
+-// { dg-error "candidates" "" { target *-*-* } 223 } 
+-// { dg-error "std::auto_ptr" "" { target *-*-* } 353 } 
++// { dg-error "candidates" "" { target *-*-* } 224 } 
++// { dg-error "std::auto_ptr" "" { target *-*-* } 354 } 
diff --git a/gcc4-pr24419.patch b/gcc4-pr24419.patch
new file mode 100644 (file)
index 0000000..d2f6a3c
--- /dev/null
@@ -0,0 +1,183 @@
+
+       PR target/24419
+       * i386.c (pro_epilogue_adjust_stack): Add another argument to
+       indicate if memory should be clobbered or not. Adjust stack
+       pointer directly if memory shouldn't be clobbered.
+       (ix86_expand_prologue): Updated. Don't clobber member if
+       adjusting stack after registers have been saved on stack.
+       (ix86_expand_epilogue): Updated to call
+       pro_epilogue_adjust_stack with memory clobbered.
+
+       * i386.md: Don't convert stack pointer subtractions to push
+       when memory isn't clobbered if red zone is enabled.
+
+--- gcc/gcc/config/i386/i386.c 2005-10-18 17:26:40.000000000 -0700
++++ gcc/gcc/config/i386/i386.c 2005-10-18 20:35:19.000000000 -0700
+@@ -4761,22 +4761,38 @@ ix86_emit_save_regs_using_mov (rtx point
+    otherwise.  */
+ static void
+-pro_epilogue_adjust_stack (rtx dest, rtx src, rtx offset, int style)
++pro_epilogue_adjust_stack (rtx dest, rtx src, rtx offset, int style,
++                         bool clobber_memory)
+ {
+   rtx insn;
+   if (! TARGET_64BIT)
+-    insn = emit_insn (gen_pro_epilogue_adjust_stack_1 (dest, src, offset));
++    {
++      if (clobber_memory)
++      insn = emit_insn (gen_pro_epilogue_adjust_stack_1 (dest, src,
++                                                         offset));
++      else
++      insn = emit_insn (gen_addsi3 (dest, src, offset));
++    }
+   else if (x86_64_immediate_operand (offset, DImode))
+-    insn = emit_insn (gen_pro_epilogue_adjust_stack_rex64 (dest, src, offset));
++    {
++      if (clobber_memory)
++      insn = emit_insn (gen_pro_epilogue_adjust_stack_rex64 (dest,
++                                                             src,
++                                                             offset));
++      else
++      insn = emit_insn (gen_adddi3 (dest, src, offset));
++    }
+   else
+     {
+       rtx r11;
+       /* r11 is used by indirect sibcall return as well, set before the
+        epilogue and used after the epilogue.  ATM indirect sibcall
+        shouldn't be used together with huge frame sizes in one
+-       function because of the frame_size check in sibcall.c.  */
+-      gcc_assert (style);
++       function because of the frame_size check in sibcall.c. If
++       huge frame size is used, memory should always be clobbered
++       when stack is adjusted.  */
++      gcc_assert (style && clobber_memory);
+       r11 = gen_rtx_REG (DImode, FIRST_REX_INT_REG + 3 /* R11 */);
+       insn = emit_insn (gen_rtx_SET (DImode, r11, offset));
+       if (style < 0)
+@@ -4797,6 +4813,7 @@ ix86_expand_prologue (void)
+   bool pic_reg_used;
+   struct ix86_frame frame;
+   HOST_WIDE_INT allocate;
++  bool using_mov;
+   ix86_compute_frame_layout (&frame);
+@@ -4821,7 +4838,8 @@ ix86_expand_prologue (void)
+   /* When using red zone we may start register saving before allocating
+      the stack frame saving one cycle of the prologue.  */
+-  if (TARGET_RED_ZONE && frame.save_regs_using_mov)
++  using_mov = TARGET_RED_ZONE && frame.save_regs_using_mov;
++  if (using_mov)
+     ix86_emit_save_regs_using_mov (frame_pointer_needed ? hard_frame_pointer_rtx
+                                  : stack_pointer_rtx,
+                                  -frame.nregs * UNITS_PER_WORD);
+@@ -4830,7 +4848,7 @@ ix86_expand_prologue (void)
+     ;
+   else if (! TARGET_STACK_PROBE || allocate < CHECK_STACK_LIMIT)
+     pro_epilogue_adjust_stack (stack_pointer_rtx, stack_pointer_rtx,
+-                             GEN_INT (-allocate), -1);
++                             GEN_INT (-allocate), -1, !using_mov);
+   else
+     {
+       /* Only valid for Win32.  */
+@@ -5011,7 +5029,7 @@ ix86_expand_epilogue (int style)
+             emit_move_insn (hard_frame_pointer_rtx, tmp);
+             pro_epilogue_adjust_stack (stack_pointer_rtx, sa,
+-                                       const0_rtx, style);
++                                       const0_rtx, style, true);
+           }
+         else
+           {
+@@ -5025,7 +5043,7 @@ ix86_expand_epilogue (int style)
+       pro_epilogue_adjust_stack (stack_pointer_rtx, stack_pointer_rtx,
+                                  GEN_INT (frame.to_allocate
+                                           + frame.nregs * UNITS_PER_WORD),
+-                                 style);
++                                 style, true);
+       /* If not an i386, mov & pop is faster than "leave".  */
+       else if (TARGET_USE_LEAVE || optimize_size
+              || !cfun->machine->use_fast_prologue_epilogue)
+@@ -5034,7 +5052,7 @@ ix86_expand_epilogue (int style)
+       {
+         pro_epilogue_adjust_stack (stack_pointer_rtx,
+                                    hard_frame_pointer_rtx,
+-                                   const0_rtx, style);
++                                   const0_rtx, style, true);
+         if (TARGET_64BIT)
+           emit_insn (gen_popdi1 (hard_frame_pointer_rtx));
+         else
+@@ -5050,11 +5068,12 @@ ix86_expand_epilogue (int style)
+         gcc_assert (frame_pointer_needed);
+         pro_epilogue_adjust_stack (stack_pointer_rtx,
+                                    hard_frame_pointer_rtx,
+-                                   GEN_INT (offset), style);
++                                   GEN_INT (offset), style, true);
+       }
+       else if (frame.to_allocate)
+       pro_epilogue_adjust_stack (stack_pointer_rtx, stack_pointer_rtx,
+-                                 GEN_INT (frame.to_allocate), style);
++                                 GEN_INT (frame.to_allocate), style,
++                                 true);
+       for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++)
+       if (ix86_save_reg (regno, false))
+--- gcc/gcc/config/i386/i386.md        2005-10-18 17:26:40.000000000 -0700
++++ gcc/gcc/config/i386/i386.md        2005-10-18 17:26:40.000000000 -0700
+@@ -19532,11 +19532,15 @@
+             (clobber (mem:BLK (scratch)))])])
+ ;; Convert esp subtractions to push.
++;; This conversion is safe only under assumption that unallocated stack is
++;; implicitly clobbered as specified by 32bit ABI (for signal handlers and such).
++;; This is not valid with red zone, but we can work harder and enable the
++;; optimization for functions that are not using it.
+ (define_peephole2
+   [(match_scratch:SI 0 "r")
+    (parallel [(set (reg:SI SP_REG) (plus:SI (reg:SI SP_REG) (const_int -4)))
+             (clobber (reg:CC FLAGS_REG))])]
+-  "optimize_size || !TARGET_SUB_ESP_4"
++  "(optimize_size || !TARGET_SUB_ESP_4) && !TARGET_RED_ZONE"
+   [(clobber (match_dup 0))
+    (set (mem:SI (pre_dec:SI (reg:SI SP_REG))) (match_dup 0))])
+@@ -19544,7 +19548,7 @@
+   [(match_scratch:SI 0 "r")
+    (parallel [(set (reg:SI SP_REG) (plus:SI (reg:SI SP_REG) (const_int -8)))
+             (clobber (reg:CC FLAGS_REG))])]
+-  "optimize_size || !TARGET_SUB_ESP_8"
++  "(optimize_size || !TARGET_SUB_ESP_8) && !TARGET_RED_ZONE"
+   [(clobber (match_dup 0))
+    (set (mem:SI (pre_dec:SI (reg:SI SP_REG))) (match_dup 0))
+    (set (mem:SI (pre_dec:SI (reg:SI SP_REG))) (match_dup 0))])
+@@ -19664,11 +19668,15 @@
+             (clobber (mem:BLK (scratch)))])])
+ ;; Convert esp subtractions to push.
++;; This conversion is safe only under assumption that unallocated stack is
++;; implicitly clobbered as specified by 32bit ABI (for signal handlers and such).
++;; This is not valid with red zone, but we can work harder and enable the
++;; optimization for functions that are not using it.
+ (define_peephole2
+   [(match_scratch:DI 0 "r")
+    (parallel [(set (reg:DI SP_REG) (plus:DI (reg:DI SP_REG) (const_int -8)))
+             (clobber (reg:CC FLAGS_REG))])]
+-  "optimize_size || !TARGET_SUB_ESP_4"
++  "(optimize_size || !TARGET_SUB_ESP_4) && !TARGET_RED_ZONE"
+   [(clobber (match_dup 0))
+    (set (mem:DI (pre_dec:DI (reg:DI SP_REG))) (match_dup 0))])
+@@ -19676,7 +19684,7 @@
+   [(match_scratch:DI 0 "r")
+    (parallel [(set (reg:DI SP_REG) (plus:DI (reg:DI SP_REG) (const_int -16)))
+             (clobber (reg:CC FLAGS_REG))])]
+-  "optimize_size || !TARGET_SUB_ESP_8"
++  "(optimize_size || !TARGET_SUB_ESP_8) && !TARGET_RED_ZONE"
+   [(clobber (match_dup 0))
+    (set (mem:DI (pre_dec:DI (reg:DI SP_REG))) (match_dup 0))
+    (set (mem:DI (pre_dec:DI (reg:DI SP_REG))) (match_dup 0))])
+
diff --git a/gcc4-pr24669.patch b/gcc4-pr24669.patch
new file mode 100644 (file)
index 0000000..91bb743
--- /dev/null
@@ -0,0 +1,16 @@
+--- gcc/gcc/config/i386/i386.c      (revision 106482)
++++ gcc/gcc/config/i386/i386.c      (working copy)
+@@ -5396,8 +5396,12 @@
+   if (parts.index && GET_CODE (parts.index) == SUBREG)
+     parts.index = SUBREG_REG (parts.index);
+
++  /* Penalize displacements a bit.  */
++  if (parts.disp && parts.disp != const0_rtx)
++    cost++;
++
+   /* More complex memory references are better.  */
+-  if (parts.disp && parts.disp != const0_rtx)
++  if (parts.scale)
+     cost--;
+   if (parts.seg != SEG_DEFAULT)
+     cost--;
diff --git a/gcc4-pr7776.patch b/gcc4-pr7776.patch
new file mode 100644 (file)
index 0000000..0a73938
--- /dev/null
@@ -0,0 +1,88 @@
+Date: Tue, 14 Jun 2005 00:20:06 -0600 (MDT)
+From: Roger Sayle <roger at eyesopen dot com>
+Subject: [PATCH] PR 7776: Warn about if ("abc" < "xyz") ... (take 2) 
+
+The following patch is a revised version of my proposed solution to
+PR middle-end/7776, which addresses Daniel Jacobowitz's concerns about
+the potential utility of testing string literals for equality/inequality
+with NULL.
+
+See http://gcc.gnu.org/ml/gcc-patches/2005-06/msg00369.html (and the
+following thread) for details and motivation.
+
+The following patch has been tested on i686-pc-linux-gnu with a full
+"make bootstrap", all default languages, and regression tested with a
+top-level "make -k check" with no new failures.
+
+Ok for mainline?
+
+2005-06-13  Roger Sayle  <roger@eyesopen.com>
+
+       PR middle-end/7776
+       * common.opt (Wstring-literal-comparison): New command line option.
+       * c-opts.c (c_common_handle_option): Set it with -Wall.
+       * c-typeck.c (parser_build_binary_op): Issue warning if either
+       operand of a comparison operator is a string literal, except for
+       testing equality or inequality against NULL.
+
+       * gcc.dg/Wstring-literal-comparison-1.c: New test case.
+       * gcc.dg/Wstring-literal-comparison-2.c: Likewise.
+       * gcc.dg/Wstring-literal-comparison-3.c: Likewise.
+       * gcc.dg/Wstring-literal-comparison-4.c: Likewise.
+
+
+*** a/gcc/common.opt   4 Jun 2005 17:07:55 -0000       1.73
+--- b/gcc/common.opt   13 Jun 2005 16:59:28 -0000
+*************** Wstrict-aliasing=
+*** 117,122 ****
+--- 117,126 ----
+  Common Joined UInteger
+  Warn about code which might break strict aliasing rules
+
++ Wstring-literal-comparison
++ Common Var(warn_string_literal_comparison)
++ Warn about comparisons to constant string literals
++
+  Wswitch
+  Common Var(warn_switch)
+  Warn about enumerated switches, with no default, missing a case
+*** a/gcc/c-opts.c     25 May 2005 03:58:55 -0000      1.146
+--- b/gcc/c-opts.c     13 Jun 2005 16:59:29 -0000
+*************** c_common_handle_option (size_t scode, co
+*** 370,375 ****
+--- 370,376 ----
+       warn_sign_compare = value;
+        warn_switch = value;
+        warn_strict_aliasing = value;
++       warn_string_literal_comparison = value;
+
+        /* Only warn about unknown pragmas that are not in system
+        headers.  */
+*** a/gcc/c-typeck.c   11 Jun 2005 19:47:01 -0000      1.453
+--- b/gcc/c-typeck.c   13 Jun 2005 16:59:31 -0000
+*************** parser_build_binary_op (enum tree_code c
+*** 2412,2417 ****
+--- 2412,2434 ----
+
+      }
+
++   /* Warn about comparisons against string literals, with the exception
++      of testing for equality or inequality of a string literal with NULL.  */
++   if (code == EQ_EXPR || code == NE_EXPR)
++     {
++       if ((TREE_CODE (arg1.value) == STRING_CST
++         && !integer_zerop (arg2.value))
++        || (TREE_CODE (arg2.value) == STRING_CST
++            && !integer_zerop (arg1.value)))
++      warning (OPT_Wstring_literal_comparison,
++               "comparison with string literal");
++     }
++   else if (TREE_CODE_CLASS (code) == tcc_comparison
++         && (TREE_CODE (arg1.value) == STRING_CST
++             || TREE_CODE (arg2.value) == STRING_CST))
++     warning (OPT_Wstring_literal_comparison,
++           "comparison with string literal");
++
+    unsigned_conversion_warning (result.value, arg1.value);
+    unsigned_conversion_warning (result.value, arg2.value);
+    overflow_warning (result.value);
diff --git a/gcc4.spec b/gcc4.spec
new file mode 100644 (file)
index 0000000..89713ba
--- /dev/null
+++ b/gcc4.spec
@@ -0,0 +1,1343 @@
+#
+# TODO:
+#      checking for XTestQueryExtension in -lXtst... no
+#      configure: error: libXtst not found, required by java.awt.Robot
+#      make[2]: *** [configure-target-libjava] Error 1
+#
+# Conditional build:
+%bcond_without ada             # build without ADA support
+%bcond_without cxx             # build without C++ support
+%bcond_without fortran         # build without Fortran support
+%bcond_without java            # build without Java support
+%bcond_without objc            # build without Objective-C support
+%bcond_without objcxx          # build without Objective-C++ support
+%bcond_with    multilib        # build with multilib support (it needs glibc[32&64]-devel)
+%bcond_with    profiling       # build with profiling
+%bcond_without bootstrap       # omit 3-stage bootstrap
+%bcond_with    tests           # torture gcc
+
+%if %{with multilib}
+# the latest chrpath(64) can't handle 32-bit binaries :/
+%define                _noautochrpath  .*/lib/.*\\.so.*
+%endif
+
+%if %{without cxx}
+%undefine      with_java
+%undefine      with_objcxx
+%endif
+
+%if %{without objc}
+%undefine      with_objcxx
+%endif
+
+%if %{without bootstrap}
+%undefine      with_profiling
+%endif
+
+%ifnarch %{x8664} ppc64 s390x sparc64
+%undefine      with_multilib
+%endif
+
+Summary:       GNU Compiler Collection: the C compiler and shared files
+Summary(es):   Colección de compiladores GNU: el compilador C y ficheros compartidos
+Summary(pl):   Kolekcja kompilatorów GNU: kompilator C i pliki wspó³dzielone
+Summary(pt_BR):        Coleção dos compiladores GNU: o compilador C e arquivos compartilhados
+Name:          gcc
+Version:       4.2.0
+%define                _snap   20051201r107828
+Release:       0.%{_snap}.0.1
+Epoch:         5
+License:       GPL v2+
+Group:         Development/Languages
+#Source0:      ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/%{name}-%{version}.tar.bz2
+#Source0:      ftp://gcc.gnu.org/pub/gcc/snapshots/4.1-%{_snap}/gcc-4.1-%{_snap}.tar.bz2
+Source0:       gcc-4.2-%{_snap}.tar.bz2
+# Source0-md5: 38ca117c2cf381cc15a217710a3a7d11
+Source1:       %{name}-optimize-la.pl
+Patch0:                %{name}-info.patch
+Patch1:                %{name}-nolocalefiles.patch
+Patch2:                %{name}-nodebug.patch
+Patch3:                %{name}-ada-link-new-libgnat.patch
+Patch4:                %{name}-ada-link.patch
+Patch5:                %{name}-alpha-ada_fix.patch
+# -fvisibility fixes...
+Patch6:                %{name}-pr19664_gnu_internal.patch
+Patch7:                %{name}-pr19664_libstdc++.patch
+
+#Patch9:               %{name}-enable-java-awt-qt.patch        NEEDS UPDATE
+# PRs
+Patch10:       %{name}-pr7776.patch
+Patch11:       %{name}-pr20297.patch
+Patch12:       %{name}-pr22533.patch
+Patch13:       %{name}-pr25180.patch
+#Patch14:      %{name}-x87-mmx-switch.patch    NEEDS UPDATE
+#Patch15:      %{name}-x87-mmx-eh.patch        NEEDS UPDATE
+Patch16:       %{name}-pr23948.patch
+Patch17:       %{name}-pr19505.patch
+Patch18:       %{name}-pr24419.patch
+Patch19:       %{name}-pr24669.patch
+Patch20:       %{name}-pr17390.patch
+URL:           http://gcc.gnu.org/
+#{?with_java:BuildRequires:    QtGui-devel >= 4.0.1}
+%{?with_java:BuildRequires:    alsa-lib-devel}
+BuildRequires: autoconf
+%{?with_tests:BuildRequires:   autogen}
+BuildRequires: automake
+BuildRequires: binutils >= 2:2.15.94.0.1
+BuildRequires: bison
+%{?with_java:BuildRequires:    cairo-devel >= 0.5.0}
+%{?with_java:BuildRequires:    dssi}
+%{?with_tests:BuildRequires:   dejagnu}
+BuildRequires: fileutils >= 4.0.41
+BuildRequires: flex
+%if %{with ada}
+BuildRequires: gcc(ada)
+BuildRequires: gcc-ada
+%endif
+BuildRequires: gettext-devel
+%if %{with multilib}
+BuildRequires: glibc-devel >= 6:2.3.4-1.5
+%ifarch %{x8664}
+BuildRequires: glibc-devel(i686)
+%endif
+%ifarch ppc64
+BuildRequires: glibc-devel(ppc)
+%endif
+%ifarch s390x
+BuildRequires: glibc-devel(s390)
+%endif
+%ifarch sparc64
+BuildRequires: glibc-devel(sparc)
+%endif
+%else
+BuildRequires: glibc-devel >= 2.2.5-20
+%endif
+#{?with_java:BuildRequires:    gtk+2-devel >= 2.4.0}
+%if %{with fortran}
+BuildRequires: gmp-devel
+BuildRequires: libmpfr-devel
+%endif
+%{?with_java:BuildRequires:    libxslt-devel}
+%{?with_java:BuildRequires:    pango-devel}
+BuildRequires: perl-devel
+%{?with_java:BuildRequires:    pkgconfig}
+BuildRequires: rpmbuild(macros) >= 1.211
+BuildRequires: texinfo >= 4.1
+BuildRequires: zlib-devel
+# AS_NEEDED directive for dynamic linker
+# http://sources.redhat.com/ml/glibc-cvs/2005-q1/msg00614.html
+# http://sources.redhat.com/ml/binutils/2005-01/msg00288.html
+Requires:      binutils >= 2:2.16.90.0.1-0.3
+Requires:      libgcc = %{epoch}:%{version}-%{release}
+Provides:      cpp = %{epoch}:%{version}-%{release}
+%{?with_ada:Provides:  gcc(ada)}
+%{?with_multilib:Provides:     gcc(multilib)}
+Obsoletes:     cpp
+Obsoletes:     egcs-cpp
+Obsoletes:     gcc-chill
+Obsoletes:     gcc-cpp
+Obsoletes:     gcc-ksi
+Obsoletes:     gont
+Conflicts:     glibc-devel < 2.2.5-20
+BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%define                _slibdir        /%{_lib}
+%if %{with multilib}
+# 32-bit environment on x86-64,ppc64,s390x,sparc64
+%define                _slibdir32      /lib
+%define                _libdir32       /usr/lib
+%endif
+
+%description
+A compiler aimed at integrating all the optimizations and features
+necessary for a high-performance and stable development environment.
+
+This package contains the C compiler and some files shared by various
+parts of the GNU Compiler Collection. In order to use another GCC
+compiler you will need to install the appropriate subpackage.
+
+%description -l es
+Un compilador que intenta integrar todas las optimalizaciones y
+características necesarias para un entorno de desarrollo eficaz y
+estable.
+
+Este paquete contiene el compilador de C y unos ficheros compartidos
+por varias partes de la colección de compiladores GNU (GCC). Para usar
+otro compilador de GCC será necesario que instale el subpaquete
+adecuado.
+
+%description -l pl
+Kompilator, posiadaj±cy du¿e mo¿liwo¶ci optymalizacyjne niezbêdne do
+wyprodukowania szybkiego i stabilnego kodu wynikowego.
+
+Ten pakiet zawiera kompilator C i pliki wspó³dzielone przez ró¿ne
+czê¶ci kolekcji kompilatorów GNU (GCC). ¯eby u¿ywaæ innego kompilatora
+z GCC, trzeba zainstalowaæ odpowiedni podpakiet.
+
+%description -l pt_BR
+Este pacote adiciona infraestrutura básica e suporte a linguagem C ao
+GNU Compiler Collection.
+
+%package -n libgcc
+Summary:       Shared gcc library
+Summary(es):   Biblioteca compartida de gcc
+Summary(pl):   Biblioteka gcc
+Summary(pt_BR):        Biblioteca runtime para o GCC
+License:       GPL with unlimited link permission
+Group:         Libraries
+Obsoletes:     libgcc1
+
+%description -n libgcc
+Shared gcc library.
+
+%description -n libgcc -l es
+Biblioteca compartida de gcc.
+
+%description -n libgcc -l pl
+Biblioteka dynamiczna gcc.
+
+%description -n libgcc -l pt_BR
+Biblioteca runtime para o GCC.
+
+%package -n libmudflap
+Summary:       GCC mudflap shared support library
+Summary(pl):   Wspó³dzielona biblioteka wspomagaj±ca GCC mudflap
+License:       GPL v2+ with unlimited link permission
+Group:         Libraries
+
+%description -n libmudflap
+The libmudflap libraries are used by GCC for instrumenting pointer and
+array dereferencing operations.
+
+%description -n libmudflap -l pl
+Biblioteki libmudflap s± u¿ywane przez GCC do obs³ugi operacji
+dereferencji wspa¼ników i tablic.
+
+%package -n libmudflap-devel
+Summary:       Development files for GCC mudflap library
+Summary(pl):   Pliki programistyczne biblioteki GCC mudflap
+License:       GPL v2+ with unlimited link permission
+Group:         Development/Libraries
+Requires:      libmudflap = %{epoch}:%{version}-%{release}
+
+%description -n libmudflap-devel
+The libmudflap libraries are used by GCC for instrumenting pointer and
+array dereferencing operations. This package contains development
+files.
+
+%description -n libmudflap-devel -l pl
+Biblioteki libmudflap s± u¿ywane przez GCC do obs³ugi operacji
+dereferencji wspa¼ników i tablic. Ten pakiet zawiera pliki
+programistyczne.
+
+%package -n libmudflap-static
+Summary:       Static GCC mudflap library
+Summary(pl):   Statyczna biblioteka GCC mudflap
+License:       GPL v2+ with unlimited link permission
+Group:         Development/Libraries
+Requires:      libmudflap-devel = %{epoch}:%{version}-%{release}
+
+%description -n libmudflap-static
+The libmudflap libraries are used by GCC for instrumenting pointer and
+array dereferencing operations. This package contains static
+libraries.
+
+%description -n libmudflap-static -l pl
+Biblioteki libmudflap s± u¿ywane przez GCC do obs³ugi operacji
+dereferencji wspa¼ników i tablic. Ten pakiet zawiera biblioteki
+statyczne.
+
+%package ada
+Summary:       Ada support for gcc
+Summary(es):   Soporte de Ada para gcc
+Summary(pl):   Obs³uga Ady do gcc
+Group:         Development/Languages
+Requires:      %{name} = %{epoch}:%{version}-%{release}
+Requires:      libgnat = %{epoch}:%{version}-%{release}
+Obsoletes:     gcc-gnat
+Obsoletes:     gnat-devel
+
+%description ada
+This package adds experimental support for compiling Ada programs.
+
+%description ada -l es
+Este paquete añade soporte experimental para compilar programas en
+Ada.
+
+%description ada -l pl
+Ten pakiet dodaje eksperymentalne wsparcie dla kompilacji programów w
+Adzie.
+
+%package -n libgnat
+Summary:       Ada standard libraries
+Summary(es):   Bibliotecas estándares de Ada
+Summary(pl):   Biblioteki standardowe dla Ady
+License:       GPL v2+ with linking exception
+Group:         Libraries
+Obsoletes:     gnat
+Obsoletes:     libgnat1
+
+%description -n libgnat
+This package contains shared libraries needed to run programs written
+in Ada.
+
+%description -n libgnat -l es
+Este paquete contiene las bibliotecas compartidas necesarias para
+ejecutar programas escritos en Ada.
+
+%description -n libgnat -l pl
+Ten pakiet zawiera biblioteki potrzebne do uruchamiania programów
+napisanych w Adzie.
+
+%package -n libgnat-static
+Summary:       Static Ada standard libraries
+Summary(pl):   Statyczne biblioteki standardowe dla Ady
+License:       GPL v2+ with linking exception
+Group:         Development/Libraries
+Obsoletes:     gnat-static
+
+%description -n libgnat-static
+This package contains static libraries for programs written in Ada.
+
+%description -n libgnat-static -l pl
+Ten pakiet zawiera biblioteki statyczne dla programów napisanych w
+Adzie.
+
+%package c++
+Summary:       C++ support for gcc
+Summary(es):   Soporte de C++ para gcc
+Summary(pl):   Obs³uga C++ dla gcc
+Summary(pt_BR):        Suporte C++ para o gcc
+Group:         Development/Languages
+Requires:      %{name} = %{epoch}:%{version}-%{release}
+Obsoletes:     egcc-c++
+Obsoletes:     egcs-c++
+
+%description c++
+This package adds C++ support to the GNU Compiler Collection. It
+includes support for most of the current C++ specification, including
+templates and exception handling. It does not include a standard C++
+library, which is available separately.
+
+%description c++ -l de
+Dieses Paket enthält die C++-Unterstützung für den
+GNU-Compiler-Collection. Es unterstützt die aktuelle
+C++-Spezifikation, inkl. Templates und Ausnahmeverarbeitung. Eine
+C++-Standard-Library ist nicht enthalten - sie ist getrennt
+erhältlich.
+
+%description c++ -l es
+Este paquete añade soporte de C++ al GCC (colección de compiladores
+GNU). Ello incluye el soporte para la mayoría de la especificación
+actual de C++, incluyendo plantillas y manejo de excepciones. No
+incluye la biblioteca estándar de C++, la que es disponible separada.
+
+%description c++ -l fr
+Ce package ajoute un support C++ a la collection de compilateurs GNU.
+Il comprend un support pour la plupart des spécifications actuelles de
+C++, dont les modéles et la gestion des exceptions. Il ne comprend pas
+une bibliothéque C++ standard, qui est disponible séparément.
+
+%description c++ -l pl
+Ten pakiet dodaje obs³ugê C++ do kompilatora gcc. Ma wsparcie dla
+du¿ej ilo¶ci obecnych specyfikacji C++, nie zawiera natomiast
+standardowych bibliotek C++, które s± w oddzielnym pakiecie.
+
+%description c++ -l pt_BR
+Este pacote adiciona suporte C++ para o gcc.
+
+%description c++ -l tr
+Bu paket, GNU C derleyicisine C++ desteði ekler. 'Template'ler ve
+aykýrý durum iþleme gibi çoðu güncel C++ tanýmlarýna uyar. Standart
+C++ kitaplýðý bu pakette yer almaz.
+
+%package -n libstdc++
+Summary:       GNU C++ library
+Summary(es):   Biblioteca C++ de GNU
+Summary(pl):   Biblioteki GNU C++
+Summary(pt_BR):        Biblioteca C++ GNU
+License:       GPL v2+ with free software exception
+Group:         Libraries
+Obsoletes:     libg++
+Obsoletes:     libstdc++3
+
+%description -n libstdc++
+This is the GNU implementation of the standard C++ libraries, along
+with additional GNU tools. This package includes the shared libraries
+necessary to run C++ applications.
+
+%description -n libstdc++ -l de
+Dies ist die GNU-Implementierung der Standard-C++-Libraries mit
+weiteren GNU-Tools. Dieses Paket enthält die zum Ausführen von
+C++-Anwendungen erforderlichen gemeinsam genutzten Libraries.
+
+%description -n libstdc++ -l es
+Este es el soporte de las bibliotecas padrón del C++, junto con
+herramientas GNU adicionales. El paquete incluye las bibliotecas
+compartidas necesarias para ejecutar aplicaciones C++.
+
+%description -n libstdc++ -l fr
+Ceci est l'implémentation GNU des librairies C++ standard, ainsi que
+des outils GNU supplémentaires. Ce package comprend les librairies
+partagées nécessaires à l'exécution d'application C++.
+
+%description -n libstdc++ -l pl
+Pakiet ten zawiera biblioteki bêd±ce implementacj± standardowych
+bibliotek C++. Znajduj± siê w nim biblioteki dynamiczne niezbêdne do
+uruchomienia aplikacji napisanych w C++.
+
+%description -n libstdc++ -l pt_BR
+Este pacote é uma implementação da biblioteca padrão C++ v3, um
+subconjunto do padrão ISO 14882.
+
+%description -n libstdc++ -l tr
+Bu paket, standart C++ kitaplýklarýnýn GNU gerçeklemesidir ve C++
+uygulamalarýnýn koþturulmasý için gerekli kitaplýklarý içerir.
+
+%package -n libstdc++-devel
+Summary:       Header files and documentation for C++ development
+Summary(de):   Header-Dateien zur Entwicklung mit C++
+Summary(es):   Ficheros de cabecera y documentación para desarrollo C++
+Summary(fr):   Fichiers d'en-tête et biblitothèques pour développer en C++
+Summary(pl):   Pliki nag³ówkowe i dokumentacja do biblioteki standardowej C++
+Summary(pt_BR):        Arquivos de inclusão e bibliotecas para o desenvolvimento em C++
+Summary(tr):   C++ ile program geliþtirmek için gerekli dosyalar
+License:       GPL v2+ with free software exception
+Group:         Development/Libraries
+Requires:      %{name}-c++ = %{epoch}:%{version}-%{release}
+Requires:      libstdc++ = %{epoch}:%{version}-%{release}
+Requires:      glibc-devel
+Obsoletes:     libg++-devel
+Obsoletes:     libstdc++3-devel
+
+%description -n libstdc++-devel
+This is the GNU implementation of the standard C++ libraries. This
+package includes the header files needed for C++ development and
+library documentation.
+
+%description -n libstdc++-devel -l es
+Este es el soporte de las bibliotecas padrón del lenguaje C++. Este
+paquete incluye los archivos de inclusión y bibliotecas necesarios
+para desarrollo de programas en lenguaje C++.
+
+%description -n libstdc++-devel -l pl
+Pakiet ten zawiera biblioteki bêd±ce implementacj± standardowych
+bibliotek C++. Znajduj± siê w nim pliki nag³ówkowe wykorzystywane przy
+programowaniu w jêzyku C++ oraz dokumentacja biblioteki standardowej.
+
+%description -n libstdc++-devel -l pt_BR
+Este pacote inclui os arquivos de inclusão e bibliotecas necessárias
+para desenvolvimento de programas C++.
+
+%package -n libstdc++-static
+Summary:       Static C++ standard library
+Summary(es):   Biblioteca estándar estática de C++
+Summary(pl):   Statyczna biblioteka standardowa C++
+License:       GPL v2+ with free software exception
+Group:         Development/Libraries
+Requires:      libstdc++-devel = %{epoch}:%{version}-%{release}
+
+%description -n libstdc++-static
+Static C++ standard library.
+
+%description -n libstdc++-static -l es
+Biblioteca estándar estática de C++.
+
+%description -n libstdc++-static -l pl
+Statyczna biblioteka standardowa C++.
+
+%package fortran
+Summary:       Fortran 95 support for gcc
+Summary(es):   Soporte de Fortran 95 para gcc
+Summary(pl):   Obs³uga Fortranu 95 dla gcc
+Summary(pt_BR):        Suporte Fortran 95 para o GCC
+Group:         Development/Languages/Fortran
+Requires:      libgfortran = %{epoch}:%{version}-%{release}
+Provides:      gcc-g77 = %{epoch}:%{version}-%{release}
+Obsoletes:     egcs-g77
+Obsoletes:     gcc-g77
+
+%description fortran
+This package adds support for compiling Fortran 95 programs with the
+GNU compiler.
+
+%description fortran -l es
+Este paquete añade soporte para compilar programas escritos en Fortran
+95 con el compilador GNU.
+
+%description fortran -l pl
+Ten pakiet dodaje obs³ugê Fortranu 95 do kompilatora gcc. Jest
+potrzebny do kompilowania programów pisanych w jêzyku Fortran 95.
+
+%description fortran -l pt_BR
+Suporte Fortran 95 para o GCC.
+
+%package -n libgfortran
+Summary:       Fortran 95 Libraries
+Summary(es):   Bibliotecas de Fortran 95
+Summary(pl):   Biblioteki Fortranu 95
+License:       LGPL v2+
+Group:         Libraries
+Obsoletes:     libg2c
+
+%description -n libgfortran
+Fortran 95 Libraries.
+
+%description -n libgfortran -l es
+Bibliotecas de Fortran 95.
+
+%description -n libgfortran -l pl
+Biblioteki Fortranu 95.
+
+%package -n libgfortran-static
+Summary:       Static Fortran 95 Libraries
+Summary(es):   Bibliotecas estáticas de Fortran 95
+Summary(pl):   Statyczne Biblioteki Fortranu 95
+License:       LGPL v2+
+Group:         Development/Libraries
+Requires:      libgfortran = %{epoch}:%{version}-%{release}
+Obsoletes:     libg2c-static
+
+%description -n libgfortran-static
+Static Fortran 95 Libraries.
+
+%description -n libgfortran-static -l es
+Bibliotecas estáticas de Fortran 95.
+
+%description -n libgfortran-static -l pl
+Statyczne biblioteki Fortranu 95.
+
+%package java
+Summary:       Java support for gcc
+Summary(es):   Soporte de Java para gcc
+Summary(pl):   Obs³uga Javy dla gcc
+Group:         Development/Languages/Java
+Requires:      %{name} = %{epoch}:%{version}-%{release}
+Requires:      libgcj-devel = %{epoch}:%{version}-%{release}
+Provides:      gcj = %{epoch}:%{version}-%{release}
+Provides:      gcc-java-tools
+Obsoletes:     fastjar
+Obsoletes:     gcc-java-tools
+
+%description java
+This package adds experimental support for compiling Java(TM) programs
+and bytecode into native code. To use this you will also need the
+libgcj package.
+
+%description java -l es
+Este paquete añade soporte experimental para compilar programas
+Java(tm) y su bytecode en código nativo. Para usarlo también va a
+necesitar el paquete libgcj.
+
+%description java -l pl
+Ten pakiet dodaje mo¿liwo¶æ kompilowania programów w jêzyku Java(TM)
+oraz bajtkodu do kodu natywnego. Do u¿ywania go wymagany jest
+dodatkowo pakiet libgcj.
+
+%package -n libgcj
+Summary:       Java Class Libraries
+Summary(es):   Bibliotecas de clases de Java
+Summary(pl):   Biblioteki Klas Javy
+License:       GPL with limited linking exception
+Group:         Libraries
+Obsoletes:     libgcj3
+
+%description -n libgcj
+Java Class Libraries.
+
+%description -n libgcj -l es
+Bibliotecas de clases de Java.
+
+%description -n libgcj -l pl
+Biblioteki Klas Javy.
+
+%package -n libgcj-devel
+Summary:       Development files for Java Class Libraries
+Summary(es):   Ficheros de desarrollo para las bibliotecas de clases de Java
+Summary(pl):   Pliki nag³ówkowe dla Bibliotek Klas Javy
+License:       GPL with limited linking exception
+Group:         Development/Libraries
+Requires:      libgcj = %{epoch}:%{version}-%{release}
+Requires:      zlib-devel
+Obsoletes:     libgcj3-devel
+
+%description -n libgcj-devel
+Development files for Java Class Libraries.
+
+%description -n libgcj-devel -l es
+Ficheros de desarrollo para las bibliotecas de clases de Java.
+
+%description -n libgcj-devel -l pl
+Pliki nag³ówkowe dla Bibliotek Klas Javy.
+
+%package -n libgcj-static
+Summary:       Static Java Class Libraries
+Summary(es):   Bibliotecas estáticas de clases de Java
+Summary(pl):   Statyczne Biblioteki Klas Javy
+License:       GPL with limited linking exception
+Group:         Development/Libraries
+Requires:      libgcj-devel = %{epoch}:%{version}-%{release}
+Requires:      libstdc++-devel = %{epoch}:%{version}-%{release}
+
+%description -n libgcj-static
+Static Java Class Libraries.
+
+%description -n libgcj-static -l es
+Bibliotecas estáticas de clases de Java.
+
+%description -n libgcj-static -l pl
+Statyczne Biblioteki Klas Javy.
+
+%package -n libffi
+Summary:       Foreign Function Interface library
+Summary(es):   Biblioteca de interfaz de funciones ajenas
+Summary(pl):   Biblioteka zewnêtrznych wywo³añ funkcji
+License:       BSD-like
+Group:         Libraries
+
+%description -n libffi
+The libffi library provides a portable, high level programming
+interface to various calling conventions. This allows a programmer to
+call any function specified by a call interface description at run
+time.
+
+%description -n libffi -l es
+La biblioteca libffi provee una interfaz portable de programación de
+alto nivel para varias convenciones de llamada. Ello permite que un
+programador llame una función cualquiera especificada por una
+descripción de interfaz de llamada en el tiempo de ejecución.
+
+%description -n libffi -l pl
+Biblioteka libffi dostarcza przeno¶nego, wysokopoziomowego
+miêdzymordzia do ró¿nych konwencji wywo³añ funkcji. Pozwala to
+programi¶cie wywo³ywaæ dowolne funkcje podaj±c konwencjê wywo³ania w
+czasie wykonania.
+
+%package -n libffi-devel
+Summary:       Development files for Foreign Function Interface library
+Summary(es):   Ficheros de desarrollo para libffi
+Summary(pl):   Pliki nag³ówkowe dla libffi
+License:       BSD-like
+Group:         Development/Libraries
+Requires:      libffi = %{epoch}:%{version}-%{release}
+
+%description -n libffi-devel
+Development files for Foreign Function Interface library.
+
+%description -n libffi-devel -l es
+Ficheros de desarrollo para libffi.
+
+%description -n libffi-devel -l pl
+Pliki nag³ówkowe dla libffi.
+
+%package -n libffi-static
+Summary:       Static Foreign Function Interface library
+Summary(es):   Biblioteca libffi estática
+Summary(pl):   Statyczna biblioteka libffi
+License:       BSD-like
+Group:         Development/Libraries
+Requires:      libffi-devel = %{epoch}:%{version}-%{release}
+
+%description -n libffi-static
+Static Foreign Function Interface library.
+
+%description -n libffi-static -l es
+Biblioteca libffi estática.
+
+%description -n libffi-static -l pl
+Statyczna biblioteka libffi.
+
+%package objc
+Summary:       Objective C support for gcc
+Summary(de):   Objektive C-Unterstützung für gcc
+Summary(es):   Soporte de Objective C para gcc
+Summary(fr):   Gestion d'Objective C pour gcc
+Summary(pl):   Obs³uga obiektowego C dla kompilatora gcc
+Summary(tr):   gcc için Objective C desteði
+Group:         Development/Languages
+Requires:      %{name} = %{epoch}:%{version}-%{release}
+Requires:      libobjc = %{epoch}:%{version}-%{release}
+Obsoletes:     egcc-objc
+Obsoletes:     egcs-objc
+
+%description objc
+This package adds Objective C support to the GNU Compiler Collection.
+Objective C is a object oriented derivative of the C language, mainly
+used on systems running NeXTSTEP. This package does not include the
+standard objective C object library.
+
+%description objc -l de
+Dieses Paket ergänzt den GNU-Compiler-Collection durch
+Objective-C-Support. Objective C ist ein objektorientiertes Derivat
+von C, das zur Hauptsache auf Systemen mit NeXTSTEP zum Einsatz kommt.
+Die Standard-Objective-C-Objekt-Library ist nicht Teil des Pakets.
+
+%description objc -l es
+Este paquete añade soporte de Objective C al GCC (colección de
+compiladores GNU). Objective C es un lenguaje orientado a objetos
+derivado de C, principalmente usado en sistemas que funcionan bajo
+NeXTSTEP. El paquete no incluye la biblioteca de objetos estándar de
+Objective C.
+
+%description objc -l fr
+Ce package ajoute un support Objective C a la collection de
+compilateurs GNU. L'Objective C est un langage orienté objetdérivé du
+langage C, principalement utilisé sur les systèmes NeXTSTEP. Ce
+package n'inclue pas la bibliothéque Objective C standard.
+
+%description objc -l pl
+Ten pakiet dodaje obs³ugê obiektowego C do kompilatora gcc. Obiektowe
+C (objc) jest zorientowan± obiektowo pochodn± jêzyka C, u¿ywan±
+g³ównie w systemach u¿ywaj±cych NeXTSTEP. W pakiecie nie ma
+standardowej biblioteki objc (która znajduje siê w osobnym pakiecie).
+
+%description objc -l tr
+Bu paket, GNU C derleyicisine Objective C desteði ekler. Objective C,
+C dilinin nesne yönelik bir türevidir ve NeXTSTEP altýnda çalýþan
+sistemlerde yaygýn olarak kullanýlýr. Standart Objective C nesne
+kitaplýðý bu pakette yer almaz.
+
+%package objc++
+Summary:       Objective C++ support for gcc
+Summary(pl):   Obs³uga jêzyka Objective C++ dla gcc
+Group:         Development/Languages
+Requires:      %{name}-c++ = %{epoch}:%{version}-%{release}
+Requires:      %{name}-objc = %{epoch}:%{version}-%{release}
+
+%description objc++
+This package adds Objective C++ support to the GNU Compiler
+Collection.
+
+%description objc++ -l pl
+Ten pakiet dodaje obs³ugê jêzyka Objective C++ do zestawu
+kompilatorów GNU Compiler Collection.
+
+%package -n libobjc
+Summary:       Objective C Libraries
+Summary(es):   Bibliotecas de Objective C
+Summary(pl):   Biblioteki Obiektowego C
+License:       GPL v2+ with linking exception
+Group:         Libraries
+Obsoletes:     libobjc1
+
+%description -n libobjc
+Objective C Libraries.
+
+%description -n libobjc -l es
+Bibliotecas de Objective C.
+
+%description -n libobjc -l pl
+Biblioteki Obiektowego C.
+
+%package -n libobjc-static
+Summary:       Static Objective C Libraries
+Summary(es):   Bibliotecas estáticas de Objective C
+Summary(pl):   Statyczne Biblioteki Obiektowego C
+License:       GPL v2+ with linking exception
+Group:         Development/Libraries
+Requires:      libobjc = %{epoch}:%{version}-%{release}
+
+%description -n libobjc-static
+Static Objective C Libraries.
+
+%description -n libobjc-static -l es
+Bibliotecas estáticas de Objective C.
+
+%description -n libobjc-static -l pl
+Statyczne biblioteki Obiektowego C.
+
+%prep
+#setup -q -n gcc-%{version}
+%setup -q -n trunk
+
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+
+# -fvisbility fixes...
+%patch6 -p1
+%patch7 -p1
+
+#patch9 -p1    NEEDS UPDATE
+# PRs
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
+%ifarch %{ix86} %{x8664}
+#patch14 -p1
+#patch15 -p1
+%endif
+%patch16 -p1
+%patch17 -p1
+%patch18 -p1
+%patch19 -p1
+%patch20 -p1
+
+# because we distribute modified version of gcc...
+perl -pi -e 's/(version.*)";/$1 (PLD Linux)";/' gcc/version.c
+perl -pi -e 's@(bug_report_url.*<URL:).*";@$1http://bugs.pld-linux.org/>";@' gcc/version.c
+
+mv ChangeLog ChangeLog.general
+
+%build
+cd gcc
+%{__autoconf}
+cd ..
+cd libjava/classpath
+%{__autoconf}
+cd ../..
+cp -f /usr/share/automake/config.sub .
+
+rm -rf obj-%{_target_platform}
+install -d obj-%{_target_platform}
+cd obj-%{_target_platform}
+
+CFLAGS="%{rpmcflags}" \
+CXXFLAGS="%{rpmcxxflags}" \
+TEXCONFIG=false \
+../configure \
+       --prefix=%{_prefix} \
+       --libdir=%{_libdir} \
+       --libexecdir=%{_libdir} \
+       --infodir=%{_infodir} \
+       --mandir=%{_mandir} \
+       --x-libraries=/usr/X11R6/%{_lib} \
+       --enable-shared \
+       --enable-threads=posix \
+       --enable-__cxa_atexit \
+       --enable-languages="c%{?with_cxx:,c++}%{?with_fortran:,f95}%{?with_objc:,objc}%{?with_objcxx:,obj-c++}%{?with_ada:,ada}%{?with_java:,java}" \
+       --enable-c99 \
+       --enable-long-long \
+       --%{?with_multilib:en}%{!?with_multilib:dis}able-multilib \
+       --enable-nls \
+       --disable-werror \
+       --with-gnu-as \
+       --with-gnu-ld \
+       --with-demangler-in-ld \
+       --with-system-zlib \
+       --with-slibdir=%{_slibdir} \
+       --without-x \
+       %{?with_fortran:--enable-cmath} \
+%if %{with java}
+       --enable-libgcj \
+       --enable-libgcj-multifile \
+       --enable-libgcj-database \
+       --enable-gtk-peer \
+       --enable-gtk-cairo \
+       --enable-jni \
+       --enable-xmlj \
+       --enable-alsa \
+       --enable-dssi \
+%endif
+       %{_target_platform}
+
+# not finished yet
+#      --enable-java-awt=gtk \
+
+# horrible compile time hog with perfect tree checking
+#      --enable-checking=all \
+
+cd ..
+
+%{__make} -C obj-%{_target_platform} \
+       %{?with_bootstrap:%{?with_profiling:profiled}bootstrap} \
+       GCJFLAGS="%{rpmcflags}" \
+       BOOT_CFLAGS="%{rpmcflags}" \
+       STAGE1_CFLAGS="%{rpmcflags} -O0" \
+       GNATLIBCFLAGS="%{rpmcflags}" \
+       LDFLAGS_FOR_TARGET="%{rpmldflags}" \
+       mandir=%{_mandir} \
+       infodir=%{_infodir}
+
+%{?with_tests:%{__make} -k -C obj-%{_target_platform} check 2>&1 ||:}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT{/lib,%{_aclocaldir},%{_datadir},%{_infodir}}
+
+cd obj-%{_target_platform}
+
+%{__make} -j1 install \
+       mandir=%{_mandir} \
+       infodir=%{_infodir} \
+       DESTDIR=$RPM_BUILD_ROOT
+
+install gcc/specs $RPM_BUILD_ROOT%{_libdir}/gcc/%{_target_platform}/%{version}
+
+%ifarch sparc64
+ln -sf %{_bindir}/sparc64-pld-linux-gcc \
+       $RPM_BUILD_ROOT%{_bindir}/sparc-pld-linux-gcc
+%endif
+
+ln -sf %{_bindir}/cpp $RPM_BUILD_ROOT/lib/cpp
+ln -sf gcc $RPM_BUILD_ROOT%{_bindir}/cc
+echo ".so gcc.1" > $RPM_BUILD_ROOT%{_mandir}/man1/cc.1
+
+libssp=$(cd $RPM_BUILD_ROOT%{_libdir}; echo libssp.so.*.*.*)
+mv $RPM_BUILD_ROOT{%{_libdir}/$libssp,%{_slibdir}}
+ln -sf %{_slibdir}/$libssp $RPM_BUILD_ROOT%{_libdir}/libssp.so
+%if %{with multilib}
+libssp=$($RPM_BUILD_ROOT%{_libdir32}; echo libssp.so.*.*.*`)
+mv $RPM_BUILD_ROOT{%{_libdir32}/$libssp,%{_slibdir32}}
+ln -sf %{_slibdir32}/$libssp $RPM_BUILD_ROOT%{_libdir32}/libssp.so
+%endif
+
+%if %{with fortran}
+ln -sf gfortran $RPM_BUILD_ROOT%{_bindir}/g95
+echo ".so gfortran.1" > $RPM_BUILD_ROOT%{_mandir}/man1/g95.1
+%endif
+
+%if %{with ada}
+# move ada shared libraries to proper place...
+mv -f  $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/adalib/*.so.1 \
+       $RPM_BUILD_ROOT%{_libdir}
+# check if symlink to be made is valid
+test -f        $RPM_BUILD_ROOT%{_libdir}/libgnat-4.1.so.1
+ln -sf libgnat-4.1.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnat-4.1.so
+ln -sf libgnarl-4.1.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnarl-4.1.so
+ln -sf libgnat-4.1.so $RPM_BUILD_ROOT%{_libdir}/libgnat.so
+ln -sf libgnarl-4.1.so $RPM_BUILD_ROOT%{_libdir}/libgnarl.so
+%endif
+
+cd ..
+
+%if %{with java}
+install -d java-doc
+cp -f  libjava/READ* java-doc
+cp -f  fastjar/README java-doc/README.fastjar
+cp -f  libffi/README java-doc/README.libffi
+cp -f  libffi/LICENSE java-doc/LICENSE.libffi
+ln -sf %{_javadir}/libgcj-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/libgcj.jar
+%endif
+%if %{with objc}
+cp -f  libobjc/README gcc/objc/README.libobjc
+%endif
+
+# avoid -L poisoning in *.la - there should be only -L%{_libdir}/gcc/*/%{version}
+# normalize libdir, to avoid propagation of unnecessary RPATHs by libtool
+for f in libmudflap.la libmudflapth.la libssp.la \
+       %{?with_cxx:libstdc++.la libsupc++.la} \
+       %{?with_fortran:libgfortran.la libgfortranbegin.la} \
+       %{?with_java:libgcj.la libffi.la} \
+       %{?with_objc:libobjc.la};
+do
+       %{SOURCE1} $RPM_BUILD_ROOT%{_libdir}/$f %{_libdir} > $RPM_BUILD_ROOT%{_libdir}/$f.fixed
+       mv $RPM_BUILD_ROOT%{_libdir}/$f{.fixed,}
+%if %{with multilib}
+       %{SOURCE1} $RPM_BUILD_ROOT%{_libdir32}/$f %{_libdir32} > $RPM_BUILD_ROOT%{_libdir32}/$f.fixed
+       mv $RPM_BUILD_ROOT%{_libdir32}/$f{.fixed,}
+%endif
+done
+
+# include/ contains install-tools/include/* and headers that were fixed up
+# by fixincludes, we don't want former
+gccdir=$(echo $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/)
+mkdir  $gccdir/tmp
+
+# we have to save these however
+%{?with_java:mv $gccdir/include/{gcj,libffi/ffitarget.h,jawt.h,jawt_md.h,jni.h,jni_md.h,jvmpi.h} $gccdir/tmp}
+%{?with_objc:mv $gccdir/include/objc $gccdir/tmp}
+mv $gccdir/include/syslimits.h $gccdir/tmp
+rm -rf $gccdir/include
+mv $gccdir/tmp $gccdir/include
+cp $gccdir/install-tools/include/*.h $gccdir/include
+# but we don't want anything more from install-tools
+rm -rf $gccdir/install-tools
+
+%if %{with multilib}
+ln -sf %{_slibdir32}/libgcc_s.so.1     $gccdir/32/libgcc_s.so
+%endif
+ln -sf %{_slibdir}/libgcc_s.so.1       $gccdir/libgcc_s.so
+
+%find_lang gcc
+%{?with_cxx:%find_lang libstdc\+\+}
+
+# cvs snap doesn't contain (release does) below files,
+# so let's create dummy entries to satisfy %%files.
+[ ! -f NEWS ] && touch NEWS
+[ ! -f libgfortran/AUTHORS ] && touch libgfortran/AUTHORS
+[ ! -f libgfortran/README ] && touch libgfortran/README
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+
+%postun
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+
+%post ada
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+
+%postun ada
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+
+%post fortran
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+
+%postun fortran
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+
+%post java
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+
+%postun java
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+
+%post  -p /sbin/ldconfig -n libgcc
+%postun        -p /sbin/ldconfig -n libgcc
+%post  -p /sbin/ldconfig -n libmudflap
+%postun        -p /sbin/ldconfig -n libmudflap
+%post  -p /sbin/ldconfig -n libgnat
+%postun        -p /sbin/ldconfig -n libgnat
+%post  -p /sbin/ldconfig -n libstdc++
+%postun        -p /sbin/ldconfig -n libstdc++
+%post  -p /sbin/ldconfig -n libgfortran
+%postun        -p /sbin/ldconfig -n libgfortran
+%post  -p /sbin/ldconfig -n libgcj
+%postun        -p /sbin/ldconfig -n libgcj
+%post  -p /sbin/ldconfig -n libffi
+%postun        -p /sbin/ldconfig -n libffi
+%post  -p /sbin/ldconfig -n libobjc
+%postun        -p /sbin/ldconfig -n libobjc
+
+%files -f gcc.lang
+%defattr(644,root,root,755)
+%doc ChangeLog.general MAINTAINERS NEWS
+# bugs.html faq.html
+%doc gcc/{ChangeLog,ONEWS,README.Portability}
+%dir %{_libdir}/gcc
+%dir %{_libdir}/gcc/*
+%dir %{_libdir}/gcc/*/*
+%dir %{_libdir}/gcc/*/*/include
+
+%attr(755,root,root) %{_bindir}/*-gcc*
+%attr(755,root,root) %{_bindir}/gcc
+%attr(755,root,root) %{_bindir}/gccbug
+%attr(755,root,root) %{_bindir}/gcov
+%attr(755,root,root) %{_bindir}/cc
+%attr(755,root,root) %{_bindir}/cpp
+
+%{_includedir}/ssp
+
+%{_mandir}/man1/cc.1*
+%{_mandir}/man1/cpp.1*
+%{_mandir}/man1/gcc.1*
+%{_mandir}/man1/gcov.1*
+
+%{_infodir}/cpp*
+%{_infodir}/gcc*
+
+%attr(755,root,root) /lib/cpp
+
+%attr(755,root,root) %{_slibdir}/lib*.so
+%{_libdir}/libssp.la
+%attr(755,root,root) %{_libdir}/libssp.a
+%attr(755,root,root) %{_libdir}/libssp.so
+%{_libdir}/libssp_nonshared.a
+%{_libdir}/libssp_nonshared.la
+%if %{with multilib}
+%dir %{_libdir}/gcc/*/*/32
+%{_libdir}/gcc/*/*/32/libgcov.a
+%{_libdir}/gcc/*/*/32/libgcc.a
+%{_libdir}/gcc/*/*/32/libgcc_eh.a
+%{_libdir}/gcc/*/*/32/libgcc_s.so
+%{_libdir32}/libssp.la
+%attr(755,root,root) %{_libdir32}/libssp.a
+%attr(755,root,root) %{_libdir32}/libssp.so
+%{_libdir32}/libssp_nonshared.a
+%{_libdir32}/libssp_nonshared.la
+%endif
+%{_libdir}/gcc/*/*/libgcov.a
+%{_libdir}/gcc/*/*/libgcc.a
+%{_libdir}/gcc/*/*/libgcc_eh.a
+%{_libdir}/gcc/*/*/libgcc_s.so
+%{_libdir}/gcc/*/*/specs
+%if %{with multilib}
+%{_libdir}/gcc/*/*/32/crt*.o
+%endif
+%{_libdir}/gcc/*/*/crt*.o
+%attr(755,root,root) %{_libdir}/gcc/*/*/cc1
+%attr(755,root,root) %{_libdir}/gcc/*/*/collect2
+
+%{_libdir}/gcc/*/*/include/*.h
+
+%files -n libgcc
+%defattr(644,root,root,755)
+%if %{with multilib}
+%attr(755,root,root) %{_slibdir32}/lib*.so.*
+%endif
+%attr(755,root,root) %{_slibdir}/lib*.so.*
+
+%files -n libmudflap
+%defattr(644,root,root,755)
+%if %{with multilib}
+%attr(755,root,root) %{_libdir32}/libmudflap*.so.*.*.*
+%endif
+%attr(755,root,root) %{_libdir}/libmudflap*.so.*.*.*
+
+%files -n libmudflap-devel
+%defattr(644,root,root,755)
+%{_includedir}/mf-runtime.h
+%if %{with multilib}
+%{_libdir32}/libmudflap*.la
+%attr(755,root,root) %{_libdir32}/libmudflap*.so
+%endif
+%{_libdir}/libmudflap*.la
+%attr(755,root,root) %{_libdir}/libmudflap*.so
+
+%files -n libmudflap-static
+%defattr(644,root,root,755)
+%if %{with multilib}
+%{_libdir32}/libmudflap*.a
+%endif
+%{_libdir}/libmudflap*.a
+
+%if %{with ada}
+%files ada
+%defattr(644,root,root,755)
+%doc gcc/ada/ChangeLog
+%attr(755,root,root) %{_bindir}/gnat*
+%attr(755,root,root) %{_bindir}/gpr*
+%attr(755,root,root) %{_libdir}/libgnarl*.so
+%attr(755,root,root) %{_libdir}/libgnat*.so
+%attr(755,root,root) %{_libdir}/gcc/*/*/gnat1
+%{_libdir}/gcc/*/*/adainclude
+%dir %{_libdir}/gcc/*/*/adalib
+%{_libdir}/gcc/*/*/adalib/*.ali
+%{_libdir}/gcc/*/*/adalib/g-trasym.o
+%{_libdir}/gcc/*/*/adalib/libgccprefix.a
+%ifarch %{ix86}
+%{_libdir}/gcc/*/*/adalib/libgmem.a
+%endif
+%{_infodir}/gnat*
+
+%files -n libgnat
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libgnarl*.so.1
+%attr(755,root,root) %{_libdir}/libgnat*.so.1
+
+%files -n libgnat-static
+%defattr(644,root,root,755)
+%{_libdir}/gcc/*/*/adalib/libgnarl.a
+%{_libdir}/gcc/*/*/adalib/libgnat.a
+%endif
+
+%if %{with cxx}
+%files c++
+%defattr(644,root,root,755)
+%doc gcc/cp/{ChangeLog,NEWS}
+%attr(755,root,root) %{_bindir}/g++
+%attr(755,root,root) %{_bindir}/*-g++
+%attr(755,root,root) %{_bindir}/c++
+%attr(755,root,root) %{_bindir}/*-c++
+%attr(755,root,root) %{_libdir}/gcc/*/*/cc1plus
+%if %{with multilib}
+%{_libdir32}/libsupc++.a
+%{_libdir32}/libsupc++.la
+%endif
+%{_libdir}/libsupc++.a
+%{_libdir}/libsupc++.la
+%{_mandir}/man1/g++.1*
+
+%files -n libstdc++ -f libstdc++.lang
+%defattr(644,root,root,755)
+%doc libstdc++-v3/{ChangeLog,README}
+%if %{with multilib}
+%attr(755,root,root) %{_libdir32}/libstdc++.so.*.*.*
+%endif
+%attr(755,root,root) %{_libdir}/libstdc++.so.*.*.*
+
+%files -n libstdc++-devel
+%defattr(644,root,root,755)
+%doc libstdc++-v3/docs/html
+%dir %{_includedir}/c++
+%{_includedir}/c++/%{version}
+%if %{with java}
+%exclude %{_includedir}/c++/%{version}/java
+%exclude %{_includedir}/c++/%{version}/javax
+%exclude %{_includedir}/c++/%{version}/gcj
+%exclude %{_includedir}/c++/%{version}/gnu
+%endif
+%ifnarch sparc
+%exclude %{_includedir}/c++/%{version}/*/bits/stdc++.h.gch
+%endif
+%if %{with multilib}
+%{_libdir32}/libstdc++.la
+%attr(755,root,root) %{_libdir32}/libstdc++.so
+%endif
+%{_libdir}/libstdc++.la
+%attr(755,root,root) %{_libdir}/libstdc++.so
+
+%files -n libstdc++-static
+%defattr(644,root,root,755)
+%if %{with multilib}
+%{_libdir32}/libstdc++.a
+%endif
+%{_libdir}/libstdc++.a
+%endif
+
+%if %{with fortran}
+%files fortran
+%defattr(644,root,root,755)
+%doc gcc/fortran/ChangeLog
+%attr(755,root,root) %{_bindir}/g95
+%attr(755,root,root) %{_bindir}/gfortran
+%attr(755,root,root) %{_bindir}/*-gfortran
+%{_infodir}/gfortran*
+%attr(755,root,root) %{_libdir}/gcc/*/*/f951
+%if %{with multilib}
+%{_libdir32}/libgfortranbegin.a
+%{_libdir32}/libgfortranbegin.la
+%{_libdir32}/libgfortran.la
+%attr(755,root,root) %{_libdir32}/libgfortran.so
+%endif
+%{_libdir}/libgfortranbegin.a
+%{_libdir}/libgfortranbegin.la
+%{_libdir}/libgfortran.la
+%attr(755,root,root) %{_libdir}/libgfortran.so
+%{_mandir}/man1/g95.1*
+%{_mandir}/man1/gfortran.1*
+
+%files -n libgfortran
+%defattr(644,root,root,755)
+%doc libgfortran/{AUTHORS,README,ChangeLog}
+%if %{with multilib}
+%attr(755,root,root) %{_libdir32}/libgfortran.so.*.*.*
+%endif
+%attr(755,root,root) %{_libdir}/libgfortran.so.*.*.*
+
+%files -n libgfortran-static
+%defattr(644,root,root,755)
+%if %{with multilib}
+%{_libdir32}/libgfortran.a
+%endif
+%{_libdir}/libgfortran.a
+%endif
+
+%if %{with java}
+%files java
+%defattr(644,root,root,755)
+%doc gcc/java/ChangeLog java-doc/*
+%attr(755,root,root) %{_bindir}/fastjar
+%attr(755,root,root) %{_bindir}/gcj*
+%attr(755,root,root) %{_bindir}/gjnih
+%attr(755,root,root) %{_bindir}/grepjar
+%attr(755,root,root) %{_bindir}/grmi*
+%attr(755,root,root) %{_bindir}/jcf-dump
+%attr(755,root,root) %{_bindir}/jv-*
+%attr(755,root,root) %{_bindir}/*-gcj*
+%attr(755,root,root) %{_libdir}/gcc/*/*/jc1
+%attr(755,root,root) %{_libdir}/gcc/*/*/jvgenmain
+%{_infodir}/fastjar*
+%{_infodir}/gcj*
+%{_mandir}/man1/fastjar*
+%{_mandir}/man1/gcj*
+%{_mandir}/man1/gjnih*
+%{_mandir}/man1/grepjar*
+%{_mandir}/man1/grmi*
+%{_mandir}/man1/jcf-*
+%{_mandir}/man1/jv-*
+
+%files -n libgcj
+%defattr(644,root,root,755)
+%doc libjava/{ChangeLog,LIBGCJ_LICENSE,NEWS,README,THANKS}
+%attr(755,root,root) %{_bindir}/addr2name.awk
+%attr(755,root,root) %{_bindir}/gij
+%dir %{_libdir}/classpath
+%attr(755,root,root) %{_libdir}/classpath/libgjsmalsa.so.*.*.*
+%attr(755,root,root) %{_libdir}/classpath/libgjsmdssi.so.*.*.*
+%dir %{_libdir}/gcj-%{version}
+%{_libdir}/gcj-%{version}/classmap.db
+%attr(755,root,root) %{_libdir}/lib*cj*.so.*.*.*
+%attr(755,root,root) %{_libdir}/libgij.so.*.*.*
+%{_libdir}/logging.properties
+%{_javadir}/libgcj*.jar
+%{_mandir}/man1/gij*
+
+%files -n libgcj-devel
+%defattr(644,root,root,755)
+%{_includedir}/c++/%{version}/java
+%{_includedir}/c++/%{version}/javax
+%{_includedir}/c++/%{version}/gcj
+%{_includedir}/c++/%{version}/gnu
+%{_libdir}/classpath/libgjsmalsa.la
+%attr(755,root,root) %{_libdir}/classpath/libgjsmalsa.so
+%{_libdir}/classpath/libgjsmdssi.la
+%attr(755,root,root) %{_libdir}/classpath/libgjsmdssi.so
+%{_libdir}/gcc/*/*/include/gcj
+%{_libdir}/gcc/*/*/include/jawt.h
+%{_libdir}/gcc/*/*/include/jawt_md.h
+%{_libdir}/gcc/*/*/include/jni.h
+%{_libdir}/gcc/*/*/include/jvmpi.h
+%dir %{_libdir}/security
+%{_libdir}/security/*
+%{_libdir}/lib*cj.spec
+%{_libdir}/lib*cj*.la
+%attr(755,root,root) %{_libdir}/lib*cj*.so
+%{_libdir}/libgij.la
+%attr(755,root,root) %{_libdir}/libgij.so
+%{_pkgconfigdir}/libgcj.pc
+
+%files -n libgcj-static
+%defattr(644,root,root,755)
+%{_libdir}/lib*cj*.a
+%{_libdir}/libgij.a
+
+%files -n libffi
+%defattr(644,root,root,755)
+%doc libffi/{ChangeLog,ChangeLog.libgcj,LICENSE,README}
+%attr(755,root,root) %{_libdir}/libffi.so.*.*.*
+
+%files -n libffi-devel
+%defattr(644,root,root,755)
+%{_libdir}/gcc/*/*/include/ffitarget.h
+%attr(755,root,root) %{_libdir}/libffi.so
+%{_libdir}/libffi.la
+%{_includedir}/ffi.h
+
+%files -n libffi-static
+%defattr(644,root,root,755)
+%{_libdir}/libffi.a
+%endif
+
+%if %{with objc}
+%files objc
+%defattr(644,root,root,755)
+%doc gcc/objc/README
+%attr(755,root,root) %{_libdir}/gcc/*/*/cc1obj
+%if %{with multilib}
+%attr(755,root,root) %{_libdir32}/libobjc.so
+%{_libdir32}/libobjc.la
+%endif
+%attr(755,root,root) %{_libdir}/libobjc.so
+%{_libdir}/libobjc.la
+%{_libdir}/gcc/*/*/include/objc
+
+%files -n libobjc
+%defattr(644,root,root,755)
+%doc libobjc/{ChangeLog,README*}
+%if %{with multilib}
+%attr(755,root,root) %{_libdir32}/libobjc.so.*.*.*
+%endif
+%attr(755,root,root) %{_libdir}/libobjc.so.*.*.*
+
+%files -n libobjc-static
+%defattr(644,root,root,755)
+%if %{with multilib}
+%{_libdir32}/libobjc.a
+%endif
+%{_libdir}/libobjc.a
+%endif
+
+%if %{with objcxx}
+%files objc++
+%defattr(644,root,root,755)
+%doc gcc/objcp/ChangeLog
+%attr(755,root,root) %{_libdir}/gcc/*/*/cc1objplus
+%endif
This page took 0.294216 seconds and 4 git commands to generate.