public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Jakub Jelinek <jakub@fedoraproject.org>
To: git-commits@fedoraproject.org
Subject: [rpms/gcc] rhel-f41-base: 4.4.0-0.3
Date: Mon, 29 Jun 2026 12:23:59 GMT	[thread overview]
Message-ID: <178273583901.1.8445215389207279544.rpms-gcc-7c0747109312@fedoraproject.org> (raw)

A new commit has been pushed.

Repo   : rpms/gcc
Branch : rhel-f41-base
Commit : 7c074710931251a56f6fb71bebcee17f114e781d
Author : Jakub Jelinek <jakub@fedoraproject.org>
Date   : 2009-01-16T18:34:38+00:00
Stats  : +3094/-7247 in 53 file(s)
URL    : https://src.fedoraproject.org/rpms/gcc/c/7c074710931251a56f6fb71bebcee17f114e781d?branch=rhel-f41-base

Log:
4.4.0-0.3

---
diff --git a/.cvsignore b/.cvsignore
index e17de7b..16f2639 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1,2 +1,2 @@
-gcc-4.3.2-20081105.tar.bz2
-fastjar-0.95.tar.gz
+fastjar-0.97.tar.gz
+gcc-4.4.0-20090115.tar.bz2

diff --git a/fastjar-0.97-segfault.patch b/fastjar-0.97-segfault.patch
new file mode 100644
index 0000000..ab62624
--- /dev/null
+++ b/fastjar-0.97-segfault.patch
@@ -0,0 +1,29 @@
+2009-01-14  Jakub Jelinek  <jakub@redhat.com>
+
+	* jartool.c (make_manifest): Initialize current_time before
+	calling unix2dostime on it.
+
+--- fastjar-0.97/jartool.c.jj	2008-10-15 18:35:37.000000000 +0200
++++ fastjar-0.97/jartool.c	2009-01-14 15:40:50.000000000 +0100
+@@ -820,6 +820,10 @@ int make_manifest(int jfd, const char *m
+   int mod_time; /* file modification time */
+   struct zipentry *ze;
+ 
++  current_time = time(NULL);
++  if(current_time == (time_t)-1)
++    exit_on_error("time");
++
+   mod_time = unix2dostime(&current_time);  
+   
+   /* If we are creating a new manifest, create a META-INF directory entry */
+@@ -828,10 +832,6 @@ int make_manifest(int jfd, const char *m
+ 
+     memset((file_header + 12), '\0', 16); /*clear mod time, crc, size fields*/
+   
+-    current_time = time(NULL);
+-    if(current_time == (time_t)-1)
+-      exit_on_error("time");
+-
+     PACK_UB2(file_header, LOC_EXTRA, 0);
+     PACK_UB2(file_header, LOC_COMP, 0);
+     PACK_UB2(file_header, LOC_FNLEN, nlen);

diff --git a/gcc.spec b/gcc.spec
new file mode 100644
index 0000000..fd69467
--- /dev/null
+++ b/gcc.spec
@@ -0,0 +1,1713 @@
+%define DATE 20090115
+%define SVNREV 141601
+%define gcc_version 4.4.0
+# Note, gcc_release must be integer, if you want to add suffixes to
+# %{release}, append them after %{gcc_release} on Release: line.
+%define gcc_release 0.3
+%define _unpackaged_files_terminate_build 0
+%define multilib_64_archs sparc64 ppc64 s390x x86_64
+%define include_gappletviewer 1
+%ifarch %{ix86} x86_64 ia64 ppc alpha
+%define build_ada 1
+%else
+%define build_ada 0
+%endif
+%define build_java 1
+# If you don't have already a usable gcc-java and libgcj for your arch,
+# do on some arch which has it rpmbuild -bc --with java_tar gcc41.spec
+# which creates libjava-classes-%{version}-%{release}.tar.bz2
+# With this then on the new arch do rpmbuild -ba -v --with java_bootstrap gcc41.spec
+%define bootstrap_java %{?_with_java_bootstrap:%{build_java}}%{!?_with_java_bootstrap:0}
+%define build_java_tar %{?_with_java_tar:%{build_java}}%{!?_with_java_tar:0}
+%ifarch s390x
+%define multilib_32_arch s390
+%endif
+%ifarch sparc64
+%define multilib_32_arch sparcv9
+%endif
+%ifarch ppc64
+%define multilib_32_arch ppc
+%endif
+%ifarch x86_64
+%define multilib_32_arch i386
+%endif
+Summary: Various compilers (C, C++, Objective-C, Java, ...)
+Name: gcc
+Version: %{gcc_version}
+Release: %{gcc_release}
+# libgcc, libgfortran, libmudflap and crtstuff have an exception which allows
+# linking it into any kind of programs or shared libraries without
+# restrictions.
+License: GPLv3+ and GPLv2+ with exceptions
+Group: Development/Languages
+# The source for this package was pulled from upstream's vcs.  Use the
+# following commands to generate the tarball:
+# svn export svn://gcc.gnu.org/svn/gcc/branches/redhat/gcc-4_3-branch@%{SVNREV} gcc-%{version}-%{DATE}
+# tar cf - gcc-%{version}-%{DATE} | bzip2 -9 > gcc-%{version}-%{DATE}.tar.bz2
+Source0: gcc-%{version}-%{DATE}.tar.bz2
+Source1: libgcc_post_upgrade.c
+Source2: README.libgcjwebplugin.so
+Source3: protoize.1
+%define fastjar_ver 0.97
+Source4: http://download.savannah.nongnu.org/releases/fastjar/fastjar-%{fastjar_ver}.tar.gz
+URL: http://gcc.gnu.org
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+# Need binutils with -pie support >= 2.14.90.0.4-4
+# Need binutils which can omit dot symbols and overlap .opd on ppc64 >= 2.15.91.0.2-4
+# Need binutils which handle -msecure-plt on ppc >= 2.16.91.0.2-2
+# Need binutils which support .weakref >= 2.16.91.0.3-1
+# Need binutils which support --hash-style=gnu >= 2.17.50.0.2-7
+# Need binutils which support mffgpr and mftgpr >= 2.17.50.0.2-8
+# Need binutils which support --build-id >= 2.17.50.0.17-3
+BuildRequires: binutils >= 2.17.50.0.17-3
+BuildRequires: zlib-devel, gettext, dejagnu, bison, flex, texinfo, sharutils
+%if %{build_java}
+BuildRequires: /usr/share/java/eclipse-ecj.jar, zip, unzip
+%if %{bootstrap_java}
+Source10: libjava-classes-%{version}-%{release}.tar.bz2
+%else
+BuildRequires: gcc-java, libgcj
+%endif
+%endif
+# Make sure pthread.h doesn't contain __thread tokens
+# Make sure glibc supports stack protector
+# Make sure glibc supports DT_GNU_HASH
+BuildRequires: glibc-devel >= 2.4.90-13
+BuildRequires: elfutils-devel >= 0.72
+%ifarch ppc ppc64 s390 s390x sparc sparcv9 alpha
+# Make sure glibc supports TFmode long double
+BuildRequires: glibc >= 2.3.90-35
+%endif
+%ifarch %{multilib_64_archs} sparcv9 ppc
+# Ensure glibc{,-devel} is installed for both multilib arches
+BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so
+%endif
+%if %{build_ada}
+# Ada requires Ada to build
+BuildRequires: gcc-gnat >= 3.1, libgnat >= 3.1
+%endif
+%ifarch ia64
+BuildRequires: libunwind >= 0.98
+%endif
+Requires: cpp = %{version}-%{release}
+# Need .eh_frame ld optimizations
+# Need proper visibility support
+# Need -pie support
+# Need --as-needed/--no-as-needed support
+# On ppc64, need omit dot symbols support and --non-overlapping-opd
+# Need binutils that owns /usr/bin/c++filt
+# Need binutils that support .weakref
+# Need binutils that supports --hash-style=gnu
+# Need binutils that support mffgpr/mftgpr
+# Need binutils that support --build-id
+Requires: binutils >= 2.17.50.0.17-3
+# Make sure gdb will understand DW_FORM_strp
+Conflicts: gdb < 5.1-2
+Requires: glibc-devel >= 2.2.90-12
+%ifarch ppc ppc64 s390 s390x sparc sparcv9 alpha
+# Make sure glibc supports TFmode long double
+Requires: glibc >= 2.3.90-35
+%endif
+Requires: libgcc >= %{version}-%{release}
+Requires: libgomp = %{version}-%{release}
+%if !%{build_ada}
+Obsoletes: gcc-gnat < %{version}-%{release}
+Obsoletes: libgnat < %{version}-%{release}
+%endif
+Prereq: /sbin/install-info
+AutoReq: true
+
+Patch0: gcc44-hack.patch
+Patch1: gcc44-build-id.patch
+Patch2: gcc44-c++-builtin-redecl.patch
+Patch3: gcc44-ia64-libunwind.patch
+Patch4: gcc44-java-nomulti.patch
+Patch5: gcc44-ppc32-retaddr.patch
+Patch7: gcc44-pr27898.patch
+Patch8: gcc44-pr32139.patch
+Patch9: gcc44-pr33763.patch
+Patch10: gcc44-rh330771.patch
+Patch11: gcc44-rh341221.patch
+Patch12: gcc44-java-debug-iface-type.patch
+Patch13: gcc44-i386-libgomp.patch
+Patch15: gcc44-sparc-config-detection.patch
+Patch16: gcc44-libgomp-omp_h-multilib.patch
+Patch20: gcc44-libtool-no-rpath.patch
+
+Patch1000: fastjar-0.97-segfault.patch
+
+# On ARM EABI systems, we do want -gnueabi to be part of the
+# target triple.
+%ifnarch %{arm}
+%define _gnu %{nil}
+%endif
+%ifarch sparcv9
+%define gcc_target_platform sparc64-%{_vendor}-%{_target_os}
+%endif
+%ifarch ppc
+%define gcc_target_platform ppc64-%{_vendor}-%{_target_os}
+%endif
+%ifnarch sparcv9 ppc
+%define gcc_target_platform %{_target_platform}
+%endif
+
+%description
+The gcc package contains the GNU Compiler Collection version 4.4.
+You'll need this package in order to compile C code.
+
+%package -n libgcc
+Summary: GCC version 4.4 shared support library
+Group: System Environment/Libraries
+Autoreq: false
+
+%description -n libgcc
+This package contains GCC shared support library which is needed
+e.g. for exception handling support.
+
+%package c++
+Summary: C++ support for GCC
+Group: Development/Languages
+Requires: gcc = %{version}-%{release}
+Requires: libstdc++ = %{version}-%{release}
+Requires: libstdc++-devel = %{version}-%{release}
+Autoreq: true
+
+%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.
+
+%package -n libstdc++
+Summary: GNU Standard C++ Library
+Group: System Environment/Libraries
+Autoreq: true
+
+%description -n libstdc++
+The libstdc++ package contains a rewritten standard compliant GCC Standard
+C++ Library.
+
+%package -n libstdc++-devel
+Summary: Header files and libraries for C++ development
+Group: Development/Libraries
+Requires: libstdc++ = %{version}-%{release}, %{_prefix}/%{_lib}/libstdc++.so.6
+Autoreq: true
+
+%description -n libstdc++-devel
+This is the GNU implementation of the standard C++ libraries.  This
+package includes the header files and libraries needed for C++
+development. This includes rewritten implementation of STL.
+
+%package objc
+Summary: Objective-C support for GCC
+Group: Development/Languages
+Requires: gcc = %{version}-%{release}
+Requires: libobjc = %{version}-%{release}
+Autoreq: true
+
+%description objc
+gcc-objc provides Objective-C support for the GCC.
+Mainly used on systems running NeXTSTEP, Objective-C is an
+object-oriented derivative of the C language.
+
+%package objc++
+Summary: Objective-C++ support for GCC
+Group: Development/Languages
+Requires: gcc-c++ = %{version}-%{release}, gcc-objc = %{version}-%{release}
+Autoreq: true
+
+%description objc++
+gcc-objc++ package provides Objective-C++ support for the GCC.
+
+%package -n libobjc
+Summary: Objective-C runtime
+Group: System Environment/Libraries
+Autoreq: true
+
+%description -n libobjc
+This package contains Objective-C shared library which is needed to run
+Objective-C dynamically linked programs.
+
+%package gfortran
+Summary: Fortran support
+Group: Development/Languages
+Requires: gcc = %{version}-%{release}
+Requires: libgfortran = %{version}-%{release}
+BuildRequires: gmp-devel >= 4.1.2-8, mpfr-devel >= 2.2.1
+Prereq: /sbin/install-info
+Autoreq: true
+
+%description gfortran
+The gcc-gfortran package provides support for compiling Fortran
+programs with the GNU Compiler Collection.
+
+%package -n libgfortran
+Summary: Fortran runtime
+Group: System Environment/Libraries
+Autoreq: true
+
+%description -n libgfortran
+This package contains Fortran shared library which is needed to run
+Fortran dynamically linked programs.
+
+%package -n libgomp
+Summary: GCC OpenMP v3.0 shared support library
+Group: System Environment/Libraries
+Prereq: /sbin/install-info
+
+%description -n libgomp
+This package contains GCC shared support library which is needed
+for OpenMP v3.0 support.
+
+%package -n libmudflap
+Summary: GCC mudflap shared support library
+Group: System Environment/Libraries
+
+%description -n libmudflap
+This package contains GCC shared support library which is needed
+for mudflap support.
+
+%package -n libmudflap-devel
+Summary: GCC mudflap support
+Group: Development/Libraries
+Requires: libmudflap = %{version}-%{release}
+Requires: gcc = %{version}-%{release}
+
+%description -n libmudflap-devel
+This package contains headers and static libraries for building
+mudflap-instrumented programs.
+
+To instrument a non-threaded program, add -fmudflap
+option to GCC and when linking add -lmudflap, for threaded programs
+also add -fmudflapth and -lmudflapth.
+
+%package java
+Summary: Java support for GCC
+Group: Development/Languages
+Requires: gcc = %{version}-%{release}
+Requires: libgcj = %{version}-%{release}
+Requires: libgcj-devel = %{version}-%{release}
+Requires: /usr/share/java/eclipse-ecj.jar
+Prereq: /sbin/install-info
+Autoreq: true
+
+%description java
+This package adds support for compiling Java(tm) programs and
+bytecode into native code.
+
+%package -n libgcj
+Summary: Java runtime library for gcc
+Group: System Environment/Libraries
+Prereq: /sbin/install-info
+Requires: zip >= 2.1
+Requires: gtk2 >= 2.4.0
+Requires: glib2 >= 2.4.0
+Requires: libart_lgpl >= 2.1.0
+%if %{build_java}
+BuildRequires: gtk2-devel >= 2.4.0
+BuildRequires: glib2-devel >= 2.4.0
+BuildRequires: xulrunner-devel
+BuildRequires: libart_lgpl-devel >= 2.1.0
+BuildRequires: alsa-lib-devel
+BuildRequires: libXtst-devel
+BuildRequires: libXt-devel
+%endif
+Autoreq: true
+
+%description -n libgcj
+The Java(tm) runtime library. You will need this package to run your Java
+programs compiled using the Java compiler from GNU Compiler Collection (gcj).
+
+%package -n libgcj-devel
+Summary: Libraries for Java development using GCC
+Group: Development/Languages
+Requires: libgcj = %{version}-%{release}, %{_prefix}/%{_lib}/libgcj.so.10
+Requires: zlib-devel, %{_prefix}/%{_lib}/libz.so
+Requires: /bin/awk
+Autoreq: false
+Autoprov: false
+
+%description -n libgcj-devel
+The Java(tm) static libraries and C header files. You will need this
+package to compile your Java programs using the GCC Java compiler (gcj).
+
+%package -n libgcj-src
+Summary: Java library sources from GCC4 preview
+Group: System Environment/Libraries
+Requires: libgcj = %{version}-%{release}
+Autoreq: true
+
+%description -n libgcj-src
+The Java(tm) runtime library sources for use in Eclipse.
+
+%package -n cpp
+Summary: The C Preprocessor
+Group: Development/Languages
+Prereq: /sbin/install-info
+Autoreq: true
+
+%description -n cpp
+Cpp is the GNU C-Compatible Compiler Preprocessor.
+Cpp is a macro processor which is used automatically
+by the C compiler to transform your program before actual
+compilation. It is called a macro processor because it allows
+you to define macros, abbreviations for longer
+constructs.
+
+The C preprocessor provides four separate functionalities: the
+inclusion of header files (files of declarations that can be
+substituted into your program); macro expansion (you can define macros,
+and the C preprocessor will replace the macros with their definitions
+throughout the program); conditional compilation (using special
+preprocessing directives, you can include or exclude parts of the
+program according to various conditions); and line control (if you use
+a program to combine or rearrange source files into an intermediate
+file which is then compiled, you can use line control to inform the
+compiler about where each source line originated).
+
+You should install this package if you are a C programmer and you use
+macros.
+
+%package gnat
+Summary: Ada 95 support for GCC
+Group: Development/Languages
+Requires: gcc = %{version}-%{release}
+Requires: libgnat = %{version}-%{release}, libgnat-devel = %{version}-%{release}
+Prereq: /sbin/install-info
+Autoreq: true
+
+%description gnat
+GNAT is a GNU Ada 95 front-end to GCC. This package includes development tools,
+the documents and Ada 95 compiler.
+
+%package -n libgnat
+Summary: GNU Ada 95 runtime shared libraries
+Group: System Environment/Libraries
+Autoreq: true
+
+%description -n libgnat
+GNAT is a GNU Ada 95 front-end to GCC. This package includes shared libraries,
+which are required to run programs compiled with the GNAT.
+
+%package -n libgnat-devel
+Summary: GNU Ada 95 libraries
+Group: System Environment/Libraries
+Autoreq: true
+
+%description -n libgnat-devel
+GNAT is a GNU Ada 95 front-end to GCC. This package includes libraries,
+which are required to compile with the GNAT.
+
+%prep
+%setup -q -n gcc-%{version}-%{DATE}
+%patch0 -p0 -b .hack~
+%patch1 -p0 -b .build-id~
+%patch2 -p0 -b .c++-builtin-redecl~
+%patch3 -p0 -b .ia64-libunwind~
+%patch4 -p0 -b .java-nomulti~
+%patch5 -p0 -b .ppc32-retaddr~
+%patch7 -p0 -b .pr27898~
+%patch8 -p0 -b .pr32139~
+%patch9 -p0 -b .pr33763~
+%patch10 -p0 -b .rh330771~
+%patch11 -p0 -b .rh341221~
+%patch12 -p0 -b .java-debug-iface-type~
+%patch13 -p0 -b .i386-libgomp~
+%patch15 -p0 -b .sparc-config-detection~
+%patch16 -p0 -b .libgomp-omp_h-multilib~
+%patch20 -p0 -b .libtool-no-rpath~
+
+# This testcase doesn't compile.
+rm libjava/testsuite/libjava.lang/PR35020*
+
+tar xzf %{SOURCE4}
+
+%patch1000 -p0 -b .fastjar-0.97-segfault~
+
+%if %{bootstrap_java}
+tar xjf %{SOURCE10}
+%endif
+
+sed -i -e 's/4\.4\.1/4.4.0/' gcc/BASE-VER
+echo 'Red Hat %{version}-%{gcc_release}' > gcc/DEV-PHASE
+
+cp -a libstdc++-v3/config/cpu/i{4,3}86/atomicity.h
+
+# Hack to avoid building multilib libjava
+perl -pi -e 's/^all: all-redirect/ifeq (\$(MULTISUBDIR),)\nall: all-redirect\nelse\nall:\n\techo Multilib libjava build disabled\nendif/' libjava/Makefile.in
+perl -pi -e 's/^install: install-redirect/ifeq (\$(MULTISUBDIR),)\ninstall: install-redirect\nelse\ninstall:\n\techo Multilib libjava install disabled\nendif/' libjava/Makefile.in
+perl -pi -e 's/^check: check-redirect/ifeq (\$(MULTISUBDIR),)\ncheck: check-redirect\nelse\ncheck:\n\techo Multilib libjava check disabled\nendif/' libjava/Makefile.in
+perl -pi -e 's/^all: all-recursive/ifeq (\$(MULTISUBDIR),)\nall: all-recursive\nelse\nall:\n\techo Multilib libjava build disabled\nendif/' libjava/Makefile.in
+perl -pi -e 's/^install: install-recursive/ifeq (\$(MULTISUBDIR),)\ninstall: install-recursive\nelse\ninstall:\n\techo Multilib libjava install disabled\nendif/' libjava/Makefile.in
+perl -pi -e 's/^check: check-recursive/ifeq (\$(MULTISUBDIR),)\ncheck: check-recursive\nelse\ncheck:\n\techo Multilib libjava check disabled\nendif/' libjava/Makefile.in
+
+./contrib/gcc_update --touch
+
+LC_ALL=C sed -i -e 's/\xa0/ /' gcc/doc/options.texi
+
+%ifarch ppc
+if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
+  mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
+  mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/{,64/}baseline_symbols.txt
+  mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/{32/,}baseline_symbols.txt
+  rm -rf libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32
+fi
+%endif
+%ifarch sparc
+if [ -d libstdc++-v3/config/abi/post/sparc64-linux-gnu ]; then
+  mkdir -p libstdc++-v3/config/abi/post/sparc64-linux-gnu/64
+  mv libstdc++-v3/config/abi/post/sparc64-linux-gnu/{,64/}baseline_symbols.txt
+  mv libstdc++-v3/config/abi/post/sparc64-linux-gnu/{32/,}baseline_symbols.txt
+  rm -rf libstdc++-v3/config/abi/post/sparc64-linux-gnu/32
+fi
+%endif
+
+%build
+
+%if %{build_java}
+# gjar isn't usable, so even when GCC source tree no longer includes
+# fastjar, build it anyway.
+mkdir fastjar-%{fastjar_ver}/obj-%{gcc_target_platform}
+cd fastjar-%{fastjar_ver}/obj-%{gcc_target_platform}
+../configure CFLAGS="$RPM_OPT_FLAGS" --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir}
+make %{?_smp_mflags}
+export PATH=`pwd`${PATH:+:$PATH}
+cd ../../
+%endif
+
+rm -fr obj-%{gcc_target_platform}
+mkdir obj-%{gcc_target_platform}
+cd obj-%{gcc_target_platform}
+
+%if %{build_java}
+%if !%{bootstrap_java}
+# If we don't have gjavah in $PATH, try to build it with the old gij
+mkdir java_hacks
+cd java_hacks
+cp -a ../../libjava/classpath/tools/external external
+mkdir -p gnu/classpath/tools
+cp -a ../../libjava/classpath/tools/gnu/classpath/tools/{common,javah,getopt} gnu/classpath/tools/
+cp -a ../../libjava/classpath/tools/resource/gnu/classpath/tools/common/Messages.properties gnu/classpath/tools/common
+cp -a ../../libjava/classpath/tools/resource/gnu/classpath/tools/getopt/Messages.properties gnu/classpath/tools/getopt
+cd external/asm; for i in `find . -name \*.java`; do gcj --encoding ISO-8859-1 -C $i -I.; done; cd ../..
+for i in `find gnu -name \*.java`; do gcj -C $i -I. -Iexternal/asm/; done
+gcj -findirect-dispatch -O2 -fmain=gnu.classpath.tools.javah.Main -I. -Iexternal/asm/ `find . -name \*.class` -o gjavah.real
+cat > gjavah <<EOF
+#!/bin/sh
+export CLASSPATH=`pwd`${CLASSPATH:+:$CLASSPATH}
+exec `pwd`/gjavah.real "\$@"
+EOF
+chmod +x `pwd`/gjavah
+cat > ecj1 <<EOF
+#!/bin/sh
+exec gij -cp /usr/share/java/eclipse-ecj.jar org.eclipse.jdt.internal.compiler.batch.GCCMain "\$@"
+EOF
+chmod +x `pwd`/ecj1
+export PATH=`pwd`${PATH:+:$PATH}
+cd ..
+%endif
+%endif
+
+CC=gcc
+OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/\(-Wp,\)\?-D_FORTIFY_SOURCE=[12]//g'`
+OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-m64//g;s/-m32//g;s/-m31//g'`
+%ifarch sparc
+OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mcpu=ultrasparc/-mtune=ultrasparc/g;s/-mcpu=v[78]//g'`
+%endif
+%ifarch %{ix86}
+OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-march=i386//g'`
+%endif
+%ifarch sparc64
+cat > gcc64 <<"EOF"
+#!/bin/sh
+exec /usr/bin/gcc -m64 "$@"
+EOF
+chmod +x gcc64
+CC=`pwd`/gcc64
+%endif
+%ifarch ppc64
+if gcc -m64 -xc -S /dev/null -o - > /dev/null 2>&1; then
+  cat > gcc64 <<"EOF"
+#!/bin/sh
+exec /usr/bin/gcc -m64 "$@"
+EOF
+  chmod +x gcc64
+  CC=`pwd`/gcc64
+fi
+%endif
+OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e 's/[[:blank:]]\+/ /g'`
+case "$OPT_FLAGS" in
+  *-fasynchronous-unwind-tables*)
+    sed -i -e 's/-fno-exceptions /-fno-exceptions -fno-asynchronous-unwind-tables/' \
+      ../gcc/Makefile.in
+    ;;
+esac
+CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`" XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
+	GCJFLAGS="$OPT_FLAGS" \
+	../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
+	--with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap \
+	--enable-shared --enable-threads=posix --enable-checking=release \
+	--with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions \
+%if !%{build_ada}
+	--enable-languages=c,c++,objc,obj-c++,java,fortran \
+%else
+	--enable-languages=c,c++,objc,obj-c++,java,fortran,ada \
+%endif
+%if !%{build_java}
+	--disable-libgcj \
+%else
+	--enable-java-awt=gtk --disable-dssi --enable-plugin \
+	--with-java-home=%{_prefix}/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre \
+	--enable-libgcj-multifile \
+%if !%{bootstrap_java}
+	--enable-java-maintainer-mode \
+%endif
+	--with-ecj-jar=/usr/share/java/eclipse-ecj.jar \
+	--disable-libjava-multilib \
+%endif
+%ifarch %{arm}
+	--disable-sjlj-exceptions \
+%endif
+%ifarch ppc ppc64
+	--enable-secureplt \
+%endif
+%ifarch sparc sparcv9 sparc64 ppc ppc64 s390 s390x alpha
+	--with-long-double-128 \
+%endif
+%ifarch sparc
+	--disable-linux-futex \
+%endif
+%ifarch sparc64
+	--with-cpu=ultrasparc \
+%endif
+%ifarch sparc sparcv9
+	--host=%{gcc_target_platform} --build=%{gcc_target_platform} --target=%{gcc_target_platform} --with-cpu=v7
+%endif
+%ifarch ppc
+	--build=%{gcc_target_platform} --target=%{gcc_target_platform} --with-cpu=default32
+%endif
+%ifarch %{ix86} x86_64
+	--with-cpu=generic \
+%endif
+%ifarch s390 s390x
+	--with-tune=z9-109 \
+%endif
+%ifnarch sparc sparcv9 ppc
+	--build=%{gcc_target_platform}
+%endif
+
+#GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" bootstrap
+GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" profiledbootstrap
+
+# run the tests.
+make %{?_smp_mflags} -k check ALT_CC_UNDER_TEST=gcc ALT_CXX_UNDER_TEST=g++ RUNTESTFLAGS="--target_board=unix/'{,-fstack-protector/--param=ssp-buffer-size=4}'" || :
+echo ====================TESTING=========================
+( ../contrib/test_summary || : ) 2>&1 | sed -n '/^cat.*EOF/,/^EOF/{/^cat.*EOF/d;/^EOF/d;/^LAST_UPDATED:/d;p;}'
+echo ====================TESTING END=====================
+mkdir testlogs-%{_target_platform}-%{version}-%{release}
+for i in `find . -name \*.log | grep -F testsuite/ | grep -v 'config.log\|acats\|ada'`; do
+  ln $i testlogs-%{_target_platform}-%{version}-%{release}/ || :
+done
+tar cf - testlogs-%{_target_platform}-%{version}-%{release} | bzip2 -9c \
+  | uuencode testlogs-%{_target_platform}.tar.bz2 || :
+rm -rf testlogs-%{_target_platform}-%{version}-%{release}
+
+# Make protoize
+make -C gcc CC="./xgcc -B ./ -O2" proto
+
+# Make generated man pages even if Pod::Man is not new enough
+perl -pi -e 's/head3/head2/' ../contrib/texi2pod.pl
+for i in ../gcc/doc/*.texi; do
+  cp -a $i $i.orig; sed 's/ftable/table/' $i.orig > $i
+done
+make -C gcc generated-manpages
+for i in ../gcc/doc/*.texi; do mv -f $i.orig $i; done
+
+# Copy various doc files here and there
+cd ..
+mkdir -p rpm.doc/gfortran rpm.doc/objc
+mkdir -p rpm.doc/boehm-gc rpm.doc/fastjar rpm.doc/libffi rpm.doc/libjava
+mkdir -p rpm.doc/changelogs/{gcc/cp,gcc/java,gcc/ada,libstdc++-v3,libobjc,libmudflap,libgomp}
+sed -e 's,@VERSION@,%{gcc_version},' %{SOURCE2} > rpm.doc/README.libgcjwebplugin.so
+
+for i in {gcc,gcc/cp,gcc/java,gcc/ada,libstdc++-v3,libobjc,libmudflap,libgomp}/ChangeLog*; do
+	cp -p $i rpm.doc/changelogs/$i
+done
+
+(cd gcc/fortran; for i in ChangeLog*; do
+	cp -p $i ../../rpm.doc/gfortran/$i
+done)
+(cd libgfortran; for i in ChangeLog*; do
+	cp -p $i ../rpm.doc/gfortran/$i.libgfortran
+done)
+(cd gcc/objc; for i in README*; do
+	cp -p $i ../../rpm.doc/objc/$i.objc
+done)
+(cd libobjc; for i in README*; do
+	cp -p $i ../rpm.doc/objc/$i.libobjc
+done)
+(cd boehm-gc; for i in ChangeLog*; do
+	cp -p $i ../rpm.doc/boehm-gc/$i.gc
+done)
+(cd fastjar-%{fastjar_ver}; for i in ChangeLog* README*; do
+	cp -p $i ../rpm.doc/fastjar/$i.fastjar
+done)
+(cd libffi; for i in ChangeLog* README* LICENSE; do
+	cp -p $i ../rpm.doc/libffi/$i.libffi
+done)
+(cd libjava; for i in ChangeLog* README*; do
+	cp -p $i ../rpm.doc/libjava/$i.libjava
+done)
+cp -p libjava/LIBGCJ_LICENSE rpm.doc/libjava/
+
+rm -f rpm.doc/changelogs/gcc/ChangeLog.[1-9]
+find rpm.doc -name \*ChangeLog\* | xargs bzip2 -9
+
+%if %{build_java_tar}
+find libjava -name \*.h -type f | xargs grep -l '// DO NOT EDIT THIS FILE - it is machine generated' > libjava-classes.list
+find libjava -name \*.class -type f >> libjava-classes.list
+find libjava/testsuite -name \*.jar -type f >> libjava-classes.list
+tar cf - -T libjava-classes.list | bzip2 -9 > $RPM_SOURCE_DIR/libjava-classes-%{version}-%{release}.tar.bz2
+%endif
+
+%install
+rm -fr $RPM_BUILD_ROOT
+
+perl -pi -e \
+  's~href="l(ibstdc|atest)~href="http://gcc.gnu.org/onlinedocs/libstdc++/l\1~' \
+  libstdc++-v3/doc/html/api.html
+
+cd obj-%{gcc_target_platform}
+
+%if %{build_java}
+export PATH=`pwd`/../fastjar-%{fastjar_ver}/obj-%{gcc_target_platform}${PATH:+:$PATH}
+%if !%{bootstrap_java}
+export PATH=`pwd`/java_hacks${PATH:+:$PATH}
+%endif
+%endif
+
+TARGET_PLATFORM=%{gcc_target_platform}
+
+# There are some MP bugs in libstdc++ Makefiles
+make -C %{gcc_target_platform}/libstdc++-v3
+
+make prefix=$RPM_BUILD_ROOT%{_prefix} mandir=$RPM_BUILD_ROOT%{_mandir} \
+  infodir=$RPM_BUILD_ROOT%{_infodir} install
+%if %{build_java}
+make DESTDIR=$RPM_BUILD_ROOT -C %{gcc_target_platform}/libjava install-src.zip
+%endif
+%if %{build_ada}
+chmod 644 $RPM_BUILD_ROOT%{_infodir}/gnat*
+%endif
+
+FULLPATH=$RPM_BUILD_ROOT%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+FULLEPATH=$RPM_BUILD_ROOT%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+
+# fix some things
+ln -sf gcc $RPM_BUILD_ROOT%{_prefix}/bin/cc
+mkdir -p $RPM_BUILD_ROOT/lib
+ln -sf ..%{_prefix}/bin/cpp $RPM_BUILD_ROOT/lib/cpp
+ln -sf gfortran $RPM_BUILD_ROOT%{_prefix}/bin/f95
+rm -f $RPM_BUILD_ROOT%{_infodir}/dir
+gzip -9 $RPM_BUILD_ROOT%{_infodir}/*.info*
+ln -sf gcc $RPM_BUILD_ROOT%{_prefix}/bin/gnatgcc
+
+cxxconfig="`find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h`"
+for i in `find %{gcc_target_platform}/[36]*/libstdc++-v3/include -name c++config.h 2>/dev/null`; do
+  if ! diff -up $cxxconfig $i; then
+    cat > $RPM_BUILD_ROOT%{_prefix}/include/c++/%{gcc_version}/%{gcc_target_platform}/bits/c++config.h <<EOF
+#ifndef _CPP_CPPCONFIG_WRAPPER
+#define _CPP_CPPCONFIG_WRAPPER 1
+#include <bits/wordsize.h>
+#if __WORDSIZE == 32
+%ifarch %{multilib_64_archs}
+`cat $(find %{gcc_target_platform}/32/libstdc++-v3/include -name c++config.h)`
+%else
+`cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)`
+%endif
+#else
+%ifarch %{multilib_64_archs}
+`cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)`
+%else
+`cat $(find %{gcc_target_platform}/64/libstdc++-v3/include -name c++config.h)`
+%endif
+#endif
+#endif
+EOF
+    break
+  fi
+done
+
+# Nuke bits/stdc++.h.gch dirs
+# 1) there is no bits/stdc++.h header installed, so when gch file can't be
+#    used, compilation fails
+# 2) sometimes it is hard to match the exact options used for building
+#    libstdc++-v3 or they aren't desirable
+# 3) there are multilib issues, conflicts etc. with this
+# 4) it is huge
+# People can always precompile on their own whatever they want, but
+# shipping this for everybody is unnecessary.
+rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++/%{gcc_version}/%{gcc_target_platform}/bits/stdc++.h.gch
+
+%ifarch sparcv9 sparc64
+ln -f $RPM_BUILD_ROOT%{_prefix}/bin/%{gcc_target_platform}-gcc \
+  $RPM_BUILD_ROOT%{_prefix}/bin/sparc-%{_vendor}-%{_target_os}-gcc
+%endif
+%ifarch ppc ppc64
+ln -f $RPM_BUILD_ROOT%{_prefix}/bin/%{gcc_target_platform}-gcc \
+  $RPM_BUILD_ROOT%{_prefix}/bin/ppc-%{_vendor}-%{_target_os}-gcc
+%endif
+
+%ifarch sparcv9 ppc
+FULLLPATH=$FULLPATH/lib32
+%endif
+%ifarch sparc64 ppc64
+FULLLPATH=$FULLPATH/lib64
+%endif
+if [ -n "$FULLLPATH" ]; then
+  mkdir -p $FULLLPATH
+else
+  FULLLPATH=$FULLPATH
+fi
+
+find $RPM_BUILD_ROOT -name \*.la | xargs rm -f
+%if %{build_java}
+# gcj -static doesn't work properly anyway, unless using --whole-archive
+# and saving 35MB is not bad.
+find $RPM_BUILD_ROOT -name libgcj.a -o -name libgtkpeer.a \
+		     -o -name libgjsmalsa.a -o -name libgcj-tools.a -o -name libjvm.a \
+		     -o -name libgij.a -o -name libgcj_bc.a -o -name libjavamath.a \
+  | xargs rm -f
+
+mv $RPM_BUILD_ROOT%{_prefix}/lib/libgcj.spec $FULLPATH/
+sed -i -e 's/lib: /&%%{static:%%eJava programs cannot be linked statically}/' \
+  $FULLPATH/libgcj.spec
+%endif
+
+mkdir -p $RPM_BUILD_ROOT/%{_lib}
+mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgcc_s.so.1 $RPM_BUILD_ROOT/%{_lib}/libgcc_s-%{gcc_version}-%{DATE}.so.1
+chmod 755 $RPM_BUILD_ROOT/%{_lib}/libgcc_s-%{gcc_version}-%{DATE}.so.1
+ln -sf libgcc_s-%{gcc_version}-%{DATE}.so.1 $RPM_BUILD_ROOT/%{_lib}/libgcc_s.so.1
+ln -sf /%{_lib}/libgcc_s.so.1 $FULLPATH/libgcc_s.so
+%ifarch sparcv9 ppc
+ln -sf /lib64/libgcc_s.so.1 $FULLPATH/64/libgcc_s.so
+%endif
+%ifarch %{multilib_64_archs}
+ln -sf /lib/libgcc_s.so.1 $FULLPATH/32/libgcc_s.so
+%endif
+
+mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgomp.spec $FULLPATH/
+
+%if %{build_ada}
+mv -f $FULLPATH/adalib/libgnarl-*.so $RPM_BUILD_ROOT%{_prefix}/%{_lib}/
+mv -f $FULLPATH/adalib/libgnat-*.so $RPM_BUILD_ROOT%{_prefix}/%{_lib}/
+rm -f $FULLPATH/adalib/libgnarl.so* $FULLPATH/adalib/libgnat.so*
+%endif
+
+mkdir -p $RPM_BUILD_ROOT%{_prefix}/libexec/getconf
+if gcc/xgcc -B gcc/ -E -dD -xc /dev/null | grep __LONG_MAX__.*2147483647; then
+  ln -sf POSIX_V6_ILP32_OFF32 $RPM_BUILD_ROOT%{_prefix}/libexec/getconf/default
+else
+  ln -sf POSIX_V6_LP64_OFF64 $RPM_BUILD_ROOT%{_prefix}/libexec/getconf/default
+fi
+
+%if %{build_java}
+pushd ../fastjar-%{fastjar_ver}/obj-%{gcc_target_platform}
+make install DESTDIR=$RPM_BUILD_ROOT
+popd
+
+if [ "%{_lib}" != "lib" ]; then
+  mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{_lib}/pkgconfig
+  sed '/^libdir/s/lib$/%{_lib}/' $RPM_BUILD_ROOT%{_prefix}/lib/pkgconfig/libgcj-*.pc \
+    > $RPM_BUILD_ROOT%{_prefix}/%{_lib}/pkgconfig/`basename $RPM_BUILD_ROOT%{_prefix}/lib/pkgconfig/libgcj-*.pc`
+fi
+%endif
+
+pushd $FULLPATH
+if [ "%{_lib}" = "lib" ]; then
+ln -sf ../../../libobjc.so.2 libobjc.so
+ln -sf ../../../libstdc++.so.6.* libstdc++.so
+ln -sf ../../../libgfortran.so.3.* libgfortran.so
+ln -sf ../../../libgomp.so.1.* libgomp.so
+ln -sf ../../../libmudflap.so.0.* libmudflap.so
+ln -sf ../../../libmudflapth.so.0.* libmudflapth.so
+%if %{build_java}
+ln -sf ../../../libgcj.so.10.* libgcj.so
+ln -sf ../../../libgcj-tools.so.10.* libgcj-tools.so
+ln -sf ../../../libgij.so.10.* libgij.so
+%endif
+else
+ln -sf ../../../../%{_lib}/libobjc.so.2 libobjc.so
+ln -sf ../../../../%{_lib}/libstdc++.so.6.* libstdc++.so
+ln -sf ../../../../%{_lib}/libgfortran.so.3.* libgfortran.so
+ln -sf ../../../../%{_lib}/libgomp.so.1.* libgomp.so
+ln -sf ../../../../%{_lib}/libmudflap.so.0.* libmudflap.so
+ln -sf ../../../../%{_lib}/libmudflapth.so.0.* libmudflapth.so
+%if %{build_java}
+ln -sf ../../../../%{_lib}/libgcj.so.10.* libgcj.so
+ln -sf ../../../../%{_lib}/libgcj-tools.so.10.* libgcj-tools.so
+ln -sf ../../../../%{_lib}/libgij.so.10.* libgij.so
+%endif
+fi
+%if %{build_java}
+mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgcj_bc.so $FULLLPATH/
+%endif
+mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libstdc++.*a $FULLLPATH/
+mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libsupc++.*a .
+mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgfortran.*a .
+mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libobjc.*a .
+mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgomp.*a .
+mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libmudflap{,th}.*a $FULLLPATH/
+
+%if %{build_ada}
+%ifarch sparcv9 ppc
+rm -rf $FULLPATH/64/ada{include,lib}
+%endif
+%ifarch %{multilib_64_archs}
+rm -rf $FULLPATH/32/ada{include,lib}
+%endif
+if [ "$FULLPATH" != "$FULLLPATH" ]; then
+mv -f $FULLPATH/ada{include,lib} $FULLLPATH/
+pushd $FULLLPATH/adalib
+if [ "%{_lib}" = "lib" ]; then
+ln -sf ../../../../../libgnarl-*.so libgnarl.so
+ln -sf ../../../../../libgnarl-*.so libgnarl-4.4.so
+ln -sf ../../../../../libgnat-*.so libgnat.so
+ln -sf ../../../../../libgnat-*.so libgnat-4.4.so
+else
+ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl.so
+ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl-4.4.so
+ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat.so
+ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat-4.4.so
+fi
+popd
+else
+pushd $FULLPATH/adalib
+if [ "%{_lib}" = "lib" ]; then
+ln -sf ../../../../libgnarl-*.so libgnarl.so
+ln -sf ../../../../libgnarl-*.so libgnarl-4.4.so
+ln -sf ../../../../libgnat-*.so libgnat.so
+ln -sf ../../../../libgnat-*.so libgnat-4.4.so
+else
+ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl.so
+ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl-4.4.so
+ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat.so
+ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat-4.4.so
+fi
+popd
+fi
+%endif
+
+%ifarch sparcv9 ppc
+ln -sf ../../../../../lib64/libobjc.so.2 64/libobjc.so
+ln -sf ../`echo ../../../../lib/libstdc++.so.6.* | sed s~/lib/~/lib64/~` 64/libstdc++.so
+ln -sf ../`echo ../../../../lib/libgfortran.so.3.* | sed s~/lib/~/lib64/~` 64/libgfortran.so
+ln -sf ../`echo ../../../../lib/libgomp.so.1.* | sed s~/lib/~/lib64/~` 64/libgomp.so
+rm -f libmudflap.so libmudflapth.so
+echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libmudflap.so.0.* | sed 's,^.*libm,libm,'`' )' > libmudflap.so
+echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libmudflapth.so.0.* | sed 's,^.*libm,libm,'`' )' > libmudflapth.so
+echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libmudflap.so.0.* | sed 's,^.*libm,libm,'`' )' > 64/libmudflap.so
+echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libmudflapth.so.0.* | sed 's,^.*libm,libm,'`' )' > 64/libmudflapth.so
+%if %{build_java}
+ln -sf ../`echo ../../../../lib/libgcj.so.10.* | sed s~/lib/~/lib64/~` 64/libgcj.so
+ln -sf ../`echo ../../../../lib/libgcj-tools.so.10.* | sed s~/lib/~/lib64/~` 64/libgcj-tools.so
+ln -sf ../`echo ../../../../lib/libgij.so.10.* | sed s~/lib/~/lib64/~` 64/libgij.so
+ln -sf lib32/libgcj_bc.so libgcj_bc.so
+ln -sf ../lib64/libgcj_bc.so 64/libgcj_bc.so
+%endif
+mv -f $RPM_BUILD_ROOT%{_prefix}/lib64/libsupc++.*a 64/
+mv -f $RPM_BUILD_ROOT%{_prefix}/lib64/libgfortran.*a 64/
+mv -f $RPM_BUILD_ROOT%{_prefix}/lib64/libobjc.*a 64/
+mv -f $RPM_BUILD_ROOT%{_prefix}/lib64/libgomp.*a 64/
+ln -sf lib32/libstdc++.a libstdc++.a
+ln -sf ../lib64/libstdc++.a 64/libstdc++.a
+ln -sf lib32/libmudflap.a libmudflap.a
+ln -sf ../lib64/libmudflap.a 64/libmudflap.a
+ln -sf lib32/libmudflapth.a libmudflapth.a
+ln -sf ../lib64/libmudflapth.a 64/libmudflapth.a
+%if %{build_ada}
+ln -sf lib32/adainclude adainclude
+ln -sf ../lib64/adainclude 64/adainclude
+ln -sf lib32/adalib adalib
+ln -sf ../lib64/adalib 64/adalib
+%endif
+%endif
+%ifarch %{multilib_64_archs}
+mkdir -p 32
+ln -sf ../../../../libobjc.so.2 32/libobjc.so
+ln -sf ../`echo ../../../../lib64/libstdc++.so.6.* | sed s~/../lib64/~/~` 32/libstdc++.so
+ln -sf ../`echo ../../../../lib64/libgfortran.so.3.* | sed s~/../lib64/~/~` 32/libgfortran.so
+ln -sf ../`echo ../../../../lib64/libgomp.so.1.* | sed s~/../lib64/~/~` 32/libgomp.so
+rm -f libmudflap.so libmudflapth.so
+echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libmudflap.so.0.* | sed 's,^.*libm,libm,'`' )' > libmudflap.so
+echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libmudflapth.so.0.* | sed 's,^.*libm,libm,'`' )' > libmudflapth.so
+echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libmudflap.so.0.* | sed 's,^.*libm,libm,'`' )' > 32/libmudflap.so
+echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libmudflapth.so.0.* | sed 's,^.*libm,libm,'`' )' > 32/libmudflapth.so
+%if %{build_java}
+ln -sf ../`echo ../../../../lib64/libgcj.so.10.* | sed s~/../lib64/~/~` 32/libgcj.so
+ln -sf ../`echo ../../../../lib64/libgcj-tools.so.10.* | sed s~/../lib64/~/~` 32/libgcj-tools.so
+ln -sf ../`echo ../../../../lib64/libgij.so.10.* | sed s~/../lib64/~/~` 32/libgij.so
+%endif
+mv -f $RPM_BUILD_ROOT%{_prefix}/lib/libsupc++.*a 32/
+mv -f $RPM_BUILD_ROOT%{_prefix}/lib/libgfortran.*a 32/
+mv -f $RPM_BUILD_ROOT%{_prefix}/lib/libobjc.*a 32/
+mv -f $RPM_BUILD_ROOT%{_prefix}/lib/libgomp.*a 32/
+%endif
+%ifarch sparc64 ppc64
+ln -sf ../lib32/libstdc++.a 32/libstdc++.a
+ln -sf lib64/libstdc++.a libstdc++.a
+ln -sf ../lib32/libmudflap.a 32/libmudflap.a
+ln -sf lib64/libmudflap.a libmudflap.a
+ln -sf ../lib32/libmudflapth.a 32/libmudflapth.a
+ln -sf lib64/libmudflapth.a libmudflapth.a
+%if %{build_java}
+ln -sf ../lib32/libgcj_bc.so 32/libgcj_bc.so
+ln -sf lib64/libgcj_bc.so libgcj_bc.so
+%endif
+%if %{build_ada}
+ln -sf ../lib32/adainclude 32/adainclude
+ln -sf lib64/adainclude adainclude
+ln -sf ../lib32/adalib 32/adalib
+ln -sf lib64/adalib adalib
+%endif
+%else
+%ifarch %{multilib_64_archs}
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libstdc++.a 32/libstdc++.a
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libmudflap.a 32/libmudflap.a
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libmudflapth.a 32/libmudflapth.a
+%if %{build_java}
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libgcj_bc.so 32/libgcj_bc.so
+%endif
+%if %{build_ada}
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/adainclude 32/adainclude
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/adalib 32/adalib
+%endif
+%endif
+%endif
+
+# Strip debug info from Fortran/ObjC/Java static libraries
+strip -g `find . \( -name libgfortran.a -o -name libobjc.a -o -name libgomp.a \
+		    -o -name libmudflap.a -o -name libmudflapth.a \
+		    -o -name libgcc.a -o -name libgcov.a \) -a -type f`
+popd
+chmod 755 $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgfortran.so.3.*
+chmod 755 $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgomp.so.1.*
+chmod 755 $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libmudflap{,th}.so.0.*
+chmod 755 $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libobjc.so.2.*
+
+%if %{build_ada}
+chmod 755 $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgnarl*so*
+chmod 755 $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgnat*so*
+%endif
+
+mv $FULLPATH/include-fixed/syslimits.h $FULLPATH/include/syslimits.h
+mv $FULLPATH/include-fixed/limits.h $FULLPATH/include/limits.h
+for h in `find $FULLPATH/include -name \*.h`; do
+  if grep -q 'It has been auto-edited by fixincludes from' $h; then
+    rh=`grep -A2 'It has been auto-edited by fixincludes from' $h | tail -1 | sed 's|^.*"\(.*\)".*$|\1|'`
+    diff -up $rh $h || :
+    rm -f $h
+  fi
+done
+
+cat > $RPM_BUILD_ROOT%{_prefix}/bin/c89 <<"EOF"
+#!/bin/sh
+fl="-std=c89"
+for opt; do
+  case "$opt" in
+    -ansi|-std=c89|-std=iso9899:1990) fl="";;
+    -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
+	    exit 1;;
+  esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+cat > $RPM_BUILD_ROOT%{_prefix}/bin/c99 <<"EOF"
+#!/bin/sh
+fl="-std=c99"
+for opt; do
+  case "$opt" in
+    -std=c99|-std=iso9899:1999) fl="";;
+    -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2
+	    exit 1;;
+  esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+chmod 755 $RPM_BUILD_ROOT%{_prefix}/bin/c?9
+
+mkdir -p $RPM_BUILD_ROOT%{_prefix}/sbin
+gcc -static -Os %{SOURCE1} -o $RPM_BUILD_ROOT%{_prefix}/sbin/libgcc_post_upgrade
+strip $RPM_BUILD_ROOT%{_prefix}/sbin/libgcc_post_upgrade
+
+cd ..
+%find_lang %{name}
+%find_lang cpplib
+
+# Remove binaries we will not be including, so that they don't end up in
+# gcc-debuginfo
+rm -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/{libffi*,libiberty.a}
+rm -f $FULLEPATH/install-tools/{mkheaders,fixincl}
+rm -f $RPM_BUILD_ROOT%{_prefix}/lib/{32,64}/libiberty.a
+rm -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libssp*
+rm -f $RPM_BUILD_ROOT%{_prefix}/bin/gnative2ascii
+
+%ifarch %{multilib_64_archs}
+# Remove libraries for the other arch on multilib arches
+rm -f $RPM_BUILD_ROOT%{_prefix}/lib/lib*.so*
+rm -f $RPM_BUILD_ROOT%{_prefix}/lib/lib*.a
+%else
+%ifarch sparcv9 ppc
+rm -f $RPM_BUILD_ROOT%{_prefix}/lib64/lib*.so*
+rm -f $RPM_BUILD_ROOT%{_prefix}/lib64/lib*.a
+%endif
+%endif
+
+%if %{build_java}
+mkdir -p $RPM_BUILD_ROOT%{_prefix}/share/java/gcj-endorsed \
+	 $RPM_BUILD_ROOT%{_prefix}/%{_lib}/gcj-%{version}/classmap.db.d
+chmod 755 $RPM_BUILD_ROOT%{_prefix}/share/java/gcj-endorsed \
+	  $RPM_BUILD_ROOT%{_prefix}/%{_lib}/gcj-%{version} \
+	  $RPM_BUILD_ROOT%{_prefix}/%{_lib}/gcj-%{version}/classmap.db.d
+touch $RPM_BUILD_ROOT%{_prefix}/%{_lib}/gcj-%{version}/classmap.db
+%endif
+
+install -m644 %{SOURCE3} $RPM_BUILD_ROOT%{_mandir}/man1/protoize.1
+echo '.so man1/protoize.1' > $RPM_BUILD_ROOT%{_mandir}/man1/unprotoize.1
+chmod 644 $RPM_BUILD_ROOT%{_mandir}/man1/unprotoize.1
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
+
+%preun
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
+fi
+
+%post -n cpp
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
+
+%preun -n cpp
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
+fi
+
+%post gfortran
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gfortran.info.gz || :
+
+%preun gfortran
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gfortran.info.gz || :
+fi
+
+%post java
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gcj.info.gz || :
+
+%preun java
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gcj.info.gz || :
+fi
+
+%post gnat
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gnat_rm.info.gz || :
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gnat_ugn_unw.info.gz || :
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gnat-style.info.gz || :
+
+%preun gnat
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gnat_rm.info.gz || :
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gnat_ugn_unw.info.gz || :
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gnat-style.info.gz || :
+fi
+
+# Because glibc Prereq's libgcc and /sbin/ldconfig
+# comes from glibc, it might not exist yet when
+# libgcc is installed
+%post -n libgcc -p %{_prefix}/sbin/libgcc_post_upgrade
+
+%post -n libstdc++ -p /sbin/ldconfig
+
+%postun -n libstdc++ -p /sbin/ldconfig
+
+%post -n libobjc -p /sbin/ldconfig
+
+%postun -n libobjc -p /sbin/ldconfig
+
+%post -n libgcj
+/sbin/ldconfig
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/cp-tools.info.gz || :
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/fastjar.info.gz || :
+
+%preun -n libgcj
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/cp-tools.info.gz || :
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/fastjar.info.gz || :
+fi
+
+%postun -n libgcj -p /sbin/ldconfig
+
+%post -n libgfortran -p /sbin/ldconfig
+
+%postun -n libgfortran -p /sbin/ldconfig
+
+%post -n libgnat -p /sbin/ldconfig
+
+%postun -n libgnat -p /sbin/ldconfig
+
+%post -n libgomp
+/sbin/ldconfig
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/libgomp.info.gz || :
+
+%preun -n libgomp
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/libgomp.info.gz || :
+fi
+
+%postun -n libgomp -p /sbin/ldconfig
+
+%post -n libmudflap -p /sbin/ldconfig
+
+%postun -n libmudflap -p /sbin/ldconfig
+
+%files -f %{name}.lang
+%defattr(-,root,root)
+%{_prefix}/bin/cc
+%{_prefix}/bin/c89
+%{_prefix}/bin/c99
+%{_prefix}/bin/gcc
+%{_prefix}/bin/gcov
+%{_prefix}/bin/protoize
+%{_prefix}/bin/unprotoize
+%ifarch ppc
+%{_prefix}/bin/%{_target_platform}-gcc
+%endif
+%ifarch sparc64 sparcv9
+%{_prefix}/bin/sparc-%{_vendor}-%{_target_os}-gcc
+%endif
+%ifarch ppc64
+%{_prefix}/bin/ppc-%{_vendor}-%{_target_os}-gcc
+%endif
+%{_prefix}/bin/%{gcc_target_platform}-gcc
+%{_mandir}/man1/gcc.1*
+%{_mandir}/man1/gcov.1*
+%{_mandir}/man1/protoize.1*
+%{_mandir}/man1/unprotoize.1*
+%{_infodir}/gcc*
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/SYSCALLS.c.X
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stddef.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdarg.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdfix.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/varargs.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/float.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/limits.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdbool.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/iso646.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/syslimits.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/unwind.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/omp.h
+%ifarch %{ix86} x86_64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/mmintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/xmmintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/emmintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/pmmintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/tmmintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ammintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/smmintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/nmmintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/bmmintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/wmmintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/immintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/avxintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/x86intrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/mmintrin-common.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/mm_malloc.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/mm3dnow.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/cpuid.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/cross-stdarg.h
+%endif
+%ifarch ia64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ia64intrin.h
+%endif
+%ifarch ppc ppc64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ppc-asm.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/altivec.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/spe.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/paired.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ppu_intrinsics.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/si2vmx.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/spu2vmx.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/vec_types.h
+%endif
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/collect2
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/crt*.o
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcov.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc_eh.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc_s.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgomp.spec
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgomp.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgomp.so
+%ifarch sparcv9 ppc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/crt*.o
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcov.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc_eh.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc_s.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgomp.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgomp.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libmudflap.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libmudflapth.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libmudflap.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libmudflapth.so
+%endif
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/crt*.o
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcov.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcc_eh.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcc_s.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgomp.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgomp.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflap.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflapth.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflap.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflapth.so
+%endif
+%ifarch sparcv9 sparc64 ppc ppc64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflap.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflapth.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflap.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflapth.so
+%endif
+%dir %{_prefix}/libexec/getconf
+%{_prefix}/libexec/getconf/default
+%doc gcc/README* rpm.doc/changelogs/gcc/ChangeLog* gcc/COPYING*
+
+%files -n cpp -f cpplib.lang
+%defattr(-,root,root)
+/lib/cpp
+%{_prefix}/bin/cpp
+%{_mandir}/man1/cpp.1*
+%{_infodir}/cpp*
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
+
+%files -n libgcc
+%defattr(-,root,root)
+/%{_lib}/libgcc_s-%{gcc_version}-%{DATE}.so.1
+/%{_lib}/libgcc_s.so.1
+%{_prefix}/sbin/libgcc_post_upgrade
+%doc gcc/COPYING.LIB
+
+%files c++
+%defattr(-,root,root)
+%{_prefix}/bin/%{gcc_target_platform}-*++
+%{_prefix}/bin/g++
+%{_prefix}/bin/c++
+%{_mandir}/man1/g++.1*
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
+%ifarch sparcv9 ppc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libstdc++.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libstdc++.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libsupc++.a
+%endif
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libsupc++.a
+%endif
+%ifarch sparcv9 ppc %{multilib_64_archs}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsupc++.a
+%endif
+%ifarch sparcv9 sparc64 ppc ppc64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.a
+%endif
+%doc rpm.doc/changelogs/gcc/cp/ChangeLog*
+
+%files -n libstdc++
+%defattr(-,root,root)
+%{_prefix}/%{_lib}/libstdc++.so.6*
+
+%files -n libstdc++-devel
+%defattr(-,root,root)
+%dir %{_prefix}/include/c++
+%dir %{_prefix}/include/c++/%{gcc_version}
+%{_prefix}/include/c++/%{gcc_version}/[^gjos]*
+%{_prefix}/include/c++/%{gcc_version}/os*
+%{_prefix}/include/c++/%{gcc_version}/s[^u]*
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%ifarch sparcv9 ppc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32/libstdc++.a
+%endif
+%ifarch sparc64 ppc64
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64/libstdc++.a
+%endif
+%ifnarch sparcv9 sparc64 ppc ppc64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.a
+%endif
+%ifnarch sparcv9 ppc %{multilib_64_archs}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsupc++.a
+%endif
+%doc rpm.doc/changelogs/libstdc++-v3/ChangeLog* libstdc++-v3/README* libstdc++-v3/doc/html/
+
+%files objc
+%defattr(-,root,root)
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/objc
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1obj
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libobjc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libobjc.so
+%ifarch sparcv9 ppc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libobjc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libobjc.so
+%endif
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libobjc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libobjc.so
+%endif
+%doc rpm.doc/objc/*
+%doc libobjc/THREADS* rpm.doc/changelogs/libobjc/ChangeLog*
+
+%files objc++
+%defattr(-,root,root)
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1objplus
+
+%files -n libobjc
+%defattr(-,root,root)
+%{_prefix}/%{_lib}/libobjc.so.2*
+
+%files gfortran
+%defattr(-,root,root)
+%{_prefix}/bin/gfortran
+%{_prefix}/bin/f95
+%{_mandir}/man1/gfortran.1*
+%{_infodir}/gfortran*
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib.f90
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib.mod
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib_kinds.mod
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/f951
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgfortranbegin.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgfortran.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgfortran.so
+%ifarch sparcv9 ppc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgfortranbegin.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgfortran.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgfortran.so
+%endif
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgfortranbegin.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgfortran.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgfortran.so
+%endif
+%doc rpm.doc/gfortran/*
+
+%files -n libgfortran
+%defattr(-,root,root)
+%{_prefix}/%{_lib}/libgfortran.so.3*
+
+%if %{build_java}
+%files java
+%defattr(-,root,root)
+%{_prefix}/bin/gcj
+%{_prefix}/bin/gjavah
+%{_prefix}/bin/gcjh
+%{_prefix}/bin/jcf-dump
+%{_mandir}/man1/gcj.1*
+%{_mandir}/man1/jcf-dump.1*
+%{_mandir}/man1/gjavah.1*
+%{_mandir}/man1/gcjh.1*
+%{_infodir}/gcj*
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/jc1
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/ecj1
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/jvgenmain
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcj.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcj-tools.so
+%ifarch sparcv9 sparc64 ppc ppc64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcj_bc.so
+%endif
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgij.so
+%ifarch sparcv9 ppc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcj.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcj-tools.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcj_bc.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgij.so
+%endif
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcj.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcj-tools.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcj_bc.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgij.so
+%endif
+%doc rpm.doc/changelogs/gcc/java/ChangeLog*
+
+%files -n libgcj
+%defattr(-,root,root)
+%{_prefix}/bin/jv-convert
+%{_prefix}/bin/gij
+%{_prefix}/bin/gjar
+%{_prefix}/bin/fastjar
+%{_prefix}/bin/grepjar
+%{_prefix}/bin/grmic
+%{_prefix}/bin/grmid
+%{_prefix}/bin/grmiregistry
+%{_prefix}/bin/gtnameserv
+%{_prefix}/bin/gkeytool
+%{_prefix}/bin/gorbd
+%{_prefix}/bin/gserialver
+%{_prefix}/bin/gcj-dbtool
+%if %{include_gappletviewer}
+%{_prefix}/bin/gappletviewer
+%{_mandir}/man1/gappletviewer.1*
+%endif
+%{_prefix}/bin/gjarsigner
+%{_mandir}/man1/fastjar.1*
+%{_mandir}/man1/grepjar.1*
+%{_mandir}/man1/gjar.1*
+%{_mandir}/man1/gjarsigner.1*
+%{_mandir}/man1/jv-convert.1*
+%{_mandir}/man1/gij.1*
+%{_mandir}/man1/grmic.1*
+%{_mandir}/man1/grmiregistry.1*
+%{_mandir}/man1/gcj-dbtool.1*
+%{_mandir}/man1/gkeytool.1*
+%{_mandir}/man1/gorbd.1*
+%{_mandir}/man1/grmid.1*
+%{_mandir}/man1/gserialver.1*
+%{_mandir}/man1/gtnameserv.1*
+%{_infodir}/fastjar.info*
+%{_infodir}/cp-tools.info*
+%{_prefix}/%{_lib}/libgcj.so.*
+%{_prefix}/%{_lib}/libgcj-tools.so.*
+%{_prefix}/%{_lib}/libgcj_bc.so.*
+%{_prefix}/%{_lib}/libgij.so.*
+%dir %{_prefix}/%{_lib}/gcj-%{version}
+%{_prefix}/%{_lib}/gcj-%{version}/libgtkpeer.so
+%{_prefix}/%{_lib}/gcj-%{version}/libgjsmalsa.so
+%{_prefix}/%{_lib}/gcj-%{version}/libjawt.so
+%if %{include_gappletviewer}
+%{_prefix}/%{_lib}/gcj-%{version}/libgcjwebplugin.so
+%endif
+%{_prefix}/%{_lib}/gcj-%{version}/libjvm.so
+%{_prefix}/%{_lib}/gcj-%{version}/libjavamath.so
+%dir %{_prefix}/share/java
+%{_prefix}/share/java/[^sl]*
+%{_prefix}/share/java/libgcj-%{version}.jar
+%dir %{_prefix}/%{_lib}/security
+%config(noreplace) %{_prefix}/%{_lib}/security/classpath.security
+%{_prefix}/%{_lib}/logging.properties
+%dir %{_prefix}/%{_lib}/gcj-%{version}/classmap.db.d
+%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) %{_prefix}/%{_lib}/gcj-%{version}/classmap.db
+%if %{include_gappletviewer}
+%doc rpm.doc/README.libgcjwebplugin.so
+%endif
+
+%files -n libgcj-devel
+%defattr(-,root,root)
+%{_prefix}/bin/addr2name.awk
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/gcj
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jawt.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jawt_md.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jni.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jni_md.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jvmpi.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcj.spec
+%ifarch sparcv9 ppc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32/libgcj_bc.so
+%endif
+%ifarch sparc64 ppc64
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64/libgcj_bc.so
+%endif
+%ifnarch sparcv9 sparc64 ppc ppc64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcj_bc.so
+%endif
+%dir %{_prefix}/include/c++
+%dir %{_prefix}/include/c++/%{gcc_version}
+%{_prefix}/include/c++/%{gcc_version}/[gj]*
+%{_prefix}/include/c++/%{gcc_version}/org
+%{_prefix}/include/c++/%{gcc_version}/sun
+%{_prefix}/%{_lib}/pkgconfig/libgcj-*.pc
+%doc rpm.doc/boehm-gc/* rpm.doc/fastjar/* rpm.doc/libffi/*
+%doc rpm.doc/libjava/*
+
+%files -n libgcj-src
+%defattr(-,root,root)
+%dir %{_prefix}/share/java
+%{_prefix}/share/java/src*.zip
+%{_prefix}/share/java/libgcj-tools-%{version}.jar
+%endif
+
+%if %{build_ada}
+%files gnat
+%defattr(-,root,root)
+%{_prefix}/bin/gnat*
+%{_infodir}/gnat*
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%ifarch sparcv9 ppc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/adainclude
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/adalib
+%endif
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/adainclude
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/adalib
+%endif
+%ifarch sparcv9 sparc64 ppc ppc64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/adainclude
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/adalib
+%endif
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/gnat1
+%doc rpm.doc/changelogs/gcc/ada/ChangeLog*
+
+%files -n libgnat
+%defattr(-,root,root)
+%{_prefix}/%{_lib}/libgnat-*.so
+%{_prefix}/%{_lib}/libgnarl-*.so
+
+%files -n libgnat-devel
+%defattr(-,root,root)
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%ifarch sparcv9 ppc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32/adainclude
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32/adalib
+%endif
+%ifarch sparc64 ppc64
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64/adainclude
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64/adalib
+%endif
+%ifnarch sparcv9 sparc64 ppc ppc64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/adainclude
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/adalib
+%endif
+%endif
+
+%files -n libgomp
+%defattr(-,root,root)
+%{_prefix}/%{_lib}/libgomp.so.1*
+%{_infodir}/libgomp.info*
+%doc rpm.doc/changelogs/libgomp/ChangeLog*
+
+%files -n libmudflap
+%defattr(-,root,root)
+%{_prefix}/%{_lib}/libmudflap.so.0*
+%{_prefix}/%{_lib}/libmudflapth.so.0*
+
+%files -n libmudflap-devel
+%defattr(-,root,root)
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/mf-runtime.h
+%ifarch sparcv9 ppc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32/libmudflap.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32/libmudflapth.a
+%endif
+%ifarch sparc64 ppc64
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64/libmudflap.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64/libmudflapth.a
+%endif
+%ifnarch sparcv9 sparc64 ppc ppc64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflap.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflapth.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflap.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflapth.so
+%endif
+%doc rpm.doc/changelogs/libmudflap/ChangeLog*
+
+%changelog
+* Fri Jan 16 2009 Jakub Jelinek <jakub@redhat.com> 4.4.0-0.3
+- initial 4.4 package, using newly created redhat/gcc-4_4-branch

diff --git a/gcc43-aes.patch b/gcc43-aes.patch
deleted file mode 100644
index 9a45d45..0000000
--- a/gcc43-aes.patch
+++ /dev/null
@@ -1,1351 +0,0 @@
-2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
-
-	* config/i386/cpuid.h (bit_AES): New.
-	(bit_PCLMUL): Likewise.
-
-	* config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
-	(override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
-	SSE2 if AES or PCLMUL is enabled.
-	(ix86_builtins): Add IX86_BUILTIN_AESENC128,
-	IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
-	IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
-	IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
-	(bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
-	(bdesc_2arg): Add IX86_BUILTIN_AESENC128,
-	IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
-	IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
-	(bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
-	(ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
-	__builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
-	__builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
-	__builtin_ia32_aeskeygenassist128 and
-	__builtin_ia32_pclmulqdq128.
-	* config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
-	(ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
-	IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
-
-	* config/i386/i386.h (TARGET_AES): New.
-	(TARGET_PCLMUL): Likewise.
-	(TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
-
-	* config/i386/i386.md (UNSPEC_AESENC): New.
-	(UNSPEC_AESENCLAST): Likewise.
-	(UNSPEC_AESDEC): Likewise.
-	(UNSPEC_AESDECLAST): Likewise.
-	(UNSPEC_AESIMC): Likewise.
-	(UNSPEC_AESKEYGENASSIST): Likewise.
-	(UNSPEC_PCLMULQDQ): Likewise.
-
-	* config/i386/i386.opt (maes): New.
-	(mpclmul): Likewise.
-
-	* config/i386/sse.md (aesenc): New pattern.
-	(aesenclast): Likewise.
-	(aesdec): Likewise.
-	(aesdeclast): Likewise.
-	(aesimc): Likewise.
-	(aeskeygenassist): Likewise.
-	(pclmulqdq): Likewise.
-
-	* config/i386/wmmintrin.h: New.
-
-	* doc/extend.texi: Document AES and PCLMUL built-in function.
-
-	* doc/invoke.texi: Document -maes and -mpclmul.
-
-	* g++.dg/other/i386-2.C: Include <wmmintrin.h>.
-	* g++.dg/other/i386-3.C: Likewise.
-	* gcc.target/i386/sse-13.c: Likewise.
-	* gcc.target/i386/sse-14.c: Likewise.
-
-	* gcc.target/i386/aes-check.h: New.
-	* gcc.target/i386/aesdec.c: Likewise.
-	* gcc.target/i386/aesdeclast.c: Likewise.
-	* gcc.target/i386/aesenc.c: Likewise.
-	* gcc.target/i386/aesenclast.c: Likewise.
-	* gcc.target/i386/aesimc.c: Likewise.
-	* gcc.target/i386/aeskeygenassist.c: Likewise.
-	* gcc.target/i386/pclmulqdq.c: Likewise.
-	* gcc.target/i386/pclmul-check.h: Likewise.
-
-	* gcc.target/i386/i386.exp (check_effective_target_aes): New.
-	(check_effective_target_pclmul): Likewise.
-
---- gcc/config.gcc	(revision 133901)
-+++ gcc/config.gcc	(revision 133902)
-@@ -309,13 +309,15 @@ i[34567]86-*-*)
- 	cpu_type=i386
- 	extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
- 		       pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
--		       nmmintrin.h bmmintrin.h mmintrin-common.h"
-+		       nmmintrin.h bmmintrin.h mmintrin-common.h
-+		       wmmintrin.h"
- 	;;
- x86_64-*-*)
- 	cpu_type=i386
- 	extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
- 		       pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
--		       nmmintrin.h bmmintrin.h mmintrin-common.h"
-+		       nmmintrin.h bmmintrin.h mmintrin-common.h
-+		       wmmintrin.h"
- 	need_64bit_hwint=yes
- 	;;
- ia64-*-*)
---- gcc/config/i386/i386.h	(revision 133901)
-+++ gcc/config/i386/i386.h	(revision 133902)
-@@ -395,6 +395,8 @@ extern int x86_prefetch_sse;
- #define TARGET_SAHF		x86_sahf
- #define TARGET_RECIP		x86_recip
- #define TARGET_FUSED_MADD	x86_fused_muladd
-+#define TARGET_AES		(TARGET_SSE2 && x86_aes)
-+#define TARGET_PCLMUL		(TARGET_SSE2 && x86_pclmul)
- 
- #define ASSEMBLER_DIALECT	(ix86_asm_dialect)
- 
-@@ -683,6 +685,10 @@ extern const char *host_detect_local_cpu
- 	builtin_define ("__SSE4_1__");				\
-       if (TARGET_SSE4_2)					\
- 	builtin_define ("__SSE4_2__");				\
-+      if (TARGET_AES)						\
-+	builtin_define ("__AES__");				\
-+      if (TARGET_PCLMUL)					\
-+	builtin_define ("__PCLMUL__");				\
-       if (TARGET_SSE4A)						\
-  	builtin_define ("__SSE4A__");		                \
-       if (TARGET_SSE5)						\
---- gcc/config/i386/i386.md	(revision 133901)
-+++ gcc/config/i386/i386.md	(revision 133902)
-@@ -186,6 +186,17 @@ (define_constants
-    (UNSPEC_FRCZ			156)
-    (UNSPEC_CVTPH2PS		157)
-    (UNSPEC_CVTPS2PH		158)
-+
-+   ; For AES support
-+   (UNSPEC_AESENC		159)
-+   (UNSPEC_AESENCLAST		160)
-+   (UNSPEC_AESDEC		161)
-+   (UNSPEC_AESDECLAST		162)
-+   (UNSPEC_AESIMC		163)
-+   (UNSPEC_AESKEYGENASSIST	164)
-+
-+   ; For PCLMUL support
-+   (UNSPEC_PCLMUL		165)
-   ])
- 
- (define_constants
---- gcc/config/i386/wmmintrin.h	(revision 0)
-+++ gcc/config/i386/wmmintrin.h	(revision 133902)
-@@ -0,0 +1,123 @@
-+/* Copyright (C) 2008 Free Software Foundation, Inc.
-+
-+   This file is part of GCC.
-+
-+   GCC is free software; you can redistribute it and/or modify
-+   it under the terms of the GNU General Public License as published by
-+   the Free Software Foundation; either version 2, or (at your option)
-+   any later version.
-+
-+   GCC is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+   GNU General Public License for more details.
-+
-+   You should have received a copy of the GNU General Public License
-+   along with GCC; see the file COPYING.  If not, write to
-+   the Free Software Foundation, 59 Temple Place - Suite 330,
-+   Boston, MA 02111-1307, USA.  */
-+
-+/* As a special exception, if you include this header file into source
-+   files compiled by GCC, this header file does not by itself cause
-+   the resulting executable to be covered by the GNU General Public
-+   License.  This exception does not however invalidate any other
-+   reasons why the executable file might be covered by the GNU General
-+   Public License.  */
-+
-+/* Implemented from the specification included in the Intel C++ Compiler
-+   User Guide and Reference, version 10.1.  */
-+
-+#ifndef _WMMINTRIN_H_INCLUDED
-+#define _WMMINTRIN_H_INCLUDED
-+
-+/* We need definitions from the SSE2 header file.  */
-+#include <emmintrin.h>
-+
-+#if !defined (__AES__) && !defined (__PCLMUL__)
-+# error "AES/PCLMUL instructions not enabled"
-+#else
-+
-+/* AES */
-+
-+#ifdef __AES__
-+/* Performs 1 round of AES decryption of the first m128i using 
-+   the second m128i as a round key.  */
-+extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-+_mm_aesdec_si128 (__m128i __X, __m128i __Y)
-+{
-+  return (__m128i) __builtin_ia32_aesdec128 ((__v2di)__X, (__v2di)__Y);
-+}
-+
-+/* Performs the last round of AES decryption of the first m128i 
-+   using the second m128i as a round key.  */
-+extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-+_mm_aesdeclast_si128 (__m128i __X, __m128i __Y)
-+{
-+  return (__m128i) __builtin_ia32_aesdeclast128 ((__v2di)__X,
-+						 (__v2di)__Y);
-+}
-+
-+/* Performs 1 round of AES encryption of the first m128i using 
-+   the second m128i as a round key.  */
-+extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-+_mm_aesenc_si128 (__m128i __X, __m128i __Y)
-+{
-+  return (__m128i) __builtin_ia32_aesenc128 ((__v2di)__X, (__v2di)__Y);
-+}
-+
-+/* Performs the last round of AES encryption of the first m128i
-+   using the second m128i as a round key.  */
-+extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-+_mm_aesenclast_si128 (__m128i __X, __m128i __Y)
-+{
-+  return (__m128i) __builtin_ia32_aesenclast128 ((__v2di)__X, (__v2di)__Y);
-+}
-+
-+/* Performs the InverseMixColumn operation on the source m128i 
-+   and stores the result into m128i destination.  */
-+extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-+_mm_aesimc_si128 (__m128i __X)
-+{
-+  return (__m128i) __builtin_ia32_aesimc128 ((__v2di)__X);
-+}
-+
-+/* Generates a m128i round key for the input m128i AES cipher key and
-+   byte round constant.  The second parameter must be a compile time
-+   constant.  */
-+#ifdef __OPTIMIZE__
-+extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-+_mm_aeskeygenassist_si128 (__m128i __X, const int __C)
-+{
-+  return (__m128i) __builtin_ia32_aeskeygenassist128 ((__v2di)__X, __C);
-+}
-+#else
-+#define _mm_aeskeygenassist_si128(X, C)					\
-+  ((__m128i) __builtin_ia32_aeskeygenassist128 ((__v2di)(__m128i)(X),	\
-+						(int)(C)))
-+#endif
-+#endif  /* __AES__ */
-+
-+/* PCLMUL */
-+
-+#ifdef __PCLMUL__
-+/* Performs carry-less integer multiplication of 64-bit halves of
-+   128-bit input operands.  The third parameter inducates which 64-bit
-+   haves of the input parameters v1 and v2 should be used. It must be
-+   a compile time constant.  */
-+#ifdef __OPTIMIZE__
-+extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-+_mm_clmulepi64_si128 (__m128i __X, __m128i __Y, const int __I)
-+{
-+  return (__m128i) __builtin_ia32_pclmulqdq128 ((__v2di)__X,
-+						(__v2di)__Y, __I);
-+}
-+#else
-+#define _mm_clmulepi64_si128(X, Y, I)					\
-+  ((__m128i) __builtin_ia32_pclmulqdq128 ((__v2di)(__m128i)(X),		\
-+					  (__v2di)(__m128i)(Y), (int)(I)))
-+#endif
-+#endif  /* __PCLMUL__  */
-+
-+#endif /* __AES__/__PCLMUL__ */
-+
-+#endif /* _WMMINTRIN_H_INCLUDED */
---- gcc/config/i386/cpuid.h	(revision 133901)
-+++ gcc/config/i386/cpuid.h	(revision 133902)
-@@ -33,11 +33,13 @@
- 
- /* %ecx */
- #define bit_SSE3	(1 << 0)
-+#define bit_PCLMUL	(1 << 1)
- #define bit_SSSE3	(1 << 9)
- #define bit_CMPXCHG16B	(1 << 13)
- #define bit_SSE4_1	(1 << 19)
- #define bit_SSE4_2	(1 << 20)
- #define bit_POPCNT	(1 << 23)
-+#define bit_AES		(1 << 25)
- 
- /* %edx */
- #define bit_CMPXCHG8B	(1 << 8)
---- gcc/config/i386/sse.md	(revision 133901)
-+++ gcc/config/i386/sse.md	(revision 133902)
-@@ -7897,3 +7897,80 @@ (define_insn "sse5_pcom_tf<mode>3"
- }
-   [(set_attr "type" "ssecmp")
-    (set_attr "mode" "TI")])
-+
-+(define_insn "aesenc"
-+  [(set (match_operand:V2DI 0 "register_operand" "=x")
-+	(unspec:V2DI [(match_operand:V2DI 1 "register_operand" "0")
-+		       (match_operand:V2DI 2 "nonimmediate_operand" "xm")]
-+		      UNSPEC_AESENC))]
-+  "TARGET_AES"
-+  "aesenc\t{%2, %0|%0, %2}"
-+  [(set_attr "type" "sselog1")
-+   (set_attr "prefix_extra" "1")
-+   (set_attr "mode" "TI")])
-+
-+(define_insn "aesenclast"
-+  [(set (match_operand:V2DI 0 "register_operand" "=x")
-+	(unspec:V2DI [(match_operand:V2DI 1 "register_operand" "0")
-+		       (match_operand:V2DI 2 "nonimmediate_operand" "xm")]
-+		      UNSPEC_AESENCLAST))]
-+  "TARGET_AES"
-+  "aesenclast\t{%2, %0|%0, %2}"
-+  [(set_attr "type" "sselog1")
-+   (set_attr "prefix_extra" "1")
-+   (set_attr "mode" "TI")])
-+
-+(define_insn "aesdec"
-+  [(set (match_operand:V2DI 0 "register_operand" "=x")
-+	(unspec:V2DI [(match_operand:V2DI 1 "register_operand" "0")
-+		       (match_operand:V2DI 2 "nonimmediate_operand" "xm")]
-+		      UNSPEC_AESDEC))]
-+  "TARGET_AES"
-+  "aesdec\t{%2, %0|%0, %2}"
-+  [(set_attr "type" "sselog1")
-+   (set_attr "prefix_extra" "1")
-+   (set_attr "mode" "TI")])
-+
-+(define_insn "aesdeclast"
-+  [(set (match_operand:V2DI 0 "register_operand" "=x")
-+	(unspec:V2DI [(match_operand:V2DI 1 "register_operand" "0")
-+		       (match_operand:V2DI 2 "nonimmediate_operand" "xm")]
-+		      UNSPEC_AESDECLAST))]
-+  "TARGET_AES"
-+  "aesdeclast\t{%2, %0|%0, %2}"
-+  [(set_attr "type" "sselog1")
-+   (set_attr "prefix_extra" "1")
-+   (set_attr "mode" "TI")])
-+
-+(define_insn "aesimc"
-+  [(set (match_operand:V2DI 0 "register_operand" "=x")
-+	(unspec:V2DI [(match_operand:V2DI 1 "nonimmediate_operand" "xm")]
-+		      UNSPEC_AESIMC))]
-+  "TARGET_AES"
-+  "aesimc\t{%1, %0|%0, %1}"
-+  [(set_attr "type" "sselog1")
-+   (set_attr "prefix_extra" "1")
-+   (set_attr "mode" "TI")])
-+
-+(define_insn "aeskeygenassist"
-+  [(set (match_operand:V2DI 0 "register_operand" "=x")
-+	(unspec:V2DI [(match_operand:V2DI 1 "nonimmediate_operand" "xm")
-+		      (match_operand:SI 2 "const_0_to_255_operand" "n")]
-+		     UNSPEC_AESKEYGENASSIST))]
-+  "TARGET_AES"
-+  "aeskeygenassist\t{%2, %1, %0|%0, %1, %2}"
-+  [(set_attr "type" "sselog1")
-+   (set_attr "prefix_extra" "1")
-+   (set_attr "mode" "TI")])
-+
-+(define_insn "pclmulqdq"
-+  [(set (match_operand:V2DI 0 "register_operand" "=x")
-+	(unspec:V2DI [(match_operand:V2DI 1 "register_operand" "0")
-+		      (match_operand:V2DI 2 "nonimmediate_operand" "xm")
-+		      (match_operand:SI 3 "const_0_to_255_operand" "n")]
-+		     UNSPEC_PCLMUL))]
-+  "TARGET_PCLMUL"
-+  "pclmulqdq\t{%3, %2, %0|%0, %2, %3}"
-+  [(set_attr "type" "sselog1")
-+   (set_attr "prefix_extra" "1")
-+   (set_attr "mode" "TI")])
---- gcc/config/i386/i386.opt	(revision 133901)
-+++ gcc/config/i386/i386.opt	(revision 133902)
-@@ -275,3 +275,11 @@ Target Report Var(x86_fused_muladd) Init
- Enable automatic generation of fused floating point multiply-add instructions
- if the ISA supports such instructions.  The -mfused-madd option is on by
- default.
-+
-+maes
-+Target Report RejectNegative Var(x86_aes)
-+Support AES built-in functions and code generation
-+
-+mpclmul
-+Target Report RejectNegative Var(x86_pclmul)
-+Support PCLMUL built-in functions and code generation
---- gcc/config/i386/i386.c	(revision 133901)
-+++ gcc/config/i386/i386.c	(revision 133902)
-@@ -2077,7 +2077,9 @@ override_options (void)
-       PTA_NO_SAHF = 1 << 13,
-       PTA_SSE4_1 = 1 << 14,
-       PTA_SSE4_2 = 1 << 15,
--      PTA_SSE5 = 1 << 16
-+      PTA_SSE5 = 1 << 16,
-+      PTA_AES = 1 << 17,
-+      PTA_PCLMUL = 1 << 18
-     };
- 
-   static struct pta
-@@ -2384,6 +2386,10 @@ override_options (void)
- 	  x86_prefetch_sse = true;
- 	if (!(TARGET_64BIT && (processor_alias_table[i].flags & PTA_NO_SAHF)))
- 	  x86_sahf = true;
-+	if (processor_alias_table[i].flags & PTA_AES)
-+	  x86_aes = true;
-+	if (processor_alias_table[i].flags & PTA_PCLMUL)
-+	  x86_pclmul = true;
- 
- 	break;
-       }
-@@ -2427,6 +2433,14 @@ override_options (void)
-   if (i == pta_size)
-     error ("bad value (%s) for -mtune= switch", ix86_tune_string);
- 
-+  /* Enable SSE2 if AES or PCLMUL is enabled.  */
-+  if ((x86_aes || x86_pclmul)
-+      && !(ix86_isa_flags_explicit & OPTION_MASK_ISA_SSE2))
-+    {
-+      ix86_isa_flags |= OPTION_MASK_ISA_SSE2_SET;
-+      ix86_isa_flags_explicit |= OPTION_MASK_ISA_SSE2_SET;
-+    }
-+
-   ix86_tune_mask = 1u << ix86_tune;
-   for (i = 0; i < X86_TUNE_LAST; ++i)
-     ix86_tune_features[i] &= ix86_tune_mask;
-@@ -17545,6 +17559,17 @@ enum ix86_builtins
- 
-   IX86_BUILTIN_PCMPGTQ,
- 
-+  /* AES instructions */
-+  IX86_BUILTIN_AESENC128,
-+  IX86_BUILTIN_AESENCLAST128,
-+  IX86_BUILTIN_AESDEC128,
-+  IX86_BUILTIN_AESDECLAST128,
-+  IX86_BUILTIN_AESIMC128,
-+  IX86_BUILTIN_AESKEYGENASSIST128,
-+
-+  /* PCLMUL instruction */
-+  IX86_BUILTIN_PCLMULQDQ128,
-+
-   /* TFmode support builtins.  */
-   IX86_BUILTIN_INFQ,
-   IX86_BUILTIN_FABSQ,
-@@ -17900,6 +17925,9 @@ static const struct builtin_description 
-   { OPTION_MASK_ISA_SSE4_1, CODE_FOR_sse4_1_pblendw, "__builtin_ia32_pblendw128", IX86_BUILTIN_PBLENDW128, UNKNOWN, 0 },
-   { OPTION_MASK_ISA_ROUND, CODE_FOR_sse4_1_roundsd, 0, IX86_BUILTIN_ROUNDSD, UNKNOWN, 0 },
-   { OPTION_MASK_ISA_ROUND, CODE_FOR_sse4_1_roundss, 0, IX86_BUILTIN_ROUNDSS, UNKNOWN, 0 },
-+
-+  /* PCLMUL */
-+  { OPTION_MASK_ISA_SSE2, CODE_FOR_pclmulqdq, 0, IX86_BUILTIN_PCLMULQDQ128, UNKNOWN, 0 },
- };
- 
- static const struct builtin_description bdesc_2arg[] =
-@@ -18210,6 +18238,13 @@ static const struct builtin_description 
- 
-   /* SSE4.2 */
-   { OPTION_MASK_ISA_SSE4_2, CODE_FOR_sse4_2_gtv2di3, "__builtin_ia32_pcmpgtq", IX86_BUILTIN_PCMPGTQ, UNKNOWN, 0 },
-+
-+  /* AES */
-+  { OPTION_MASK_ISA_SSE2, CODE_FOR_aesenc, 0, IX86_BUILTIN_AESENC128, UNKNOWN, 0 },
-+  { OPTION_MASK_ISA_SSE2, CODE_FOR_aesenclast, 0, IX86_BUILTIN_AESENCLAST128, UNKNOWN, 0 },
-+  { OPTION_MASK_ISA_SSE2, CODE_FOR_aesdec, 0, IX86_BUILTIN_AESDEC128, UNKNOWN, 0 },
-+  { OPTION_MASK_ISA_SSE2, CODE_FOR_aesdeclast, 0, IX86_BUILTIN_AESDECLAST128, UNKNOWN, 0 },
-+  { OPTION_MASK_ISA_SSE2, CODE_FOR_aeskeygenassist, 0, IX86_BUILTIN_AESKEYGENASSIST128, UNKNOWN, 0 },
- };
- 
- static const struct builtin_description bdesc_1arg[] =
-@@ -18285,6 +18320,9 @@ static const struct builtin_description 
-   /* Fake 1 arg builtins with a constant smaller than 8 bits as the 2nd arg.  */
-   { OPTION_MASK_ISA_SSE4_1, CODE_FOR_sse4_1_roundpd, 0, IX86_BUILTIN_ROUNDPD, UNKNOWN, 0 },
-   { OPTION_MASK_ISA_SSE4_1, CODE_FOR_sse4_1_roundps, 0, IX86_BUILTIN_ROUNDPS, UNKNOWN, 0 },
-+
-+  /* AES */
-+  { OPTION_MASK_ISA_SSE2, CODE_FOR_aesimc, 0, IX86_BUILTIN_AESIMC128, UNKNOWN, 0 },
- };
- 
- /* SSE5 */
-@@ -19518,6 +19556,25 @@ ix86_init_mmx_sse_builtins (void)
- 				    NULL_TREE);
-   def_builtin_const (OPTION_MASK_ISA_SSE4_2 | OPTION_MASK_ISA_64BIT, "__builtin_ia32_crc32di", ftype, IX86_BUILTIN_CRC32DI);
- 
-+  /* AES */
-+  if (TARGET_AES)
-+    {
-+      /* Define AES built-in functions only if AES is enabled.  */
-+      def_builtin_const (OPTION_MASK_ISA_SSE2, "__builtin_ia32_aesenc128", v2di_ftype_v2di_v2di, IX86_BUILTIN_AESENC128);
-+      def_builtin_const (OPTION_MASK_ISA_SSE2, "__builtin_ia32_aesenclast128", v2di_ftype_v2di_v2di, IX86_BUILTIN_AESENCLAST128);
-+      def_builtin_const (OPTION_MASK_ISA_SSE2, "__builtin_ia32_aesdec128", v2di_ftype_v2di_v2di, IX86_BUILTIN_AESDEC128);
-+      def_builtin_const (OPTION_MASK_ISA_SSE2, "__builtin_ia32_aesdeclast128", v2di_ftype_v2di_v2di, IX86_BUILTIN_AESDECLAST128);
-+      def_builtin_const (OPTION_MASK_ISA_SSE2, "__builtin_ia32_aesimc128", v2di_ftype_v2di, IX86_BUILTIN_AESIMC128);
-+      def_builtin_const (OPTION_MASK_ISA_SSE2, "__builtin_ia32_aeskeygenassist128", v2di_ftype_v2di_int, IX86_BUILTIN_AESKEYGENASSIST128);
-+    }
-+
-+  /* PCLMUL */
-+  if (TARGET_PCLMUL)
-+    {
-+      /* Define PCLMUL built-in function only if PCLMUL is enabled.  */
-+      def_builtin_const (OPTION_MASK_ISA_SSE2, "__builtin_ia32_pclmulqdq128", v2di_ftype_v2di_v2di_int, IX86_BUILTIN_PCLMULQDQ128);
-+    }
-+
-   /* AMDFAM10 SSE4A New built-ins  */
-   def_builtin (OPTION_MASK_ISA_SSE4A, "__builtin_ia32_movntsd", void_ftype_pdouble_v2df, IX86_BUILTIN_MOVNTSD);
-   def_builtin (OPTION_MASK_ISA_SSE4A, "__builtin_ia32_movntss", void_ftype_pfloat_v4sf, IX86_BUILTIN_MOVNTSS);
-@@ -19793,6 +19850,44 @@ ix86_expand_crc32 (enum insn_code icode,
-   return target;
- }
- 
-+/* Subroutine of ix86_expand_builtin to take care of binop insns
-+   with an immediate.  */
-+
-+static rtx
-+ix86_expand_binop_imm_builtin (enum insn_code icode, tree exp,
-+				rtx target)
-+{
-+  rtx pat;
-+  tree arg0 = CALL_EXPR_ARG (exp, 0);
-+  tree arg1 = CALL_EXPR_ARG (exp, 1);
-+  rtx op0 = expand_normal (arg0);
-+  rtx op1 = expand_normal (arg1);
-+  enum machine_mode tmode = insn_data[icode].operand[0].mode;
-+  enum machine_mode mode0 = insn_data[icode].operand[1].mode;
-+  enum machine_mode mode1 = insn_data[icode].operand[2].mode;
-+
-+  if (! (*insn_data[icode].operand[1].predicate) (op0, mode1))
-+    {
-+      op0 = copy_to_reg (op0);
-+      op0 = simplify_gen_subreg (mode0, op0, GET_MODE (op0), 0);
-+    }
-+
-+  if (! (*insn_data[icode].operand[2].predicate) (op1, mode1))
-+    {
-+      error ("the last operand must be an immediate");
-+      return const0_rtx;
-+    }
-+
-+  target = gen_reg_rtx (V2DImode);
-+  pat = GEN_FCN (icode) (simplify_gen_subreg (tmode, target,
-+					      V2DImode, 0),
-+			 op0, op1);
-+  if (! pat)
-+    return 0;
-+  emit_insn (pat);
-+  return target;
-+}
-+
- /* Subroutine of ix86_expand_builtin to take care of binop insns.  */
- 
- static rtx
-@@ -20889,34 +20984,18 @@ ix86_expand_builtin (tree exp, rtx targe
-       return target;
- 
-     case IX86_BUILTIN_PSLLDQI128:
-+      return ix86_expand_binop_imm_builtin (CODE_FOR_sse2_ashlti3,
-+					     exp, target);
-+      break;
-+
-     case IX86_BUILTIN_PSRLDQI128:
--      icode = (fcode == IX86_BUILTIN_PSLLDQI128 ? CODE_FOR_sse2_ashlti3
--	       : CODE_FOR_sse2_lshrti3);
--      arg0 = CALL_EXPR_ARG (exp, 0);
--      arg1 = CALL_EXPR_ARG (exp, 1);
--      op0 = expand_normal (arg0);
--      op1 = expand_normal (arg1);
--      tmode = insn_data[icode].operand[0].mode;
--      mode1 = insn_data[icode].operand[1].mode;
--      mode2 = insn_data[icode].operand[2].mode;
-+      return ix86_expand_binop_imm_builtin (CODE_FOR_sse2_lshrti3,
-+					     exp, target);
-+      break;
- 
--      if (! (*insn_data[icode].operand[1].predicate) (op0, mode1))
--	{
--	  op0 = copy_to_reg (op0);
--	  op0 = simplify_gen_subreg (mode1, op0, GET_MODE (op0), 0);
--	}
--      if (! (*insn_data[icode].operand[2].predicate) (op1, mode2))
--	{
--	  error ("shift must be an immediate");
--	  return const0_rtx;
--	}
--      target = gen_reg_rtx (V2DImode);
--      pat = GEN_FCN (icode) (simplify_gen_subreg (tmode, target, V2DImode, 0),
--			     op0, op1);
--      if (! pat)
--	return 0;
--      emit_insn (pat);
--      return target;
-+    case IX86_BUILTIN_AESKEYGENASSIST128:
-+      return ix86_expand_binop_imm_builtin (CODE_FOR_aeskeygenassist,
-+					     exp, target);
- 
-     case IX86_BUILTIN_FEMMS:
-       emit_insn (gen_mmx_femms ());
---- gcc/doc/extend.texi	(revision 133901)
-+++ gcc/doc/extend.texi	(revision 133902)
-@@ -8013,6 +8013,27 @@ depending on the size of @code{unsigned 
- Generates the @code{popcntq} machine instruction.
- @end table
- 
-+The following built-in functions are available when @option{-maes} is
-+used.  All of them generate the machine instruction that is part of the
-+name.
-+
-+@smallexample
-+v2di __builtin_ia32_aesenc128 (v2di, v2di)
-+v2di __builtin_ia32_aesenclast128 (v2di, v2di)
-+v2di __builtin_ia32_aesdec128 (v2di, v2di)
-+v2di __builtin_ia32_aesdeclast128 (v2di, v2di)
-+v2di __builtin_ia32_aeskeygenassist128 (v2di, const int)
-+v2di __builtin_ia32_aesimc128 (v2di)
-+@end smallexample
-+
-+The following built-in function is available when @option{-mpclmul} is
-+used.
-+
-+@table @code
-+@item v2di __builtin_ia32_pclmulqdq128 (v2di, v2di, const int)
-+Generates the @code{pclmulqdq} machine instruction.
-+@end table
-+
- The following built-in functions are available when @option{-msse4a} is used.
- All of them generate the machine instruction that is part of the name.
- 
---- gcc/doc/invoke.texi	(revision 133901)
-+++ gcc/doc/invoke.texi	(revision 133902)
-@@ -551,6 +551,7 @@ Objective-C and Objective-C++ Dialects}.
- -mno-wide-multiply  -mrtd  -malign-double @gol
- -mpreferred-stack-boundary=@var{num} -mcld -mcx16 -msahf -mrecip @gol
- -mmmx  -msse  -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -msse4 @gol
-+-maes -mpclmul @gol
- -msse4a -m3dnow -mpopcnt -mabm -msse5 @gol
- -mthreads  -mno-align-stringops  -minline-all-stringops @gol
- -mpush-args  -maccumulate-outgoing-args  -m128bit-long-double @gol
-@@ -10732,6 +10733,10 @@ preferred alignment to @option{-mpreferr
- @itemx -mno-sse4.2
- @item -msse4
- @itemx -mno-sse4
-+@itemx -maes
-+@itemx -mno-aes
-+@itemx -mpclmul
-+@itemx -mno-pclmul
- @item -msse4a
- @item -mno-sse4a
- @item -msse5
-@@ -10749,8 +10754,8 @@ preferred alignment to @option{-mpreferr
- @opindex m3dnow
- @opindex mno-3dnow
- These switches enable or disable the use of instructions in the MMX,
--SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4A, SSE5, ABM or 3DNow!@: extended
--instruction sets.
-+SSE, SSE2, SSE3, SSSE3, SSE4.1, AES, PCLMUL, SSE4A, SSE5, ABM or
-+3DNow!@: extended instruction sets.
- These extensions are also available as built-in functions: see
- @ref{X86 Built-in Functions}, for details of the functions enabled and
- disabled by these switches.
---- gcc/testsuite/gcc.target/i386/sse-14.c	(revision 133901)
-+++ gcc/testsuite/gcc.target/i386/sse-14.c	(revision 133902)
-@@ -1,14 +1,15 @@
- /* { dg-do compile } */
--/* { dg-options "-O0 -march=k8 -m3dnow -msse4 -msse5" } */
-+/* { dg-options "-O0 -march=k8 -m3dnow -msse4 -msse5 -maes -mpclmul" } */
- 
- /* Test that the intrinsics compile without optimization.  All of them are
--   defined as inline functions in {,x,e,p,t,s,a,b}mmintrin.h  and mm3dnow.h
-+   defined as inline functions in {,x,e,p,t,s,w,a,b}mmintrin.h  and mm3dnow.h
-    that reference the proper builtin functions.  Defining away "extern" and
-    "__inline" results in all of them being compiled as proper functions.  */
- 
- #define extern
- #define __inline
- 
-+#include <wmmintrin.h>
- #include <bmmintrin.h>
- #include <smmintrin.h>
- #include <mm3dnow.h>
-@@ -44,6 +45,10 @@
- test_1x (_mm_extracti_si64, __m128i, __m128i, 1, 1)
- test_2x (_mm_inserti_si64, __m128i, __m128i, __m128i, 1, 1)
- 
-+/* wmmintrin.h */
-+test_1 (_mm_aeskeygenassist_si128, __m128i, __m128i, 1)
-+test_2 (_mm_clmulepi64_si128, __m128i, __m128i, __m128i, 1)
-+
- /* smmintrin.h */
- test_2 (_mm_blend_epi16, __m128i, __m128i, __m128i, 1)
- test_2 (_mm_blend_ps, __m128, __m128, __m128, 1)
---- gcc/testsuite/gcc.target/i386/i386.exp	(revision 133901)
-+++ gcc/testsuite/gcc.target/i386/i386.exp	(revision 133902)
-@@ -51,6 +51,34 @@ proc check_effective_target_sse4 { } {
-     } "-O2 -msse4.1" ]
- }
- 
-+# Return 1 if aes instructions can be compiled.
-+proc check_effective_target_aes { } {
-+    return [check_no_compiler_messages aes object {
-+	typedef long long __m128i __attribute__ ((__vector_size__ (16)));
-+	typedef long long __v2di __attribute__ ((__vector_size__ (16)));
-+
-+	__m128i _mm_aesimc_si128 (__m128i __X)
-+	{
-+	    return (__m128i) __builtin_ia32_aesimc128 ((__v2di)__X);
-+	}
-+    } "-O2 -maes" ]
-+}
-+
-+# Return 1 if pclmul instructions can be compiled.
-+proc check_effective_target_pclmul { } {
-+    return [check_no_compiler_messages pclmul object {
-+	typedef long long __m128i __attribute__ ((__vector_size__ (16)));
-+	typedef long long __v2di __attribute__ ((__vector_size__ (16)));
-+
-+	__m128i pclmulqdq_test (__m128i __X, __m128i __Y)
-+	{
-+	    return (__m128i) __builtin_ia32_pclmulqdq128 ((__v2di)__X,
-+							  (__v2di)__Y,
-+							  1);
-+	}
-+    } "-O2 -mpclmul" ]
-+}
-+
- # Return 1 if sse4a instructions can be compiled.
- proc check_effective_target_sse4a { } {
-     return [check_no_compiler_messages sse4a object {
---- gcc/testsuite/gcc.target/i386/aesdeclast.c	(revision 0)
-+++ gcc/testsuite/gcc.target/i386/aesdeclast.c	(revision 133902)
-@@ -0,0 +1,69 @@
-+/* { dg-do run } */
-+/* { dg-require-effective-target aes } */
-+/* { dg-options "-O2 -maes" } */
-+
-+#include <wmmintrin.h>
-+#include <string.h>
-+
-+#include "aes-check.h"
-+
-+extern void abort (void);
-+
-+#define NUM 1024
-+
-+static __m128i src1[NUM];
-+static __m128i src2[NUM];
-+static __m128i edst[NUM];
-+
-+static __m128i resdst[NUM];
-+
-+/* Initialize input/output vectors.  (Currently, there is only one set of
-+   input/output vectors).  */
-+
-+static void
-+init_data (__m128i *s1, __m128i *s2, __m128i *d)
-+{
-+  int i;
-+
-+  for (i = 0; i < NUM; i++)
-+    {
-+      s1[i] = _mm_setr_epi32 (0x5d53475d, 0x63746f72,
-+			      0x73745665, 0x7b5b5465);
-+      s2[i] = _mm_setr_epi32 (0x726f6e5d, 0x5b477565,
-+			      0x68617929, 0x48692853);
-+      d[i] = _mm_setr_epi32 (0x72a593d0, 0xd410637b,
-+			     0x6b317f95, 0xc5a391ef);
-+    }
-+}
-+
-+static void
-+aes_test (void)
-+{
-+  int i;
-+
-+  init_data (src1, src2, edst);
-+
-+  for (i = 0; i < NUM; i += 16)
-+    {
-+      resdst[i] = _mm_aesdeclast_si128 (src1[i], src2[i]);
-+      resdst[i + 1] = _mm_aesdeclast_si128 (src1[i + 1], src2[i + 1]);
-+      resdst[i + 2] = _mm_aesdeclast_si128 (src1[i + 2], src2[i + 2]);
-+      resdst[i + 3] = _mm_aesdeclast_si128 (src1[i + 3], src2[i + 3]);
-+      resdst[i + 4] = _mm_aesdeclast_si128 (src1[i + 4], src2[i + 4]);
-+      resdst[i + 5] = _mm_aesdeclast_si128 (src1[i + 5], src2[i + 5]);
-+      resdst[i + 6] = _mm_aesdeclast_si128 (src1[i + 6], src2[i + 6]);
-+      resdst[i + 7] = _mm_aesdeclast_si128 (src1[i + 7], src2[i + 7]);
-+      resdst[i + 8] = _mm_aesdeclast_si128 (src1[i + 8], src2[i + 8]);
-+      resdst[i + 9] = _mm_aesdeclast_si128 (src1[i + 9], src2[i + 9]);
-+      resdst[i + 10] = _mm_aesdeclast_si128 (src1[i + 10], src2[i + 10]);
-+      resdst[i + 11] = _mm_aesdeclast_si128 (src1[i + 11], src2[i + 11]);
-+      resdst[i + 12] = _mm_aesdeclast_si128 (src1[i + 12], src2[i + 12]);
-+      resdst[i + 13] = _mm_aesdeclast_si128 (src1[i + 13], src2[i + 13]);
-+      resdst[i + 14] = _mm_aesdeclast_si128 (src1[i + 14], src2[i + 14]);
-+      resdst[i + 15] = _mm_aesdeclast_si128 (src1[i + 15], src2[i + 15]);
-+    }
-+
-+  for (i = 0; i < NUM; i++)
-+    if (memcmp (edst + i, resdst + i, sizeof (__m128i)))
-+      abort ();
-+}
---- gcc/testsuite/gcc.target/i386/pclmulqdq.c	(revision 0)
-+++ gcc/testsuite/gcc.target/i386/pclmulqdq.c	(revision 133902)
-@@ -0,0 +1,87 @@
-+/* { dg-do run } */
-+/* { dg-require-effective-target pclmul } */
-+/* { dg-options "-O2 -mpclmul" } */
-+
-+#include <wmmintrin.h>
-+#include <string.h>
-+
-+#include "pclmul-check.h"
-+
-+extern void abort (void);
-+
-+#define NUM 1024
-+
-+static __m128i s1[NUM];
-+static __m128i s2[NUM];
-+/* We need this array to generate mem form of inst */
-+static __m128i s2m[NUM];
-+
-+static __m128i e_00[NUM];
-+static __m128i e_01[NUM];
-+static __m128i e_10[NUM];
-+static __m128i e_11[NUM];
-+
-+static __m128i d_00[NUM];
-+static __m128i d_01[NUM];
-+static __m128i d_10[NUM];
-+static __m128i d_11[NUM];
-+
-+/* Initialize input/output vectors.  (Currently, there is only one set
-+   of input/output vectors).  */
-+static void
-+init_data (__m128i *ls1,   __m128i *ls2, __m128i *le_00, __m128i *le_01,
-+	   __m128i *le_10, __m128i *le_11)
-+{
-+  int i;
-+
-+  for (i = 0; i < NUM; i++)
-+    {
-+      ls1[i] = _mm_set_epi32 (0x7B5B5465, 0x73745665,
-+			      0x63746F72, 0x5D53475D);
-+      ls2[i] = _mm_set_epi32 (0x48692853, 0x68617929,
-+			      0x5B477565, 0x726F6E5D);
-+      s2m[i] = _mm_set_epi32 (0x48692853, 0x68617929,
-+			      0x5B477565, 0x726F6E5D);
-+      le_00[i] = _mm_set_epi32 (0x1D4D84C8, 0x5C3440C0,
-+				0x929633D5, 0xD36F0451);
-+      le_01[i] = _mm_set_epi32 (0x1A2BF6DB, 0x3A30862F,
-+				0xBABF262D, 0xF4B7D5C9);
-+      le_10[i] = _mm_set_epi32 (0x1BD17C8D, 0x556AB5A1,
-+				0x7FA540AC, 0x2A281315);
-+      le_11[i] = _mm_set_epi32 (0x1D1E1F2C, 0x592E7C45,
-+				0xD66EE03E, 0x410FD4ED);
-+    }
-+}
-+
-+static void
-+pclmul_test (void)
-+{
-+  int i;
-+
-+  init_data (s1, s2, e_00, e_01, e_10, e_11);
-+
-+  for (i = 0; i < NUM; i += 2)
-+    {
-+      d_00[i] = _mm_clmulepi64_si128 (s1[i], s2m[i], 0x00);
-+      d_01[i] = _mm_clmulepi64_si128 (s1[i], s2[i], 0x01);
-+      d_10[i] = _mm_clmulepi64_si128 (s1[i], s2[i], 0x10);
-+      d_11[i] = _mm_clmulepi64_si128 (s1[i], s2[i], 0x11);
-+
-+      d_11[i + 1] = _mm_clmulepi64_si128 (s1[i + 1], s2[i + 1], 0x11);
-+      d_00[i + 1] = _mm_clmulepi64_si128 (s1[i + 1], s2[i + 1], 0x00);
-+      d_10[i + 1] = _mm_clmulepi64_si128 (s1[i + 1], s2m[i + 1], 0x10);
-+      d_01[i + 1] = _mm_clmulepi64_si128 (s1[i + 1], s2[i + 1], 0x01);
-+    }
-+
-+  for (i = 0; i < NUM; i++)
-+    {
-+      if (memcmp (d_00 + i, e_00 + i, sizeof (__m128i)))
-+	abort ();
-+      if (memcmp (d_01 + i, e_01 + i, sizeof (__m128i)))
-+	abort ();
-+      if (memcmp (d_10 + i, e_10 + i, sizeof (__m128i)))
-+	abort ();
-+      if (memcmp(d_11 + i, e_11 + i, sizeof (__m128i)))
-+	abort ();
-+    }
-+}
---- gcc/testsuite/gcc.target/i386/aes-check.h	(revision 0)
-+++ gcc/testsuite/gcc.target/i386/aes-check.h	(revision 133902)
-@@ -0,0 +1,30 @@
-+#include <stdio.h>
-+#include <stdlib.h>
-+
-+#include "cpuid.h"
-+
-+static void aes_test (void);
-+
-+int
-+main ()
-+{
-+  unsigned int eax, ebx, ecx, edx;
-+ 
-+  if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
-+    return 0;
-+
-+  /* Run AES test only if host has AES support.  */
-+  if (ecx & bit_AES)
-+    {
-+      aes_test ();
-+#ifdef DEBUG
-+    printf ("PASSED\n");
-+#endif
-+    }
-+#ifdef DEBUG
-+  else
-+    printf ("SKIPPED\n");
-+#endif
-+
-+  return 0;
-+}
---- gcc/testsuite/gcc.target/i386/pclmul-check.h	(revision 0)
-+++ gcc/testsuite/gcc.target/i386/pclmul-check.h	(revision 133902)
-@@ -0,0 +1,30 @@
-+#include <stdio.h>
-+#include <stdlib.h>
-+
-+#include "cpuid.h"
-+
-+static void pclmul_test (void);
-+
-+int
-+main ()
-+{
-+  unsigned int eax, ebx, ecx, edx;
-+ 
-+  if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
-+    return 0;
-+
-+  /* Run PCLMULQDQ test only if host has PCLMULQDQ support.  */
-+  if (ecx & bit_PCLMUL)
-+    {
-+      pclmul_test ();
-+#ifdef DEBUG
-+      printf ("PASSED\n");
-+#endif
-+    }
-+#ifdef DEBUG
-+  else
-+    printf ("SKIPPED\n");
-+#endif
-+
-+  return 0;
-+}
---- gcc/testsuite/gcc.target/i386/aeskeygenassist.c	(revision 0)
-+++ gcc/testsuite/gcc.target/i386/aeskeygenassist.c	(revision 133902)
-@@ -0,0 +1,66 @@
-+/* { dg-do run } */
-+/* { dg-require-effective-target aes } */
-+/* { dg-options "-O2 -maes" } */
-+
-+#include <wmmintrin.h>
-+#include <string.h>
-+
-+#include "aes-check.h"
-+
-+extern void abort (void);
-+
-+#define NUM 1024
-+#define IMM8 1
-+
-+static __m128i src1[NUM];
-+static __m128i edst[NUM];
-+
-+static __m128i resdst[NUM];
-+
-+/* Initialize input/output vectors.  (Currently, there is only one set
-+   of input/output vectors).  */
-+
-+static void
-+init_data (__m128i *s1, __m128i *d)
-+{
-+  int i;
-+  for (i = 0; i < NUM; i++)
-+    {
-+      s1[i] = _mm_setr_epi32 (0x16157e2b, 0xa6d2ae28,
-+			      0x8815f7ab, 0x3c4fcf09);
-+      d[i] = _mm_setr_epi32 (0x24b5e434, 0x3424b5e5,
-+			     0xeb848a01, 0x01eb848b);
-+    }
-+}
-+
-+static void
-+aes_test (void)
-+{
-+  int i;
-+
-+  init_data (src1, edst);
-+
-+  for (i = 0; i < NUM; i += 16)
-+    {
-+      resdst[i]  = _mm_aeskeygenassist_si128 (src1[i], IMM8);
-+      resdst[i + 1] = _mm_aeskeygenassist_si128 (src1[i + 1], IMM8);
-+      resdst[i + 2] = _mm_aeskeygenassist_si128 (src1[i + 2], IMM8);
-+      resdst[i + 3] = _mm_aeskeygenassist_si128 (src1[i + 3], IMM8);
-+      resdst[i + 4] = _mm_aeskeygenassist_si128 (src1[i + 4], IMM8);
-+      resdst[i + 5] = _mm_aeskeygenassist_si128 (src1[i + 5], IMM8);
-+      resdst[i + 6] = _mm_aeskeygenassist_si128 (src1[i + 6], IMM8);
-+      resdst[i + 7] = _mm_aeskeygenassist_si128 (src1[i + 7], IMM8);
-+      resdst[i + 8] = _mm_aeskeygenassist_si128 (src1[i + 8], IMM8);
-+      resdst[i + 9] = _mm_aeskeygenassist_si128 (src1[i + 9], IMM8);
-+      resdst[i + 10] = _mm_aeskeygenassist_si128 (src1[i + 10], IMM8);
-+      resdst[i + 11] = _mm_aeskeygenassist_si128 (src1[i + 11], IMM8);
-+      resdst[i + 12] = _mm_aeskeygenassist_si128 (src1[i + 12], IMM8);
-+      resdst[i + 13] = _mm_aeskeygenassist_si128 (src1[i + 13], IMM8);
-+      resdst[i + 14] = _mm_aeskeygenassist_si128 (src1[i + 14], IMM8);
-+      resdst[i + 15] = _mm_aeskeygenassist_si128 (src1[i + 15], IMM8);
-+    }
-+
-+  for (i = 0; i < NUM; i++)
-+    if (memcmp(edst + i, resdst + i, sizeof (__m128i)))
-+      abort ();
-+}
---- gcc/testsuite/gcc.target/i386/aesenclast.c	(revision 0)
-+++ gcc/testsuite/gcc.target/i386/aesenclast.c	(revision 133902)
-@@ -0,0 +1,68 @@
-+/* { dg-do run } */
-+/* { dg-require-effective-target aes } */
-+/* { dg-options "-O2 -maes" } */
-+
-+#include <wmmintrin.h>
-+#include <string.h>
-+
-+#include "aes-check.h"
-+
-+extern void abort (void);
-+
-+#define NUM 1024
-+
-+static __m128i src1[NUM];
-+static __m128i src2[NUM];
-+static __m128i edst[NUM];
-+
-+static __m128i resdst[NUM];
-+
-+/* Initialize input/output vectors.  (Currently, there is only one
-+   set of input/output vectors).  */
-+
-+static void
-+init_data (__m128i *s1, __m128i *s2, __m128i *d)
-+{
-+  int i;
-+  for (i = 0; i < NUM; i++)
-+    {
-+      s1[i] = _mm_setr_epi32 (0x5d53475d, 0x63746f72,
-+			      0x73745665, 0x7b5b5465);
-+      s2[i] = _mm_setr_epi32 (0x726f6e5d, 0x5b477565,
-+			      0x68617929, 0x48692853);
-+      d[i] = _mm_setr_epi32 (0x53fdc611, 0x177ec425,
-+			     0x938c5964, 0xc7fb881e);
-+    }
-+}
-+
-+static void
-+aes_test (void)
-+{
-+  int i;
-+
-+  init_data (src1, src2, edst);
-+
-+  for (i = 0; i < NUM; i += 16)
-+    {
-+      resdst[i] = _mm_aesenclast_si128 (src1[i], src2[i]);
-+      resdst[i + 1] = _mm_aesenclast_si128 (src1[i + 1], src2[i + 1]);
-+      resdst[i + 2] = _mm_aesenclast_si128 (src1[i + 2], src2[i + 2]);
-+      resdst[i + 3] = _mm_aesenclast_si128 (src1[i + 3], src2[i + 3]);
-+      resdst[i + 4] = _mm_aesenclast_si128 (src1[i + 4], src2[i + 4]);
-+      resdst[i + 5] = _mm_aesenclast_si128 (src1[i + 5], src2[i + 5]);
-+      resdst[i + 6] = _mm_aesenclast_si128 (src1[i + 6], src2[i + 6]);
-+      resdst[i + 7] = _mm_aesenclast_si128 (src1[i + 7], src2[i + 7]);
-+      resdst[i + 8] = _mm_aesenclast_si128 (src1[i + 8], src2[i + 8]);
-+      resdst[i + 9] = _mm_aesenclast_si128 (src1[i + 9], src2[i + 9]);
-+      resdst[i + 10] = _mm_aesenclast_si128 (src1[i + 10], src2[i + 10]);
-+      resdst[i + 11] = _mm_aesenclast_si128 (src1[i + 11], src2[i + 11]);
-+      resdst[i + 12] = _mm_aesenclast_si128 (src1[i + 12], src2[i + 12]);
-+      resdst[i + 13] = _mm_aesenclast_si128 (src1[i + 13], src2[i + 13]);
-+      resdst[i + 14] = _mm_aesenclast_si128 (src1[i + 14], src2[i + 14]);
-+      resdst[i + 15] = _mm_aesenclast_si128 (src1[i + 15], src2[i + 15]);
-+    }
-+
-+  for (i = 0; i < NUM; i++)
-+    if (memcmp(edst + i, resdst + i, sizeof (__m128i)))
-+      abort ();
-+}
---- gcc/testsuite/gcc.target/i386/aesimc.c	(revision 0)
-+++ gcc/testsuite/gcc.target/i386/aesimc.c	(revision 133902)
-@@ -0,0 +1,66 @@
-+/* { dg-do run } */
-+/* { dg-require-effective-target aes } */
-+/* { dg-options "-O2 -maes" } */
-+
-+#include <wmmintrin.h>
-+#include <string.h>
-+
-+#include "aes-check.h"
-+
-+extern void abort (void);
-+
-+#define NUM 1024
-+
-+static __m128i src1[NUM];
-+static __m128i edst[NUM];
-+
-+static __m128i resdst[NUM];
-+
-+/* Initialize input/output vectors.  (Currently, there is only one set
-+   of input/output vectors).   */
-+
-+static void
-+init_data (__m128i *s1, __m128i *d)
-+{
-+  int i;
-+
-+  for (i = 0; i < NUM; i++)
-+    {
-+      s1[i] = _mm_setr_epi32 (0x5d53475d, 0x63746f72,
-+			      0x73745665, 0x7b5b5465);
-+      d[i] = _mm_setr_epi32 (0x81c3b3e5, 0x2b18330a,
-+			     0x44b109c8, 0x627a6f66);
-+    }
-+}
-+
-+static void
-+aes_test (void)
-+{
-+  int i;
-+
-+  init_data (src1, edst);
-+
-+  for (i = 0; i < NUM; i += 16)
-+    {
-+      resdst[i] = _mm_aesimc_si128 (src1[i]);
-+      resdst[i + 1] = _mm_aesimc_si128 (src1[i + 1]);
-+      resdst[i + 2] = _mm_aesimc_si128 (src1[i + 2]);
-+      resdst[i + 3] = _mm_aesimc_si128 (src1[i + 3]);
-+      resdst[i + 4] = _mm_aesimc_si128 (src1[i + 4]);
-+      resdst[i + 5] = _mm_aesimc_si128 (src1[i + 5]);
-+      resdst[i + 6] = _mm_aesimc_si128 (src1[i + 6]);
-+      resdst[i + 7] = _mm_aesimc_si128 (src1[i + 7]);
-+      resdst[i + 8] = _mm_aesimc_si128 (src1[i + 8]);
-+      resdst[i + 9] = _mm_aesimc_si128 (src1[i + 9]);
-+      resdst[i + 10] = _mm_aesimc_si128 (src1[i + 10]);
-+      resdst[i + 11] = _mm_aesimc_si128 (src1[i + 11]);
-+      resdst[i + 12] = _mm_aesimc_si128 (src1[i + 12]);
-+      resdst[i + 13] = _mm_aesimc_si128 (src1[i + 13]);
-+      resdst[i + 14] = _mm_aesimc_si128 (src1[i + 14]);
-+      resdst[i + 15] = _mm_aesimc_si128 (src1[i + 15]);
-+    }
-+
-+  for (i = 0; i < NUM; i++)
-+    if (memcmp(edst + i, resdst + i, sizeof (__m128i)))
-+      abort ();
-+}
---- gcc/testsuite/gcc.target/i386/aesenc.c	(revision 0)
-+++ gcc/testsuite/gcc.target/i386/aesenc.c	(revision 133902)
-@@ -0,0 +1,68 @@
-+/* { dg-do run } */
-+/* { dg-require-effective-target aes } */
-+/* { dg-options "-O2 -maes" } */
-+
-+#include <wmmintrin.h>
-+#include <string.h>
-+
-+#include "aes-check.h"
-+
-+extern void abort (void);
-+
-+#define NUM 1024
-+
-+static __m128i src1[NUM];
-+static __m128i src2[NUM];
-+static __m128i edst[NUM];
-+
-+static __m128i resdst[NUM];
-+
-+/* Initialize input/output vectors.  (Currently, there is only one set
-+   of input/output vectors).  */
-+
-+static void
-+init_data (__m128i *s1, __m128i *s2, __m128i *d)
-+{
-+  int i;
-+  for (i = 0; i < NUM; i++)
-+    {
-+      s1[i] = _mm_setr_epi32 (0x5d53475d, 0x63746f72,
-+			      0x73745665, 0x7b5b5465);
-+      s2[i] = _mm_setr_epi32 (0x726f6e5d, 0x5b477565,
-+			      0x68617929, 0x48692853);
-+      d[i] = _mm_setr_epi32 (0xded7e595, 0x8b104b58,
-+			     0x9fdba3c5, 0xa8311c2f);
-+    }
-+}
-+
-+static void
-+aes_test (void)
-+{
-+  int i;
-+
-+  init_data (src1, src2, edst);
-+
-+  for (i = 0; i < NUM; i += 16)
-+    {
-+      resdst[i] = _mm_aesenc_si128 (src1[i], src2[i]);
-+      resdst[i + 1] = _mm_aesenc_si128 (src1[i + 1], src2[i + 1]);
-+      resdst[i + 2] = _mm_aesenc_si128 (src1[i + 2], src2[i + 2]);
-+      resdst[i + 3] = _mm_aesenc_si128 (src1[i + 3], src2[i + 3]);
-+      resdst[i + 4] = _mm_aesenc_si128 (src1[i + 4], src2[i + 4]);
-+      resdst[i + 5] = _mm_aesenc_si128 (src1[i + 5], src2[i + 5]);
-+      resdst[i + 6] = _mm_aesenc_si128 (src1[i + 6], src2[i + 6]);
-+      resdst[i + 7] = _mm_aesenc_si128 (src1[i + 7], src2[i + 7]);
-+      resdst[i + 8] = _mm_aesenc_si128 (src1[i + 8], src2[i + 8]);
-+      resdst[i + 9] = _mm_aesenc_si128 (src1[i + 9], src2[i + 9]);
-+      resdst[i + 10] = _mm_aesenc_si128 (src1[i + 10], src2[i + 10]);
-+      resdst[i + 11] = _mm_aesenc_si128 (src1[i + 11], src2[i + 11]);
-+      resdst[i + 12] = _mm_aesenc_si128 (src1[i + 12], src2[i + 12]);
-+      resdst[i + 13] = _mm_aesenc_si128 (src1[i + 13], src2[i + 13]);
-+      resdst[i + 14] = _mm_aesenc_si128 (src1[i + 14], src2[i + 14]);
-+      resdst[i + 15] = _mm_aesenc_si128 (src1[i + 15], src2[i + 15]);
-+    }
-+
-+  for (i = 0; i < NUM; i++)
-+    if (memcmp (edst + i, resdst + i, sizeof (__m128i)))
-+      abort ();
-+}
---- gcc/testsuite/gcc.target/i386/sse-13.c	(revision 133901)
-+++ gcc/testsuite/gcc.target/i386/sse-13.c	(revision 133902)
-@@ -1,8 +1,8 @@
- /* { dg-do compile } */
--/* { dg-options "-O2 -march=k8 -m3dnow -msse4 -msse5" } */
-+/* { dg-options "-O2 -march=k8 -m3dnow -msse4 -msse5 -maes -mpclmul" } */
- 
- /* Test that the intrinsics compile with optimization.  All of them are
--   defined as inline functions in {,x,e,p,t,s,a,b}mmintrin.h and mm3dnow.h
-+   defined as inline functions in {,x,e,p,t,s,w,a,b}mmintrin.h and mm3dnow.h
-    that reference the proper builtin functions.  Defining away "extern" and
-    "__inline" results in all of them being compiled as proper functions.  */
- 
-@@ -15,6 +15,10 @@
- #define __builtin_ia32_extrqi(X, I, L)  __builtin_ia32_extrqi(X, 1, 1)
- #define __builtin_ia32_insertqi(X, Y, I, L) __builtin_ia32_insertqi(X, Y, 1, 1)
- 
-+/* wmmintrin.h */
-+#define __builtin_ia32_aeskeygenassist128(X, C) __builtin_ia32_aeskeygenassist128(X, 1)
-+#define __builtin_ia32_pclmulqdq128(X, Y, I) __builtin_ia32_pclmulqdq128(X, Y, 1)
-+
- /* smmintrin.h */
- #define __builtin_ia32_pblendw128(X, Y, M) __builtin_ia32_pblendw128 (X, Y, 1)
- #define __builtin_ia32_blendps(X, Y, M) __builtin_ia32_blendps(X, Y, 1)
-@@ -92,6 +96,7 @@
- #define __builtin_ia32_protdi(A, B) __builtin_ia32_protdi(A,1)
- #define __builtin_ia32_protqi(A, B) __builtin_ia32_protqi(A,1)
- 
-+#include <wmmintrin.h>
- #include <bmmintrin.h>
- #include <smmintrin.h>
- #include <mm3dnow.h>
---- gcc/testsuite/gcc.target/i386/aesdec.c	(revision 0)
-+++ gcc/testsuite/gcc.target/i386/aesdec.c	(revision 133902)
-@@ -0,0 +1,67 @@
-+/* { dg-do run } */
-+/* { dg-require-effective-target aes } */
-+/* { dg-options "-O2 -maes" } */
-+
-+#include <wmmintrin.h>
-+#include <string.h>
-+
-+#include "aes-check.h"
-+
-+extern void abort (void);
-+
-+#define NUM 1024
-+
-+static __m128i src1[NUM];
-+static __m128i src2[NUM];
-+static __m128i edst[NUM];
-+
-+static __m128i resdst[NUM];
-+
-+/* Initialize input/output vectors.  (Currently, there is only one set
-+   of input/output vectors).  */
-+static void
-+init_data (__m128i *s1, __m128i *s2, __m128i *d)
-+{
-+  int i;
-+  for (i = 0; i < NUM; i++)
-+    {
-+      s1[i] = _mm_setr_epi32 (0x5d53475d, 0x63746f72,
-+			      0x73745665, 0x7b5b5465);
-+      s2[i] = _mm_setr_epi32 (0x726f6e5d, 0x5b477565,
-+			      0x68617929, 0x48692853);
-+      d[i]  = _mm_setr_epi32 (0xb730392a, 0xb58eb95e,
-+			      0xfaea2787, 0x138ac342);
-+    }
-+}
-+
-+static void
-+aes_test (void)
-+{
-+  int i;
-+
-+  init_data (src1, src2, edst);
-+
-+  for (i = 0; i < NUM; i += 16)
-+    {
-+      resdst[i] = _mm_aesdec_si128 (src1[i], src2[i]);
-+      resdst[i + 1] = _mm_aesdec_si128 (src1[i + 1], src2[i + 1]);
-+      resdst[i + 2] = _mm_aesdec_si128 (src1[i + 2], src2[i + 2]);
-+      resdst[i + 3] = _mm_aesdec_si128 (src1[i + 3], src2[i + 3]);
-+      resdst[i + 4] = _mm_aesdec_si128 (src1[i + 4], src2[i + 4]);
-+      resdst[i + 5] = _mm_aesdec_si128 (src1[i + 5], src2[i + 5]);
-+      resdst[i + 6] = _mm_aesdec_si128 (src1[i + 6], src2[i + 6]);
-+      resdst[i + 7] = _mm_aesdec_si128 (src1[i + 7], src2[i + 7]);
-+      resdst[i + 8] = _mm_aesdec_si128 (src1[i + 8], src2[i + 8]);
-+      resdst[i + 9] = _mm_aesdec_si128 (src1[i + 9], src2[i + 9]);
-+      resdst[i + 10] = _mm_aesdec_si128 (src1[i + 10], src2[i + 10]);
-+      resdst[i + 11] = _mm_aesdec_si128 (src1[i + 11], src2[i + 11]);
-+      resdst[i + 12] = _mm_aesdec_si128 (src1[i + 12], src2[i + 12]);
-+      resdst[i + 13] = _mm_aesdec_si128 (src1[i + 13], src2[i + 13]);
-+      resdst[i + 14] = _mm_aesdec_si128 (src1[i + 14], src2[i + 14]);
-+      resdst[i + 15] = _mm_aesdec_si128 (src1[i + 15], src2[i + 15]);
-+    }
-+
-+  for (i = 0; i < NUM; i++)
-+    if (memcmp (edst + i, resdst + i, sizeof (__m128i)))
-+      abort ();
-+}
---- gcc/testsuite/g++.dg/other/i386-2.C	(revision 133901)
-+++ gcc/testsuite/g++.dg/other/i386-2.C	(revision 133902)
-@@ -1,8 +1,9 @@
--/* Test that {,x,e,p,t,s,a,b}mmintrin.h, mm3dnow.h and mm_malloc.h are
-+/* Test that {,x,e,p,t,s,w,a,b}mmintrin.h, mm3dnow.h and mm_malloc.h are
-    usable with -O -pedantic-errors.  */
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
--/* { dg-options "-O -pedantic-errors -march=k8 -m3dnow -msse4 -msse5" } */
-+/* { dg-options "-O -pedantic-errors -march=k8 -m3dnow -msse4 -msse5 -maes -mpclmul" } */
- 
-+#include <wmmintrin.h>
- #include <bmmintrin.h>
- #include <smmintrin.h>
- #include <mm3dnow.h>
---- gcc/testsuite/g++.dg/other/i386-3.C	(revision 133901)
-+++ gcc/testsuite/g++.dg/other/i386-3.C	(revision 133902)
-@@ -1,8 +1,9 @@
--/* Test that {,x,e,p,t,s,a,b}mmintrin.h, mm3dnow.h and mm_malloc.h are
-+/* Test that {,x,e,p,t,s,w,a,b}mmintrin.h, mm3dnow.h and mm_malloc.h are
-    usable with -O -fkeep-inline-functions.  */
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
--/* { dg-options "-O -fkeep-inline-functions -march=k8 -m3dnow -msse4 -msse5" } */
-+/* { dg-options "-O -fkeep-inline-functions -march=k8 -m3dnow -maes -mpclmul -msse4 -msse5" } */
- 
-+#include <wmmintrin.h>
- #include <bmmintrin.h>
- #include <smmintrin.h>
- #include <mm3dnow.h>

diff --git a/gcc43-altivec-tests.patch b/gcc43-altivec-tests.patch
deleted file mode 100644
index 0b7a456..0000000
--- a/gcc43-altivec-tests.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-2008-08-26  Janis Johnson  <janis187@us.ibm.com>
-
-	* g++.dg/ext/altivec-3.C: Move AltiVec code out of main.
-
-2008-04-04  Janis Johnson  <janis187@us.ibm.com>
-
-	* gcc.dg/var-expand3.c: Skip for powerpc-linux if not on AltiVec HW.
-
---- gcc/testsuite/g++.dg/ext/altivec-3.C	(revision 139609)
-+++ gcc/testsuite/g++.dg/ext/altivec-3.C	(revision 139610)
-@@ -120,16 +120,19 @@ void baz2 (int i, ... )
-     CHECK_INVARIANT (vec_all_eq (vxi.v, vx_g.v));
- }
- 
--int main(void)
-+void main1(void)
- {
-     CHECK_INVARIANT (sizeof(struct foo) == 8 && sizeof(struct vfoo) == 48);
- 
--    altivec_check();
--
-     bar(i_1, x_g, (short)i_2, (float)d_2, ld_1, (char)i_1, d_3);
-     baz(i_1, v_g, i_1, vx_g, i_1, v2_g, i_1, vx2_g); 
-     quux(i_1, v_g, v_g);
-     baz2(i_1, vx_g);
--    
-+}
-+
-+int main(void)
-+{
-+    altivec_check();
-+    main1();
-     return 0;
- }
---- gcc/testsuite/gcc.dg/var-expand3.c	(revision 133910)
-+++ gcc/testsuite/gcc.dg/var-expand3.c	(revision 133911)
-@@ -1,4 +1,4 @@
--/* { dg-do run { target { powerpc*-*-* && powerpc_altivec_ok } } }} */
-+/* { dg-do run { target { powerpc*-*-* && vmx_hw } } }} */
- /* { dg-options "-O2 -funroll-loops -ffast-math -fvariable-expansion-in-unroller -maltivec -dL" } */
- 
- #include "altivec.h"

diff --git a/gcc43-build-id.patch b/gcc43-build-id.patch
deleted file mode 100644
index 3f9a415..0000000
--- a/gcc43-build-id.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-2007-07-22  Roland McGrath  <roland@redhat.com>
-
-	* config/rs6000/sysv4.h (LINK_EH_SPEC): Add --build-id for
-	non-relocatable link.
-	* config/linux.h (LINK_EH_SPEC): Likewise.
-	* config/sparc/linux.h (LINK_EH_SPEC): Likewise.
-	* config/sparc/linux64.h (LINK_EH_SPEC): Likewise.
-	* config/alpha/elf.h (LINK_EH_SPEC): Likewise.
-	* config/ia64/linux.h (LINK_EH_SPEC): Likewise.
-
---- gcc/config/rs6000/sysv4.h.~1~
-+++ gcc/config/rs6000/sysv4.h
-@@ -906,7 +906,7 @@ extern int fixuplabelno;
-   %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}"
- 
- #if defined(HAVE_LD_EH_FRAME_HDR)
--# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
-+# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
- #endif
- 
- #define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \
---- gcc/config/linux.h.~1~
-+++ gcc/config/linux.h
-@@ -85,7 +85,7 @@ Boston, MA 02110-1301, USA.  */
-     } while (0)
- 
- #if defined(HAVE_LD_EH_FRAME_HDR)
--#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
-+#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
- #endif
- 
- /* Define this so we can compile MS code for use with WINE.  */
---- gcc/config/sparc/linux64.h.~1~
-+++ gcc/config/sparc/linux64.h
-@@ -316,7 +316,7 @@ do {									\
- #define DITF_CONVERSION_LIBFUNCS 1
- 
- #if defined(HAVE_LD_EH_FRAME_HDR)
--#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
-+#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
- #endif
- \f
- #ifdef HAVE_AS_TLS
---- gcc/config/sparc/linux.h.~1~
-+++ gcc/config/sparc/linux.h
-@@ -188,7 +188,7 @@ do {									\
- #define DITF_CONVERSION_LIBFUNCS 1
- 
- #if defined(HAVE_LD_EH_FRAME_HDR)
--#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
-+#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
- #endif
- \f
- #ifdef HAVE_AS_TLS
---- gcc/config/alpha/elf.h.~1~
-+++ gcc/config/alpha/elf.h
-@@ -453,5 +453,5 @@ extern int alpha_this_gpdisp_sequence_nu
-    I imagine that other systems will catch up.  In the meantime, it
-    doesn't harm to make sure that the data exists to be used later.  */
- #if defined(HAVE_LD_EH_FRAME_HDR)
--#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
-+#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
- #endif
---- gcc/config/ia64/linux.h.~1~
-+++ gcc/config/ia64/linux.h
-@@ -56,7 +56,7 @@ do {						\
-    Signalize that because we have fde-glibc, we don't need all C shared libs
-    linked against -lgcc_s.  */
- #undef LINK_EH_SPEC
--#define LINK_EH_SPEC ""
-+#define LINK_EH_SPEC "%{!r:--build-id} "
- 
- #define MD_UNWIND_SUPPORT "config/ia64/linux-unwind.h"
- 

diff --git a/gcc43-c++-builtin-redecl.patch b/gcc43-c++-builtin-redecl.patch
deleted file mode 100644
index 77655ad..0000000
--- a/gcc43-c++-builtin-redecl.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-2007-10-02  Jakub Jelinek  <jakub@redhat.com>
-
-	* decl.c (duplicate_decls): When redeclaring a builtin function,
-	keep the merged decl builtin whenever types match, even if new
-	decl defines a function.
-
-	* gcc.dg/builtins-65.c: New test.
-	* g++.dg/ext/builtin10.C: New test.
-
---- gcc/cp/decl.c.jj	2007-10-01 22:11:09.000000000 +0200
-+++ gcc/cp/decl.c	2007-10-02 11:39:46.000000000 +0200
-@@ -1988,23 +1988,21 @@ duplicate_decls (tree newdecl, tree oldd
- 	  DECL_ARGUMENTS (olddecl) = DECL_ARGUMENTS (newdecl);
- 	  DECL_RESULT (olddecl) = DECL_RESULT (newdecl);
- 	}
-+      /* If redeclaring a builtin function, it stays built in.  */
-+      if (types_match && DECL_BUILT_IN (olddecl))
-+	{
-+	  DECL_BUILT_IN_CLASS (newdecl) = DECL_BUILT_IN_CLASS (olddecl);
-+	  DECL_FUNCTION_CODE (newdecl) = DECL_FUNCTION_CODE (olddecl);
-+	  /* If we're keeping the built-in definition, keep the rtl,
-+	     regardless of declaration matches.  */
-+	  COPY_DECL_RTL (olddecl, newdecl);
-+	}
-       if (new_defines_function)
- 	/* If defining a function declared with other language
- 	   linkage, use the previously declared language linkage.  */
- 	SET_DECL_LANGUAGE (newdecl, DECL_LANGUAGE (olddecl));
-       else if (types_match)
- 	{
--	  /* If redeclaring a builtin function, and not a definition,
--	     it stays built in.  */
--	  if (DECL_BUILT_IN (olddecl))
--	    {
--	      DECL_BUILT_IN_CLASS (newdecl) = DECL_BUILT_IN_CLASS (olddecl);
--	      DECL_FUNCTION_CODE (newdecl) = DECL_FUNCTION_CODE (olddecl);
--	      /* If we're keeping the built-in definition, keep the rtl,
--		 regardless of declaration matches.  */
--	      COPY_DECL_RTL (olddecl, newdecl);
--	    }
--
- 	  DECL_RESULT (newdecl) = DECL_RESULT (olddecl);
- 	  /* Don't clear out the arguments if we're redefining a function.  */
- 	  if (DECL_ARGUMENTS (olddecl))
---- gcc/testsuite/gcc.dg/builtins-65.c.jj	2007-10-02 11:23:51.000000000 +0200
-+++ gcc/testsuite/gcc.dg/builtins-65.c	2007-10-02 11:24:12.000000000 +0200
-@@ -0,0 +1,25 @@
-+/* { dg-do compile } */
-+/* { dg-options "-O2" } */
-+
-+typedef __SIZE_TYPE__ size_t;
-+extern void __chk_fail (void);
-+extern int snprintf (char *, size_t, const char *, ...);
-+extern inline __attribute__((gnu_inline, always_inline)) int snprintf (char *a, size_t b, const char *fmt, ...)
-+{
-+  if (__builtin_object_size (a, 0) != -1UL && __builtin_object_size (a, 0) < b)
-+    __chk_fail ();
-+  return __builtin_snprintf (a, b, fmt, __builtin_va_arg_pack ());
-+}
-+extern int snprintf (char *, size_t, const char *, ...) __asm ("mysnprintf");
-+
-+char buf[10];
-+
-+int
-+main (void)
-+{
-+  snprintf (buf, 10, "%d%d\n", 10, 10);
-+  return 0;
-+}
-+
-+/* { dg-final { scan-assembler "mysnprintf" } } */
-+/* { dg-final { scan-assembler-not "__chk_fail" } } */
---- gcc/testsuite/g++.dg/ext/builtin10.C.jj	2007-10-02 11:19:45.000000000 +0200
-+++ gcc/testsuite/g++.dg/ext/builtin10.C	2007-10-02 11:23:26.000000000 +0200
-@@ -0,0 +1,27 @@
-+// { dg-do compile }
-+// { dg-options "-O2" }
-+
-+typedef __SIZE_TYPE__ size_t;
-+extern "C" {
-+extern void __chk_fail (void);
-+extern int snprintf (char *, size_t, const char *, ...);
-+extern inline __attribute__((gnu_inline, always_inline)) int snprintf (char *a, size_t b, const char *fmt, ...)
-+{
-+  if (__builtin_object_size (a, 0) != -1UL && __builtin_object_size (a, 0) < b)
-+    __chk_fail ();
-+  return __builtin_snprintf (a, b, fmt, __builtin_va_arg_pack ());
-+}
-+extern int snprintf (char *, size_t, const char *, ...) __asm ("mysnprintf");
-+}
-+
-+char buf[10];
-+
-+int
-+main (void)
-+{
-+  snprintf (buf, 10, "%d%d\n", 10, 10);
-+  return 0;
-+}
-+
-+// { dg-final { scan-assembler "mysnprintf" } }
-+// { dg-final { scan-assembler-not "__chk_fail" } }

diff --git a/gcc43-i386-libgomp.patch b/gcc43-i386-libgomp.patch
deleted file mode 100644
index 2ad3b24..0000000
--- a/gcc43-i386-libgomp.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-Build i386.rpm libgomp and libsupc++.a(guard.o) as i486+, pre-i486
-hardware isn't supported because NPTL doesn't support it anyway.
-
---- libgomp/configure.tgt.jj	2008-01-10 20:53:48.000000000 +0100
-+++ libgomp/configure.tgt	2008-03-27 12:44:51.000000000 +0100
-@@ -44,14 +44,14 @@ if test $enable_linux_futex = yes; then
- 	;;
- 
-     # Note that bare i386 is not included here.  We need cmpxchg.
--    i[456]86-*-linux*)
-+    i[3456]86-*-linux*)
- 	config_path="linux/x86 linux posix"
- 	case " ${CC} ${CFLAGS} " in
- 	  *" -m64 "*)
- 	    ;;
- 	  *)
- 	    if test -z "$with_arch"; then
--	      XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}"
-+	      XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic"
- 	    fi
- 	esac
- 	;;
-@@ -63,7 +63,7 @@ if test $enable_linux_futex = yes; then
- 	config_path="linux/x86 linux posix"
- 	case " ${CC} ${CFLAGS} " in
- 	  *" -m32 "*)
--	    XCFLAGS="${XCFLAGS} -march=i486 -mtune=i686"
-+	    XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic"
- 	    ;;
- 	esac
- 	;;
---- libstdc++-v3/libsupc++/guard.cc.jj	2008-03-01 00:58:24.000000000 +0100
-+++ libstdc++-v3/libsupc++/guard.cc	2008-03-27 14:08:44.000000000 +0100
-@@ -35,6 +35,27 @@
- #include <new>
- #include <ext/atomicity.h>
- #include <ext/concurrence.h>
-+#if defined __i386__ && !defined _GLIBCXX_ATOMIC_BUILTINS
-+# define _GLIBCXX_ATOMIC_BUILTINS 1
-+# define __sync_val_compare_and_swap(a, b, c) \
-+  ({								\
-+     typedef char sltast[sizeof (*a) == sizeof (int) ? 1 : -1];	\
-+     int sltas;							\
-+     __asm __volatile ("lock; cmpxchgl %3, (%1)"		\
-+		       : "=a" (sltas)				\
-+		       : "r" (a), "0" (b), "r" (c) : "memory");	\
-+     sltas;							\
-+   })
-+# define __sync_lock_test_and_set(a, b) \
-+  ({								\
-+     typedef char sltast[sizeof (*a) == sizeof (int) ? 1 : -1];	\
-+     int sltas;							\
-+     __asm __volatile ("xchgl (%1), %0"				\
-+		       : "=r" (sltas)				\
-+		       : "r" (a), "0" (b) : "memory");		\
-+     sltas;							\
-+   })
-+#endif
- #if defined(__GTHREADS) && defined(__GTHREAD_HAS_COND) \
-     && defined(_GLIBCXX_ATOMIC_BUILTINS) && defined(_GLIBCXX_HAVE_LINUX_FUTEX)
- # include <climits>

diff --git a/gcc43-ia64-libunwind.patch b/gcc43-ia64-libunwind.patch
deleted file mode 100644
index 8e10979..0000000
--- a/gcc43-ia64-libunwind.patch
+++ /dev/null
@@ -1,538 +0,0 @@
-2004-11-27  Jakub Jelinek  <jakub@redhat.com>
-
-	* config.gcc (ia64*-*-linux*): If native and libelf is installed,
-	use ia64/t-glibc-no-libunwind instead of the other t-*unwind*
-	fragments.
-	* config/ia64/t-glibc-no-libunwind: New file.
-	* config/ia64/change-symver.c: New file.
-	* config/ia64/unwind-ia64.c: If USE_SYMVER_GLOBAL and SHARED,
-	define _Unwind_* to __symverglobal_Unwind_*.
-	(alias): Undefine.
-	(symverglobal): Define.  Use it on _Unwind_*.
-	* config/ia64/mkmap-symver-multi.awk: New file.
-	* config/ia64/libgcc-ia64-no-libunwind.ver: New file.
-
---- gcc/config.gcc.jj	2004-10-04 08:55:44.000000000 -0400
-+++ gcc/config.gcc	2004-11-13 05:23:50.000000000 -0500
-@@ -1185,9 +1185,16 @@ ia64*-*-freebsd*)
- 	;;
- ia64*-*-linux*)
- 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h ia64/sysv4.h ia64/linux.h"
--	tmake_file="${tmake_file} ia64/t-ia64 t-libunwind ia64/t-glibc"
--	if test x$with_system_libunwind != xyes ; then
--		tmake_file="${tmake_file} t-libunwind-elf ia64/t-glibc-libunwind"
-+	tmake_file="${tmake_file} ia64/t-ia64"
-+	if test x${target} = x${host} && test x${target} = x${build} \
-+	   && grep gelf_getverdef /usr/include/gelf.h > /dev/null 2>&1 \
-+	   && test -f /usr/lib/libelf.so; then
-+		tmake_file="${tmake_file} ia64/t-glibc-no-libunwind"
-+	else
-+		tmake_file="${tmake_file} t-libunwind ia64/t-glibc"
-+		if test x$with_system_libunwind != xyes ; then
-+			tmake_file="${tmake_file} t-libunwind-elf ia64/t-glibc-libunwind"
-+		fi
- 	fi
- 	target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
- 	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
---- gcc/config/ia64/t-glibc-no-libunwind.jj	2004-02-18 10:27:36.000000000 -0500
-+++ gcc/config/ia64/t-glibc-no-libunwind	2004-11-15 09:56:33.000000000 -0500
-@@ -0,0 +1,30 @@
-+# Don't use system libunwind library on IA-64 GLIBC based system,
-+# but make _Unwind_* symbols unversioned, so that created programs
-+# are usable even when libgcc_s uses libunwind.
-+LIB2ADDEH += $(srcdir)/config/ia64/fde-glibc.c
-+SHLIB_MAPFILES += $(srcdir)/config/ia64/libgcc-ia64-no-libunwind.ver
-+SHLIB_MKMAP = $(srcdir)/config/ia64/mkmap-symver-multi.awk
-+
-+SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
-+	-Wl,--soname=$(SHLIB_SONAME) \
-+	-Wl,--version-script=$(SHLIB_MAP) \
-+	-o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp @multilib_flags@ $(SHLIB_OBJS) -lc && \
-+	rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \
-+	if [ -f $(SHLIB_DIR)/$(SHLIB_SONAME) ]; then \
-+	  mv -f $(SHLIB_DIR)/$(SHLIB_SONAME) \
-+		$(SHLIB_DIR)/$(SHLIB_SONAME).backup; \
-+	else true; fi && \
-+	gcc -O2 -o $(SHLIB_DIR)/$(SHLIB_SONAME).tweak \
-+	  $$(gcc_srcdir)/config/ia64/change-symver.c -lelf && \
-+	$(SHLIB_DIR)/$(SHLIB_SONAME).tweak $(SHLIB_DIR)/$(SHLIB_SONAME).tmp \
-+	GCC_3.4.2 _GLOBAL_ \
-+	_Unwind_GetGR _Unwind_RaiseException _Unwind_GetRegionStart _Unwind_SetIP \
-+	_Unwind_GetIP _Unwind_GetLanguageSpecificData _Unwind_Resume \
-+	_Unwind_DeleteException _Unwind_SetGR _Unwind_ForcedUnwind \
-+	_Unwind_Backtrace _Unwind_FindEnclosingFunction _Unwind_GetCFA \
-+	_Unwind_Resume_or_Rethrow _Unwind_GetBSP && \
-+	rm -f $(SHLIB_DIR)/$(SHLIB_SONAME).tweak && \
-+	mv $(SHLIB_DIR)/$(SHLIB_SONAME).tmp $(SHLIB_DIR)/$(SHLIB_SONAME) && \
-+	$(LN_S) $(SHLIB_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK)
-+
-+TARGET_LIBGCC2_CFLAGS += -DUSE_SYMVER_GLOBAL
---- gcc/config/ia64/change-symver.c.jj	2004-02-18 10:27:36.000000000 -0500
-+++ gcc/config/ia64/change-symver.c	2004-11-13 05:23:50.000000000 -0500
-@@ -0,0 +1,211 @@
-+#define _GNU_SOURCE 1
-+#define _FILE_OFFSET_BITS 64
-+#include <endian.h>
-+#include <errno.h>
-+#include <error.h>
-+#include <fcntl.h>
-+#include <fnmatch.h>
-+#include <gelf.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <unistd.h>
-+
-+int
-+compute_veridx (const char *name, Elf *elf, Elf_Data *verd, GElf_Shdr *verd_shdr)
-+{
-+  if (strcmp (name, "_GLOBAL_") == 0)
-+    return 1;
-+
-+  int cnt;
-+  size_t offset = 0;
-+  for (cnt = verd_shdr->sh_info; --cnt >= 0; )
-+    {
-+      GElf_Verdef defmem;
-+      GElf_Verdef *def;
-+      GElf_Verdaux auxmem;
-+      GElf_Verdaux *aux;
-+      unsigned int auxoffset;
-+
-+      /* Get the data at the next offset.  */
-+      def = gelf_getverdef (verd, offset, &defmem);
-+      if (def == NULL)
-+	break;
-+
-+      auxoffset = offset + def->vd_aux;
-+      aux = gelf_getverdaux (verd, auxoffset, &auxmem);
-+      if (aux == NULL)
-+	break;
-+
-+      if (strcmp (name, elf_strptr (elf, verd_shdr->sh_link,
-+		  aux->vda_name)) == 0)
-+	return def->vd_ndx;
-+
-+      /* Find the next offset.  */
-+      offset += def->vd_next;
-+    }
-+
-+  return -1;
-+}
-+
-+int
-+main (int argc, char **argv)
-+{
-+  if (argc < 4)
-+    error (1, 0, "Usage: change_symver library from_symver to_symver symbol...\nExample: change_symver libfoo.so FOO_1.0 *global* bar baz");
-+
-+  const char *fname = argv[1];
-+
-+  /* Open the file.  */
-+  int fd;
-+  fd = open (fname, O_RDWR);
-+  if (fd == -1)
-+    error (1, errno, fname);
-+
-+  elf_version (EV_CURRENT);
-+
-+  /* Now get the ELF descriptor.  */
-+  Elf *elf = elf_begin (fd, ELF_C_READ_MMAP, NULL);
-+  if (elf == NULL || elf_kind (elf) != ELF_K_ELF)
-+    error (1, 0, "Couldn't open %s: %s", fname, elf_errmsg (-1));
-+
-+  size_t shstrndx;
-+  /* Get the section header string table index.  */
-+  if (elf_getshstrndx (elf, &shstrndx) < 0)
-+    error (1, 0, "cannot get shstrndx from %s", fname);
-+
-+  GElf_Ehdr ehdr_mem;
-+  GElf_Ehdr *ehdr;
-+
-+  /* We need the ELF header in a few places.  */
-+  ehdr = gelf_getehdr (elf, &ehdr_mem);
-+  if (ehdr == NULL)
-+    error (1, 0, "couldn't get ELF headers %s: %s", fname, elf_errmsg (-1));
-+
-+  Elf_Scn *scn = NULL;
-+  GElf_Shdr shdr_mem, verd_shdr, ver_shdr, dynsym_shdr;
-+  Elf_Data *ver = NULL, *verd = NULL, *dynsym = NULL;
-+
-+  while ((scn = elf_nextscn (elf, scn)) != NULL)
-+    {
-+      GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
-+
-+      if (shdr == NULL)
-+	error (1, 0, "couldn't get shdr from %s", fname);
-+
-+      if ((shdr->sh_flags & SHF_ALLOC) != 0)
-+	{
-+	  const char *name = elf_strptr (elf, shstrndx, shdr->sh_name);
-+	  Elf_Data **p;
-+
-+	  if (strcmp (name, ".gnu.version") == 0)
-+	    {
-+	      p = &ver;
-+	      ver_shdr = *shdr;
-+	    }
-+	  else if (strcmp (name, ".gnu.version_d") == 0)
-+	    {
-+	      p = &verd;
-+	      verd_shdr = *shdr;
-+	    }
-+	  else if (strcmp (name, ".dynsym") == 0)
-+	    {
-+	      p = &dynsym;
-+	      dynsym_shdr = *shdr;
-+	    }
-+	  else
-+	    continue;
-+
-+	  if (*p != NULL)
-+	    error (1, 0, "Two %s sections in %s", name, fname);
-+	  *p = elf_getdata (scn, NULL);
-+	  if (*p == NULL || elf_getdata (scn, *p) != NULL)
-+	    error (1, 0, "No data or non-contiguous data in %s section in %s",
-+		   name, fname);
-+	}
-+    }
-+
-+  if (ver == NULL || verd == NULL || dynsym == NULL)
-+    error (1, 0, "Couldn't find one of the needed sections in %s", fname);
-+
-+  int from_idx = compute_veridx (argv[2], elf, verd, &verd_shdr);
-+  if (from_idx == -1)
-+    error (1, 0, "Could not find symbol version %s in %s", argv[2], fname);
-+
-+  int to_idx = compute_veridx (argv[3], elf, verd, &verd_shdr);
-+  if (to_idx == -1)
-+    error (1, 0, "Could not find symbol version %s in %s", argv[3], fname);
-+
-+  if (dynsym_shdr.sh_entsize != gelf_fsize (elf, ELF_T_SYM, 1, ehdr->e_version)
-+      || dynsym_shdr.sh_size % dynsym_shdr.sh_entsize
-+      || ver_shdr.sh_entsize != 2
-+      || (ver_shdr.sh_size & 1)
-+      || dynsym_shdr.sh_size / dynsym_shdr.sh_entsize != ver_shdr.sh_size / 2)
-+    error (1, 0, "Unexpected sh_size or sh_entsize in %s", fname);
-+
-+  size_t nentries = ver_shdr.sh_size / 2;
-+  size_t cnt;
-+  GElf_Versym array[nentries];
-+  for (cnt = 0; cnt < nentries; ++cnt)
-+    {
-+      GElf_Versym vsymmem;
-+      GElf_Versym *vsym;
-+
-+      vsym = gelf_getversym (ver, cnt, &vsymmem);
-+      if (vsym == NULL)
-+	error (1, 0, "gelt_getversym failed in %s: %s", fname, elf_errmsg (-1));
-+
-+      array[cnt] = *vsym;
-+      if (*vsym != from_idx)
-+	continue;
-+
-+      GElf_Sym sym_mem;
-+      GElf_Sym *sym;
-+      sym = gelf_getsym (dynsym, cnt, &sym_mem);
-+      if (sym == NULL)
-+	error (1, 0, "gelt_getsym failed in %s: %s", fname, elf_errmsg (-1));
-+
-+      const char *name = elf_strptr (elf, dynsym_shdr.sh_link, sym->st_name);
-+
-+      int argn;
-+      for (argn = 4; argn < argc; ++argn)
-+	if (fnmatch (argv[argn], name, 0) == 0)
-+	  {
-+	    array[cnt] = to_idx;
-+	    break;
-+	  }
-+    }
-+
-+  if (sizeof (array[0]) != 2)
-+    abort ();
-+
-+#if __BYTE_ORDER == __LITTLE_ENDIAN
-+  if (ehdr->e_ident[EI_DATA] == ELFDATA2LSB)
-+    ;
-+  else if (ehdr->e_ident[EI_DATA] == ELFDATA2MSB)
-+#elif __BYTE_ORDER == __BIG_ENDIAN
-+  if (ehdr->e_ident[EI_DATA] == ELFDATA2MSB)
-+    ;
-+  else if (ehdr->e_ident[EI_DATA] == ELFDATA2LSB)
-+#else
-+# error Unsupported endianity
-+#endif
-+    {
-+      for (cnt = 0; cnt < nentries; ++cnt)
-+	array[cnt] = ((array[cnt] & 0xff) << 8) | ((array[cnt] & 0xff00) >> 8);
-+    }
-+  else
-+    error (1, 0, "Unknown EI_DATA %d in %s", ehdr->e_ident[EI_DATA], fname);
-+
-+  if (elf_end (elf) != 0)
-+    error (1, 0, "couldn't close %s: %s", fname, elf_errmsg (-1));
-+
-+  if (lseek (fd, ver_shdr.sh_offset, SEEK_SET) != (off_t) ver_shdr.sh_offset)
-+    error (1, 0, "failed to seek to %zd in %s", (size_t) ver_shdr.sh_offset,
-+	   fname);
-+
-+  if (write (fd, array, 2 * nentries) != (ssize_t) (2 * nentries))
-+    error (1, 0, "failed to write .gnu.version section into %s", fname);
-+
-+  close (fd);
-+  return 0;
-+}
---- gcc/config/ia64/unwind-ia64.c.jj	2004-10-04 08:55:57.000000000 -0400
-+++ gcc/config/ia64/unwind-ia64.c	2004-11-15 09:07:45.000000000 -0500
-@@ -51,6 +51,51 @@
- #define UNW_FLAG_UHANDLER(x)	((x) & 0x0000000200000000L)
- #define UNW_LENGTH(x)		((x) & 0x00000000ffffffffL)
- 
-+#if defined (USE_SYMVER_GLOBAL) && defined (SHARED)
-+extern _Unwind_Reason_Code __symverglobal_Unwind_Backtrace
-+  (_Unwind_Trace_Fn, void *);
-+extern void __symverglobal_Unwind_DeleteException
-+  (struct _Unwind_Exception *);
-+extern void * __symverglobal_Unwind_FindEnclosingFunction (void *);
-+extern _Unwind_Reason_Code __symverglobal_Unwind_ForcedUnwind
-+  (struct _Unwind_Exception *, _Unwind_Stop_Fn, void *);
-+extern _Unwind_Word __symverglobal_Unwind_GetCFA
-+  (struct _Unwind_Context *);
-+extern _Unwind_Word __symverglobal_Unwind_GetBSP
-+  (struct _Unwind_Context *);
-+extern _Unwind_Word __symverglobal_Unwind_GetGR
-+  (struct _Unwind_Context *, int );
-+extern _Unwind_Ptr __symverglobal_Unwind_GetIP (struct _Unwind_Context *);
-+extern void *__symverglobal_Unwind_GetLanguageSpecificData
-+  (struct _Unwind_Context *);
-+extern _Unwind_Ptr __symverglobal_Unwind_GetRegionStart
-+  (struct _Unwind_Context *);
-+extern _Unwind_Reason_Code __symverglobal_Unwind_RaiseException
-+  (struct _Unwind_Exception *);
-+extern void __symverglobal_Unwind_Resume (struct _Unwind_Exception *);
-+extern _Unwind_Reason_Code __symverglobal_Unwind_Resume_or_Rethrow
-+   (struct _Unwind_Exception *);
-+extern void __symverglobal_Unwind_SetGR
-+  (struct _Unwind_Context *, int, _Unwind_Word);
-+extern void __symverglobal_Unwind_SetIP
-+  (struct _Unwind_Context *, _Unwind_Ptr);
-+#define _Unwind_Backtrace __symverglobal_Unwind_Backtrace
-+#define _Unwind_DeleteException __symverglobal_Unwind_DeleteException
-+#define _Unwind_FindEnclosingFunction __symverglobal_Unwind_FindEnclosingFunction
-+#define _Unwind_ForcedUnwind __symverglobal_Unwind_ForcedUnwind
-+#define _Unwind_GetBSP __symverglobal_Unwind_GetBSP
-+#define _Unwind_GetCFA __symverglobal_Unwind_GetCFA
-+#define _Unwind_GetGR __symverglobal_Unwind_GetGR
-+#define _Unwind_GetIP __symverglobal_Unwind_GetIP
-+#define _Unwind_GetLanguageSpecificData __symverglobal_Unwind_GetLanguageSpecificData
-+#define _Unwind_GetRegionStart __symverglobal_Unwind_GetRegionStart
-+#define _Unwind_RaiseException __symverglobal_Unwind_RaiseException
-+#define _Unwind_Resume __symverglobal_Unwind_Resume
-+#define _Unwind_Resume_or_Rethrow __symverglobal_Unwind_Resume_or_Rethrow
-+#define _Unwind_SetGR __symverglobal_Unwind_SetGR
-+#define _Unwind_SetIP __symverglobal_Unwind_SetIP
-+#endif
-+
- enum unw_application_register
- {
-   UNW_AR_BSP,
-@@ -2402,4 +2447,44 @@ alias (_Unwind_SetGR);
- alias (_Unwind_SetIP);
- #endif
- 
-+#if defined (USE_SYMVER_GLOBAL) && defined (SHARED)
-+#undef alias
-+#define symverglobal(name, version) \
-+__typeof (__symverglobal##name) __symverlocal##name		\
-+  __attribute__ ((alias ("__symverglobal" #name)));		\
-+__asm__ (".symver __symverglobal" #name"," #name "@@GCC_3.4.2");\
-+__asm__ (".symver __symverlocal" #name"," #name "@" #version)
-+
-+#undef _Unwind_Backtrace
-+#undef _Unwind_DeleteException
-+#undef _Unwind_FindEnclosingFunction
-+#undef _Unwind_ForcedUnwind
-+#undef _Unwind_GetBSP
-+#undef _Unwind_GetCFA
-+#undef _Unwind_GetGR
-+#undef _Unwind_GetIP
-+#undef _Unwind_GetLanguageSpecificData
-+#undef _Unwind_GetRegionStart
-+#undef _Unwind_RaiseException
-+#undef _Unwind_Resume
-+#undef _Unwind_Resume_or_Rethrow
-+#undef _Unwind_SetGR
-+#undef _Unwind_SetIP
-+symverglobal (_Unwind_Backtrace, GCC_3.3);
-+symverglobal (_Unwind_DeleteException, GCC_3.0);
-+symverglobal (_Unwind_FindEnclosingFunction, GCC_3.3);
-+symverglobal (_Unwind_ForcedUnwind, GCC_3.0);
-+symverglobal (_Unwind_GetBSP, GCC_3.3.2);
-+symverglobal (_Unwind_GetCFA, GCC_3.3);
-+symverglobal (_Unwind_GetGR, GCC_3.0);
-+symverglobal (_Unwind_GetIP, GCC_3.0);
-+symverglobal (_Unwind_GetLanguageSpecificData, GCC_3.0);
-+symverglobal (_Unwind_GetRegionStart, GCC_3.0);
-+symverglobal (_Unwind_RaiseException, GCC_3.0);
-+symverglobal (_Unwind_Resume, GCC_3.0);
-+symverglobal (_Unwind_Resume_or_Rethrow, GCC_3.3);
-+symverglobal (_Unwind_SetGR, GCC_3.0);
-+symverglobal (_Unwind_SetIP, GCC_3.0);
-+#endif
-+
- #endif
---- gcc/config/ia64/mkmap-symver-multi.awk.jj	2004-02-18 10:27:36.000000000 -0500
-+++ gcc/config/ia64/mkmap-symver-multi.awk	2004-11-15 09:46:50.000000000 -0500
-@@ -0,0 +1,133 @@
-+# Generate an ELF symbol version map a-la Solaris and GNU ld.
-+#	Contributed by Richard Henderson <rth@cygnus.com>
-+#
-+# This file is part of GCC.
-+#
-+# GCC is free software; you can redistribute it and/or modify it under
-+# the terms of the GNU General Public License as published by the Free
-+# Software Foundation; either version 2, or (at your option) any later
-+# version.
-+#
-+# GCC is distributed in the hope that it will be useful, but WITHOUT
-+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
-+# License for more details.
-+#
-+# You should have received a copy of the GNU General Public License
-+# along with GCC; see the file COPYING.  If not, write to the Free
-+# Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
-+# 02110-1301, USA.
-+
-+BEGIN {
-+  state = "nm";
-+  sawsymbol = 0;
-+}
-+
-+# Remove comment and blank lines.
-+/^ *#/ || /^ *$/ {
-+  next;
-+}
-+
-+# We begin with nm input.  Collect the set of symbols that are present
-+# so that we can not emit them into the final version script -- Solaris
-+# complains at us if we do.
-+
-+state == "nm" && /^%%/ {
-+  state = "ver";
-+  next;
-+}
-+
-+state == "nm" && ($1 == "U" || $2 == "U") {
-+  next;
-+}
-+
-+state == "nm" && NF == 3 {
-+  if ($3 ~ /^[^@]*@GCC_[0-9.]*$/) {
-+    def[$3] = 1
-+    tl=$3
-+    sub(/^.*@/,"",tl)
-+    ver[$3] = tl
-+  } else {
-+    sub(/@@?GCC_[0-9.]*$/,"",$3)
-+    def[$3] = 1;
-+  }
-+  sawsymbol = 1;
-+  next;
-+}
-+
-+state == "nm" {
-+  next;
-+}
-+
-+# Now we process a simplified variant of the Solaris symbol version
-+# script.  We have one symbol per line, no semicolons, simple markers
-+# for beginning and ending each section, and %inherit markers for
-+# describing version inheritence.  A symbol may appear in more than
-+# one symbol version, and the last seen takes effect.
-+
-+NF == 3 && $1 == "%inherit" {
-+  inherit[$2] = $3;
-+  next;
-+}
-+
-+NF == 2 && $2 == "{" {
-+  libs[$1] = 1;
-+  thislib = $1;
-+  next;
-+}
-+
-+$1 == "}" {
-+  thislib = "";
-+  next;
-+}
-+
-+{
-+  ver[$1] = thislib;
-+  next;
-+}
-+
-+END {
-+  if (!sawsymbol)
-+    {
-+      print "No symbols seen -- broken or mis-installed nm?" | "cat 1>&2";
-+      exit 1;
-+    }
-+  for (l in libs)
-+    output(l);
-+}
-+
-+function output(lib) {
-+  if (done[lib])
-+    return;
-+  done[lib] = 1;
-+  if (inherit[lib])
-+    output(inherit[lib]);
-+
-+  empty=1
-+  for (sym in ver)
-+    if ((ver[sym] == lib) && (sym in def))
-+      {
-+	if (empty)
-+	  {
-+	    printf("%s {\n", lib);
-+	    printf("  global:\n");
-+	    empty = 0;
-+	  }
-+	symp = sym;
-+	sub(/@GCC_[0-9.]*$/,"",symp);
-+	printf("\t%s;\n", symp);
-+	if (dotsyms)
-+	  printf("\t.%s;\n", symp);
-+      }
-+
-+  if (empty)
-+    {
-+      for (l in libs)
-+	if (inherit[l] == lib)
-+	  inherit[l] = inherit[lib];
-+    }
-+  else if (inherit[lib])
-+    printf("} %s;\n", inherit[lib]);
-+  else
-+    printf ("\n  local:\n\t*;\n};\n");
-+}
---- gcc/config/ia64/libgcc-ia64-no-libunwind.ver.jj	2004-02-18 10:27:36.000000000 -0500
-+++ gcc/config/ia64/libgcc-ia64-no-libunwind.ver	2004-11-15 09:19:56.000000000 -0500
-@@ -0,0 +1,17 @@
-+GCC_3.4.2 {
-+  _Unwind_GetGR
-+  _Unwind_RaiseException
-+  _Unwind_GetRegionStart
-+  _Unwind_SetIP
-+  _Unwind_GetIP
-+  _Unwind_GetLanguageSpecificData
-+  _Unwind_Resume
-+  _Unwind_DeleteException
-+  _Unwind_SetGR
-+  _Unwind_ForcedUnwind
-+  _Unwind_Backtrace
-+  _Unwind_FindEnclosingFunction
-+  _Unwind_GetCFA
-+  _Unwind_Resume_or_Rethrow
-+  _Unwind_GetBSP
-+}

diff --git a/gcc43-java-debug-iface-type.patch b/gcc43-java-debug-iface-type.patch
deleted file mode 100644
index 63a1b50..0000000
--- a/gcc43-java-debug-iface-type.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-2008-01-25  Jakub Jelinek  <jakub@redhat.com>
-
-	* lang.c (java_classify_record): Revert 2007-12-20 change.
-
---- gcc/java/lang.c	2007-12-27 09:09:49.000000000 +0100
-+++ gcc/java/lang.c	2008-01-25 17:43:57.000000000 +0100
-@@ -965,9 +965,7 @@ java_classify_record (tree type)
-   if (! CLASS_P (type))
-     return RECORD_IS_STRUCT;
- 
--  /* ??? GDB does not support DW_TAG_interface_type as of December,
--     2007.  Re-enable this at a later time.  */
--  if (0 && CLASS_INTERFACE (TYPE_NAME (type)))
-+  if (CLASS_INTERFACE (TYPE_NAME (type)))
-     return RECORD_IS_INTERFACE;
- 
-   return RECORD_IS_CLASS;

diff --git a/gcc43-java-nomulti.patch b/gcc43-java-nomulti.patch
deleted file mode 100644
index f07ead8..0000000
--- a/gcc43-java-nomulti.patch
+++ /dev/null
@@ -1,44 +0,0 @@
---- libjava/configure.ac.jj	2007-12-07 17:55:50.000000000 +0100
-+++ libjava/configure.ac	2007-12-07 18:36:56.000000000 +0100
-@@ -82,6 +82,13 @@ AC_ARG_ENABLE(java-maintainer-mode,
- 	[allow rebuilding of .class and .h files]))
- AM_CONDITIONAL(JAVA_MAINTAINER_MODE, test "$enable_java_maintainer_mode" = yes)
- 
-+AC_ARG_ENABLE(libjava-multilib,
-+	AS_HELP_STRING([--enable-libjava-multilib], [build libjava as multilib]))
-+if test "$enable_libjava_multilib" = no; then
-+  multilib=no
-+  ac_configure_args="$ac_configure_args --disable-multilib"
-+fi
-+
- # It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX.
- GCC_NO_EXECUTABLES
- 
---- libjava/configure.jj	2007-12-07 17:55:50.000000000 +0100
-+++ libjava/configure	2007-12-07 18:39:58.000000000 +0100
-@@ -1018,6 +1018,8 @@ Optional Features:
-   --enable-gconf-peer     compile GConf native peers for util.preferences
-   --enable-java-maintainer-mode
-                           allow rebuilding of .class and .h files
-+  --enable-libjava-multilib
-+                          build libjava as multilib
-   --disable-dependency-tracking  speeds up one-time build
-   --enable-dependency-tracking   do not reject slow dependency extractors
-   --enable-maintainer-mode  enable make rules and dependencies not useful
-@@ -1848,6 +1850,16 @@ else
- fi
- 
- 
-+# Check whether --enable-libjava-multilib was given.
-+if test "${enable_libjava_multilib+set}" = set; then
-+  enableval=$enable_libjava_multilib;
-+fi
-+
-+if test "$enable_libjava_multilib" = no; then
-+  multilib=no
-+  ac_configure_args="$ac_configure_args --disable-multilib"
-+fi
-+
- # It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX.
- 
- 

diff --git a/gcc43-libgomp-omp_h-multilib.patch b/gcc43-libgomp-omp_h-multilib.patch
deleted file mode 100644
index d0e98d1..0000000
--- a/gcc43-libgomp-omp_h-multilib.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-2008-06-09  Jakub Jelinek  <jakub@redhat.com>
-
-	* omp.h.in (omp_nest_lock_t): Fix up for Linux multilibs.
-
---- libgomp/omp.h.in.jj	2008-06-09 13:34:05.000000000 +0200
-+++ libgomp/omp.h.in	2008-06-09 13:34:48.000000000 +0200
-@@ -42,8 +42,8 @@ typedef struct
- 
- typedef struct
- {
--  unsigned char _x[@OMP_NEST_LOCK_SIZE@] 
--    __attribute__((__aligned__(@OMP_NEST_LOCK_ALIGN@)));
-+  unsigned char _x[8 + sizeof (void *)] 
-+    __attribute__((__aligned__(sizeof (void *))));
- } omp_nest_lock_t;
- #endif
- 

diff --git a/gcc43-libtool-no-rpath.patch b/gcc43-libtool-no-rpath.patch
deleted file mode 100644
index 466c661..0000000
--- a/gcc43-libtool-no-rpath.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-libtool sucks.
---- ltmain.sh.jj	2007-12-07 14:53:21.000000000 +0100
-+++ ltmain.sh	2008-09-05 21:51:48.000000000 +0200
-@@ -5394,6 +5394,7 @@ EOF
- 	  rpath="$finalize_rpath"
- 	  test "$mode" != relink && rpath="$compile_rpath$rpath"
- 	  for libdir in $rpath; do
-+	    case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
- 	    if test -n "$hardcode_libdir_flag_spec"; then
- 	      if test -n "$hardcode_libdir_separator"; then
- 		if test -z "$hardcode_libdirs"; then
-@@ -6071,6 +6072,7 @@ EOF
-       rpath=
-       hardcode_libdirs=
-       for libdir in $compile_rpath $finalize_rpath; do
-+	case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
- 	if test -n "$hardcode_libdir_flag_spec"; then
- 	  if test -n "$hardcode_libdir_separator"; then
- 	    if test -z "$hardcode_libdirs"; then
-@@ -6120,6 +6122,7 @@ EOF
-       rpath=
-       hardcode_libdirs=
-       for libdir in $finalize_rpath; do
-+	case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
- 	if test -n "$hardcode_libdir_flag_spec"; then
- 	  if test -n "$hardcode_libdir_separator"; then
- 	    if test -z "$hardcode_libdirs"; then

diff --git a/gcc43-ppc32-retaddr.patch b/gcc43-ppc32-retaddr.patch
deleted file mode 100644
index e9ae1bc..0000000
--- a/gcc43-ppc32-retaddr.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-2005-11-28  Jakub Jelinek  <jakub@redhat.com>
-
-	* config/rs6000/rs6000.c (rs6000_return_addr): If COUNT == 0,
-	read word RETURN_ADDRESS_OFFSET bytes above arg_pointer_rtx
-	instead of doing an extran indirection from frame_pointer_rtx.
-
-	* gcc.dg/20051128-1.c: New test.
-
---- gcc/config/rs6000/rs6000.c.jj	2005-11-26 14:38:01.000000000 +0100
-+++ gcc/config/rs6000/rs6000.c	2005-11-28 20:32:18.000000000 +0100
-@@ -13166,17 +13166,22 @@ rs6000_return_addr (int count, rtx frame
-      don't try to be too clever here.  */
-   if (count != 0 || (DEFAULT_ABI != ABI_AIX && flag_pic))
-     {
-+      rtx x;
-       cfun->machine->ra_needs_full_frame = 1;
- 
--      return
--	gen_rtx_MEM
--	  (Pmode,
--	   memory_address
--	   (Pmode,
--	    plus_constant (copy_to_reg
--			   (gen_rtx_MEM (Pmode,
--					 memory_address (Pmode, frame))),
--			   RETURN_ADDRESS_OFFSET)));
-+      if (count == 0)
-+	{
-+	  gcc_assert (frame == frame_pointer_rtx);
-+	  x = arg_pointer_rtx;
-+	}
-+      else
-+	{
-+	  x = memory_address (Pmode, frame);
-+	  x = copy_to_reg (gen_rtx_MEM (Pmode, x));
-+	}
-+
-+      x = plus_constant (x, RETURN_ADDRESS_OFFSET);
-+      return gen_rtx_MEM (Pmode, memory_address (Pmode, x));
-     }
- 
-   cfun->machine->ra_need_lr = 1;
---- gcc/testsuite/gcc.dg/20051128-1.c.jj	2005-10-10 11:21:41.096999000 +0200
-+++ gcc/testsuite/gcc.dg/20051128-1.c	2005-11-28 12:30:57.000000000 +0100
-@@ -0,0 +1,41 @@
-+/* { dg-do run } */
-+/* { dg-options "-O2 -fpic" } */
-+
-+extern void exit (int);
-+extern void abort (void);
-+
-+int b;
-+
-+struct A
-+{
-+  void *pad[147];
-+  void *ra, *h;
-+  long o;
-+};
-+
-+void
-+__attribute__((noinline))
-+foo (struct A *a, void *x)
-+{
-+  __builtin_memset (a, 0, sizeof (a));
-+  if (!b)
-+    exit (0);
-+}
-+
-+void
-+__attribute__((noinline))
-+bar (void)
-+{
-+  struct A a;
-+
-+  __builtin_unwind_init ();
-+  foo (&a, __builtin_return_address (0));
-+}
-+
-+int
-+main (void)
-+{
-+  bar ();
-+  abort ();
-+  return 0;
-+}

diff --git a/gcc43-ppc64-ia64-GNU-stack.patch b/gcc43-ppc64-ia64-GNU-stack.patch
deleted file mode 100644
index d49f2b9..0000000
--- a/gcc43-ppc64-ia64-GNU-stack.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-2007-08-27  Jakub Jelinek  <jakub@redhat.com>
-
-	* config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
-	* config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use
-	rs6000_elf_end_indicate_exec_stack.
-	* config/ia64/ia64.c (ia64_linux_file_end): new.
-	* config/ia64/linux.h (TARGET_ASM_FILE_END): Use ia64_linux_file_end.
-
---- gcc/config/rs6000/rs6000.c.jj	2007-12-07 18:41:08.000000000 +0100
-+++ gcc/config/rs6000/rs6000.c	2007-12-07 18:42:12.000000000 +0100
-@@ -746,6 +746,7 @@ static void rs6000_file_start (void);
- static int rs6000_elf_reloc_rw_mask (void);
- static void rs6000_elf_asm_out_constructor (rtx, int);
- static void rs6000_elf_asm_out_destructor (rtx, int);
-+static void rs6000_elf_end_indicate_exec_stack (void) ATTRIBUTE_UNUSED;
- static void rs6000_elf_asm_init_sections (void);
- static section *rs6000_elf_select_rtx_section (enum machine_mode, rtx,
- 					       unsigned HOST_WIDE_INT);
-@@ -20418,6 +20419,20 @@ rs6000_elf_declare_function_name (FILE *
-     }
-   ASM_OUTPUT_LABEL (file, name);
- }
-+
-+static void
-+rs6000_elf_end_indicate_exec_stack (void)
-+{
-+  if (TARGET_32BIT)
-+    file_end_indicate_exec_stack ();
-+  else
-+    {
-+      int saved_trampolines_created = trampolines_created;
-+      trampolines_created = 0;
-+      file_end_indicate_exec_stack ();
-+      trampolines_created = saved_trampolines_created;
-+    }
-+}
- #endif
- 
- #if TARGET_XCOFF
---- gcc/config/rs6000/linux64.h.jj	2007-12-07 17:18:06.000000000 +0100
-+++ gcc/config/rs6000/linux64.h	2007-12-07 18:41:21.000000000 +0100
-@@ -504,7 +504,7 @@ extern int dot_symbols;
- #undef DRAFT_V4_STRUCT_RET
- #define DRAFT_V4_STRUCT_RET (!TARGET_64BIT)
- 
--#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
-+#define TARGET_ASM_FILE_END rs6000_elf_end_indicate_exec_stack
- 
- #define TARGET_POSIX_IO
- 
---- gcc/config/ia64/linux.h.jj	2007-12-07 18:17:43.000000000 +0100
-+++ gcc/config/ia64/linux.h	2007-12-07 18:41:21.000000000 +0100
-@@ -5,7 +5,7 @@
- 
- #define TARGET_VERSION fprintf (stderr, " (IA-64) Linux");
- 
--#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
-+#define TARGET_ASM_FILE_END ia64_linux_file_end
- 
- /* This is for -profile to use -lc_p instead of -lc.  */
- #undef CC1_SPEC
---- gcc/config/ia64/ia64.c.jj	2007-12-07 15:41:58.000000000 +0100
-+++ gcc/config/ia64/ia64.c	2007-12-07 18:43:18.000000000 +0100
-@@ -262,6 +262,8 @@ static section *ia64_select_rtx_section 
- static void ia64_output_dwarf_dtprel (FILE *, int, rtx)
-      ATTRIBUTE_UNUSED;
- static unsigned int ia64_section_type_flags (tree, const char *, int);
-+static void ia64_linux_file_end (void)
-+     ATTRIBUTE_UNUSED;
- static void ia64_init_libfuncs (void)
-      ATTRIBUTE_UNUSED;
- static void ia64_hpux_init_libfuncs (void)
-@@ -9957,4 +9959,13 @@ ia64_c_mode_for_suffix (char suffix)
-   return VOIDmode;
- }
- 
-+static void
-+ia64_linux_file_end (void)
-+{
-+  int saved_trampolines_created = trampolines_created;
-+  trampolines_created = 0;
-+  file_end_indicate_exec_stack ();
-+  trampolines_created = saved_trampolines_created;
-+}
-+
- #include "gt-ia64.h"

diff --git a/gcc43-pr27898.patch b/gcc43-pr27898.patch
deleted file mode 100644
index 172bb81..0000000
--- a/gcc43-pr27898.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-2006-08-18  Jakub Jelinek  <jakub@redhat.com>
-
-	PR c/27898
-	* gcc.dg/pr27898.c: New test.
-
---- gcc/testsuite/gcc.dg/pr27898.c.jj	2006-08-18 09:19:33.000000000 +0200
-+++ gcc/testsuite/gcc.dg/pr27898.c	2006-08-18 09:19:27.000000000 +0200
-@@ -0,0 +1,8 @@
-+/* PR c/27898 */
-+/* { dg-do compile } */
-+/* { dg-options "--combine" } */
-+/* { dg-additional-sources "pr27898.c" } */
-+
-+union u { struct { int i; }; };
-+
-+extern int foo (union u *);

diff --git a/gcc43-pr29609-2.patch b/gcc43-pr29609-2.patch
deleted file mode 100644
index e057605..0000000
--- a/gcc43-pr29609-2.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-2008-10-09  Jakub Jelinek  <jakub@redhat.com>
-
-	* tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
-	as used.
-	* gimple-low.c (lower_return_expr, lower_builtin_setjmp): Set
-	TREE_BLOCK on the newly created stmts.
-	* tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
-	goto_block on edges if goto_locus is known.
-
---- gcc/tree-ssa-live.c.jj	2008-10-07 21:25:57.000000000 +0200
-+++ gcc/tree-ssa-live.c	2008-10-09 00:25:20.000000000 +0200
-@@ -591,6 +591,8 @@ remove_unused_locals (void)
-     {
-       block_stmt_iterator bsi;
-       tree phi, def;
-+      edge_iterator ei;
-+      edge e;
- 
-       /* Walk the statements.  */
-       for (bsi = bsi_start (bb); !bsi_end_p (bsi); bsi_next (&bsi))
-@@ -614,6 +616,10 @@ remove_unused_locals (void)
- 	      mark_all_vars_used (&arg, NULL);
-             }
-         }
-+
-+      FOR_EACH_EDGE (e, ei, bb->succs)
-+	if (e->goto_locus)
-+	  TREE_USED (e->goto_block) = true;
-     }
- 
-   /* Remove unmarked local vars from unexpanded_var_list.  */
---- gcc/gimple-low.c.jj	2008-10-07 21:25:58.000000000 +0200
-+++ gcc/gimple-low.c	2008-10-09 00:42:31.000000000 +0200
-@@ -590,6 +590,7 @@ lower_return_expr (tree_stmt_iterator *t
-  found:
-   t = build1 (GOTO_EXPR, void_type_node, label);
-   SET_EXPR_LOCUS (t, EXPR_LOCUS (stmt));
-+  TREE_BLOCK (t) = TREE_BLOCK (stmt);
-   tsi_link_before (tsi, t, TSI_SAME_STMT);
-   tsi_delink (tsi);
- }
-@@ -672,6 +673,7 @@ lower_builtin_setjmp (tree_stmt_iterator
-   t = implicit_built_in_decls[BUILT_IN_SETJMP_SETUP];
-   t = build_call_expr (t, 2, CALL_EXPR_ARG (stmt, 0), arg);
-   SET_EXPR_LOCUS (t, EXPR_LOCUS (stmt));
-+  TREE_BLOCK (t) = TREE_BLOCK (stmt);
-   tsi_link_before (tsi, t, TSI_SAME_STMT);
- 
-   /* Build 'DEST = 0' and insert.  */
-@@ -680,6 +682,7 @@ lower_builtin_setjmp (tree_stmt_iterator
-       t = build_gimple_modify_stmt (dest, fold_convert (TREE_TYPE (dest),
- 							integer_zero_node));
-       SET_EXPR_LOCUS (t, EXPR_LOCUS (stmt));
-+      TREE_BLOCK (t) = TREE_BLOCK (stmt);
-       tsi_link_before (tsi, t, TSI_SAME_STMT);
-     }
- 
-@@ -696,6 +699,7 @@ lower_builtin_setjmp (tree_stmt_iterator
-   t = implicit_built_in_decls[BUILT_IN_SETJMP_RECEIVER];
-   t = build_call_expr (t, 1, arg);
-   SET_EXPR_LOCUS (t, EXPR_LOCUS (stmt));
-+  TREE_BLOCK (t) = TREE_BLOCK (stmt);
-   tsi_link_before (tsi, t, TSI_SAME_STMT);
- 
-   /* Build 'DEST = 1' and insert.  */
-@@ -704,6 +708,7 @@ lower_builtin_setjmp (tree_stmt_iterator
-       t = build_gimple_modify_stmt (dest, fold_convert (TREE_TYPE (dest),
- 							integer_one_node));
-       SET_EXPR_LOCUS (t, EXPR_LOCUS (stmt));
-+      TREE_BLOCK (t) = TREE_BLOCK (stmt);
-       tsi_link_before (tsi, t, TSI_SAME_STMT);
-     }
- 
---- gcc/tree-cfg.c.jj	2008-10-07 21:39:14.000000000 +0200
-+++ gcc/tree-cfg.c	2008-10-09 00:00:48.000000000 +0200
-@@ -634,7 +634,8 @@ make_cond_expr_edges (basic_block bb)
- #else
-   e->goto_locus = EXPR_LOCUS (COND_EXPR_THEN (entry));
- #endif
--  e->goto_block = TREE_BLOCK (COND_EXPR_THEN (entry));
-+  if (e->goto_locus)
-+    e->goto_block = TREE_BLOCK (COND_EXPR_THEN (entry));
-   e = make_edge (bb, else_bb, EDGE_FALSE_VALUE);
-   if (e)
-     {
-@@ -643,7 +644,8 @@ make_cond_expr_edges (basic_block bb)
- #else
-       e->goto_locus = EXPR_LOCUS (COND_EXPR_ELSE (entry));
- #endif
--      e->goto_block = TREE_BLOCK (COND_EXPR_ELSE (entry));
-+      if (e->goto_locus)
-+	e->goto_block = TREE_BLOCK (COND_EXPR_ELSE (entry));
-     }
- 
-   /* We do not need the gotos anymore.  */
-@@ -843,7 +845,8 @@ make_goto_expr_edges (basic_block bb)
- #else
-       e->goto_locus = EXPR_LOCUS (goto_t);
- #endif
--      e->goto_block = TREE_BLOCK (goto_t);
-+      if (e->goto_locus)
-+	e->goto_block = TREE_BLOCK (goto_t);
-       bsi_remove (&last, true);
-       return;
-     }

diff --git a/gcc43-pr29609-3.patch b/gcc43-pr29609-3.patch
deleted file mode 100644
index 72791cd..0000000
--- a/gcc43-pr29609-3.patch
+++ /dev/null
@@ -1,168 +0,0 @@
-2008-10-09  Jakub Jelinek  <jakub@redhat.com>
-
-	* rtl.h (locator_eq): New decl.
-	* cfglayout.c (locator_scope): New function.
-	(insn_scope): Use it.
-	(locator_eq): New function.
-	(fixup_reorder_chain): Search for last insn in src bb
-	that has locator set or first insn in dest bb.  Use
-	locator_eq instead of == to compare locators.
-	* cfgrtl.c (cfg_layout_merge_blocks): Likewise.
-	* cfgcleanup.c (try_forward_edges): Use locator_eq instead of
-	== to compare locators.
-
---- gcc/cfglayout.c.jj	2008-10-07 21:35:33.000000000 +0200
-+++ gcc/cfglayout.c	2008-10-09 11:18:51.000000000 +0200
-@@ -448,13 +448,12 @@ change_scope (rtx orig_insn, tree s1, tr
-     }
- }
- 
--/* Return lexical scope block insn belong to.  */
-+/* Return lexical scope block locator belongs to.  */
- static tree
--insn_scope (const_rtx insn)
-+locator_scope (int loc)
- {
-   int max = VEC_length (int, block_locators_locs);
-   int min = 0;
--  int loc = INSN_LOCATOR (insn);
- 
-   /* When block_locators_locs was initialized, the pro- and epilogue
-      insns didn't exist yet and can therefore not be found this way.
-@@ -488,6 +487,13 @@ insn_scope (const_rtx insn)
-   return VEC_index (tree, block_locators_blocks, min);
- }
- 
-+/* Return lexical scope block insn belongs to.  */
-+static tree
-+insn_scope (const_rtx insn)
-+{
-+  return locator_scope (INSN_LOCATOR (insn));
-+}
-+
- /* Return line number of the statement specified by the locator.  */
- static location_t
- locator_location (int loc)
-@@ -551,6 +557,17 @@ insn_file (const_rtx insn)
-   return locator_file (INSN_LOCATOR (insn));
- }
- 
-+/* Return true if LOC1 and LOC2 locators have the same location and scope.  */
-+bool
-+locator_eq (int loc1, int loc2)
-+{
-+  if (loc1 == loc2)
-+    return true;
-+  if (locator_location (loc1) != locator_location (loc2))
-+    return false;
-+  return locator_scope (loc1) == locator_scope (loc2);
-+}
-+
- /* Rebuild all the NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes based
-    on the scope tree and the newly reordered instructions.  */
- 
-@@ -901,24 +918,30 @@ fixup_reorder_chain (void)
- 	  if (e->goto_locus && !(e->flags & EDGE_ABNORMAL))
- 	    {
- 	      basic_block nb;
-+	      rtx end;
- 
--	      if (simplejump_p (BB_END (e->src)))
-+	      insn = BB_END (e->src);
-+	      end = PREV_INSN (BB_HEAD (e->src));
-+	      while (insn != end
-+		     && (!INSN_P (insn) || INSN_LOCATOR (insn) == 0))
-+		insn = PREV_INSN (insn);
-+	      if (insn != end
-+		  && locator_eq (INSN_LOCATOR (insn), (int) e->goto_locus))
-+		continue;
-+	      if (simplejump_p (BB_END (e->src))
-+		  && INSN_LOCATOR (BB_END (e->src)) == 0)
- 		{
--		  if (INSN_LOCATOR (BB_END (e->src)) == (int) e->goto_locus)
--		    continue;
--		  if (INSN_LOCATOR (BB_END (e->src)) == 0)
--		    {
--		      INSN_LOCATOR (BB_END (e->src)) = e->goto_locus;
--		      continue;
--		    }
-+		  INSN_LOCATOR (BB_END (e->src)) = e->goto_locus;
-+		  continue;
- 		}
- 	      if (e->dest != EXIT_BLOCK_PTR)
- 		{
- 		  insn = BB_HEAD (e->dest);
--		  if (!INSN_P (insn))
--		    insn = next_insn (insn);
--		  if (insn && INSN_P (insn)
--		      && INSN_LOCATOR (insn) == (int) e->goto_locus)
-+		  end = NEXT_INSN (BB_END (e->dest));
-+		  while (insn != end && !INSN_P (insn))
-+		    insn = NEXT_INSN (insn);
-+		  if (insn != end && INSN_LOCATOR (insn)
-+		      && locator_eq (INSN_LOCATOR (insn), (int) e->goto_locus))
- 		    continue;
- 		}
- 	      nb = split_edge (e);
---- gcc/rtl.h.jj	2008-10-07 21:25:44.000000000 +0200
-+++ gcc/rtl.h	2008-10-09 11:15:57.000000000 +0200
-@@ -1622,6 +1622,7 @@ extern int insn_line (const_rtx);
- extern const char * insn_file (const_rtx);
- extern int locator_line (int);
- extern const char * locator_file (int);
-+extern bool locator_eq (int, int);
- extern int prologue_locator, epilogue_locator;
- 
- /* In jump.c */
---- gcc/cfgrtl.c.jj	2008-10-07 21:35:33.000000000 +0200
-+++ gcc/cfgrtl.c	2008-10-09 10:37:03.000000000 +0200
-@@ -2623,19 +2623,21 @@ cfg_layout_merge_blocks (basic_block a, 
-      some unique locus, emit a nop with that locus in between.  */
-   if (!optimize && EDGE_SUCC (a, 0)->goto_locus)
-     {
--      rtx insn = BB_END (a);
-+      rtx insn = BB_END (a), end = PREV_INSN (BB_HEAD (a));
-       int goto_locus = EDGE_SUCC (a, 0)->goto_locus;
- 
--      if (NOTE_P (insn))
--	insn = prev_nonnote_insn (insn);
--      if (insn && INSN_P (insn) && INSN_LOCATOR (insn) == goto_locus)
-+      while (insn != end && (!INSN_P (insn) || INSN_LOCATOR (insn) == 0))
-+	insn = PREV_INSN (insn);
-+      if (insn != end && locator_eq (INSN_LOCATOR (insn), goto_locus))
- 	goto_locus = 0;
-       else
- 	{
- 	  insn = BB_HEAD (b);
--	  if (!INSN_P (insn))
--	    insn = next_insn (insn);
--	  if (insn && INSN_P (insn) && INSN_LOCATOR (insn) == goto_locus)
-+	  end = NEXT_INSN (BB_END (b));
-+	  while (insn != end && !INSN_P (insn))
-+	    insn = NEXT_INSN (insn);
-+	  if (insn != end && INSN_LOCATOR (insn) != 0
-+	      && locator_eq (INSN_LOCATOR (insn), goto_locus))
- 	    goto_locus = 0;
- 	}
-       if (goto_locus)
---- gcc/cfgcleanup.c.jj	2008-10-07 21:35:33.000000000 +0200
-+++ gcc/cfgcleanup.c	2008-10-09 11:07:40.000000000 +0200
-@@ -482,7 +482,7 @@ try_forward_edges (int mode, basic_block
- 		     blocks with different locus are not optimized out.  */
- 		  int locus = single_succ_edge (target)->goto_locus;
- 
--		  if (locus && goto_locus && locus != goto_locus)
-+		  if (locus && goto_locus && !locator_eq (locus, goto_locus))
- 		    counter = n_basic_blocks;
- 		  else if (locus)
- 		    goto_locus = locus;
-@@ -491,7 +491,8 @@ try_forward_edges (int mode, basic_block
- 		    {
- 		      locus = INSN_LOCATOR (BB_END (target));
- 
--		      if (locus && goto_locus && locus != goto_locus)
-+		      if (locus && goto_locus
-+			  && !locator_eq (locus, goto_locus))
- 			counter = n_basic_blocks;
- 		      else if (locus)
- 			goto_locus = locus;

diff --git a/gcc43-pr29609.patch b/gcc43-pr29609.patch
deleted file mode 100644
index 1a8dfbf..0000000
--- a/gcc43-pr29609.patch
+++ /dev/null
@@ -1,899 +0,0 @@
-2008-10-08  Jakub Jelinek  <jakub@redhat.com>
-
-	* cfgexpand.c (expand_gimple_cond_expr): Convert also goto_block and
-	goto_locus of true_edge into RTL locator.
-
-2008-10-07  Jakub Jelinek  <jakub@redhat.com>
-
-	PR debug/29609
-	PR debug/36690
-	PR debug/37616
-	* basic-block.h (struct edge_def): Add goto_block field.
-	* cfglayout.c (fixup_reorder_chain): Ensure that there is at least
-	one insn with locus corresponding to edge's goto_locus if !optimize.
-	* profile.c (branch_prob): Copy edge's goto_block.
-	* cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
-	emitted jumps.
-	(cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
-	locator in between the merged basic blocks if !optimize and needed.
-	* cfgexpand.c (expand_gimple_cond_expr): Convert goto_block and
-	goto_locus into RTL locator.  For unconditional jump use that
-	locator for the jump insn.
-	(expand_gimple_basic_block): Convert goto_block and goto_locus into
-	RTL locator for all remaining edges.  For unconditional jump
-	use that locator for the jump insn.
-	* cfgcleanup.c (try_forward_edges): Avoid the optimization if
-	there is more than one edge or insn locator along the forwarding
-	edges and !optimize.  If there is just one, set e->goto_locus.
-	* tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
-	edge's goto_block.
-	(move_block_to_fn): Adjust edge's goto_block.
-
-	* gcc.dg/debug/pr29609-1.c: New test.
-	* gcc.dg/debug/pr29609-2.c: New test.
-	* gcc.dg/debug/pr36690-1.c: New test.
-	* gcc.dg/debug/pr36690-2.c: New test.
-	* gcc.dg/debug/pr36690-3.c: New test.
-	* gcc.dg/debug/pr37616.c: New test.
-	* gcc.dg/debug/dwarf2/pr29609-1.c: New test.
-	* gcc.dg/debug/dwarf2/pr29609-2.c: New test.
-	* gcc.dg/debug/dwarf2/pr36690-1.c: New test.
-	* gcc.dg/debug/dwarf2/pr36690-2.c: New test.
-	* gcc.dg/debug/dwarf2/pr36690-3.c: New test.
-	* gcc.dg/debug/dwarf2/pr37616.c: New test.
-
---- gcc/profile.c	(revision 140947)
-+++ gcc/profile.c	(revision 140948)
-@@ -825,7 +825,9 @@ branch_prob (void)
- #endif
- 	    {
- 	      basic_block new = split_edge (e);
--	      single_succ_edge (new)->goto_locus = e->goto_locus;
-+	      edge ne = single_succ_edge (new);
-+	      ne->goto_locus = e->goto_locus;
-+	      ne->goto_block = e->goto_block;
- 	    }
- 	  if ((e->flags & (EDGE_ABNORMAL | EDGE_ABNORMAL_CALL))
- 	       && e->dest != EXIT_BLOCK_PTR)
---- gcc/cfgexpand.c	(revision 140947)
-+++ gcc/cfgexpand.c	(revision 140948)
-@@ -1316,7 +1316,12 @@ expand_gimple_cond_expr (basic_block bb,
-       add_reg_br_prob_note (last, true_edge->probability);
-       maybe_dump_rtl_for_tree_stmt (stmt, last);
-       if (true_edge->goto_locus)
--  	set_curr_insn_source_location (location_from_locus (true_edge->goto_locus));
-+	{
-+	  set_curr_insn_source_location (location_from_locus (true_edge->goto_locus));
-+	  set_curr_insn_block (true_edge->goto_block);
-+	  true_edge->goto_locus = curr_insn_locator ();
-+	}
-+      true_edge->goto_block = NULL;
-       false_edge->flags |= EDGE_FALLTHRU;
-       return NULL;
-     }
-@@ -1326,7 +1331,12 @@ expand_gimple_cond_expr (basic_block bb,
-       add_reg_br_prob_note (last, false_edge->probability);
-       maybe_dump_rtl_for_tree_stmt (stmt, last);
-       if (false_edge->goto_locus)
--  	set_curr_insn_source_location (location_from_locus (false_edge->goto_locus));
-+	{
-+	  set_curr_insn_source_location (location_from_locus (false_edge->goto_locus));
-+	  set_curr_insn_block (false_edge->goto_block);
-+	  false_edge->goto_locus = curr_insn_locator ();
-+	}
-+      false_edge->goto_block = NULL;
-       true_edge->flags |= EDGE_FALLTHRU;
-       return NULL;
-     }
-@@ -1334,6 +1344,13 @@ expand_gimple_cond_expr (basic_block bb,
-   jumpif (pred, label_rtx_for_bb (true_edge->dest));
-   add_reg_br_prob_note (last, true_edge->probability);
-   last = get_last_insn ();
-+  if (false_edge->goto_locus)
-+    {
-+      set_curr_insn_source_location (location_from_locus (false_edge->goto_locus));
-+      set_curr_insn_block (false_edge->goto_block);
-+      false_edge->goto_locus = curr_insn_locator ();
-+    }
-+  false_edge->goto_block = NULL;
-   emit_jump (label_rtx_for_bb (false_edge->dest));
- 
-   BB_END (bb) = last;
-@@ -1356,9 +1373,13 @@ expand_gimple_cond_expr (basic_block bb,
- 
-   maybe_dump_rtl_for_tree_stmt (stmt, last2);
- 
--  if (false_edge->goto_locus)
--    set_curr_insn_source_location (location_from_locus (false_edge->goto_locus));
--
-+  if (true_edge->goto_locus)
-+    {
-+      set_curr_insn_source_location (location_from_locus (true_edge->goto_locus));
-+      set_curr_insn_block (true_edge->goto_block);
-+      true_edge->goto_locus = curr_insn_locator ();
-+    }
-+  true_edge->goto_block = NULL;
-   return new_bb;
- }
- 
-@@ -1613,19 +1634,21 @@ expand_gimple_basic_block (basic_block b
- 	}
-     }
- 
--  /* Expand implicit goto.  */
-+  /* Expand implicit goto and convert goto_locus.  */
-   FOR_EACH_EDGE (e, ei, bb->succs)
-     {
--      if (e->flags & EDGE_FALLTHRU)
--	break;
--    }
--
--  if (e && e->dest != bb->next_bb)
--    {
--      emit_jump (label_rtx_for_bb (e->dest));
--      if (e->goto_locus)
--        set_curr_insn_source_location (location_from_locus (e->goto_locus));
--      e->flags &= ~EDGE_FALLTHRU;
-+      if (e->goto_locus && e->goto_block)
-+	{
-+	  set_curr_insn_source_location (location_from_locus (e->goto_locus));
-+	  set_curr_insn_block (e->goto_block);
-+	  e->goto_locus = curr_insn_locator ();
-+	}
-+      e->goto_block = NULL;
-+      if ((e->flags & EDGE_FALLTHRU) && e->dest != bb->next_bb)
-+	{
-+	  emit_jump (label_rtx_for_bb (e->dest));
-+	  e->flags &= ~EDGE_FALLTHRU;
-+	}
-     }
- 
-   do_pending_stack_adjust ();
---- gcc/cfgcleanup.c	(revision 140947)
-+++ gcc/cfgcleanup.c	(revision 140948)
-@@ -429,7 +429,7 @@ try_forward_edges (int mode, basic_block
-   for (ei = ei_start (b->succs); (e = ei_safe_edge (ei)); )
-     {
-       basic_block target, first;
--      int counter;
-+      int counter, goto_locus;
-       bool threaded = false;
-       int nthreaded_edges = 0;
-       bool may_thread = first_pass | df_get_bb_dirty (b);
-@@ -447,6 +447,7 @@ try_forward_edges (int mode, basic_block
- 
-       target = first = e->dest;
-       counter = NUM_FIXED_BLOCKS;
-+      goto_locus = e->goto_locus;
- 
-       /* If we are partitioning hot/cold basic_blocks, we don't want to mess
- 	 up jumps that cross between hot/cold sections.
-@@ -476,6 +477,27 @@ try_forward_edges (int mode, basic_block
- 	      new_target = single_succ (target);
- 	      if (target == new_target)
- 		counter = n_basic_blocks;
-+	      else if (!optimize)
-+		{
-+		  /* When not optimizing, ensure that edges or forwarder
-+		     blocks with different locus are not optimized out.  */
-+		  int locus = single_succ_edge (target)->goto_locus;
-+
-+		  if (locus && goto_locus && locus != goto_locus)
-+		    counter = n_basic_blocks;
-+		  else if (locus)
-+		    goto_locus = locus;
-+
-+		  if (INSN_P (BB_END (target)))
-+		    {
-+		      locus = INSN_LOCATOR (BB_END (target));
-+
-+		      if (locus && goto_locus && locus != goto_locus)
-+			counter = n_basic_blocks;
-+		      else if (locus)
-+			goto_locus = locus;
-+		    }
-+		}
- 	    }
- 
- 	  /* Allow to thread only over one edge at time to simplify updating
-@@ -539,6 +561,8 @@ try_forward_edges (int mode, basic_block
- 	  int edge_frequency;
- 	  int n = 0;
- 
-+	  e->goto_locus = goto_locus;
-+
- 	  /* Don't force if target is exit block.  */
- 	  if (threaded && target != EXIT_BLOCK_PTR)
- 	    {
---- gcc/cfglayout.c	(revision 140947)
-+++ gcc/cfglayout.c	(revision 140948)
-@@ -887,6 +887,46 @@ fixup_reorder_chain (void)
-       if (e && !can_fallthru (e->src, e->dest))
- 	force_nonfallthru (e);
-     }
-+
-+  /* Ensure goto_locus from edges has some instructions with that locus
-+     in RTL.  */
-+  if (!optimize)
-+    FOR_EACH_BB (bb)
-+      {
-+        edge e;
-+        edge_iterator ei;
-+
-+        FOR_EACH_EDGE (e, ei, bb->succs)
-+	  if (e->goto_locus && !(e->flags & EDGE_ABNORMAL))
-+	    {
-+	      basic_block nb;
-+
-+	      if (simplejump_p (BB_END (e->src)))
-+		{
-+		  if (INSN_LOCATOR (BB_END (e->src)) == (int) e->goto_locus)
-+		    continue;
-+		  if (INSN_LOCATOR (BB_END (e->src)) == 0)
-+		    {
-+		      INSN_LOCATOR (BB_END (e->src)) = e->goto_locus;
-+		      continue;
-+		    }
-+		}
-+	      if (e->dest != EXIT_BLOCK_PTR)
-+		{
-+		  insn = BB_HEAD (e->dest);
-+		  if (!INSN_P (insn))
-+		    insn = next_insn (insn);
-+		  if (insn && INSN_P (insn)
-+		      && INSN_LOCATOR (insn) == (int) e->goto_locus)
-+		    continue;
-+		}
-+	      nb = split_edge (e);
-+	      if (!INSN_P (BB_END (nb)))
-+		BB_END (nb) = emit_insn_after_noloc (gen_nop (), BB_END (nb),
-+						     nb);
-+	      INSN_LOCATOR (BB_END (nb)) = e->goto_locus;
-+	    }
-+      }
- }
- \f
- /* Perform sanity checks on the insn chain.
---- gcc/basic-block.h	(revision 140947)
-+++ gcc/basic-block.h	(revision 140948)
-@@ -129,7 +129,8 @@ struct edge_def GTY(())
-   /* Auxiliary info specific to a pass.  */
-   PTR GTY ((skip (""))) aux;
- 
--  /* Location of any goto implicit in the edge, during tree-ssa.  */
-+  /* Location of any goto implicit in the edge and associated BLOCK.  */
-+  tree goto_block;
-   source_locus goto_locus;
- 
-   /* The index number corresponding to this edge in the edge vector
---- gcc/tree-cfg.c	(revision 140947)
-+++ gcc/tree-cfg.c	(revision 140948)
-@@ -634,6 +634,7 @@ make_cond_expr_edges (basic_block bb)
- #else
-   e->goto_locus = EXPR_LOCUS (COND_EXPR_THEN (entry));
- #endif
-+  e->goto_block = TREE_BLOCK (COND_EXPR_THEN (entry));
-   e = make_edge (bb, else_bb, EDGE_FALSE_VALUE);
-   if (e)
-     {
-@@ -642,6 +643,7 @@ make_cond_expr_edges (basic_block bb)
- #else
-       e->goto_locus = EXPR_LOCUS (COND_EXPR_ELSE (entry));
- #endif
-+      e->goto_block = TREE_BLOCK (COND_EXPR_ELSE (entry));
-     }
- 
-   /* We do not need the gotos anymore.  */
-@@ -841,6 +843,7 @@ make_goto_expr_edges (basic_block bb)
- #else
-       e->goto_locus = EXPR_LOCUS (goto_t);
- #endif
-+      e->goto_block = TREE_BLOCK (goto_t);
-       bsi_remove (&last, true);
-       return;
-     }
-@@ -5874,6 +5877,23 @@ move_block_to_fn (struct function *dest_
-       update_stmt (stmt);
-       pop_cfun ();
-     }
-+
-+  FOR_EACH_EDGE (e, ei, bb->succs)
-+    if (e->goto_locus)
-+      {
-+	tree block = e->goto_block;
-+	if (d->orig_block == NULL_TREE
-+	    || block == d->orig_block)
-+	  e->goto_block = d->new_block;
-+#ifdef ENABLE_CHECKING
-+	else if (block != d->new_block)
-+	  {
-+	    while (block && block != d->orig_block)
-+	      block = BLOCK_SUPERCONTEXT (block);
-+	    gcc_assert (block);
-+	  }
-+#endif
-+      }
- }
- 
- /* Examine the statements in BB (which is in SRC_CFUN); find and return
---- gcc/cfgrtl.c	(revision 140947)
-+++ gcc/cfgrtl.c	(revision 140948)
-@@ -1009,6 +1009,7 @@ force_nonfallthru_and_redirect (edge e, 
-   rtx note;
-   edge new_edge;
-   int abnormal_edge_flags = 0;
-+  int loc;
- 
-   /* In the case the last instruction is conditional jump to the next
-      instruction, first redirect the jump itself and then continue
-@@ -1127,11 +1128,15 @@ force_nonfallthru_and_redirect (edge e, 
-   else
-     jump_block = e->src;
- 
-+  if (e->goto_locus && e->goto_block == NULL)
-+    loc = e->goto_locus;
-+  else
-+    loc = 0;
-   e->flags &= ~EDGE_FALLTHRU;
-   if (target == EXIT_BLOCK_PTR)
-     {
- #ifdef HAVE_return
--	emit_jump_insn_after_noloc (gen_return (), BB_END (jump_block));
-+	emit_jump_insn_after_setloc (gen_return (), BB_END (jump_block), loc);
- #else
- 	gcc_unreachable ();
- #endif
-@@ -1139,7 +1144,7 @@ force_nonfallthru_and_redirect (edge e, 
-   else
-     {
-       rtx label = block_label (target);
--      emit_jump_insn_after_noloc (gen_jump (label), BB_END (jump_block));
-+      emit_jump_insn_after_setloc (gen_jump (label), BB_END (jump_block), loc);
-       JUMP_LABEL (BB_END (jump_block)) = label;
-       LABEL_NUSES (label)++;
-     }
-@@ -2606,6 +2611,32 @@ cfg_layout_merge_blocks (basic_block a, 
-     try_redirect_by_replacing_jump (EDGE_SUCC (a, 0), b, true);
-   gcc_assert (!JUMP_P (BB_END (a)));
- 
-+  /* When not optimizing and the edge is the only place in RTL which holds
-+     some unique locus, emit a nop with that locus in between.  */
-+  if (!optimize && EDGE_SUCC (a, 0)->goto_locus)
-+    {
-+      rtx insn = BB_END (a);
-+      int goto_locus = EDGE_SUCC (a, 0)->goto_locus;
-+
-+      if (NOTE_P (insn))
-+	insn = prev_nonnote_insn (insn);
-+      if (insn && INSN_P (insn) && INSN_LOCATOR (insn) == goto_locus)
-+	goto_locus = 0;
-+      else
-+	{
-+	  insn = BB_HEAD (b);
-+	  if (!INSN_P (insn))
-+	    insn = next_insn (insn);
-+	  if (insn && INSN_P (insn) && INSN_LOCATOR (insn) == goto_locus)
-+	    goto_locus = 0;
-+	}
-+      if (goto_locus)
-+	{
-+	  BB_END (a) = emit_insn_after_noloc (gen_nop (), BB_END (a), a);
-+	  INSN_LOCATOR (BB_END (a)) = goto_locus;
-+	}
-+    }
-+
-   /* Possible line number notes should appear in between.  */
-   if (b->il.rtl->header)
-     {
---- gcc/testsuite/gcc.dg/debug/pr36690-1.c	(revision 0)
-+++ gcc/testsuite/gcc.dg/debug/pr36690-1.c	(revision 140948)
-@@ -0,0 +1,23 @@
-+/* PR debug/36690 */
-+/* Verify that break func is hit.  
-+   This version of the test just checks that it can be compiled, linked
-+   and executed, further testing is done in corresponding gcc.dg/dwarf2/
-+   test and hopefully in gdb testsuite.  */
-+/* { dg-do run } */
-+/* { dg-options "-O0 -g -dA" } */
-+
-+int i;
-+
-+void
-+func (void)
-+{
-+  while (i == 1)
-+    i = 0;
-+}
-+
-+int
-+main (void)
-+{
-+  func ();
-+  return 0;
-+}
---- gcc/testsuite/gcc.dg/debug/pr36690-2.c	(revision 0)
-+++ gcc/testsuite/gcc.dg/debug/pr36690-2.c	(revision 140948)
-@@ -0,0 +1,40 @@
-+/* PR debug/36690 */
-+/* Verify that breakpoint can be put on goto f1, it is hit and
-+   varz at that spot is defined and contains 5.  Nowhere else
-+   in the function should be varz in the scope.
-+   This version of the test just checks that it can be compiled, linked
-+   and executed, further testing is done in corresponding gcc.dg/dwarf2/
-+   test and hopefully in gdb testsuite.  */
-+/* { dg-do run } */
-+/* { dg-options "-O0 -g -dA" } */
-+
-+int cnt;
-+
-+void
-+bar (int i)
-+{
-+  cnt += i;
-+}
-+
-+void
-+foo (int i)
-+{
-+  if (!i)
-+    bar (0);
-+  else
-+    {
-+      static int varz = 5;
-+      goto f1;
-+    }
-+  bar (1);
-+f1:
-+  bar (2);
-+}
-+
-+int
-+main (void)
-+{
-+  foo (0);
-+  foo (1);
-+  return 0;
-+}
---- gcc/testsuite/gcc.dg/debug/pr29609-1.c	(revision 0)
-+++ gcc/testsuite/gcc.dg/debug/pr29609-1.c	(revision 140948)
-@@ -0,0 +1,33 @@
-+/* PR debug/29609 */
-+/* Verify that breakpoint on the break is hit.
-+   This version of the test just checks that it can be compiled, linked
-+   and executed, further testing is done in corresponding gcc.dg/dwarf2/
-+   test and hopefully in gdb testsuite.  */
-+/* { dg-do run } */
-+/* { dg-options "-O0 -g -dA" } */
-+
-+extern void abort (void);
-+
-+int
-+foo (void)
-+{
-+  int a, i;
-+
-+  for (i = 1; i <= 10; i++)
-+    {
-+      if (i < 3)
-+	a = 1;
-+      else
-+	break;
-+      a = 5;
-+    }
-+  return a;
-+}
-+
-+int
-+main (void)
-+{
-+  if (foo () != 5)
-+    abort ();
-+  return 0;
-+}
---- gcc/testsuite/gcc.dg/debug/pr36690-3.c	(revision 0)
-+++ gcc/testsuite/gcc.dg/debug/pr36690-3.c	(revision 140948)
-@@ -0,0 +1,47 @@
-+/* PR debug/36690 */
-+/* { dg-do run } */
-+/* { dg-options "-O0 -g -dA" } */
-+
-+int cnt;
-+
-+void
-+bar (int i)
-+{
-+  cnt += i;
-+}
-+
-+void
-+foo (int i, int j)
-+{
-+  if (j)
-+    {
-+      bar (i + 1);
-+      goto f1;
-+    }
-+  bar (i + 2);
-+  goto f2;
-+f1:
-+  if (i > 10)
-+    goto f3;
-+f2:
-+  if (i > 40)
-+    goto f4;
-+  else
-+    goto f5;
-+f3:
-+  bar (i);
-+f4:
-+  bar (i);
-+f5:
-+  bar (i);
-+}
-+
-+int
-+main (void)
-+{
-+  foo (0, 1);
-+  foo (11, 1);
-+  foo (21, 0);
-+  foo (41, 0);
-+  return 0;
-+}
---- gcc/testsuite/gcc.dg/debug/pr29609-2.c	(revision 0)
-+++ gcc/testsuite/gcc.dg/debug/pr29609-2.c	(revision 140948)
-@@ -0,0 +1,53 @@
-+/* PR debug/29609 */
-+/* Verify that breakpoint on both goto failure; stmts is hit.
-+   This version of the test just checks that it can be compiled, linked
-+   and executed, further testing is done in corresponding gcc.dg/dwarf2/
-+   test and hopefully in gdb testsuite.  */
-+/* { dg-do run } */
-+/* { dg-options "-O0 -g -dA" } */
-+
-+extern void abort (void);
-+int x;
-+
-+int
-+foo (void)
-+{
-+  return 0 ^ x;
-+}
-+
-+int
-+bar (void)
-+{
-+  return 1 ^ x;
-+}
-+
-+int
-+baz (void)
-+{
-+  int c;
-+
-+  if (!foo ())
-+    goto failure;
-+
-+  if (!bar ())
-+    goto failure;
-+
-+  return 0;
-+
-+failure:
-+  return 1;
-+}
-+
-+int
-+main (void)
-+{
-+  if (baz () != 1)
-+    abort ();
-+  x = 1;
-+  if (baz () != 1)
-+    abort ();
-+  x = 2;
-+  if (baz () != 0)
-+    abort ();
-+  return 0;
-+}
---- gcc/testsuite/gcc.dg/debug/dwarf2/pr36690-1.c	(revision 0)
-+++ gcc/testsuite/gcc.dg/debug/dwarf2/pr36690-1.c	(revision 140948)
-@@ -0,0 +1,22 @@
-+/* PR debug/36690 */
-+/* Verify that break func is hit.  */
-+/* { dg-do compile } */
-+/* { dg-options "-O0 -gdwarf-2 -dA" } */
-+
-+int i;
-+
-+void
-+func (void)
-+{
-+  while (i == 1)
-+    i = 0;
-+}
-+
-+int
-+main (void)
-+{
-+  func ();
-+  return 0;
-+}
-+
-+/* { dg-final { scan-assembler "pr36690-1.c:11" } } */
---- gcc/testsuite/gcc.dg/debug/dwarf2/pr36690-2.c	(revision 0)
-+++ gcc/testsuite/gcc.dg/debug/dwarf2/pr36690-2.c	(revision 140948)
-@@ -0,0 +1,39 @@
-+/* PR debug/36690 */
-+/* Verify that breakpoint can be put on goto f1, it is hit and
-+   varz at that spot is defined and contains 5.  Nowhere else
-+   in the function should be varz in the scope.  */
-+/* { dg-do compile } */
-+/* { dg-options "-O0 -gdwarf-2 -dA" } */
-+
-+int cnt;
-+
-+void
-+bar (int i)
-+{
-+  cnt += i;
-+}
-+
-+void
-+foo (int i)
-+{
-+  if (!i)
-+    bar (0);
-+  else
-+    {
-+      static int varz = 5;
-+      goto f1;
-+    }
-+  bar (1);
-+f1:
-+  bar (2);
-+}
-+
-+int
-+main (void)
-+{
-+  foo (0);
-+  foo (1);
-+  return 0;
-+}
-+
-+/* { dg-final { scan-assembler "pr36690-2.c:24" } } */
---- gcc/testsuite/gcc.dg/debug/dwarf2/pr29609-1.c	(revision 0)
-+++ gcc/testsuite/gcc.dg/debug/dwarf2/pr29609-1.c	(revision 140948)
-@@ -0,0 +1,32 @@
-+/* PR debug/29609 */
-+/* Verify that breakpoint on the break is hit.  */
-+/* { dg-do compile } */
-+/* { dg-options "-O0 -gdwarf-2 -dA" } */
-+
-+void abort (void);
-+
-+int
-+foo (void)
-+{
-+  int a, i;
-+
-+  for (i = 1; i <= 10; i++)
-+    {
-+      if (i < 3)
-+	a = 1;
-+      else
-+	break;
-+      a = 5;
-+    }
-+  return a;
-+}
-+
-+int
-+main (void)
-+{
-+  if (foo () != 5)
-+    abort ();
-+  return 0;
-+}
-+
-+/* { dg-final { scan-assembler "pr29609-1.c:18" } } */
---- gcc/testsuite/gcc.dg/debug/dwarf2/pr36690-3.c	(revision 0)
-+++ gcc/testsuite/gcc.dg/debug/dwarf2/pr36690-3.c	(revision 140948)
-@@ -0,0 +1,53 @@
-+/* PR debug/36690 */
-+/* { dg-do compile } */
-+/* { dg-options "-O0 -gdwarf-2 -dA" } */
-+
-+int cnt;
-+
-+void
-+bar (int i)
-+{
-+  cnt += i;
-+}
-+
-+void
-+foo (int i, int j)
-+{
-+  if (j)
-+    {
-+      bar (i + 1);
-+      goto f1;
-+    }
-+  bar (i + 2);
-+  goto f2;
-+f1:
-+  if (i > 10)
-+    goto f3;
-+f2:
-+  if (i > 40)
-+    goto f4;
-+  else
-+    goto f5;
-+f3:
-+  bar (i);
-+f4:
-+  bar (i);
-+f5:
-+  bar (i);
-+}
-+
-+int
-+main (void)
-+{
-+  foo (0, 1);
-+  foo (11, 1);
-+  foo (21, 0);
-+  foo (41, 0);
-+  return 0;
-+}
-+
-+/* { dg-final { scan-assembler "pr36690-3.c:19" } } */
-+/* { dg-final { scan-assembler "pr36690-3.c:22" } } */
-+/* { dg-final { scan-assembler "pr36690-3.c:25" } } */
-+/* { dg-final { scan-assembler "pr36690-3.c:28" } } */
-+/* { dg-final { scan-assembler "pr36690-3.c:30" } } */
---- gcc/testsuite/gcc.dg/debug/dwarf2/pr29609-2.c	(revision 0)
-+++ gcc/testsuite/gcc.dg/debug/dwarf2/pr29609-2.c	(revision 140948)
-@@ -0,0 +1,53 @@
-+/* PR debug/29609 */
-+/* Verify that breakpoint on both goto failure; stmts is hit.  */
-+/* { dg-do compile } */
-+/* { dg-options "-O0 -gdwarf-2 -dA" } */
-+
-+extern void abort (void);
-+int x;
-+
-+int
-+foo (void)
-+{
-+  return 0 ^ x;
-+}
-+
-+int
-+bar (void)
-+{
-+  return 1 ^ x;
-+}
-+
-+int
-+baz (void)
-+{
-+  int c;
-+
-+  if (!foo ())
-+    goto failure;
-+
-+  if (!bar ())
-+    goto failure;
-+
-+  return 0;
-+
-+failure:
-+  return 1;
-+}
-+
-+int
-+main (void)
-+{
-+  if (baz () != 1)
-+    abort ();
-+  x = 1;
-+  if (baz () != 1)
-+    abort ();
-+  x = 2;
-+  if (baz () != 0)
-+    abort ();
-+  return 0;
-+}
-+
-+/* { dg-final { scan-assembler "pr29609-2.c:27" } } */
-+/* { dg-final { scan-assembler "pr29609-2.c:30" } } */
---- gcc/testsuite/gcc.dg/debug/dwarf2/pr37616.c	(revision 0)
-+++ gcc/testsuite/gcc.dg/debug/dwarf2/pr37616.c	(revision 140948)
-@@ -0,0 +1,41 @@
-+/* PR debug/37616 */
-+/* Test that one can put breakpoints onto continue, exitlab and break
-+   and actually see program reaching those breakpoints.  */
-+/* { dg-do compile } */
-+/* { dg-options "-O0 -gdwarf-2 -dA" } */
-+
-+extern void abort (void);
-+
-+int
-+foo (int parm)
-+{
-+  int varj, varm;
-+
-+  for (varj = 0; varj < 10; varj++)
-+    {
-+      if (varj == 5)
-+	continue;
-+      if (varj == 7 && !parm)
-+	goto exitlab;
-+      if (varj == 9)
-+	break;
-+      varm = varj;
-+    }
-+
-+exitlab:
-+  return varm;
-+}
-+
-+int
-+main (void)
-+{
-+  if (foo (0) != 6)
-+    abort ();
-+  if (foo (1) != 8)
-+    abort ();
-+  return 0;
-+}
-+
-+/* { dg-final { scan-assembler "pr37616.c:17" } } */
-+/* { dg-final { scan-assembler "pr37616.c:19" } } */
-+/* { dg-final { scan-assembler "pr37616.c:21" } } */
---- gcc/testsuite/gcc.dg/debug/pr37616.c	(revision 0)
-+++ gcc/testsuite/gcc.dg/debug/pr37616.c	(revision 140948)
-@@ -0,0 +1,40 @@
-+/* PR debug/37616 */
-+/* Test that one can put breakpoints onto continue, exitlab and break
-+   and actually see program reaching those breakpoints.
-+   This version of the test just checks that it can be compiled, linked
-+   and executed, further testing is done in corresponding gcc.dg/dwarf2/
-+   test and hopefully in gdb testsuite.  */
-+/* { dg-do run } */
-+/* { dg-options "-O0 -g -dA" } */
-+
-+extern void abort (void);
-+
-+int
-+foo (int parm)
-+{
-+  int varj, varm;
-+
-+  for (varj = 0; varj < 10; varj++)
-+    {
-+      if (varj == 5)
-+	continue;
-+      if (varj == 7 && !parm)
-+	goto exitlab;
-+      if (varj == 9)
-+	break;
-+      varm = varj;
-+    }
-+
-+exitlab:
-+  return varm;
-+}
-+
-+int
-+main (void)
-+{
-+  if (foo (0) != 6)
-+    abort ();
-+  if (foo (1) != 8)
-+    abort ();
-+  return 0;
-+}

diff --git a/gcc43-pr32139.patch b/gcc43-pr32139.patch
deleted file mode 100644
index f356967..0000000
--- a/gcc43-pr32139.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-2007-06-01  Jakub Jelinek  <jakub@redhat.com>
-
-	PR tree-optimization/32139
-	* gcc.c-torture/compile/20070531-1.c: New test.
-
---- gcc/testsuite/gcc.c-torture/compile/20070531-1.c.jj	2007-05-31 13:47:22.000000000 +0200
-+++ gcc/testsuite/gcc.c-torture/compile/20070531-1.c	2007-06-01 10:57:15.000000000 +0200
-@@ -0,0 +1,11 @@
-+/* PR tree-optimization/32139 */
-+int foo (void);
-+int bar (void) __attribute__ ((const));
-+
-+int
-+test (int x)
-+{
-+  int a = (x == 10000 ? foo : bar) ();
-+  int b = (x == 10000 ? foo : bar) ();
-+  return a + b;
-+}

diff --git a/gcc43-pr33763.patch b/gcc43-pr33763.patch
deleted file mode 100644
index 9e9c90d..0000000
--- a/gcc43-pr33763.patch
+++ /dev/null
@@ -1,153 +0,0 @@
-2007-11-06  Jakub Jelinek  <jakub@redhat.com>
-
-	PR tree-optimization/33763
-	* gcc.dg/pr33763.c: New test.
-	* g++.dg/opt/inline13.C: New test.
-
-2007-11-06  Jan Hubicka  <jh@suse.cz>
-
-	PR tree-optimization/33763
-	* tree-inline.c (expand_call_inline): Silently ignore always_inline
-	attribute for redefined extern inline functions.
-
---- gcc/tree-inline.c.jj	2007-11-06 09:29:04.000000000 +0100
-+++ gcc/tree-inline.c	2007-11-06 16:19:12.000000000 +0100
-@@ -2582,6 +2582,12 @@ expand_call_inline (basic_block bb, tree
-   if (!cgraph_inline_p (cg_edge, &reason))
-     {
-       if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (fn))
-+	/* For extern inline functions that get redefined we always
-+	   silently ignored alway_inline flag. Better behaviour would
-+	   be to be able to keep both bodies and use extern inline body
-+	   for inlining, but we can't do that because frontends overwrite
-+	   the body.  */
-+	  && !cg_edge->callee->local.redefined_extern_inline
- 	  /* Avoid warnings during early inline pass. */
- 	  && (!flag_unit_at_a_time || cgraph_global_info_ready))
- 	{
---- gcc/testsuite/gcc.dg/pr33763.c.jj	2007-11-06 16:19:12.000000000 +0100
-+++ gcc/testsuite/gcc.dg/pr33763.c	2007-11-06 16:19:12.000000000 +0100
-@@ -0,0 +1,60 @@
-+/* PR tree-optimization/33763 */
-+/* { dg-do compile } */
-+/* { dg-options "-O2" } */
-+
-+typedef struct
-+{
-+  void *a;
-+  void *b;
-+} T;
-+extern void *foo (const char *, const char *);
-+extern void *bar (void *, const char *, T);
-+extern int baz (const char *, int);
-+
-+extern inline __attribute__ ((always_inline, gnu_inline)) int
-+baz (const char *x, int y)
-+{
-+  return 2;
-+}
-+
-+int
-+baz (const char *x, int y)
-+{
-+  return 1;
-+}
-+
-+int xa, xb;
-+
-+static void *
-+inl (const char *x, const char *y)
-+{
-+  T t = { &xa, &xb };
-+  int *f = (int *) __builtin_malloc (sizeof (int));
-+  const char *z;
-+  int o = 0;
-+  void *r = 0;
-+
-+  for (z = y; *z; z++)
-+    {
-+      if (*z == 'r')
-+	o |= 1;
-+      if (*z == 'w')
-+	o |= 2;
-+    }
-+  if (o == 1)
-+    *f = baz (x, 0);
-+  if (o == 2)
-+    *f = baz (x, 1);
-+  if (o == 3)
-+    *f = baz (x, 2);
-+
-+  if (o && *f > 0)
-+    r = bar (f, "w", t);
-+  return r;
-+}
-+
-+void *
-+foo (const char *x, const char *y)
-+{
-+  return inl (x, y);
-+}
---- gcc/testsuite/g++.dg/opt/inline13.C.jj	2007-11-06 16:20:20.000000000 +0100
-+++ gcc/testsuite/g++.dg/opt/inline13.C	2007-11-06 16:21:30.000000000 +0100
-@@ -0,0 +1,60 @@
-+// PR tree-optimization/33763
-+// { dg-do compile }
-+// { dg-options "-O2" }
-+
-+typedef struct
-+{
-+  void *a;
-+  void *b;
-+} T;
-+extern void *foo (const char *, const char *);
-+extern void *bar (void *, const char *, T);
-+extern int baz (const char *, int);
-+
-+extern inline __attribute__ ((always_inline, gnu_inline)) int
-+baz (const char *x, int y)
-+{
-+  return 2;
-+}
-+
-+int
-+baz (const char *x, int y)
-+{
-+  return 1;
-+}
-+
-+int xa, xb;
-+
-+static void *
-+inl (const char *x, const char *y)
-+{
-+  T t = { &xa, &xb };
-+  int *f = (int *) __builtin_malloc (sizeof (int));
-+  const char *z;
-+  int o = 0;
-+  void *r = 0;
-+
-+  for (z = y; *z; z++)
-+    {
-+      if (*z == 'r')
-+	o |= 1;
-+      if (*z == 'w')
-+	o |= 2;
-+    }
-+  if (o == 1)
-+    *f = baz (x, 0);
-+  if (o == 2)
-+    *f = baz (x, 1);
-+  if (o == 3)
-+    *f = baz (x, 2);
-+
-+  if (o && *f > 0)
-+    r = bar (f, "w", t);
-+  return r;
-+}
-+
-+void *
-+foo (const char *x, const char *y)
-+{
-+  return inl (x, y);
-+}

diff --git a/gcc43-pr34037.patch b/gcc43-pr34037.patch
deleted file mode 100644
index 2c5a163..0000000
--- a/gcc43-pr34037.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-2008-09-11  Jakub Jelinek  <jakub@redhat.com>
-
-	PR debug/34037
-	* gimplify.c (gimplify_type_sizes): When not optimizing, ensure
-	TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
-	VAR_DECL.
-	* cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
-	!DECL_IGNORED_P vars in unexpanded_var_list list for instantiate_decls,
-	ggc_free other TREE_LIST nodes from that chain.
-	* function.c (instantiate_decls): Instantiate also DECL_RTL
-	of vars in cfun->unexpanded_var_list, free that list afterwards.
-
---- gcc/gimplify.c.jj	2008-09-10 20:50:11.000000000 +0200
-+++ gcc/gimplify.c	2008-09-11 13:54:22.000000000 +0200
-@@ -7105,6 +7105,18 @@ gimplify_type_sizes (tree type, gimple_s
-       /* These types may not have declarations, so handle them here.  */
-       gimplify_type_sizes (TREE_TYPE (type), list_p);
-       gimplify_type_sizes (TYPE_DOMAIN (type), list_p);
-+      /* When not optimizing, ensure VLA bounds aren't removed.  */
-+      if (!optimize
-+	  && TYPE_DOMAIN (type)
-+	  && INTEGRAL_TYPE_P (TYPE_DOMAIN (type)))
-+	{
-+	  t = TYPE_MIN_VALUE (TYPE_DOMAIN (type));
-+	  if (t && TREE_CODE (t) == VAR_DECL && DECL_ARTIFICIAL (t))
-+	    DECL_IGNORED_P (t) = 0;
-+	  t = TYPE_MAX_VALUE (TYPE_DOMAIN (type));
-+	  if (t && TREE_CODE (t) == VAR_DECL && DECL_ARTIFICIAL (t))
-+	    DECL_IGNORED_P (t) = 0;
-+	}
-       break;
- 
-     case RECORD_TYPE:
---- gcc/cfgexpand.c.jj	2008-09-09 16:08:04.000000000 +0200
-+++ gcc/cfgexpand.c	2008-09-11 15:01:00.000000000 +0200
-@@ -1440,7 +1440,7 @@ estimated_stack_frame_size (void)
- static void
- expand_used_vars (void)
- {
--  tree t, outer_block = DECL_INITIAL (current_function_decl);
-+  tree t, next, outer_block = DECL_INITIAL (current_function_decl);
- 
-   /* Compute the phase of the stack frame for this function.  */
-   {
-@@ -1453,11 +1453,15 @@ expand_used_vars (void)
- 
-   /* At this point all variables on the unexpanded_var_list with TREE_USED
-      set are not associated with any block scope.  Lay them out.  */
--  for (t = cfun->unexpanded_var_list; t; t = TREE_CHAIN (t))
-+  t = cfun->unexpanded_var_list;
-+  cfun->unexpanded_var_list = NULL_TREE;
-+  for (; t; t = next)
-     {
-       tree var = TREE_VALUE (t);
-       bool expand_now = false;
- 
-+      next = TREE_CHAIN (t);
-+
-       /* We didn't set a block for static or extern because it's hard
- 	 to tell the difference between a global variable (re)declared
- 	 in a local scope, and one that's really declared there to
-@@ -1484,9 +1488,25 @@ expand_used_vars (void)
-       TREE_USED (var) = 1;
- 
-       if (expand_now)
--	expand_one_var (var, true, true);
-+	{
-+	  expand_one_var (var, true, true);
-+	  if (DECL_ARTIFICIAL (var) && !DECL_IGNORED_P (var))
-+	    {
-+	      rtx rtl = DECL_RTL_IF_SET (var);
-+
-+	      /* Keep artificial non-ignored vars in cfun->unexpanded_var_list
-+		 chain until instantiate_decls.  */
-+	      if (rtl && (MEM_P (rtl) || GET_CODE (rtl) == CONCAT))
-+		{
-+		  TREE_CHAIN (t) = cfun->unexpanded_var_list;
-+		  cfun->unexpanded_var_list = t;
-+		  continue;
-+		}
-+	    }
-+	}
-+
-+      ggc_free (t);
-     }
--  cfun->unexpanded_var_list = NULL_TREE;
- 
-   /* At this point, all variables within the block tree with TREE_USED
-      set are actually used by the optimized function.  Lay them out.  */
---- gcc/function.c.jj	2008-09-09 21:13:24.000000000 +0200
-+++ gcc/function.c	2008-09-11 14:56:47.000000000 +0200
-@@ -1645,7 +1645,7 @@ instantiate_decls_1 (tree let)
- static void
- instantiate_decls (tree fndecl)
- {
--  tree decl;
-+  tree decl, t, next;
- 
-   /* Process all parameters of the function.  */
-   for (decl = DECL_ARGUMENTS (fndecl); decl; decl = TREE_CHAIN (decl))
-@@ -1661,6 +1661,17 @@ instantiate_decls (tree fndecl)
- 
-   /* Now process all variables defined in the function or its subblocks.  */
-   instantiate_decls_1 (DECL_INITIAL (fndecl));
-+
-+  t = cfun->unexpanded_var_list;
-+  cfun->unexpanded_var_list = NULL_TREE;
-+  for (; t; t = next)
-+    {
-+      next = TREE_CHAIN (t);
-+      decl = TREE_VALUE (t);
-+      if (DECL_RTL_SET_P (decl))
-+	instantiate_decl_rtl (DECL_RTL (decl));
-+      ggc_free (t);
-+    }
- }
- 
- /* Pass through the INSNS of function FNDECL and convert virtual register

diff --git a/gcc43-pr36741-revert.patch b/gcc43-pr36741-revert.patch
deleted file mode 100644
index 5a67d96..0000000
--- a/gcc43-pr36741-revert.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-Revert:
-2008-08-28  Dodji Seketeli  <dodji@redhat.com>
-
-	PR c++/36741
-	* tree.c (int_fits_type_p): Don't forget unsigned integers
-	  of type sizetype which higher end word equals -1.
-
-	* g++.dg/other/new-size-type.C: New test.
-
---- gcc/tree.c	(revision 139711)
-+++ gcc/tree.c	(revision 139710)
-@@ -6296,21 +6296,6 @@ int_fits_type_p (const_tree c, const_tre
-      for "unknown if constant fits", 0 for "constant known *not* to fit" and 1
-      for "constant known to fit".  */
- 
--  if (TREE_TYPE (c) == sizetype
--      && TYPE_UNSIGNED (TREE_TYPE (c))
--      && TREE_INT_CST_HIGH (c) == -1
--      && !TREE_OVERFLOW (c))
--      /* So c is an unsigned integer which type is sizetype.
--         sizetype'd integers are sign extended even though they are
--	 unsigned. If the integer value fits in the lower end word of c,
--	 and if the higher end word has all its bits set to 1, that
--	 means the higher end bits are set to 1 only for sign extension.
--	 So let's convert c into an equivalent zero extended unsigned
--	 integer.  */
--      c = force_fit_type_double (size_type_node,
--				 TREE_INT_CST_LOW (c),
--				 TREE_INT_CST_HIGH (c),
--				 false, false);
-   /* Check if C >= type_low_bound.  */
-   if (type_low_bound && TREE_CODE (type_low_bound) == INTEGER_CST)
-     {
---- gcc/testsuite/g++.dg/other/new-size-type.C	(revision 139711)
-+++ gcc/testsuite/g++.dg/other/new-size-type.C	(revision 139710)
-@@ -1,10 +1,10 @@
- // Contributed by Dodji Seketeli <dodji@redhat.com>
- // Origin: PR c++/36741
- 
- #include <stddef.h>
- const char*
- foo()
- {
--    return new char[~static_cast<size_t>(0)];// { dg-bogus "large" }
-+    return new char[~static_cast<size_t>(0)];// { dg-bogus "large" "" { xfail *-*-* } }
- }
- 

diff --git a/gcc43-pr37189.patch b/gcc43-pr37189.patch
deleted file mode 100644
index 2e61f3d..0000000
--- a/gcc43-pr37189.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-2008-09-03  Jakub Jelinek  <jakub@redhat.com>
-
-	PR c++/37189
-	* cp-tree.h (defer_mark_used_calls, deferred_mark_used_calls): New
-	extern decls.
-	* decl2.c (mark_used): If defer_mark_used_calls, push decl into
-	deferred_mark_used_calls vector and exit early.
-	* decl.c (defer_mark_used_calls, deferred_mark_used_calls): New
-	variables.
-	(finish_function): Set defer_mark_used_calls for the duration of the
-	function.  Call mark_used on any queued decls.
-
-	PR c++/37189
-	* g++.dg/gomp/pr37189.C: New test.
-
---- gcc/cp/decl2.c	(revision 139954)
-+++ gcc/cp/decl2.c	(revision 139955)
-@@ -3776,6 +3776,15 @@ mark_used (tree decl)
-   /* If we don't need a value, then we don't need to synthesize DECL.  */
-   if (skip_evaluation)
-     return;
-+
-+  /* If within finish_function, defer the rest until that function
-+     finishes, otherwise it might recurse.  */
-+  if (defer_mark_used_calls)
-+    {
-+      VEC_safe_push (tree, gc, deferred_mark_used_calls, decl);
-+      return;
-+    }
-+
-   /* Normally, we can wait until instantiation-time to synthesize
-      DECL.  However, if DECL is a static data member initialized with
-      a constant, we need the value right now because a reference to
---- gcc/cp/decl.c	(revision 139954)
-+++ gcc/cp/decl.c	(revision 139955)
-@@ -227,6 +227,11 @@ struct named_label_entry GTY(())
-    function, two inside the body of a function in a local class, etc.)  */
- int function_depth;
- 
-+/* To avoid unwanted recursion, finish_function defers all mark_used calls
-+   encountered during its execution until it finishes.  */
-+bool defer_mark_used_calls;
-+VEC(tree, gc) *deferred_mark_used_calls;
-+
- /* States indicating how grokdeclarator() should handle declspecs marked
-    with __attribute__((deprecated)).  An object declared as
-    __attribute__((deprecated)) suppresses warnings of uses of other
-@@ -12033,6 +12038,9 @@ finish_function (int flags)
-   if (fndecl == NULL_TREE)
-     return error_mark_node;
- 
-+  gcc_assert (!defer_mark_used_calls);
-+  defer_mark_used_calls = true;
-+
-   if (DECL_NONSTATIC_MEMBER_FUNCTION_P (fndecl)
-       && DECL_VIRTUAL_P (fndecl)
-       && !processing_template_decl)
-@@ -12232,6 +12240,17 @@ finish_function (int flags)
-        cxx_pop_function_context and then reset via pop_function_context.  */
-     current_function_decl = NULL_TREE;
- 
-+  defer_mark_used_calls = false;
-+  if (deferred_mark_used_calls)
-+    {
-+      unsigned int i;
-+      tree decl;
-+
-+      for (i = 0; VEC_iterate (tree, deferred_mark_used_calls, i, decl); i++)
-+	mark_used (decl);
-+      VEC_free (tree, gc, deferred_mark_used_calls);
-+    }
-+
-   return fndecl;
- }
- \f
---- gcc/cp/cp-tree.h	(revision 139954)
-+++ gcc/cp/cp-tree.h	(revision 139955)
-@@ -4381,6 +4381,9 @@ extern void initialize_artificial_var		(
- extern tree check_var_type			(tree, tree);
- extern tree reshape_init (tree, tree);
- 
-+extern bool defer_mark_used_calls;
-+extern GTY(()) VEC(tree, gc) *deferred_mark_used_calls;
-+
- /* in decl2.c */
- extern bool check_java_method			(tree);
- extern tree build_memfn_type			(tree, tree, cp_cv_quals);
---- gcc/testsuite/g++.dg/gomp/pr37189.C	(revision 0)
-+++ gcc/testsuite/g++.dg/gomp/pr37189.C	(revision 139955)
-@@ -0,0 +1,27 @@
-+// PR c++/37189
-+// { dg-do compile }
-+// { dg-options "-fopenmp" }
-+
-+struct S
-+{
-+  S () {}
-+  S (S const &) {}
-+};
-+
-+struct T
-+{
-+  S s;
-+};
-+
-+void
-+bar (T &)
-+{
-+}
-+
-+int
-+foo ()
-+{
-+  T t;
-+  #pragma omp task
-+    bar (t);
-+}

diff --git a/gcc43-pr37738.patch b/gcc43-pr37738.patch
deleted file mode 100644
index 90c3235..0000000
--- a/gcc43-pr37738.patch
+++ /dev/null
@@ -1,276 +0,0 @@
-2008-10-07  Jakub Jelinek  <jakub@redhat.com>
-
-	* f95-lang.c (poplevel): Don't clear BLOCK_VARS if functionbody.
-	* trans-decl.c (gfc_build_qualified_array): Build accurate debug type
-	even if nest.
-	(build_entry_thunks, gfc_generate_function_code,
-	gfc_generate_constructors): Ensure DECL_SAVED_TREE is a BIND_EXPR
-	with DECL_INITIAL as its BLOCK.
-
-	PR debug/37738
-	* dwarf2out.c (common_block_die_table): New variable.
-	(common_block_die_table_hash, common_block_die_table_eq): New
-	functions.
-	(gen_variable_die): Look up a DW_TAG_common_block die for a particular
-	COMMON block in the current scope rather than globally.  Optimize
-	DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
-	DW_OP_addr SYMBOL_REF+off.
-
-	* gfortran.dg/debug/pr37738.f: New test.
-
---- gcc/testsuite/gfortran.dg/debug/pr37738.f	(revision 0)
-+++ gcc/testsuite/gfortran.dg/debug/pr37738.f	(revision 140945)
-@@ -0,0 +1,30 @@
-+C PR debug/37738
-+C { dg-do compile }
-+C { dg-skip-if "DWARF-2 only" { "*-*-*" } { "*" } { "-gdwarf-2" } }
-+C { dg-options "-dA" }
-+
-+      subroutine a
-+      integer*4 a_i, c_i
-+      common /block/a_i, c_i
-+      a_i = 1
-+      c_i = 4
-+      end subroutine a
-+      subroutine b
-+      integer*4 b_i
-+      common /block/b_i, d_i
-+      b_i = 2
-+      d_i = 5
-+      end subroutine b
-+      subroutine c
-+      integer*4 a_i, c_i
-+      common /block/a_i, c_i
-+      if (a_i .ne. 2) call abort
-+      if (c_i .ne. 5) call abort
-+      end subroutine c
-+      program abc
-+      call a
-+      call b
-+      call c
-+      end program abc
-+
-+C { dg-final { scan-assembler-times "DIE\[^\n\]*DW_TAG_common_block" 3 } }
---- gcc/dwarf2out.c	(revision 140943)
-+++ gcc/dwarf2out.c	(revision 140945)
-@@ -4748,6 +4748,10 @@ static GTY((param_is (struct dwarf_file_
-    The key is a DECL_UID() which is a unique number identifying each decl.  */
- static GTY ((param_is (struct die_struct))) htab_t decl_die_table;
- 
-+/* A hash table of references to DIE's that describe COMMON blocks.
-+   The key is DECL_UID() ^ die_parent.  */
-+static GTY ((param_is (struct die_struct))) htab_t common_block_die_table;
-+
- /* Node of the variable location list.  */
- struct var_loc_node GTY ((chain_next ("%h.next")))
- {
-@@ -4960,6 +4964,8 @@ static void equate_type_number_to_die (t
- static hashval_t decl_die_table_hash (const void *);
- static int decl_die_table_eq (const void *, const void *);
- static dw_die_ref lookup_decl_die (tree);
-+static hashval_t common_block_die_table_hash (const void *);
-+static int common_block_die_table_eq (const void *, const void *);
- static hashval_t decl_loc_table_hash (const void *);
- static int decl_loc_table_eq (const void *, const void *);
- static var_loc_list *lookup_decl_loc (const_tree);
-@@ -13812,6 +13818,26 @@ gen_subprogram_die (tree decl, dw_die_re
- 
- }
- 
-+/* Returns a hash value for X (which really is a die_struct).  */
-+
-+static hashval_t
-+common_block_die_table_hash (const void *x)
-+{
-+  const_dw_die_ref d = (const_dw_die_ref) x;
-+  return (hashval_t) d->decl_id ^ htab_hash_pointer (d->die_parent);
-+}
-+
-+/* Return nonzero if decl_id and die_parent of die_struct X is the same
-+   as decl_id and die_parent of die_struct Y.  */
-+
-+static int
-+common_block_die_table_eq (const void *x, const void *y)
-+{
-+  const_dw_die_ref d = (const_dw_die_ref) x;
-+  const_dw_die_ref e = (const_dw_die_ref) y;
-+  return d->decl_id == e->decl_id && d->die_parent == e->die_parent;
-+}
-+
- /* Generate a DIE to represent a declared data object.  */
- 
- static void
-@@ -13853,6 +13879,7 @@ gen_variable_die (tree decl, dw_die_ref 
-       tree field;
-       dw_die_ref com_die;
-       dw_loc_descr_ref loc;
-+      die_node com_die_arg;
- 
-       var_die = lookup_decl_die (decl);
-       if (var_die)
-@@ -13863,21 +13890,41 @@ gen_variable_die (tree decl, dw_die_ref 
- 	      if (loc)
- 		{
- 		  if (off)
--		    add_loc_descr (&loc, new_loc_descr (DW_OP_plus_uconst,
-+		    {
-+		      /* Optimize the common case.  */
-+		      if (loc->dw_loc_opc == DW_OP_addr
-+			  && loc->dw_loc_next == NULL
-+			  && GET_CODE (loc->dw_loc_oprnd1.v.val_addr)
-+			     == SYMBOL_REF)
-+			loc->dw_loc_oprnd1.v.val_addr
-+			  = plus_constant (loc->dw_loc_oprnd1.v.val_addr, off);
-+			else
-+			  add_loc_descr (&loc,
-+					 new_loc_descr (DW_OP_plus_uconst,
- 							off, 0));
-+		    }
- 		  add_AT_loc (var_die, DW_AT_location, loc);
- 		  remove_AT (var_die, DW_AT_declaration);
- 		}
- 	    }
- 	  return;
- 	}
-+
-+      if (common_block_die_table == NULL)
-+	common_block_die_table
-+	  = htab_create_ggc (10, common_block_die_table_hash,
-+			     common_block_die_table_eq, NULL);
-+
-       field = TREE_OPERAND (DECL_VALUE_EXPR (decl), 0);
--      com_die = lookup_decl_die (com_decl);
-+      com_die_arg.decl_id = DECL_UID (com_decl);
-+      com_die_arg.die_parent = context_die;
-+      com_die = (dw_die_ref) htab_find (common_block_die_table, &com_die_arg);
-       loc = loc_descriptor_from_tree (com_decl);
-       if (com_die == NULL)
- 	{
- 	  const char *cnam
- 	    = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (com_decl));
-+	  void **slot;
- 
- 	  com_die = new_die (DW_TAG_common_block, context_die, decl);
- 	  add_name_and_src_coords_attributes (com_die, com_decl);
-@@ -13891,7 +13938,9 @@ gen_variable_die (tree decl, dw_die_ref 
-           else if (DECL_EXTERNAL (decl))
- 	    add_AT_flag (com_die, DW_AT_declaration, 1);
- 	  add_pubname_string (cnam, com_die); /* ??? needed? */
--	  equate_decl_number_to_die (com_decl, com_die);
-+	  com_die->decl_id = DECL_UID (com_decl);
-+	  slot = htab_find_slot (common_block_die_table, com_die, INSERT);
-+	  *slot = (void *) com_die;
- 	}
-       else if (get_AT (com_die, DW_AT_location) == NULL && loc)
- 	{
-@@ -13907,7 +13956,17 @@ gen_variable_die (tree decl, dw_die_ref 
-       if (loc)
- 	{
- 	  if (off)
--	    add_loc_descr (&loc, new_loc_descr (DW_OP_plus_uconst, off, 0));
-+	    {
-+	      /* Optimize the common case.  */
-+	      if (loc->dw_loc_opc == DW_OP_addr
-+		  && loc->dw_loc_next == NULL
-+		  && GET_CODE (loc->dw_loc_oprnd1.v.val_addr) == SYMBOL_REF)
-+		loc->dw_loc_oprnd1.v.val_addr
-+		  = plus_constant (loc->dw_loc_oprnd1.v.val_addr, off);
-+	      else
-+		add_loc_descr (&loc, new_loc_descr (DW_OP_plus_uconst,
-+						    off, 0));
-+	    }
- 	  add_AT_loc (var_die, DW_AT_location, loc);
- 	}
-       else if (DECL_EXTERNAL (decl))
---- gcc/fortran/f95-lang.c	(revision 140943)
-+++ gcc/fortran/f95-lang.c	(revision 140945)
-@@ -457,14 +457,8 @@ poplevel (int keep, int reverse, int fun
-   current_binding_level = current_binding_level->level_chain;
- 
-   if (functionbody)
--    {
--      /* This is the top level block of a function. The ..._DECL chain stored
--         in BLOCK_VARS are the function's parameters (PARM_DECL nodes). Don't
--         leave them in the BLOCK because they are found in the FUNCTION_DECL
--         instead.  */
--      DECL_INITIAL (current_function_decl) = block_node;
--      BLOCK_VARS (block_node) = 0;
--    }
-+    /* This is the top level block of a function. */
-+    DECL_INITIAL (current_function_decl) = block_node;
-   else if (current_binding_level == global_binding_level)
-     /* When using gfc_start_block/gfc_finish_block from middle-end hooks,
-        don't add newly created BLOCKs as sublocks of global_binding_level.  */
---- gcc/fortran/trans-decl.c	(revision 140943)
-+++ gcc/fortran/trans-decl.c	(revision 140945)
-@@ -704,7 +704,7 @@ gfc_build_qualified_array (tree decl, gf
-       layout_type (type);
-     }
- 
--  if (nest || write_symbols == NO_DEBUG)
-+  if (write_symbols == NO_DEBUG)
-     return;
- 
-   if (TYPE_NAME (type) != NULL_TREE
-@@ -1761,7 +1761,7 @@ build_entry_thunks (gfc_namespace * ns)
- 
-       thunk_fndecl = thunk_sym->backend_decl;
- 
--      gfc_start_block (&body);
-+      gfc_init_block (&body);
- 
-       /* Pass extra parameter identifying this entry point.  */
-       tmp = build_int_cst (gfc_array_index_type, el->id);
-@@ -1869,8 +1869,12 @@ build_entry_thunks (gfc_namespace * ns)
- 
-       /* Finish off this function and send it for code generation.  */
-       DECL_SAVED_TREE (thunk_fndecl) = gfc_finish_block (&body);
-+      tmp = getdecls ();
-       poplevel (1, 0, 1);
-       BLOCK_SUPERCONTEXT (DECL_INITIAL (thunk_fndecl)) = thunk_fndecl;
-+      DECL_SAVED_TREE (thunk_fndecl)
-+	= build3_v (BIND_EXPR, tmp, DECL_SAVED_TREE (thunk_fndecl),
-+		    DECL_INITIAL (thunk_fndecl));
- 
-       /* Output the GENERIC tree.  */
-       dump_function (TDI_original, thunk_fndecl);
-@@ -3652,7 +3656,7 @@ gfc_generate_function_code (gfc_namespac
- 
-   trans_function_start (sym);
- 
--  gfc_start_block (&block);
-+  gfc_init_block (&block);
- 
-   if (ns->entries && ns->proc_name->ts.type == BT_CHARACTER)
-     {
-@@ -3886,11 +3890,16 @@ gfc_generate_function_code (gfc_namespac
-   saved_function_decls = NULL_TREE;
- 
-   DECL_SAVED_TREE (fndecl) = gfc_finish_block (&block);
-+  decl = getdecls ();
- 
-   /* Finish off this function and send it for code generation.  */
-   poplevel (1, 0, 1);
-   BLOCK_SUPERCONTEXT (DECL_INITIAL (fndecl)) = fndecl;
- 
-+  DECL_SAVED_TREE (fndecl)
-+    = build3_v (BIND_EXPR, decl, DECL_SAVED_TREE (fndecl),
-+		DECL_INITIAL (fndecl));
-+
-   /* Output the GENERIC tree.  */
-   dump_function (TDI_original, fndecl);
- 
-@@ -3969,9 +3978,13 @@ gfc_generate_constructors (void)
-       DECL_SAVED_TREE (fndecl) = build_stmt (EXPR_STMT, tmp);
-     }
- 
-+  decl = getdecls ();
-   poplevel (1, 0, 1);
- 
-   BLOCK_SUPERCONTEXT (DECL_INITIAL (fndecl)) = fndecl;
-+  DECL_SAVED_TREE (fndecl)
-+    = build3_v (BIND_EXPR, decl, DECL_SAVED_TREE (fndecl),
-+		DECL_INITIAL (fndecl));
- 
-   free_after_parsing (cfun);
-   free_after_compilation (cfun);

diff --git a/gcc43-pr37858.patch b/gcc43-pr37858.patch
deleted file mode 100644
index 21fa405..0000000
--- a/gcc43-pr37858.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-2008-11-03  Jakub Jelinek  <jakub@redhat.com>
-
-	PR middle-end/37858
-	* passes.c (execute_one_pass): Don't look at cfun->curr_properties
-	for ipa and simple ipa passes.
-
-	* gcc.dg/pr37858.c: New test.
-
---- gcc/passes.c	(revision 141544)
-+++ gcc/passes.c	(revision 141545)
-@@ -1289,6 +1289,7 @@ execute_one_pass (struct opt_pass *pass)
-   if (initializing_dump
-       && dump_file
-       && graph_dump_format != no_graph
-+      && cfun
-       && (cfun->curr_properties & (PROP_cfg | PROP_rtl))
- 	  == (PROP_cfg | PROP_rtl))
-     {
---- gcc/testsuite/gcc.dg/pr37858.c	(revision 0)
-+++ gcc/testsuite/gcc.dg/pr37858.c	(revision 141545)
-@@ -0,0 +1,11 @@
-+/* PR middle-end/37858 */
-+/* { dg-do compile } */
-+/* { dg-options "-O2 -fdump-ipa-early_local_cleanups -dv" } */
-+
-+int
-+main (void)
-+{
-+  return 0;
-+}
-+
-+/* { dg-final { cleanup-ipa-dump "early_local_cleanups" } } */

diff --git a/gcc43-pr37870.patch b/gcc43-pr37870.patch
deleted file mode 100644
index 3e43d4f..0000000
--- a/gcc43-pr37870.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-2008-10-29  Jakub Jelinek  <jakub@redhat.com>
-
-	PR middle-end/37870
-	* expmed.c (extract_bit_field_1): If int_mode_for_mode returns
-	BLKmode for non-memory, convert using a wider MODE_INT mode
-	or through memory.
-
-	* gcc.target/i386/pr37870.c: New test.
-
---- gcc/expmed.c	(revision 141429)
-+++ gcc/expmed.c	(revision 141430)
-@@ -1278,9 +1278,8 @@ extract_bit_field_1 (rtx str_rtx, unsign
-       {
- 	if (MEM_P (op0))
- 	  op0 = adjust_address (op0, imode, 0);
--	else
-+	else if (imode != BLKmode)
- 	  {
--	    gcc_assert (imode != BLKmode);
- 	    op0 = gen_lowpart (imode, op0);
- 
- 	    /* If we got a SUBREG, force it into a register since we
-@@ -1288,6 +1287,24 @@ extract_bit_field_1 (rtx str_rtx, unsign
- 	    if (GET_CODE (op0) == SUBREG)
- 	      op0 = force_reg (imode, op0);
- 	  }
-+	else if (REG_P (op0))
-+	  {
-+	    rtx reg, subreg;
-+	    imode = smallest_mode_for_size (GET_MODE_BITSIZE (GET_MODE (op0)),
-+					    MODE_INT);
-+	    reg = gen_reg_rtx (imode);
-+	    subreg = gen_lowpart_SUBREG (GET_MODE (op0), reg);
-+	    emit_move_insn (subreg, op0);
-+	    op0 = reg;
-+	    bitnum += SUBREG_BYTE (subreg) * BITS_PER_UNIT;
-+	  }
-+	else
-+	  {
-+	    rtx mem = assign_stack_temp (GET_MODE (op0),
-+					 GET_MODE_SIZE (GET_MODE (op0)), 0);
-+	    emit_move_insn (mem, op0);
-+	    op0 = adjust_address (mem, BLKmode, 0);
-+	  }
-       }
-   }
- 
---- gcc/testsuite/gcc.target/i386/pr37870.c	(revision 0)
-+++ gcc/testsuite/gcc.target/i386/pr37870.c	(revision 141430)
-@@ -0,0 +1,29 @@
-+/* PR middle-end/37870 */
-+/* { dg-do run } */
-+/* { dg-options "-O2" } */
-+
-+unsigned int
-+foo (long double x)
-+{
-+  struct { char a[8]; unsigned int b:7; } c;
-+  __builtin_memcpy (&c, &x, sizeof (c));
-+  return c.b;
-+}
-+
-+unsigned int
-+bar (long double x)
-+{
-+  union { struct { char a[8]; unsigned int b:7; } c; long double d; } u;
-+  u.d = x;
-+  return u.c.b;
-+}
-+
-+int
-+main (void)
-+{
-+  if (foo (1.245L) != bar (1.245L)
-+      || foo (245.67L) != bar (245.67L)
-+      || foo (0.00567L) != bar (0.00567L))
-+    __builtin_abort ();
-+  return 0;
-+}

diff --git a/gcc43-pr37879.patch b/gcc43-pr37879.patch
deleted file mode 100644
index a6deb97..0000000
--- a/gcc43-pr37879.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-2008-10-27  Jakub Jelinek  <jakub@redhat.com>
-
-	PR tree-optimization/37879
-	* predict.c (tree_estimate_probability): Check if last_stmt is
-	non-NULL before dereferencing it.
-
-	* gcc.dg/pr37879.c: New test.
-
---- gcc/predict.c	(revision 141389)
-+++ gcc/predict.c	(revision 141390)
-@@ -1374,6 +1374,7 @@ tree_estimate_probability (void)
-     {
-       edge e;
-       edge_iterator ei;
-+      tree last;
- 
-       FOR_EACH_EDGE (e, ei, bb->succs)
- 	{
-@@ -1396,7 +1397,8 @@ tree_estimate_probability (void)
- 	      && e->dest != EXIT_BLOCK_PTR
- 	      && single_succ_p (e->dest)
- 	      && single_succ_edge (e->dest)->dest == EXIT_BLOCK_PTR
--	      && TREE_CODE (last_stmt (e->dest)) == RETURN_EXPR)
-+	      && (last = last_stmt (e->dest)) != NULL_TREE
-+	      && TREE_CODE (last) == RETURN_EXPR)
- 	    {
- 	      edge e1;
- 	      edge_iterator ei1;
---- gcc/testsuite/gcc.dg/pr37879.c	(revision 0)
-+++ gcc/testsuite/gcc.dg/pr37879.c	(revision 141390)
-@@ -0,0 +1,28 @@
-+/* PR tree-optimization/37879 */
-+/* { dg-do compile } */
-+/* { dg-options "-O2" } */
-+
-+static inline void bar (int) __attribute__ ((noreturn));
-+void baz () __attribute__ ((noreturn));
-+
-+inline int
-+foo (int i)
-+{
-+  return i;
-+}
-+
-+int i = 23;
-+static inline void
-+bar (int j)
-+{
-+  if (j)
-+    asm ("");
-+}		/* { dg-warning "does return" } */
-+
-+void
-+baz ()
-+{
-+  int j;
-+  bar (foo (j = i++));
-+  asm ("");
-+}

diff --git a/gcc43-pr37924.patch b/gcc43-pr37924.patch
deleted file mode 100644
index 62baac2..0000000
--- a/gcc43-pr37924.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-2008-10-28  Jakub Jelinek  <jakub@redhat.com>
-
-	PR c/37924
-	* combine.c (make_compound_operation): Don't call make_extraction with
-	non-positive length.
-	(simplify_shift_const_1): Canonicalize count even if complement_p.
-
-	* gcc.c-torture/execute/pr37924.c: New test.
-
---- gcc/combine.c	(revision 141412)
-+++ gcc/combine.c	(revision 141413)
-@@ -7024,7 +7024,8 @@ make_compound_operation (rtx x, enum rtx
-       if (GET_CODE (rhs) == CONST_INT
- 	  && GET_CODE (lhs) == ASHIFT
- 	  && GET_CODE (XEXP (lhs, 1)) == CONST_INT
--	  && INTVAL (rhs) >= INTVAL (XEXP (lhs, 1)))
-+	  && INTVAL (rhs) >= INTVAL (XEXP (lhs, 1))
-+	  && INTVAL (rhs) < mode_width)
- 	{
- 	  new = make_compound_operation (XEXP (lhs, 0), next_code);
- 	  new = make_extraction (mode, new,
-@@ -7044,6 +7045,7 @@ make_compound_operation (rtx x, enum rtx
- 		&& (OBJECT_P (SUBREG_REG (lhs))))
- 	  && GET_CODE (rhs) == CONST_INT
- 	  && INTVAL (rhs) < HOST_BITS_PER_WIDE_INT
-+	  && INTVAL (rhs) < mode_width
- 	  && (new = extract_left_shift (lhs, INTVAL (rhs))) != 0)
- 	new = make_extraction (mode, make_compound_operation (new, next_code),
- 			       0, NULL_RTX, mode_width - INTVAL (rhs),
-@@ -9023,11 +9025,6 @@ simplify_shift_const_1 (enum rtx_code co
-       if (GET_CODE (varop) == CLOBBER)
- 	return NULL_RTX;
- 
--      /* If we discovered we had to complement VAROP, leave.  Making a NOT
--	 here would cause an infinite loop.  */
--      if (complement_p)
--	break;
--
-       /* Convert ROTATERT to ROTATE.  */
-       if (code == ROTATERT)
- 	{
-@@ -9073,6 +9070,11 @@ simplify_shift_const_1 (enum rtx_code co
- 	    }
- 	}
- 
-+      /* If we discovered we had to complement VAROP, leave.  Making a NOT
-+	 here would cause an infinite loop.  */
-+      if (complement_p)
-+	break;
-+
-       /* An arithmetic right shift of a quantity known to be -1 or 0
- 	 is a no-op.  */
-       if (code == ASHIFTRT
---- gcc/testsuite/gcc.c-torture/execute/pr37924.c	(revision 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pr37924.c	(revision 141413)
-@@ -0,0 +1,50 @@
-+/* PR c/37924 */
-+
-+extern void abort (void);
-+
-+signed char a;
-+unsigned char b;
-+
-+int
-+test1 (void)
-+{
-+  int c = -1;
-+  return ((unsigned int) (a ^ c)) >> 9;
-+}
-+
-+int
-+test2 (void)
-+{
-+  int c = -1;
-+  return ((unsigned int) (b ^ c)) >> 9;
-+}
-+
-+int
-+main (void)
-+{
-+  a = 0;
-+  if (test1 () != (-1U >> 9))
-+    abort ();
-+  a = 0x40;
-+  if (test1 () != (-1U >> 9))
-+    abort ();
-+  a = 0x80;
-+  if (test1 () != (a < 0) ? 0 : (-1U >> 9))
-+    abort ();
-+  a = 0xff;
-+  if (test1 () != (a < 0) ? 0 : (-1U >> 9))
-+    abort ();
-+  b = 0;
-+  if (test2 () != (-1U >> 9))
-+    abort ();
-+  b = 0x40;
-+  if (test2 () != (-1U >> 9))
-+    abort ();
-+  b = 0x80;
-+  if (test2 () != (-1U >> 9))
-+    abort ();
-+  b = 0xff;
-+  if (test2 () != (-1U >> 9))
-+    abort ();
-+  return 0;
-+}

diff --git a/gcc43-rh251682.patch b/gcc43-rh251682.patch
deleted file mode 100644
index e96ae6f..0000000
--- a/gcc43-rh251682.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-2008-04-01  Jakub Jelinek  <jakub@redhat.com>
-
-	PR pch/13675
-	* files.c (struct _cpp_file): Remove pch field.
-	(pch_open_file): Don't set file->pch, just file->pchname.
-	(should_stack_file): After pfile->cb.read_pch call
-	free pchname and clear pchname, don't close file->fd.
-	Test file->pchname instead of file->pch.  Don't close fd after cb.
-	(_cpp_stack_include): Test file->pchname instead of file->pch.
-
-	* c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
-
---- libcpp/files.c.jj	2008-02-18 23:50:17.000000000 +0100
-+++ libcpp/files.c	2008-03-31 15:59:01.000000000 +0200
-@@ -106,9 +106,6 @@ struct _cpp_file
- 
-   /* If BUFFER above contains the true contents of the file.  */
-   bool buffer_valid;
--
--  /* File is a PCH (on return from find_include_file).  */
--  bool pch;
- };
- 
- /* A singly-linked list for all searches for a given file name, with
-@@ -322,9 +319,7 @@ pch_open_file (cpp_reader *pfile, _cpp_f
- 	    }
- 	  closedir (pchdir);
- 	}
--      if (valid)
--	file->pch = true;
--      else
-+      if (!valid)
- 	*invalid_pch = true;
-     }
- 
-@@ -703,11 +698,12 @@ should_stack_file (cpp_reader *pfile, _c
-     return false;
- 
-   /* Handle PCH files immediately; don't stack them.  */
--  if (file->pch)
-+  if (file->pchname)
-     {
-       pfile->cb.read_pch (pfile, file->pchname, file->fd, file->path);
--      close (file->fd);
-       file->fd = -1;
-+      free ((void *) file->pchname);
-+      file->pchname = NULL;
-       return false;
-     }
- 
-@@ -916,7 +912,7 @@ _cpp_stack_include (cpp_reader *pfile, c
-      complicates LAST_SOURCE_LINE_LOCATION.  This does not apply if we
-      found a PCH file (in which case linemap_add is not called) or we
-      were included from the command-line.  */
--  if (! file->pch && file->err_no == 0 && type != IT_CMDLINE)
-+  if (file->pchname == NULL && file->err_no == 0 && type != IT_CMDLINE)
-     pfile->line_table->highest_location--;
- 
-   return _cpp_stack_file (pfile, file, type == IT_IMPORT);
---- gcc/c-pch.c.jj	2008-02-18 23:46:08.000000000 +0100
-+++ gcc/c-pch.c	2008-03-31 15:56:00.000000000 +0200
-@@ -372,6 +372,7 @@ c_common_read_pch (cpp_reader *pfile, co
-   if (f == NULL)
-     {
-       cpp_errno (pfile, CPP_DL_ERROR, "calling fdopen");
-+      close (fd);
-       return;
-     }
- 
-@@ -380,6 +381,7 @@ c_common_read_pch (cpp_reader *pfile, co
-   if (fread (&h, sizeof (h), 1, f) != 1)
-     {
-       cpp_errno (pfile, CPP_DL_ERROR, "reading");
-+      fclose (f);
-       return;
-     }
- 
-@@ -425,7 +427,10 @@ c_common_read_pch (cpp_reader *pfile, co
-   gt_pch_restore (f);
- 
-   if (cpp_read_state (pfile, name, f, smd) != 0)
--    return;
-+    {
-+      fclose (f);
-+      return;
-+    }
- 
-   fclose (f);
- 

diff --git a/gcc43-rh330771.patch b/gcc43-rh330771.patch
deleted file mode 100644
index f52b919..0000000
--- a/gcc43-rh330771.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-2007-10-16  Jakub Jelinek  <jakub@redhat.com>
-
-	* Makefile.am (libgcj_tools_la_LIBADD): Add.
-	* Makefile.in: Regenerated.
-
---- libjava/Makefile.am.jj	2007-03-17 09:20:30.000000000 +0100
-+++ libjava/Makefile.am	2007-10-16 15:45:14.000000000 +0200
-@@ -277,6 +277,8 @@ EXTRA_libgcj_la_SOURCES = java/lang/Obje
- 
- libgcj_tools_la_SOURCES = classpath/tools/tools.zip
- libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS) -findirect-dispatch -fno-indirect-classes  -fsource-filename=$(here)/classpath/tools/all-classes.lst
-+## See jv_convert_LDADD.
-+libgcj_tools_la_LIBADD = -L$(here)/.libs libgcj.la
- libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \
-  -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
-  $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
---- libjava/Makefile.in.jj	2007-07-04 21:11:11.000000000 +0200
-+++ libjava/Makefile.in	2007-10-16 15:56:07.000000000 +0200
-@@ -153,7 +153,6 @@ am__objects_1 = gnu/gcj/xlib/lib_gnu_awt
- am_lib_gnu_awt_xlib_la_OBJECTS = $(am__objects_1)
- lib_gnu_awt_xlib_la_OBJECTS = $(am_lib_gnu_awt_xlib_la_OBJECTS)
- @XLIB_AWT_TRUE@am_lib_gnu_awt_xlib_la_rpath = -rpath $(toolexeclibdir)
--libgcj_tools_la_LIBADD =
- am_libgcj_tools_la_OBJECTS = classpath/tools/libgcj_tools_la-tools.lo
- libgcj_tools_la_OBJECTS = $(am_libgcj_tools_la_OBJECTS)
- @INTERPRETER_TRUE@am__DEPENDENCIES_1 = gnu/classpath/jdwp.lo \
-@@ -941,6 +940,7 @@ libgcj_la_LINK = $(LIBLINK)
- EXTRA_libgcj_la_SOURCES = java/lang/Object.java
- libgcj_tools_la_SOURCES = classpath/tools/tools.zip
- libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS) -findirect-dispatch -fno-indirect-classes  -fsource-filename=$(here)/classpath/tools/all-classes.lst
-+libgcj_tools_la_LIBADD = -L$(here)/.libs libgcj.la
- libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \
-  -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
-  $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)

diff --git a/gcc43-rh341221.patch b/gcc43-rh341221.patch
deleted file mode 100644
index 28e73b0..0000000
--- a/gcc43-rh341221.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-2007-10-21  Jakub Jelinek  <jakub@redhat.com>
-
-	* doc/Makefile.am (POD2MAN): Set date from cp-tools.texinfo
-	timestamp rather than from current date.
-	* doc/Makefile.in: Regenerated.
-
---- libjava/classpath/doc/Makefile.am.jj	2007-12-07 17:55:00.000000000 +0100
-+++ libjava/classpath/doc/Makefile.am	2007-12-07 18:55:28.000000000 +0100
-@@ -30,7 +30,7 @@ TOOLS_MANFILES = \
- 	gserialver.1 \
- 	gtnameserv.1
- 
--POD2MAN = pod2man --center="GNU" --release="$(VERSION)"
-+POD2MAN = pod2man --center="GNU" --release="$(VERSION)" --date="$(shell ls --time-style=+%F -l $(srcdir)/cp-tools.texinfo | awk '{print $$6}')"
- TEXI2POD = perl $(srcdir)/texi2pod.pl
- STAMP = echo timestamp >
- 
---- libjava/classpath/doc/Makefile.in.jj	2007-12-07 17:55:00.000000000 +0100
-+++ libjava/classpath/doc/Makefile.in	2007-12-07 18:55:43.000000000 +0100
-@@ -357,7 +357,7 @@ TOOLS_MANFILES = \
- 	gserialver.1 \
- 	gtnameserv.1
- 
--POD2MAN = pod2man --center="GNU" --release="$(VERSION)"
-+POD2MAN = pod2man --center="GNU" --release="$(VERSION)" --date="$(shell ls --time-style=+%F -l $(srcdir)/cp-tools.texinfo | awk '{print $$6}')"
- TEXI2POD = perl $(srcdir)/texi2pod.pl
- STAMP = echo timestamp >
- @GENINSRC_FALSE@STAMP_GENINSRC = 

diff --git a/gcc43-sparc-config-detection.patch b/gcc43-sparc-config-detection.patch
deleted file mode 100644
index 4ee95d4..0000000
--- a/gcc43-sparc-config-detection.patch
+++ /dev/null
@@ -1,40 +0,0 @@
---- gcc/config.gcc.jj	2008-04-24 15:42:46.000000000 -0500
-+++ gcc/config.gcc	2008-04-24 15:44:51.000000000 -0500
-@@ -2343,7 +2343,7 @@ sparc-*-elf*)
- 	extra_parts="crti.o crtn.o crtbegin.o crtend.o"
- 	use_fixproto=yes
- 	;;
--sparc-*-linux*)		# SPARC's running GNU/Linux, libc6
-+sparc-*-linux* | sparcv9*-*-linux*)		# SPARC's running GNU/Linux, libc6
- 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux.h"
- 	extra_options="${extra_options} sparc/long-double-switch.opt"
- 	tmake_file="${tmake_file} sparc/t-linux sparc/t-crtfm"
-@@ -2477,7 +2477,7 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd*
- 	esac
- 	need_64bit_hwint=yes
- 	;;
--sparc64-*-linux*)		# 64-bit SPARC's running GNU/Linux
-+sparc64*-*-linux*)		# 64-bit SPARC's running GNU/Linux
- 	tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux64.h"
- 	extra_options="${extra_options} sparc/long-double-switch.opt"
- 	tmake_file="${tmake_file} sparc/t-linux sparc/t-linux64 sparc/t-crtfm"
---- libgcc/config.host.jj	2008-04-24 15:46:19.000000000 -0500
-+++ libgcc/config.host	2008-04-24 15:46:49.000000000 -0500
-@@ -572,7 +572,7 @@ sparc64-*-openbsd*)
- 	;;
- sparc-*-elf*)
- 	;;
--sparc-*-linux*)		# SPARC's running GNU/Linux, libc6
-+sparc-*-linux* | sparcv9*-*-linux*)		# SPARC's running GNU/Linux, libc6
- 	extra_parts="$extra_parts crtfastmath.o"
- 	tmake_file="${tmake_file} sparc/t-crtfm"
- 	;;
-@@ -590,7 +590,7 @@ sparc-wrs-vxworks)
- 	;;
- sparc64-*-freebsd*|ultrasparc-*-freebsd*)
- 	;;
--sparc64-*-linux*)		# 64-bit SPARC's running GNU/Linux
-+sparc64*-*-linux*)		# 64-bit SPARC's running GNU/Linux
- 	extra_parts="$extra_parts crtfastmath.o"
- 	tmake_file="${tmake_file} sparc/t-crtfm"
- 	;;

diff --git a/gcc43-x86_64-va_start.patch b/gcc43-x86_64-va_start.patch
deleted file mode 100644
index efa06bc..0000000
--- a/gcc43-x86_64-va_start.patch
+++ /dev/null
@@ -1,355 +0,0 @@
-2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>
-	    Jakub Jelinek  <jakub@redhat.com>
-
-	* config/i386/i386.c (X86_64_VARARGS_SIZE): Removed.
-	(setup_incoming_varargs_64): Set/check ix86_varargs_gpr_size and
-	ix86_varargs_fpr_size.  Use ix86_varargs_gpr_size instead of
-	REGPARM_MAX.  Don't set ix86_save_varrargs_registers.
-	(ix86_va_start): Check ix86_varargs_gpr_size and
-	ix86_varargs_fpr_size instead of cfun->va_list_gpr_size and
-	cfun->va_list_fpr_size, respectively.  Subtract 8*REGPARM_MAX
-	from frame pointer if ix86_varargs_gpr_size == 0.
-	(ix86_compute_frame_layout): Updated.
-	* config/i386/i386.h (ix86_save_varrargs_registers): Removed.
-	(ix86_varargs_gpr_size): Define.
-	(ix86_varargs_fpr_size): Likewise.
-	(machine_function): Remove save_varrargs_registers.
-	Add varargs_gpr_size and varargs_fpr_size.
-
-	* gcc.target/i386/amd64-abi-3.c: New test.
-	* gcc.target/i386/amd64-abi-4.c: Likewise.
-	* gcc.target/i386/amd64-abi-5.c: Likewise.
-	* gcc.target/i386/amd64-abi-6.c: Likewise.
-
---- gcc/config/i386/i386.h	(revision 139909)
-+++ gcc/config/i386/i386.h	(revision 139910)
-@@ -2440,7 +2440,8 @@ struct machine_function GTY(())
-   struct stack_local_entry *stack_locals;
-   const char *some_ld_name;
-   rtx force_align_arg_pointer;
--  int save_varrargs_registers;
-+  int varargs_gpr_size;
-+  int varargs_fpr_size;
-   int accesses_prev_frame;
-   int optimize_mode_switching[MAX_386_ENTITIES];
-   int needs_cld;
-@@ -2463,7 +2464,8 @@ struct machine_function GTY(())
- };
- 
- #define ix86_stack_locals (cfun->machine->stack_locals)
--#define ix86_save_varrargs_registers (cfun->machine->save_varrargs_registers)
-+#define ix86_varargs_gpr_size (cfun->machine->varargs_gpr_size)
-+#define ix86_varargs_fpr_size (cfun->machine->varargs_fpr_size)
- #define ix86_optimize_mode_switching (cfun->machine->optimize_mode_switching)
- #define ix86_current_function_needs_cld (cfun->machine->needs_cld)
- #define ix86_tls_descriptor_calls_expanded_in_cfun \
---- gcc/config/i386/i386.c	(revision 139909)
-+++ gcc/config/i386/i386.c	(revision 139910)
-@@ -1616,9 +1616,6 @@ rtx ix86_compare_op0 = NULL_RTX;
- rtx ix86_compare_op1 = NULL_RTX;
- rtx ix86_compare_emitted = NULL_RTX;
- 
--/* Size of the register save area.  */
--#define X86_64_VARARGS_SIZE (REGPARM_MAX * UNITS_PER_WORD + SSE_REGPARM_MAX * 16)
--
- /* Define the structure for the machine field in struct function.  */
- 
- struct stack_local_entry GTY(())
-@@ -4976,11 +4973,22 @@ setup_incoming_varargs_64 (CUMULATIVE_AR
-   alias_set_type set;
-   int i;
- 
--  if (! cfun->va_list_gpr_size && ! cfun->va_list_fpr_size)
-+  /* GPR size of varargs save area.  */
-+  if (cfun->va_list_gpr_size)
-+    ix86_varargs_gpr_size = REGPARM_MAX * UNITS_PER_WORD;
-+  else
-+    ix86_varargs_gpr_size = 0;
-+
-+  /* FPR size of varargs save area.  We don't need it if we don't pass
-+     anything in SSE registers.  */
-+  if (cum->sse_nregs && cfun->va_list_fpr_size)
-+    ix86_varargs_fpr_size = SSE_REGPARM_MAX * 16;
-+  else
-+    ix86_varargs_fpr_size = 0;
-+
-+  if (! ix86_varargs_gpr_size && ! ix86_varargs_fpr_size)
-     return;
- 
--  /* Indicate to allocate space on the stack for varargs save area.  */
--  ix86_save_varrargs_registers = 1;
-   /* We need 16-byte stack alignment to save SSE registers.  If user
-      asked for lower preferred_stack_boundary, lets just hope that he knows
-      what he is doing and won't varargs SSE values.
-@@ -5006,7 +5014,7 @@ setup_incoming_varargs_64 (CUMULATIVE_AR
- 					x86_64_int_parameter_registers[i]));
-     }
- 
--  if (cum->sse_nregs && cfun->va_list_fpr_size)
-+  if (ix86_varargs_fpr_size)
-     {
-       /* Now emit code to save SSE registers.  The AX parameter contains number
- 	 of SSE parameter registers used to call this function.  We use
-@@ -5041,7 +5049,7 @@ setup_incoming_varargs_64 (CUMULATIVE_AR
-       tmp_reg = gen_reg_rtx (Pmode);
-       emit_insn (gen_rtx_SET (VOIDmode, tmp_reg,
- 			      plus_constant (save_area,
--					     8 * REGPARM_MAX + 127)));
-+					     ix86_varargs_gpr_size + 127)));
-       mem = gen_rtx_MEM (BLKmode, plus_constant (tmp_reg, -127));
-       MEM_NOTRAP_P (mem) = 1;
-       set_mem_alias_set (mem, set);
-@@ -5145,7 +5153,7 @@ ix86_va_start (tree valist, rtx nextarg)
-       expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
-     }
- 
--  if (cfun->va_list_fpr_size)
-+  if (TARGET_SSE && cfun->va_list_fpr_size)
-     {
-       type = TREE_TYPE (fpr);
-       t = build2 (GIMPLE_MODIFY_STMT, type, fpr,
-@@ -5164,12 +5172,15 @@ ix86_va_start (tree valist, rtx nextarg)
-   TREE_SIDE_EFFECTS (t) = 1;
-   expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
- 
--  if (cfun->va_list_gpr_size || cfun->va_list_fpr_size)
-+  if (ix86_varargs_gpr_size || ix86_varargs_fpr_size)
-     {
-       /* Find the register save area.
- 	 Prologue of the function save it right above stack frame.  */
-       type = TREE_TYPE (sav);
-       t = make_tree (type, frame_pointer_rtx);
-+      if (!ix86_varargs_gpr_size)
-+	t = build2 (POINTER_PLUS_EXPR, type, t,
-+		    size_int (-8 * REGPARM_MAX));
-       t = build2 (GIMPLE_MODIFY_STMT, type, sav, t);
-       TREE_SIDE_EFFECTS (t) = 1;
-       expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
-@@ -6079,13 +6090,8 @@ ix86_compute_frame_layout (struct ix86_f
-   offset += frame->nregs * UNITS_PER_WORD;
- 
-   /* Va-arg area */
--  if (ix86_save_varrargs_registers)
--    {
--      offset += X86_64_VARARGS_SIZE;
--      frame->va_arg_size = X86_64_VARARGS_SIZE;
--    }
--  else
--    frame->va_arg_size = 0;
-+  frame->va_arg_size = ix86_varargs_gpr_size + ix86_varargs_fpr_size;
-+  offset += frame->va_arg_size;
- 
-   /* Align start of frame for local function.  */
-   frame->padding1 = ((offset + stack_alignment_needed - 1)
---- gcc/testsuite/gcc.target/i386/amd64-abi-3.c	(revision 0)
-+++ gcc/testsuite/gcc.target/i386/amd64-abi-3.c	(revision 139910)
-@@ -0,0 +1,18 @@
-+/* { dg-do compile } */
-+/* { dg-require-effective-target lp64 } */
-+/* { dg-options "-O2 -mno-sse" } */
-+/* { dg-final { scan-assembler "subq\[\\t \]*\\\$88,\[\\t \]*%rsp" } } */
-+/* { dg-final { scan-assembler-not "subq\[\\t \]*\\\$216,\[\\t \]*%rsp" } } */
-+
-+#include <stdarg.h>
-+
-+void foo (va_list va_arglist);
-+
-+void
-+test (int a1, ...)
-+{
-+  va_list va_arglist;
-+  va_start (va_arglist, a1);
-+  foo (va_arglist);
-+  va_end (va_arglist);
-+}
---- gcc/testsuite/gcc.target/i386/amd64-abi-5.c	(revision 0)
-+++ gcc/testsuite/gcc.target/i386/amd64-abi-5.c	(revision 139910)
-@@ -0,0 +1,64 @@
-+/* { dg-do run } */
-+/* { dg-require-effective-target lp64 } */
-+/* { dg-options "-O2" } */
-+
-+#include <stdarg.h>
-+#include <assert.h>
-+
-+int n1 = 30;
-+double n2 = 324;
-+double n3 = 39494.94;
-+double n4 = 407;
-+double n5 = 32.304;
-+double n6 = 394.14;
-+double n7 = 4.07;
-+double n8 = 32.4;
-+double n9 = 314.194;
-+double n10 = 0.1407;
-+
-+int e1;
-+double e2;
-+double e3;
-+double e4;
-+double e5;
-+double e6;
-+double e7;
-+double e8;
-+double e9;
-+double e10;
-+
-+static void
-+__attribute__((noinline))
-+test (int a1, ...)
-+{
-+  e1 = a1;
-+  va_list va_arglist;
-+  va_start (va_arglist, a1);
-+  e2 = va_arg (va_arglist, double);
-+  e3 = va_arg (va_arglist, double);
-+  e4 = va_arg (va_arglist, double);
-+  e5 = va_arg (va_arglist, double);
-+  e6 = va_arg (va_arglist, double);
-+  e7 = va_arg (va_arglist, double);
-+  e8 = va_arg (va_arglist, double);
-+  e9 = va_arg (va_arglist, double);
-+  e10 = va_arg (va_arglist, double);
-+  va_end (va_arglist);
-+}
-+
-+int
-+main ()
-+{
-+  test (n1, n2, n3, n4, n5, n6, n7, n8, n9, n10);
-+  assert (n1 == e1);
-+  assert (n2 == e2);
-+  assert (n3 == e3);
-+  assert (n4 == e4);
-+  assert (n5 == e5);
-+  assert (n6 == e6);
-+  assert (n7 == e7);
-+  assert (n8 == e8);
-+  assert (n9 == e9);
-+  assert (n10 == e10);
-+  return 0;
-+}
---- gcc/testsuite/gcc.target/i386/amd64-abi-4.c	(revision 0)
-+++ gcc/testsuite/gcc.target/i386/amd64-abi-4.c	(revision 139910)
-@@ -0,0 +1,47 @@
-+/* { dg-do run } */
-+/* { dg-require-effective-target lp64 } */
-+/* { dg-options "-O2 -mno-sse" } */
-+
-+#include <stdarg.h>
-+#include <assert.h>
-+
-+int n1 = 30;
-+int n2 = 324;
-+void *n3 = (void *) &n2;
-+int n4 = 407;
-+
-+int e1;
-+int e2;
-+void *e3;
-+int e4;
-+
-+static void
-+__attribute__((noinline))
-+foo (va_list va_arglist)
-+{
-+  e2 = va_arg (va_arglist, int);
-+  e3 = va_arg (va_arglist, void *);
-+  e4 = va_arg (va_arglist, int);
-+}
-+
-+static void
-+__attribute__((noinline))
-+test (int a1, ...)
-+{
-+  e1 = a1;
-+  va_list va_arglist;
-+  va_start (va_arglist, a1);
-+  foo (va_arglist);
-+  va_end (va_arglist);
-+}
-+
-+int
-+main ()
-+{
-+  test (n1, n2, n3, n4);
-+  assert (n1 == e1);
-+  assert (n2 == e2);
-+  assert (n3 == e3);
-+  assert (n4 == e4);
-+  return 0;
-+}
---- gcc/testsuite/gcc.target/i386/amd64-abi-6.c	(revision 0)
-+++ gcc/testsuite/gcc.target/i386/amd64-abi-6.c	(revision 139910)
-@@ -0,0 +1,71 @@
-+/* { dg-do run } */
-+/* { dg-require-effective-target lp64 } */
-+/* { dg-options "-O2" } */
-+
-+#include <stdarg.h>
-+#include <assert.h>
-+
-+int n1 = 30;
-+double n2 = 324;
-+double n3 = 39494.94;
-+double n4 = 407;
-+double n5 = 32.304;
-+double n6 = 394.14;
-+double n7 = 4.07;
-+double n8 = 32.4;
-+double n9 = 314.194;
-+double n10 = 0.1407;
-+
-+int e1;
-+double e2;
-+double e3;
-+double e4;
-+double e5;
-+double e6;
-+double e7;
-+double e8;
-+double e9;
-+double e10;
-+
-+static void
-+__attribute__((noinline))
-+foo (va_list va_arglist)
-+{
-+  e2 = va_arg (va_arglist, double);
-+  e3 = va_arg (va_arglist, double);
-+  e4 = va_arg (va_arglist, double);
-+  e5 = va_arg (va_arglist, double);
-+  e6 = va_arg (va_arglist, double);
-+  e7 = va_arg (va_arglist, double);
-+  e8 = va_arg (va_arglist, double);
-+  e9 = va_arg (va_arglist, double);
-+  e10 = va_arg (va_arglist, double);
-+}
-+
-+static void
-+__attribute__((noinline))
-+test (int a1, ...)
-+{
-+  va_list va_arglist;
-+  e1 = a1;
-+  va_start (va_arglist, a1);
-+  foo (va_arglist);
-+  va_end (va_arglist);
-+}
-+
-+int
-+main ()
-+{
-+  test (n1, n2, n3, n4, n5, n6, n7, n8, n9, n10);
-+  assert (n1 == e1);
-+  assert (n2 == e2);
-+  assert (n3 == e3);
-+  assert (n4 == e4);
-+  assert (n5 == e5);
-+  assert (n6 == e6);
-+  assert (n7 == e7);
-+  assert (n8 == e8);
-+  assert (n9 == e9);
-+  assert (n10 == e10);
-+  return 0;
-+}

diff --git a/gcc43.spec b/gcc43.spec
deleted file mode 100644
index 97a3e01..0000000
--- a/gcc43.spec
+++ /dev/null
@@ -1,2058 +0,0 @@
-%define DATE 20081105
-%define SVNREV 141601
-%define gcc_version 4.3.2
-# Note, gcc_release must be integer, if you want to add suffixes to
-# %{release}, append them after %{gcc_release} on Release: line.
-%define gcc_release 7
-%define _unpackaged_files_terminate_build 0
-%define multilib_64_archs sparc64 ppc64 s390x x86_64
-%define include_gappletviewer 1
-%ifarch %{ix86} x86_64 ia64 ppc alpha
-%define build_ada 1
-%else
-%define build_ada 0
-%endif
-%define build_java 1
-# If you don't have already a usable gcc-java and libgcj for your arch,
-# do on some arch which has it rpmbuild -bc --with java_tar gcc41.spec
-# which creates libjava-classes-%{version}-%{release}.tar.bz2
-# With this then on the new arch do rpmbuild -ba -v --with java_bootstrap gcc41.spec
-%define bootstrap_java %{?_with_java_bootstrap:%{build_java}}%{!?_with_java_bootstrap:0}
-%define build_java_tar %{?_with_java_tar:%{build_java}}%{!?_with_java_tar:0}
-%ifarch s390x
-%define multilib_32_arch s390
-%endif
-%ifarch sparc64
-%define multilib_32_arch sparcv9
-%endif
-%ifarch ppc64
-%define multilib_32_arch ppc
-%endif
-%ifarch x86_64
-%define multilib_32_arch i386
-%endif
-Summary: Various compilers (C, C++, Objective-C, Java, ...)
-Name: gcc
-Version: %{gcc_version}
-Release: %{gcc_release}
-# libgcc, libgfortran, libmudflap and crtstuff have an exception which allows
-# linking it into any kind of programs or shared libraries without
-# restrictions.
-License: GPLv3+ and GPLv2+ with exceptions
-Group: Development/Languages
-# The source for this package was pulled from upstream's vcs.  Use the
-# following commands to generate the tarball:
-# svn export svn://gcc.gnu.org/svn/gcc/branches/redhat/gcc-4_3-branch@%{SVNREV} gcc-%{version}-%{DATE}
-# tar cf - gcc-%{version}-%{DATE} | bzip2 -9 > gcc-%{version}-%{DATE}.tar.bz2
-Source0: gcc-%{version}-%{DATE}.tar.bz2
-Source1: libgcc_post_upgrade.c
-Source2: README.libgcjwebplugin.so
-Source3: protoize.1
-%define fastjar_ver 0.95
-Source4: http://download.savannah.nongnu.org/releases/fastjar/fastjar-%{fastjar_ver}.tar.gz
-URL: http://gcc.gnu.org
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-# Need binutils with -pie support >= 2.14.90.0.4-4
-# Need binutils which can omit dot symbols and overlap .opd on ppc64 >= 2.15.91.0.2-4
-# Need binutils which handle -msecure-plt on ppc >= 2.16.91.0.2-2
-# Need binutils which support .weakref >= 2.16.91.0.3-1
-# Need binutils which support --hash-style=gnu >= 2.17.50.0.2-7
-# Need binutils which support mffgpr and mftgpr >= 2.17.50.0.2-8
-# Need binutils which support --build-id >= 2.17.50.0.17-3
-BuildRequires: binutils >= 2.17.50.0.17-3
-BuildRequires: zlib-devel, gettext, dejagnu, bison, flex, texinfo, sharutils
-%if %{build_java}
-BuildRequires: /usr/share/java/eclipse-ecj.jar, zip, unzip
-%if %{bootstrap_java}
-Source10: libjava-classes-%{version}-%{release}.tar.bz2
-%else
-BuildRequires: gcc-java, libgcj
-%endif
-%endif
-# Make sure pthread.h doesn't contain __thread tokens
-# Make sure glibc supports stack protector
-# Make sure glibc supports DT_GNU_HASH
-BuildRequires: glibc-devel >= 2.4.90-13
-BuildRequires: elfutils-devel >= 0.72
-%ifarch ppc ppc64 s390 s390x sparc sparcv9 alpha
-# Make sure glibc supports TFmode long double
-BuildRequires: glibc >= 2.3.90-35
-%endif
-%ifarch %{multilib_64_archs} sparcv9 ppc
-# Ensure glibc{,-devel} is installed for both multilib arches
-BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so
-%endif
-%if %{build_ada}
-# Ada requires Ada to build
-BuildRequires: gcc-gnat >= 3.1, libgnat >= 3.1
-%endif
-%ifarch ia64
-BuildRequires: libunwind >= 0.98
-%endif
-Requires: cpp = %{version}-%{release}
-# Need .eh_frame ld optimizations
-# Need proper visibility support
-# Need -pie support
-# Need --as-needed/--no-as-needed support
-# On ppc64, need omit dot symbols support and --non-overlapping-opd
-# Need binutils that owns /usr/bin/c++filt
-# Need binutils that support .weakref
-# Need binutils that supports --hash-style=gnu
-# Need binutils that support mffgpr/mftgpr
-# Need binutils that support --build-id
-Requires: binutils >= 2.17.50.0.17-3
-# Make sure gdb will understand DW_FORM_strp
-Conflicts: gdb < 5.1-2
-Requires: glibc-devel >= 2.2.90-12
-%ifarch ppc ppc64 s390 s390x sparc sparcv9 alpha
-# Make sure glibc supports TFmode long double
-Requires: glibc >= 2.3.90-35
-%endif
-Requires: libgcc >= %{version}-%{release}
-Requires: libgomp = %{version}-%{release}
-#Obsoletes: gcc3
-#Obsoletes: egcs
-%ifarch sparc
-#Obsoletes: gcc-sparc32
-#Obsoletes: gcc-c++-sparc32
-%endif
-%ifarch ppc
-#Obsoletes: gcc-ppc32
-#Obsoletes: gcc-c++-ppc32
-%endif
-#Obsoletes: gcc-chill
-%if !%{build_ada}
-Obsoletes: gcc-gnat < %{version}-%{release}
-Obsoletes: libgnat < %{version}-%{release}
-%endif
-%ifarch sparc sparc64
-#Obsoletes: egcs64
-%endif
-#Obsoletes: gcc34
-#Obsoletes: gcc35
-#Obsoletes: gcc4
-Prereq: /sbin/install-info
-AutoReq: true
-
-Patch1: gcc43-build-id.patch
-Patch2: gcc43-c++-builtin-redecl.patch
-Patch3: gcc43-ia64-libunwind.patch
-Patch4: gcc43-java-nomulti.patch
-Patch5: gcc43-ppc32-retaddr.patch
-Patch6: gcc43-ppc64-ia64-GNU-stack.patch
-Patch7: gcc43-pr27898.patch
-Patch8: gcc43-pr32139.patch
-Patch9: gcc43-pr33763.patch
-Patch10: gcc43-rh330771.patch
-Patch11: gcc43-rh341221.patch
-Patch12: gcc43-java-debug-iface-type.patch
-Patch13: gcc43-i386-libgomp.patch
-Patch14: gcc43-rh251682.patch
-Patch15: gcc43-sparc-config-detection.patch
-Patch16: gcc43-libgomp-omp_h-multilib.patch
-Patch17: gcc43-x86_64-va_start.patch
-Patch18: gcc43-pr37189.patch
-Patch19: gcc43-altivec-tests.patch
-Patch20: gcc43-libtool-no-rpath.patch
-Patch21: gcc43-pr36741-revert.patch
-Patch22: gcc43-pr34037.patch
-Patch23: gcc43-pr37738.patch
-Patch24: gcc43-pr29609.patch
-Patch25: gcc43-aes.patch
-Patch26: gcc43-pr29609-2.patch
-Patch27: gcc43-pr29609-3.patch
-Patch28: gcc43-pr37870.patch
-Patch29: gcc43-pr37858.patch
-Patch30: gcc43-pr37879.patch
-Patch31: gcc43-pr37924.patch
-
-# On ARM EABI systems, we do want -gnueabi to be part of the
-# target triple.
-%ifnarch %{arm}
-%define _gnu %{nil}
-%endif
-%ifarch sparcv9
-%define gcc_target_platform sparc64-%{_vendor}-%{_target_os}
-%endif
-%ifarch ppc
-%define gcc_target_platform ppc64-%{_vendor}-%{_target_os}
-%endif
-%ifnarch sparcv9 ppc
-%define gcc_target_platform %{_target_platform}
-%endif
-
-%description
-The gcc package contains the GNU Compiler Collection version 4.3.
-You'll need this package in order to compile C code.
-
-%package -n libgcc
-Summary: GCC version 4.3 shared support library
-Group: System Environment/Libraries
-Autoreq: false
-
-%description -n libgcc
-This package contains GCC shared support library which is needed
-e.g. for exception handling support.
-
-%package c++
-Summary: C++ support for GCC
-Group: Development/Languages
-Requires: gcc = %{version}-%{release}
-Requires: libstdc++ = %{version}-%{release}
-Requires: libstdc++-devel = %{version}-%{release}
-#Obsoletes: gcc3-c++
-#Obsoletes: gcc34-c++
-#Obsoletes: gcc35-c++
-#Obsoletes: gcc4-c++
-Autoreq: true
-
-%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.
-
-%package -n libstdc++
-Summary: GNU Standard C++ Library
-Group: System Environment/Libraries
-#Obsoletes: libstdc++3
-#Obsoletes: libstdc++34
-Autoreq: true
-
-%description -n libstdc++
-The libstdc++ package contains a rewritten standard compliant GCC Standard
-C++ Library.
-
-%package -n libstdc++-devel
-Summary: Header files and libraries for C++ development
-Group: Development/Libraries
-Requires: libstdc++ = %{version}-%{release}, %{_prefix}/%{_lib}/libstdc++.so.6
-#Obsoletes: libstdc++3-devel
-#Obsoletes: libstdc++34-devel
-Autoreq: true
-
-%description -n libstdc++-devel
-This is the GNU implementation of the standard C++ libraries.  This
-package includes the header files and libraries needed for C++
-development. This includes rewritten implementation of STL.
-
-%package objc
-Summary: Objective-C support for GCC
-Group: Development/Languages
-Requires: gcc = %{version}-%{release}
-Requires: libobjc = %{version}-%{release}
-#Obsoletes: gcc3-objc
-Autoreq: true
-
-%description objc
-gcc-objc provides Objective-C support for the GCC.
-Mainly used on systems running NeXTSTEP, Objective-C is an
-object-oriented derivative of the C language.
-
-%package objc++
-Summary: Objective-C++ support for GCC
-Group: Development/Languages
-Requires: gcc-c++ = %{version}-%{release}, gcc-objc = %{version}-%{release}
-Autoreq: true
-
-%description objc++
-gcc-objc++ package provides Objective-C++ support for the GCC.
-
-%package -n libobjc
-Summary: Objective-C runtime
-Group: System Environment/Libraries
-Autoreq: true
-
-%description -n libobjc
-This package contains Objective-C shared library which is needed to run
-Objective-C dynamically linked programs.
-
-%package gfortran
-Summary: Fortran 95 support
-Group: Development/Languages
-Requires: gcc = %{version}-%{release}
-Requires: libgfortran = %{version}-%{release}
-BuildRequires: gmp-devel >= 4.1.2-8, mpfr-devel >= 2.2.1
-Prereq: /sbin/install-info
-#Obsoletes: gcc3-g77
-#Obsoletes: gcc-g77
-#Obsoletes: gcc4-gfortran
-Autoreq: true
-
-%description gfortran
-The gcc-gfortran package provides support for compiling Fortran 95
-programs with the GNU Compiler Collection.
-
-%package -n libgfortran
-Summary: Fortran 95 runtime
-Group: System Environment/Libraries
-#Obsoletes: libf2c
-Autoreq: true
-
-%description -n libgfortran
-This package contains Fortran 95 shared library which is needed to run
-Fortran 95 dynamically linked programs.
-
-%package -n libgomp
-Summary: GCC OpenMP v3.0 shared support library
-Group: System Environment/Libraries
-Prereq: /sbin/install-info
-
-%description -n libgomp
-This package contains GCC shared support library which is needed
-for OpenMP v3.0 support.
-
-%package -n libmudflap
-Summary: GCC mudflap shared support library
-Group: System Environment/Libraries
-
-%description -n libmudflap
-This package contains GCC shared support library which is needed
-for mudflap support.
-
-%package -n libmudflap-devel
-Summary: GCC mudflap support
-Group: Development/Libraries
-Requires: libmudflap = %{version}-%{release}
-Requires: gcc = %{version}-%{release}
-
-%description -n libmudflap-devel
-This package contains headers and static libraries for building
-mudflap-instrumented programs.
-
-To instrument a non-threaded program, add -fmudflap
-option to GCC and when linking add -lmudflap, for threaded programs
-also add -fmudflapth and -lmudflapth.
-
-%package java
-Summary: Java support for GCC
-Group: Development/Languages
-Requires: gcc = %{version}-%{release}
-Requires: libgcj = %{version}-%{release}
-Requires: libgcj-devel = %{version}-%{release}
-Requires: /usr/share/java/eclipse-ecj.jar
-#Obsoletes: gcc3-java
-#Obsoletes: gcc34-java
-#Obsoletes: gcc35-java
-#Obsoletes: gcc4-java
-Prereq: /sbin/install-info
-Autoreq: true
-
-%description java
-This package adds support for compiling Java(tm) programs and
-bytecode into native code.
-
-%package -n libgcj
-Summary: Java runtime library for gcc
-Group: System Environment/Libraries
-Prereq: /sbin/install-info
-Requires: zip >= 2.1
-Requires: gtk2 >= 2.4.0
-Requires: glib2 >= 2.4.0
-Requires: libart_lgpl >= 2.1.0
-%if %{build_java}
-BuildRequires: gtk2-devel >= 2.4.0
-BuildRequires: glib2-devel >= 2.4.0
-BuildRequires: xulrunner-devel
-BuildRequires: libart_lgpl-devel >= 2.1.0
-BuildRequires: alsa-lib-devel
-BuildRequires: libXtst-devel
-BuildRequires: libXt-devel
-%endif
-#Obsoletes: gcc-libgcj
-#Obsoletes: libgcj3
-#Obsoletes: libgcj34
-#Obsoletes: libgcj4
-Autoreq: true
-
-%description -n libgcj
-The Java(tm) runtime library. You will need this package to run your Java
-programs compiled using the Java compiler from GNU Compiler Collection (gcj).
-
-%package -n libgcj-devel
-Summary: Libraries for Java development using GCC
-Group: Development/Languages
-Requires: libgcj = %{version}-%{release}, %{_prefix}/%{_lib}/libgcj.so.9
-Requires: zlib-devel, %{_prefix}/%{_lib}/libz.so
-Requires: /bin/awk
-#Obsoletes: libgcj3-devel
-#Obsoletes: libgcj34-devel
-#Obsoletes: libgcj4-devel
-Autoreq: false
-Autoprov: false
-
-%description -n libgcj-devel
-The Java(tm) static libraries and C header files. You will need this
-package to compile your Java programs using the GCC Java compiler (gcj).
-
-%package -n libgcj-src
-Summary: Java library sources from GCC4 preview
-Group: System Environment/Libraries
-Requires: libgcj = %{version}-%{release}
-#Obsoletes: libgcj4-src
-Autoreq: true
-
-%description -n libgcj-src
-The Java(tm) runtime library sources for use in Eclipse.
-
-%package -n cpp
-Summary: The C Preprocessor
-Group: Development/Languages
-Prereq: /sbin/install-info
-%ifarch ia64
-#Obsoletes: gnupro
-%endif
-Autoreq: true
-
-%description -n cpp
-Cpp is the GNU C-Compatible Compiler Preprocessor.
-Cpp is a macro processor which is used automatically
-by the C compiler to transform your program before actual
-compilation. It is called a macro processor because it allows
-you to define macros, abbreviations for longer
-constructs.
-
-The C preprocessor provides four separate functionalities: the
-inclusion of header files (files of declarations that can be
-substituted into your program); macro expansion (you can define macros,
-and the C preprocessor will replace the macros with their definitions
-throughout the program); conditional compilation (using special
-preprocessing directives, you can include or exclude parts of the
-program according to various conditions); and line control (if you use
-a program to combine or rearrange source files into an intermediate
-file which is then compiled, you can use line control to inform the
-compiler about where each source line originated).
-
-You should install this package if you are a C programmer and you use
-macros.
-
-%package gnat
-Summary: Ada 95 support for GCC
-Group: Development/Languages
-Requires: gcc = %{version}-%{release}, libgnat = %{version}-%{release}
-#Obsoletes: gnat-devel, gcc3-gnat
-Prereq: /sbin/install-info
-Autoreq: true
-
-%description gnat
-GNAT is a GNU Ada 95 front-end to GCC. This package includes development tools,
-the documents and Ada 95 compiler.
-
-%package -n libgnat
-Summary: GNU Ada 95 runtime shared libraries
-Group: System Environment/Libraries
-#Obsoletes: gnat libgnat3
-Autoreq: true
-
-%description -n libgnat
-GNAT is a GNU Ada 95 front-end to GCC. This package includes shared libraries,
-which are required to run programs compiled with the GNAT.
-
-%prep
-%setup -q -n gcc-%{version}-%{DATE}
-%patch1 -p0 -b .build-id~
-%patch2 -p0 -b .c++-builtin-redecl~
-%patch3 -p0 -b .ia64-libunwind~
-%patch4 -p0 -b .java-nomulti~
-%patch5 -p0 -b .ppc32-retaddr~
-%patch6 -p0 -b .ppc64-ia64-GNU-stack~
-%patch7 -p0 -b .pr27898~
-%patch8 -p0 -b .pr32139~
-%patch9 -p0 -b .pr33763~
-%patch10 -p0 -b .rh330771~
-%patch11 -p0 -b .rh341221~
-%patch12 -p0 -b .java-debug-iface-type~
-%patch13 -p0 -b .i386-libgomp~
-%patch14 -p0 -b .rh251682~
-%patch15 -p0 -b .sparc-config-detection~
-%patch16 -p0 -b .libgomp-omp_h-multilib~
-%patch17 -p0 -b .x86_64-va_start~
-%patch18 -p0 -b .pr37189~
-%patch19 -p0 -b .altivec-tests~
-%patch20 -p0 -b .libtool-no-rpath~
-%patch21 -p0 -b .pr36741-revert~
-%patch22 -p0 -b .pr34037~
-%patch23 -p0 -b .pr37738~
-%patch24 -p0 -b .pr29609~
-%patch25 -p0 -b .aes~
-%patch26 -p0 -b .pr29609-2~
-%patch27 -p0 -b .pr29609-3~
-%patch28 -p0 -b .pr37870~
-%patch29 -p0 -b .pr37858~
-%patch30 -p0 -b .pr37879~
-%patch31 -p0 -b .pr37924~
-
-tar xzf %{SOURCE4}
-
-%if %{bootstrap_java}
-tar xjf %{SOURCE10}
-%endif
-
-sed -i -e 's/4\.3\.3/4.3.2/' gcc/BASE-VER
-echo 'Red Hat %{version}-%{gcc_release}' > gcc/DEV-PHASE
-
-cp -a libstdc++-v3/config/cpu/i{4,3}86/atomicity.h
-
-# Hack to avoid building multilib libjava
-perl -pi -e 's/^all: all-redirect/ifeq (\$(MULTISUBDIR),)\nall: all-redirect\nelse\nall:\n\techo Multilib libjava build disabled\nendif/' libjava/Makefile.in
-perl -pi -e 's/^install: install-redirect/ifeq (\$(MULTISUBDIR),)\ninstall: install-redirect\nelse\ninstall:\n\techo Multilib libjava install disabled\nendif/' libjava/Makefile.in
-perl -pi -e 's/^check: check-redirect/ifeq (\$(MULTISUBDIR),)\ncheck: check-redirect\nelse\ncheck:\n\techo Multilib libjava check disabled\nendif/' libjava/Makefile.in
-perl -pi -e 's/^all: all-recursive/ifeq (\$(MULTISUBDIR),)\nall: all-recursive\nelse\nall:\n\techo Multilib libjava build disabled\nendif/' libjava/Makefile.in
-perl -pi -e 's/^install: install-recursive/ifeq (\$(MULTISUBDIR),)\ninstall: install-recursive\nelse\ninstall:\n\techo Multilib libjava install disabled\nendif/' libjava/Makefile.in
-perl -pi -e 's/^check: check-recursive/ifeq (\$(MULTISUBDIR),)\ncheck: check-recursive\nelse\ncheck:\n\techo Multilib libjava check disabled\nendif/' libjava/Makefile.in
-
-./contrib/gcc_update --touch
-
-# To make rpmlint happy (argh), fix up names in ChangeLog entries to valid UTF-8
-LC_ALL=C sed -i \
-  -e 's/D\(o\|\xf6\)nmez/D\xc3\xb6nmez/' \
-  -e 's/\(Av\|\x81\xc1v\|\xc1v\|\xef\xbf\xbdv\?\|\x81\xc3\x81v\|\xc3v\)ila/\xc3\x81vila/' \
-  -e 's/Esp\(in\|\x81\xedn\|\xedn\|\xef\xbf\xbdn\?\|\xef\xbf\xbd\xadn\|\x81\xc3\xadn\|\xc3\xef\xbf\xbd\xadn\)dola/Esp\xc3\xadndola/' \
-  -e 's/Schl\(u\|\xef\xbf\xbd\|\xfcu\?\|\x81\xfc\|\x81\xc3\xbc\|\xc3\xaf\xc2\xbf\xc2\xbd\|\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xc2\xbc\)ter/Schl\xc3\xbcter/' \
-  -e 's/Humi\(e\|\xe8\)res/Humi\xc3\xa8res/' \
-  -e 's/L\(ow\|\xc3\xaf\xc2\xbf\xc2\xbd\|oew\|\xf6w\)is/L\xc3\xb6wis/' \
-  -e 's/G\xfctlein/G\xc3\xbctlein/' \
-  -e 's/G\xe1[b]or/G\xc3\xa1bor/' \
-  -e 's/L\xf3ki/L\xc3\xb3ki/' \
-  -e 's/Fautr\xc3 /Fautr\xc3\xa9 /' \
-  -e 's/S\xe9[b]astian/S\xc3\xa9bastian/' \
-  -e 's/Th\xef\xbf\xbd[d]ore/Th\xc3\xa9odore/' \
-  -e 's/Cors\xc3\xc2\xa9pius/Cors\xc3\xa9pius/' \
-  -e 's/K\xfchl/K\xc3\xbchl/' \
-  -e 's/R\xf6nnerup/R\xc3\xb6nnerup/' \
-  -e 's/L\xf8vset/L\xc3\xb8vset/' \
-  -e 's/Ph\x81\xfb\x81\xf4ng-Th\x81\xe5o/Ph\xc3\xbb\xc3\xb4ng-Th\xc3\xa5o/' \
-  -e 's/V\x81\xf5/V\xc3\xb5/' \
-  -e 's/J\xf6nsson/J\xc3\xb6nsson/' \
-  -e 's/V\xef\xbf\xbdis\xef\xbf\xbdnen/V\xc3\xa4is\xc3\xa4nen/' \
-  -e 's/J\xef\xbf\xbdrg/J\xc3\xb6rg/' \
-  -e 's/M\xef\xbf\xbdsli/M\xc3\xb6sli/' \
-  -e 's/R\xe4ty/R\xc3\xa4ty/' \
-  -e 's/2003\xc2\xad-/2003-/' \
-  -e 's/\xc2\xa0/ /g' \
-  -e 's/ \xa0/  /g' \
-  -e 's/\xa0 //' \
-  `find . -name \*ChangeLog\*`
-LC_ALL=C sed -i -e 's/\xa0/ /' gcc/doc/options.texi
-
-%ifarch ppc
-if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
-  mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
-  mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/{,64/}baseline_symbols.txt
-  mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/{32/,}baseline_symbols.txt
-  rm -rf libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32
-fi
-%endif
-%ifarch sparc
-if [ -d libstdc++-v3/config/abi/post/sparc64-linux-gnu ]; then
-  mkdir -p libstdc++-v3/config/abi/post/sparc64-linux-gnu/64
-  mv libstdc++-v3/config/abi/post/sparc64-linux-gnu/{,64/}baseline_symbols.txt
-  mv libstdc++-v3/config/abi/post/sparc64-linux-gnu/{32/,}baseline_symbols.txt
-  rm -rf libstdc++-v3/config/abi/post/sparc64-linux-gnu/32
-fi
-%endif
-
-%build
-
-%if %{build_java}
-# gjar isn't usable, so even when GCC source tree no longer includes
-# fastjar, build it anyway.
-mkdir fastjar-%{fastjar_ver}/obj-%{gcc_target_platform}
-cd fastjar-%{fastjar_ver}/obj-%{gcc_target_platform}
-../configure CFLAGS="$RPM_OPT_FLAGS" --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir}
-make %{?_smp_mflags}
-export PATH=`pwd`${PATH:+:$PATH}
-cd ../../
-%endif
-
-rm -fr obj-%{gcc_target_platform}
-mkdir obj-%{gcc_target_platform}
-cd obj-%{gcc_target_platform}
-
-%if %{build_java}
-%if !%{bootstrap_java}
-# If we don't have gjavah in $PATH, try to build it with the old gij
-mkdir java_hacks
-cd java_hacks
-if [ ! -x /usr/bin/gjavah ]; then
-  cp -a ../../libjava/classpath/tools/external external
-  mkdir -p gnu/classpath/tools
-  cp -a ../../libjava/classpath/tools/gnu/classpath/tools/{common,javah,getopt} gnu/classpath/tools/
-  cp -a ../../libjava/classpath/resource/gnu/classpath/tools/common/Messages.properties gnu/classpath/tools/common
-  cd external/asm; for i in `find . -name \*.java`; do gcj --encoding ISO-8859-1 -C $i -I.; done; cd ../..
-  for i in `find gnu -name \*.java`; do gcj -C $i -I. -Iexternal/asm/; done
-  gcj -findirect-dispatch -O2 -fmain=gnu.classpath.tools.javah.Main -I. -Iexternal/asm/ `find . -name \*.class` -o gjavah.real
-  cat > gjavah <<EOF
-#!/bin/sh
-export CLASSPATH=`pwd`${CLASSPATH:+:$CLASSPATH}
-exec `pwd`/gjavah.real "\$@"
-EOF
-  chmod +x `pwd`/gjavah
-fi
-cat > ecj1 <<EOF
-#!/bin/sh
-exec gij -cp /usr/share/java/eclipse-ecj.jar org.eclipse.jdt.internal.compiler.batch.GCCMain "\$@"
-EOF
-chmod +x `pwd`/ecj1
-export PATH=`pwd`${PATH:+:$PATH}
-cd ..
-%endif
-%endif
-
-CC=gcc
-OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/\(-Wp,\)\?-D_FORTIFY_SOURCE=[12]//g'`
-OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-m64//g;s/-m32//g;s/-m31//g'`
-%ifarch sparc
-OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mcpu=ultrasparc/-mtune=ultrasparc/g;s/-mcpu=v[78]//g'`
-%endif
-%ifarch %{ix86}
-OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-march=i386//g'`
-%endif
-%ifarch sparc64
-cat > gcc64 <<"EOF"
-#!/bin/sh
-exec /usr/bin/gcc -m64 "$@"
-EOF
-chmod +x gcc64
-CC=`pwd`/gcc64
-%endif
-%ifarch ppc64
-if gcc -m64 -xc -S /dev/null -o - > /dev/null 2>&1; then
-  cat > gcc64 <<"EOF"
-#!/bin/sh
-exec /usr/bin/gcc -m64 "$@"
-EOF
-  chmod +x gcc64
-  CC=`pwd`/gcc64
-fi
-%endif
-OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e 's/[[:blank:]]\+/ /g'`
-case "$OPT_FLAGS" in
-  *-fasynchronous-unwind-tables*)
-    sed -i -e 's/-fno-exceptions /-fno-exceptions -fno-asynchronous-unwind-tables/' \
-      ../gcc/Makefile.in
-    ;;
-esac
-CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`" XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
-	GCJFLAGS="$OPT_FLAGS" \
-	../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
-	--with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap \
-	--enable-shared --enable-threads=posix --enable-checking=release \
-	--with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions \
-%if !%{build_ada}
-	--enable-languages=c,c++,objc,obj-c++,java,fortran \
-%else
-	--enable-languages=c,c++,objc,obj-c++,java,fortran,ada \
-%endif
-%if !%{build_java}
-	--disable-libgcj \
-%else
-	--enable-java-awt=gtk --disable-dssi --enable-plugin \
-	--with-java-home=%{_prefix}/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre \
-	--enable-libgcj-multifile \
-%if !%{bootstrap_java}
-	--enable-java-maintainer-mode \
-%endif
-	--with-ecj-jar=/usr/share/java/eclipse-ecj.jar \
-	--disable-libjava-multilib \
-%endif
-%ifarch %{arm}
-	--disable-sjlj-exceptions \
-%endif
-%ifarch ppc ppc64
-	--enable-secureplt \
-%endif
-%ifarch sparc sparcv9 sparc64 ppc ppc64 s390 s390x alpha
-	--with-long-double-128 \
-%endif
-%ifarch sparc
-	--disable-linux-futex \
-%endif
-%ifarch sparc64
-	--with-cpu=ultrasparc \
-%endif
-%ifarch sparc sparcv9
-	--host=%{gcc_target_platform} --build=%{gcc_target_platform} --target=%{gcc_target_platform} --with-cpu=v7
-%endif
-%ifarch ppc
-	--build=%{gcc_target_platform} --target=%{gcc_target_platform} --with-cpu=default32
-%endif
-%ifarch %{ix86} x86_64
-	--with-cpu=generic \
-%endif
-%ifarch s390 s390x
-	--with-tune=z9-109 \
-%endif
-%ifnarch sparc sparcv9 ppc
-	--build=%{gcc_target_platform}
-%endif
-
-GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" bootstrap
-#GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" profiledbootstrap
-
-# run the tests.
-make %{?_smp_mflags} -k check RUNTESTFLAGS="ALT_CC_UNDER_TEST=gcc ALT_CXX_UNDER_TEST=g++" || :
-cd gcc
-mv testsuite{,.normal}
-make %{?_smp_mflags} -k \
-  `sed -n 's/check-ada//;s/^CHECK_TARGETS[[:blank:]]*=[[:blank:]]*//p' Makefile` \
-  RUNTESTFLAGS="--target_board=unix/-fstack-protector ALT_CC_UNDER_TEST=gcc ALT_CXX_UNDER_TEST=g++" || :
-mv testsuite{,.ssp}
-mv testsuite{.normal,}
-cd ..
-echo ====================TESTING=========================
-( ../contrib/test_summary || : ) 2>&1 | sed -n '/^cat.*EOF/,/^EOF/{/^cat.*EOF/d;/^EOF/d;/^LAST_UPDATED:/d;p;}'
-echo ====================TESTING END=====================
-mkdir testlogs-%{_target_platform}-%{version}-%{release}
-for i in `find . -name \*.log | grep -F testsuite/ | grep -v 'config.log\|acats\|ada'`; do
-  ln $i testlogs-%{_target_platform}-%{version}-%{release}/ || :
-done
-for i in `find . -name \*.log | grep -F testsuite.ssp/ | grep -v 'config.log\|acats\|ada'`; do
-  ln $i testlogs-%{_target_platform}-%{version}-%{release}/ssp-`basename $i` || :
-done
-tar cf - testlogs-%{_target_platform}-%{version}-%{release} | bzip2 -9c \
-  | uuencode testlogs-%{_target_platform}.tar.bz2 || :
-rm -rf testlogs-%{_target_platform}-%{version}-%{release}
-
-# Make protoize
-make -C gcc CC="./xgcc -B ./ -O2" proto
-
-# Make generated man pages even if Pod::Man is not new enough
-perl -pi -e 's/head3/head2/' ../contrib/texi2pod.pl
-for i in ../gcc/doc/*.texi; do
-  cp -a $i $i.orig; sed 's/ftable/table/' $i.orig > $i
-done
-make -C gcc generated-manpages
-for i in ../gcc/doc/*.texi; do mv -f $i.orig $i; done
-
-# Copy various doc files here and there
-cd ..
-mkdir -p rpm.doc/gfortran rpm.doc/objc
-mkdir -p rpm.doc/boehm-gc rpm.doc/fastjar rpm.doc/libffi rpm.doc/libjava
-mkdir -p rpm.doc/changelogs/{gcc/cp,gcc/java,gcc/ada,libstdc++-v3,libobjc,libmudflap,libgomp}
-sed -e 's,@VERSION@,%{gcc_version},' %{SOURCE2} > rpm.doc/README.libgcjwebplugin.so
-
-for i in {gcc,gcc/cp,gcc/java,gcc/ada,libstdc++-v3,libobjc,libmudflap,libgomp}/ChangeLog*; do
-	cp -p $i rpm.doc/changelogs/$i
-done
-
-(cd gcc/fortran; for i in ChangeLog*; do
-	cp -p $i ../../rpm.doc/gfortran/$i
-done)
-(cd libgfortran; for i in ChangeLog*; do
-	cp -p $i ../rpm.doc/gfortran/$i.libgfortran
-done)
-(cd gcc/objc; for i in README*; do
-	cp -p $i ../../rpm.doc/objc/$i.objc
-done)
-(cd libobjc; for i in README*; do
-	cp -p $i ../rpm.doc/objc/$i.libobjc
-done)
-(cd boehm-gc; for i in ChangeLog*; do
-	cp -p $i ../rpm.doc/boehm-gc/$i.gc
-done)
-(cd fastjar-%{fastjar_ver}; for i in ChangeLog* README*; do
-	cp -p $i ../rpm.doc/fastjar/$i.fastjar
-done)
-(cd libffi; for i in ChangeLog* README* LICENSE; do
-	cp -p $i ../rpm.doc/libffi/$i.libffi
-done)
-(cd libjava; for i in ChangeLog* README*; do
-	cp -p $i ../rpm.doc/libjava/$i.libjava
-done)
-cp -p libjava/LIBGCJ_LICENSE rpm.doc/libjava/
-
-rm -f rpm.doc/changelogs/gcc/ChangeLog.[1-9]
-find rpm.doc -name \*ChangeLog\* | xargs bzip2 -9
-
-%if %{build_java_tar}
-find libjava -name \*.h -type f | xargs grep -l '// DO NOT EDIT THIS FILE - it is machine generated' > libjava-classes.list
-find libjava -name \*.class -type f >> libjava-classes.list
-find libjava/testsuite -name \*.jar -type f >> libjava-classes.list
-tar cf - -T libjava-classes.list | bzip2 -9 > $RPM_SOURCE_DIR/libjava-classes-%{version}-%{release}.tar.bz2
-%endif
-
-%install
-rm -fr $RPM_BUILD_ROOT
-
-perl -pi -e \
-  's~href="l(ibstdc|atest)~href="http://gcc.gnu.org/onlinedocs/libstdc++/l\1~' \
-  libstdc++-v3/doc/html/api.html
-
-cd obj-%{gcc_target_platform}
-
-%if %{build_java}
-export PATH=`pwd`/../fastjar-%{fastjar_ver}/obj-%{gcc_target_platform}${PATH:+:$PATH}
-%if !%{bootstrap_java}
-export PATH=`pwd`/java_hacks${PATH:+:$PATH}
-%endif
-%endif
-
-TARGET_PLATFORM=%{gcc_target_platform}
-
-# There are some MP bugs in libstdc++ Makefiles
-make -C %{gcc_target_platform}/libstdc++-v3
-
-make prefix=$RPM_BUILD_ROOT%{_prefix} mandir=$RPM_BUILD_ROOT%{_mandir} \
-  infodir=$RPM_BUILD_ROOT%{_infodir} install
-%if %{build_java}
-make DESTDIR=$RPM_BUILD_ROOT -C %{gcc_target_platform}/libjava install-src.zip
-%endif
-%if %{build_ada}
-chmod 644 $RPM_BUILD_ROOT%{_infodir}/gnat*
-%endif
-
-FULLPATH=$RPM_BUILD_ROOT%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-FULLEPATH=$RPM_BUILD_ROOT%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-
-# fix some things
-ln -sf gcc $RPM_BUILD_ROOT%{_prefix}/bin/cc
-mkdir -p $RPM_BUILD_ROOT/lib
-ln -sf ..%{_prefix}/bin/cpp $RPM_BUILD_ROOT/lib/cpp
-ln -sf gfortran $RPM_BUILD_ROOT%{_prefix}/bin/f95
-rm -f $RPM_BUILD_ROOT%{_infodir}/dir
-gzip -9 $RPM_BUILD_ROOT%{_infodir}/*.info*
-ln -sf gcc $RPM_BUILD_ROOT%{_prefix}/bin/gnatgcc
-
-cxxconfig="`find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h`"
-for i in `find %{gcc_target_platform}/[36]*/libstdc++-v3/include -name c++config.h 2>/dev/null`; do
-  if ! diff -up $cxxconfig $i; then
-    cat > $RPM_BUILD_ROOT%{_prefix}/include/c++/%{gcc_version}/%{gcc_target_platform}/bits/c++config.h <<EOF
-#ifndef _CPP_CPPCONFIG_WRAPPER
-#define _CPP_CPPCONFIG_WRAPPER 1
-#include <bits/wordsize.h>
-#if __WORDSIZE == 32
-%ifarch %{multilib_64_archs}
-`cat $(find %{gcc_target_platform}/32/libstdc++-v3/include -name c++config.h)`
-%else
-`cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)`
-%endif
-#else
-%ifarch %{multilib_64_archs}
-`cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)`
-%else
-`cat $(find %{gcc_target_platform}/64/libstdc++-v3/include -name c++config.h)`
-%endif
-#endif
-#endif
-EOF
-    break
-  fi
-done
-
-# Nuke bits/stdc++.h.gch dirs
-# 1) there is no bits/stdc++.h header installed, so when gch file can't be
-#    used, compilation fails
-# 2) sometimes it is hard to match the exact options used for building
-#    libstdc++-v3 or they aren't desirable
-# 3) there are multilib issues, conflicts etc. with this
-# 4) it is huge
-# People can always precompile on their own whatever they want, but
-# shipping this for everybody is unnecessary.
-rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++/%{gcc_version}/%{gcc_target_platform}/bits/stdc++.h.gch
-
-%ifarch sparcv9 sparc64
-ln -f $RPM_BUILD_ROOT%{_prefix}/bin/%{gcc_target_platform}-gcc \
-  $RPM_BUILD_ROOT%{_prefix}/bin/sparc-%{_vendor}-%{_target_os}-gcc
-%endif
-%ifarch ppc ppc64
-ln -f $RPM_BUILD_ROOT%{_prefix}/bin/%{gcc_target_platform}-gcc \
-  $RPM_BUILD_ROOT%{_prefix}/bin/ppc-%{_vendor}-%{_target_os}-gcc
-%endif
-
-%ifarch sparcv9 ppc
-FULLLPATH=$FULLPATH/lib32
-%endif
-%ifarch sparc64 ppc64
-FULLLPATH=$FULLPATH/lib64
-%endif
-if [ -n "$FULLLPATH" ]; then
-  mkdir -p $FULLLPATH
-else
-  FULLLPATH=$FULLPATH
-fi
-
-find $RPM_BUILD_ROOT -name \*.la | xargs rm -f
-%if %{build_java}
-# gcj -static doesn't work properly anyway, unless using --whole-archive
-# and saving 35MB is not bad.
-find $RPM_BUILD_ROOT -name libgcj.a -o -name libgtkpeer.a \
-		     -o -name libgjsmalsa.a -o -name libgcj-tools.a -o -name libjvm.a \
-		     -o -name libgij.a -o -name libgcj_bc.a | xargs rm -f
-
-mv $RPM_BUILD_ROOT%{_prefix}/lib/libgcj.spec $FULLPATH/
-sed -i -e 's/lib: /&%%{static:%%eJava programs cannot be linked statically}/' \
-  $FULLPATH/libgcj.spec
-%endif
-
-mkdir -p $RPM_BUILD_ROOT/%{_lib}
-mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgcc_s.so.1 $RPM_BUILD_ROOT/%{_lib}/libgcc_s-%{gcc_version}-%{DATE}.so.1
-chmod 755 $RPM_BUILD_ROOT/%{_lib}/libgcc_s-%{gcc_version}-%{DATE}.so.1
-ln -sf libgcc_s-%{gcc_version}-%{DATE}.so.1 $RPM_BUILD_ROOT/%{_lib}/libgcc_s.so.1
-ln -sf /%{_lib}/libgcc_s.so.1 $FULLPATH/libgcc_s.so
-%ifarch sparcv9 ppc
-ln -sf /lib64/libgcc_s.so.1 $FULLPATH/64/libgcc_s.so
-%endif
-%ifarch %{multilib_64_archs}
-ln -sf /lib/libgcc_s.so.1 $FULLPATH/32/libgcc_s.so
-%endif
-
-mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgomp.spec $FULLPATH/
-
-%if %{build_ada}
-mv -f $FULLPATH/adalib/libgnarl-*.so $RPM_BUILD_ROOT%{_prefix}/%{_lib}/
-mv -f $FULLPATH/adalib/libgnat-*.so $RPM_BUILD_ROOT%{_prefix}/%{_lib}/
-rm -f $FULLPATH/adalib/libgnarl.so* $FULLPATH/adalib/libgnat.so*
-%endif
-
-mkdir -p $RPM_BUILD_ROOT%{_prefix}/libexec/getconf
-if gcc/xgcc -B gcc/ -E -dD -xc /dev/null | grep __LONG_MAX__.*2147483647; then
-  ln -sf POSIX_V6_ILP32_OFF32 $RPM_BUILD_ROOT%{_prefix}/libexec/getconf/default
-else
-  ln -sf POSIX_V6_LP64_OFF64 $RPM_BUILD_ROOT%{_prefix}/libexec/getconf/default
-fi
-
-%if %{build_java}
-pushd ../fastjar-%{fastjar_ver}/obj-%{gcc_target_platform}
-make install DESTDIR=$RPM_BUILD_ROOT
-popd
-
-if [ "%{_lib}" != "lib" ]; then
-  mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{_lib}/pkgconfig
-  sed '/^libdir/s/lib$/%{_lib}/' $RPM_BUILD_ROOT%{_prefix}/lib/pkgconfig/libgcj-*.pc \
-    > $RPM_BUILD_ROOT%{_prefix}/%{_lib}/pkgconfig/`basename $RPM_BUILD_ROOT%{_prefix}/lib/pkgconfig/libgcj-*.pc`
-fi
-%endif
-
-pushd $FULLPATH
-if [ "%{_lib}" = "lib" ]; then
-ln -sf ../../../libobjc.so.2 libobjc.so
-ln -sf ../../../libstdc++.so.6.* libstdc++.so
-ln -sf ../../../libgfortran.so.3.* libgfortran.so
-ln -sf ../../../libgomp.so.1.* libgomp.so
-ln -sf ../../../libmudflap.so.0.* libmudflap.so
-ln -sf ../../../libmudflapth.so.0.* libmudflapth.so
-%if %{build_java}
-ln -sf ../../../libgcj.so.9.* libgcj.so
-ln -sf ../../../libgcj-tools.so.9.* libgcj-tools.so
-ln -sf ../../../libgij.so.9.* libgij.so
-%endif
-%if %{build_ada}
-cd adalib
-ln -sf ../../../../libgnarl-*.so libgnarl.so
-ln -sf ../../../../libgnarl-*.so libgnarl-4.3.so
-ln -sf ../../../../libgnat-*.so libgnat.so
-ln -sf ../../../../libgnat-*.so libgnat-4.3.so
-cd ..
-%endif
-else
-ln -sf ../../../../%{_lib}/libobjc.so.2 libobjc.so
-ln -sf ../../../../%{_lib}/libstdc++.so.6.* libstdc++.so
-ln -sf ../../../../%{_lib}/libgfortran.so.3.* libgfortran.so
-ln -sf ../../../../%{_lib}/libgomp.so.1.* libgomp.so
-ln -sf ../../../../%{_lib}/libmudflap.so.0.* libmudflap.so
-ln -sf ../../../../%{_lib}/libmudflapth.so.0.* libmudflapth.so
-%if %{build_java}
-ln -sf ../../../../%{_lib}/libgcj.so.9.* libgcj.so
-ln -sf ../../../../%{_lib}/libgcj-tools.so.9.* libgcj-tools.so
-ln -sf ../../../../%{_lib}/libgij.so.9.* libgij.so
-%endif
-%if %{build_ada}
-cd adalib
-ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl.so
-ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl-4.3.so
-ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat.so
-ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat-4.3.so
-cd ..
-%endif
-fi
-%if %{build_java}
-mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgcj_bc.so $FULLLPATH/
-%endif
-mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libstdc++.*a $FULLLPATH/
-mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libsupc++.*a .
-mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgfortran.*a .
-mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libobjc.*a .
-mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgomp.*a .
-mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libmudflap{,th}.*a $FULLLPATH/
-
-%ifarch sparcv9 ppc
-ln -sf ../../../../../lib64/libobjc.so.2 64/libobjc.so
-ln -sf ../`echo ../../../../lib/libstdc++.so.6.* | sed s~/lib/~/lib64/~` 64/libstdc++.so
-ln -sf ../`echo ../../../../lib/libgfortran.so.3.* | sed s~/lib/~/lib64/~` 64/libgfortran.so
-ln -sf ../`echo ../../../../lib/libgomp.so.1.* | sed s~/lib/~/lib64/~` 64/libgomp.so
-rm -f libmudflap.so libmudflapth.so
-echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libmudflap.so.0.* | sed 's,^.*libm,libm,'`' )' > libmudflap.so
-echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libmudflapth.so.0.* | sed 's,^.*libm,libm,'`' )' > libmudflapth.so
-echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libmudflap.so.0.* | sed 's,^.*libm,libm,'`' )' > 64/libmudflap.so
-echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libmudflapth.so.0.* | sed 's,^.*libm,libm,'`' )' > 64/libmudflapth.so
-%if %{build_java}
-ln -sf ../`echo ../../../../lib/libgcj.so.9.* | sed s~/lib/~/lib64/~` 64/libgcj.so
-ln -sf ../`echo ../../../../lib/libgcj-tools.so.9.* | sed s~/lib/~/lib64/~` 64/libgcj-tools.so
-ln -sf ../`echo ../../../../lib/libgij.so.9.* | sed s~/lib/~/lib64/~` 64/libgij.so
-ln -sf lib32/libgcj_bc.so libgcj_bc.so
-ln -sf ../lib64/libgcj_bc.so 64/libgcj_bc.so
-%endif
-mv -f $RPM_BUILD_ROOT%{_prefix}/lib64/libsupc++.*a 64/
-mv -f $RPM_BUILD_ROOT%{_prefix}/lib64/libgfortran.*a 64/
-mv -f $RPM_BUILD_ROOT%{_prefix}/lib64/libobjc.*a 64/
-mv -f $RPM_BUILD_ROOT%{_prefix}/lib64/libgomp.*a 64/
-ln -sf lib32/libstdc++.a libstdc++.a
-ln -sf ../lib64/libstdc++.a 64/libstdc++.a
-ln -sf lib32/libmudflap.a libmudflap.a
-ln -sf ../lib64/libmudflap.a 64/libmudflap.a
-ln -sf lib32/libmudflapth.a libmudflapth.a
-ln -sf ../lib64/libmudflapth.a 64/libmudflapth.a
-%endif
-%ifarch %{multilib_64_archs}
-mkdir -p 32
-ln -sf ../../../../libobjc.so.2 32/libobjc.so
-ln -sf ../`echo ../../../../lib64/libstdc++.so.6.* | sed s~/../lib64/~/~` 32/libstdc++.so
-ln -sf ../`echo ../../../../lib64/libgfortran.so.3.* | sed s~/../lib64/~/~` 32/libgfortran.so
-ln -sf ../`echo ../../../../lib64/libgomp.so.1.* | sed s~/../lib64/~/~` 32/libgomp.so
-rm -f libmudflap.so libmudflapth.so
-echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libmudflap.so.0.* | sed 's,^.*libm,libm,'`' )' > libmudflap.so
-echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libmudflapth.so.0.* | sed 's,^.*libm,libm,'`' )' > libmudflapth.so
-echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libmudflap.so.0.* | sed 's,^.*libm,libm,'`' )' > 32/libmudflap.so
-echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libmudflapth.so.0.* | sed 's,^.*libm,libm,'`' )' > 32/libmudflapth.so
-%if %{build_java}
-ln -sf ../`echo ../../../../lib64/libgcj.so.9.* | sed s~/../lib64/~/~` 32/libgcj.so
-ln -sf ../`echo ../../../../lib64/libgcj-tools.so.9.* | sed s~/../lib64/~/~` 32/libgcj-tools.so
-ln -sf ../`echo ../../../../lib64/libgij.so.9.* | sed s~/../lib64/~/~` 32/libgij.so
-%endif
-mv -f $RPM_BUILD_ROOT%{_prefix}/lib/libsupc++.*a 32/
-mv -f $RPM_BUILD_ROOT%{_prefix}/lib/libgfortran.*a 32/
-mv -f $RPM_BUILD_ROOT%{_prefix}/lib/libobjc.*a 32/
-mv -f $RPM_BUILD_ROOT%{_prefix}/lib/libgomp.*a 32/
-%endif
-%ifarch sparc64 ppc64
-ln -sf ../lib32/libstdc++.a 32/libstdc++.a
-ln -sf lib64/libstdc++.a libstdc++.a
-ln -sf ../lib32/libmudflap.a 32/libmudflap.a
-ln -sf lib64/libmudflap.a libmudflap.a
-ln -sf ../lib32/libmudflapth.a 32/libmudflapth.a
-ln -sf lib64/libmudflapth.a libmudflapth.a
-%if %{build_java}
-ln -sf ../lib32/libgcj_bc.so 32/libgcj_bc.so
-ln -sf lib64/libgcj_bc.so libgcj_bc.so
-%endif
-%else
-%ifarch %{multilib_64_archs}
-ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libstdc++.a 32/libstdc++.a
-ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libmudflap.a 32/libmudflap.a
-ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libmudflapth.a 32/libmudflapth.a
-%if %{build_java}
-ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libgcj_bc.so 32/libgcj_bc.so
-%endif
-%endif
-%endif
-
-# Strip debug info from Fortran/ObjC/Java static libraries
-strip -g `find . \( -name libgfortran.a -o -name libobjc.a -o -name libgomp.a \
-		    -o -name libmudflap.a -o -name libmudflapth.a \
-		    -o -name libgcc.a -o -name libgcov.a \) -a -type f`
-popd
-chmod 755 $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgfortran.so.3.*
-chmod 755 $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgomp.so.1.*
-chmod 755 $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libmudflap{,th}.so.0.*
-chmod 755 $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libobjc.so.2.*
-
-%if %{build_ada}
-chmod 755 $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgnarl*so*
-chmod 755 $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgnat*so*
-%endif
-
-mv $FULLPATH/include-fixed/syslimits.h $FULLPATH/include/syslimits.h
-mv $FULLPATH/include-fixed/limits.h $FULLPATH/include/limits.h
-for h in `find $FULLPATH/include -name \*.h`; do
-  if grep -q 'It has been auto-edited by fixincludes from' $h; then
-    rh=`grep -A2 'It has been auto-edited by fixincludes from' $h | tail -1 | sed 's|^.*"\(.*\)".*$|\1|'`
-    diff -up $rh $h || :
-    rm -f $h
-  fi
-done
-
-cat > $RPM_BUILD_ROOT%{_prefix}/bin/c89 <<"EOF"
-#!/bin/sh
-fl="-std=c89"
-for opt; do
-  case "$opt" in
-    -ansi|-std=c89|-std=iso9899:1990) fl="";;
-    -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
-	    exit 1;;
-  esac
-done
-exec gcc $fl ${1+"$@"}
-EOF
-cat > $RPM_BUILD_ROOT%{_prefix}/bin/c99 <<"EOF"
-#!/bin/sh
-fl="-std=c99"
-for opt; do
-  case "$opt" in
-    -std=c99|-std=iso9899:1999) fl="";;
-    -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2
-	    exit 1;;
-  esac
-done
-exec gcc $fl ${1+"$@"}
-EOF
-chmod 755 $RPM_BUILD_ROOT%{_prefix}/bin/c?9
-
-mkdir -p $RPM_BUILD_ROOT%{_prefix}/sbin
-gcc -static -Os %{SOURCE1} -o $RPM_BUILD_ROOT%{_prefix}/sbin/libgcc_post_upgrade
-strip $RPM_BUILD_ROOT%{_prefix}/sbin/libgcc_post_upgrade
-
-cd ..
-%find_lang %{name}
-%find_lang cpplib
-
-# Remove binaries we will not be including, so that they don't end up in
-# gcc-debuginfo
-rm -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/{libffi*,libiberty.a}
-rm -f $FULLEPATH/install-tools/{mkheaders,fixincl}
-rm -f $RPM_BUILD_ROOT%{_prefix}/lib/{32,64}/libiberty.a
-rm -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libssp*
-rm -f $RPM_BUILD_ROOT%{_prefix}/bin/gnative2ascii
-
-%ifarch %{multilib_64_archs}
-# Remove libraries for the other arch on multilib arches
-rm -f $RPM_BUILD_ROOT%{_prefix}/lib/lib*.so*
-rm -f $RPM_BUILD_ROOT%{_prefix}/lib/lib*.a
-%else
-%ifarch sparcv9 ppc
-rm -f $RPM_BUILD_ROOT%{_prefix}/lib64/lib*.so*
-rm -f $RPM_BUILD_ROOT%{_prefix}/lib64/lib*.a
-%endif
-%endif
-
-%if %{build_java}
-mkdir -p $RPM_BUILD_ROOT%{_prefix}/share/java/gcj-endorsed \
-	 $RPM_BUILD_ROOT%{_prefix}/%{_lib}/gcj-%{version}/classmap.db.d
-chmod 755 $RPM_BUILD_ROOT%{_prefix}/share/java/gcj-endorsed \
-	  $RPM_BUILD_ROOT%{_prefix}/%{_lib}/gcj-%{version} \
-	  $RPM_BUILD_ROOT%{_prefix}/%{_lib}/gcj-%{version}/classmap.db.d
-touch $RPM_BUILD_ROOT%{_prefix}/%{_lib}/gcj-%{version}/classmap.db
-%endif
-
-install -m644 %{SOURCE3} $RPM_BUILD_ROOT%{_mandir}/man1/protoize.1
-echo '.so man1/protoize.1' > $RPM_BUILD_ROOT%{_mandir}/man1/unprotoize.1
-chmod 644 $RPM_BUILD_ROOT%{_mandir}/man1/unprotoize.1
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-%post
-/sbin/install-info \
-  --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
-
-%preun
-if [ $1 = 0 ]; then
-  /sbin/install-info --delete \
-    --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
-fi
-
-%post -n cpp
-/sbin/install-info \
-  --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
-
-%preun -n cpp
-if [ $1 = 0 ]; then
-  /sbin/install-info --delete \
-    --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
-fi
-
-%post gfortran
-/sbin/install-info \
-  --info-dir=%{_infodir} %{_infodir}/gfortran.info.gz || :
-
-%preun gfortran
-if [ $1 = 0 ]; then
-  /sbin/install-info --delete \
-    --info-dir=%{_infodir} %{_infodir}/gfortran.info.gz || :
-fi
-
-%post java
-/sbin/install-info \
-  --info-dir=%{_infodir} %{_infodir}/gcj.info.gz || :
-
-%preun java
-if [ $1 = 0 ]; then
-  /sbin/install-info --delete \
-    --info-dir=%{_infodir} %{_infodir}/gcj.info.gz || :
-fi
-
-%post gnat
-/sbin/install-info \
-  --info-dir=%{_infodir} %{_infodir}/gnat_rm.info.gz || :
-/sbin/install-info \
-  --info-dir=%{_infodir} %{_infodir}/gnat_ugn_unw.info.gz || :
-/sbin/install-info \
-  --info-dir=%{_infodir} %{_infodir}/gnat-style.info.gz || :
-
-%preun gnat
-if [ $1 = 0 ]; then
-  /sbin/install-info --delete \
-    --info-dir=%{_infodir} %{_infodir}/gnat_rm.info.gz || :
-  /sbin/install-info --delete \
-    --info-dir=%{_infodir} %{_infodir}/gnat_ugn_unw.info.gz || :
-  /sbin/install-info --delete \
-    --info-dir=%{_infodir} %{_infodir}/gnat-style.info.gz || :
-fi
-
-# Because glibc Prereq's libgcc and /sbin/ldconfig
-# comes from glibc, it might not exist yet when
-# libgcc is installed
-%post -n libgcc -p %{_prefix}/sbin/libgcc_post_upgrade
-
-%post -n libstdc++ -p /sbin/ldconfig
-
-%postun -n libstdc++ -p /sbin/ldconfig
-
-%post -n libobjc -p /sbin/ldconfig
-
-%postun -n libobjc -p /sbin/ldconfig
-
-%post -n libgcj
-/sbin/ldconfig
-/sbin/install-info \
-  --info-dir=%{_infodir} %{_infodir}/cp-tools.info.gz || :
-/sbin/install-info \
-  --info-dir=%{_infodir} %{_infodir}/fastjar.info.gz || :
-
-%preun -n libgcj
-if [ $1 = 0 ]; then
-  /sbin/install-info --delete \
-    --info-dir=%{_infodir} %{_infodir}/cp-tools.info.gz || :
-  /sbin/install-info --delete \
-    --info-dir=%{_infodir} %{_infodir}/fastjar.info.gz || :
-fi
-
-%postun -n libgcj -p /sbin/ldconfig
-
-%post -n libgfortran -p /sbin/ldconfig
-
-%postun -n libgfortran -p /sbin/ldconfig
-
-%post -n libgnat -p /sbin/ldconfig
-
-%postun -n libgnat -p /sbin/ldconfig
-
-%post -n libgomp
-/sbin/ldconfig
-/sbin/install-info \
-  --info-dir=%{_infodir} %{_infodir}/libgomp.info.gz || :
-
-%preun -n libgomp
-if [ $1 = 0 ]; then
-  /sbin/install-info --delete \
-    --info-dir=%{_infodir} %{_infodir}/libgomp.info.gz || :
-fi
-
-%postun -n libgomp -p /sbin/ldconfig
-
-%post -n libmudflap -p /sbin/ldconfig
-
-%postun -n libmudflap -p /sbin/ldconfig
-
-%files -f %{name}.lang
-%defattr(-,root,root)
-%{_prefix}/bin/cc
-%{_prefix}/bin/c89
-%{_prefix}/bin/c99
-%{_prefix}/bin/gcc
-%{_prefix}/bin/gcov
-%{_prefix}/bin/protoize
-%{_prefix}/bin/unprotoize
-%ifarch ppc
-%{_prefix}/bin/%{_target_platform}-gcc
-%endif
-%ifarch sparc64 sparcv9
-%{_prefix}/bin/sparc-%{_vendor}-%{_target_os}-gcc
-%endif
-%ifarch ppc64
-%{_prefix}/bin/ppc-%{_vendor}-%{_target_os}-gcc
-%endif
-%{_prefix}/bin/%{gcc_target_platform}-gcc
-%{_mandir}/man1/gcc.1*
-%{_mandir}/man1/gcov.1*
-%{_mandir}/man1/protoize.1*
-%{_mandir}/man1/unprotoize.1*
-%{_infodir}/gcc*
-%dir %{_prefix}/lib/gcc
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/SYSCALLS.c.X
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stddef.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdarg.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/varargs.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/float.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/limits.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdbool.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/iso646.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/syslimits.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/unwind.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/omp.h
-%ifarch %{ix86} x86_64
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/mmintrin.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/xmmintrin.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/emmintrin.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/pmmintrin.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/tmmintrin.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ammintrin.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/smmintrin.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/nmmintrin.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/bmmintrin.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/wmmintrin.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/mmintrin-common.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/mm_malloc.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/mm3dnow.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/cpuid.h
-%endif
-%ifarch ia64
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ia64intrin.h
-%endif
-%ifarch ppc ppc64
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ppc-asm.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/altivec.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/spe.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/paired.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ppu_intrinsics.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/si2vmx.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/spu2vmx.h
-%endif
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/collect2
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/crt*.o
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcov.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc_eh.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc_s.so
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgomp.spec
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgomp.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgomp.so
-%ifarch sparcv9 ppc
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/crt*.o
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcov.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc_eh.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc_s.so
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgomp.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgomp.so
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libmudflap.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libmudflapth.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libmudflap.so
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libmudflapth.so
-%endif
-%ifarch %{multilib_64_archs}
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/crt*.o
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcc.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcov.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcc_eh.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcc_s.so
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgomp.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgomp.so
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflap.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflapth.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflap.so
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflapth.so
-%endif
-%ifarch sparcv9 sparc64 ppc ppc64
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflap.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflapth.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflap.so
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflapth.so
-%endif
-%dir %{_prefix}/libexec/getconf
-%{_prefix}/libexec/getconf/default
-%doc gcc/README* rpm.doc/changelogs/gcc/ChangeLog* gcc/COPYING*
-
-%files -n cpp -f cpplib.lang
-%defattr(-,root,root)
-/lib/cpp
-%{_prefix}/bin/cpp
-%{_mandir}/man1/cpp.1*
-%{_infodir}/cpp*
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
-
-%files -n libgcc
-%defattr(-,root,root)
-/%{_lib}/libgcc_s-%{gcc_version}-%{DATE}.so.1
-/%{_lib}/libgcc_s.so.1
-%{_prefix}/sbin/libgcc_post_upgrade
-%doc gcc/COPYING.LIB
-
-%files c++
-%defattr(-,root,root)
-%{_prefix}/bin/%{gcc_target_platform}-*++
-%{_prefix}/bin/g++
-%{_prefix}/bin/c++
-%{_mandir}/man1/g++.1*
-%dir %{_prefix}/lib/gcc
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
-%ifarch sparcv9 ppc
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libstdc++.so
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libstdc++.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libsupc++.a
-%endif
-%ifarch %{multilib_64_archs}
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.so
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libsupc++.a
-%endif
-%ifarch sparcv9 ppc %{multilib_64_archs}
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsupc++.a
-%endif
-%ifarch sparcv9 sparc64 ppc ppc64
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.a
-%endif
-%doc rpm.doc/changelogs/gcc/cp/ChangeLog*
-
-%files -n libstdc++
-%defattr(-,root,root)
-%{_prefix}/%{_lib}/libstdc++.so.6*
-
-%files -n libstdc++-devel
-%defattr(-,root,root)
-%dir %{_prefix}/include/c++
-%dir %{_prefix}/include/c++/%{gcc_version}
-%{_prefix}/include/c++/%{gcc_version}/[^gjos]*
-%{_prefix}/include/c++/%{gcc_version}/os*
-%{_prefix}/include/c++/%{gcc_version}/s[^u]*
-%dir %{_prefix}/lib/gcc
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%ifarch sparcv9 ppc
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32/libstdc++.a
-%endif
-%ifarch sparc64 ppc64
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64/libstdc++.a
-%endif
-%ifnarch sparcv9 sparc64 ppc ppc64
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.a
-%endif
-%ifnarch sparcv9 ppc %{multilib_64_archs}
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsupc++.a
-%endif
-%doc rpm.doc/changelogs/libstdc++-v3/ChangeLog* libstdc++-v3/README* libstdc++-v3/doc/html/
-
-%files objc
-%defattr(-,root,root)
-%dir %{_prefix}/lib/gcc
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/objc
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1obj
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libobjc.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libobjc.so
-%ifarch sparcv9 ppc
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libobjc.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libobjc.so
-%endif
-%ifarch %{multilib_64_archs}
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libobjc.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libobjc.so
-%endif
-%doc rpm.doc/objc/*
-%doc libobjc/THREADS* rpm.doc/changelogs/libobjc/ChangeLog*
-
-%files objc++
-%defattr(-,root,root)
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1objplus
-
-%files -n libobjc
-%defattr(-,root,root)
-%{_prefix}/%{_lib}/libobjc.so.2*
-
-%files gfortran
-%defattr(-,root,root)
-%{_prefix}/bin/gfortran
-%{_prefix}/bin/f95
-%{_mandir}/man1/gfortran.1*
-%{_infodir}/gfortran*
-%dir %{_prefix}/lib/gcc
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib.f90
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib.mod
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib_kinds.mod
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/f951
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgfortranbegin.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgfortran.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgfortran.so
-%ifarch sparcv9 ppc
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgfortranbegin.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgfortran.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgfortran.so
-%endif
-%ifarch %{multilib_64_archs}
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgfortranbegin.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgfortran.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgfortran.so
-%endif
-%doc rpm.doc/gfortran/*
-
-%files -n libgfortran
-%defattr(-,root,root)
-%{_prefix}/%{_lib}/libgfortran.so.3*
-
-%if %{build_java}
-%files java
-%defattr(-,root,root)
-%{_prefix}/bin/gcj
-%{_prefix}/bin/gjavah
-%{_prefix}/bin/gcjh
-%{_prefix}/bin/jcf-dump
-%{_mandir}/man1/gcj.1*
-%{_mandir}/man1/jcf-dump.1*
-%{_mandir}/man1/gjavah.1*
-%{_mandir}/man1/gcjh.1*
-%{_infodir}/gcj*
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/lib/gcc
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/jc1
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/ecj1
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/jvgenmain
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcj.so
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcj-tools.so
-%ifarch sparcv9 sparc64 ppc ppc64
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcj_bc.so
-%endif
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgij.so
-%ifarch sparcv9 ppc
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcj.so
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcj-tools.so
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcj_bc.so
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgij.so
-%endif
-%ifarch %{multilib_64_archs}
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcj.so
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcj-tools.so
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcj_bc.so
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgij.so
-%endif
-%doc rpm.doc/changelogs/gcc/java/ChangeLog*
-
-%files -n libgcj
-%defattr(-,root,root)
-%{_prefix}/bin/jv-convert
-%{_prefix}/bin/gij
-%{_prefix}/bin/gjar
-%{_prefix}/bin/fastjar
-%{_prefix}/bin/grepjar
-%{_prefix}/bin/grmic
-%{_prefix}/bin/grmid
-%{_prefix}/bin/grmiregistry
-%{_prefix}/bin/gtnameserv
-%{_prefix}/bin/gkeytool
-%{_prefix}/bin/gorbd
-%{_prefix}/bin/gserialver
-%{_prefix}/bin/gcj-dbtool
-%if %{include_gappletviewer}
-%{_prefix}/bin/gappletviewer
-%{_mandir}/man1/gappletviewer.1*
-%endif
-%{_prefix}/bin/gjarsigner
-%{_mandir}/man1/fastjar.1*
-%{_mandir}/man1/grepjar.1*
-%{_mandir}/man1/gjar.1*
-%{_mandir}/man1/gjarsigner.1*
-%{_mandir}/man1/jv-convert.1*
-%{_mandir}/man1/gij.1*
-%{_mandir}/man1/grmic.1*
-%{_mandir}/man1/grmiregistry.1*
-%{_mandir}/man1/gcj-dbtool.1*
-%{_mandir}/man1/gkeytool.1*
-%{_mandir}/man1/gorbd.1*
-%{_mandir}/man1/grmid.1*
-%{_mandir}/man1/gserialver.1*
-%{_mandir}/man1/gtnameserv.1*
-%{_infodir}/fastjar.info*
-%{_infodir}/cp-tools.info*
-%{_prefix}/%{_lib}/libgcj.so.*
-%{_prefix}/%{_lib}/libgcj-tools.so.*
-%{_prefix}/%{_lib}/libgcj_bc.so.*
-%{_prefix}/%{_lib}/libgij.so.*
-%dir %{_prefix}/%{_lib}/gcj-%{version}
-%{_prefix}/%{_lib}/gcj-%{version}/libgtkpeer.so
-%{_prefix}/%{_lib}/gcj-%{version}/libgjsmalsa.so
-%{_prefix}/%{_lib}/gcj-%{version}/libjawt.so
-%if %{include_gappletviewer}
-%{_prefix}/%{_lib}/gcj-%{version}/libgcjwebplugin.so
-%endif
-%{_prefix}/%{_lib}/gcj-%{version}/libjvm.so
-%dir %{_prefix}/share/java
-%{_prefix}/share/java/[^sl]*
-%{_prefix}/share/java/libgcj-%{version}.jar
-%dir %{_prefix}/%{_lib}/security
-%config(noreplace) %{_prefix}/%{_lib}/security/classpath.security
-%{_prefix}/%{_lib}/logging.properties
-%dir %{_prefix}/%{_lib}/gcj-%{version}/classmap.db.d
-%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) %{_prefix}/%{_lib}/gcj-%{version}/classmap.db
-%if %{include_gappletviewer}
-%doc rpm.doc/README.libgcjwebplugin.so
-%endif
-
-%files -n libgcj-devel
-%defattr(-,root,root)
-%{_prefix}/bin/addr2name.awk
-%dir %{_prefix}/lib/gcc
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/gcj
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jawt.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jawt_md.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jni.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jni_md.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jvmpi.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcj.spec
-%ifarch sparcv9 ppc
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32/libgcj_bc.so
-%endif
-%ifarch sparc64 ppc64
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64/libgcj_bc.so
-%endif
-%ifnarch sparcv9 sparc64 ppc ppc64
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcj_bc.so
-%endif
-%dir %{_prefix}/include/c++
-%dir %{_prefix}/include/c++/%{gcc_version}
-%{_prefix}/include/c++/%{gcc_version}/[gj]*
-%{_prefix}/include/c++/%{gcc_version}/org
-%{_prefix}/include/c++/%{gcc_version}/sun
-%{_prefix}/%{_lib}/pkgconfig/libgcj-*.pc
-%doc rpm.doc/boehm-gc/* rpm.doc/fastjar/* rpm.doc/libffi/*
-%doc rpm.doc/libjava/*
-
-%files -n libgcj-src
-%defattr(-,root,root)
-%dir %{_prefix}/share/java
-%{_prefix}/share/java/src*.zip
-%{_prefix}/share/java/libgcj-tools-%{version}.jar
-%endif
-
-%if %{build_ada}
-%files gnat
-%defattr(-,root,root)
-%{_prefix}/bin/gnat*
-%{_infodir}/gnat*
-%dir %{_prefix}/lib/gcc
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/libexec/gcc
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
-%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/adainclude
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/adalib
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/gnat1
-%doc rpm.doc/changelogs/gcc/ada/ChangeLog*
-
-%files -n libgnat
-%defattr(-,root,root)
-%{_prefix}/%{_lib}/libgnat-*.so
-%{_prefix}/%{_lib}/libgnarl-*.so
-%endif
-
-%files -n libgomp
-%defattr(-,root,root)
-%{_prefix}/%{_lib}/libgomp.so.1*
-%{_infodir}/libgomp.info*
-%doc rpm.doc/changelogs/libgomp/ChangeLog*
-
-%files -n libmudflap
-%defattr(-,root,root)
-%{_prefix}/%{_lib}/libmudflap.so.0*
-%{_prefix}/%{_lib}/libmudflapth.so.0*
-
-%files -n libmudflap-devel
-%defattr(-,root,root)
-%dir %{_prefix}/lib/gcc
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/mf-runtime.h
-%ifarch sparcv9 ppc
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32/libmudflap.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32/libmudflapth.a
-%endif
-%ifarch sparc64 ppc64
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64/libmudflap.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64/libmudflapth.a
-%endif
-%ifnarch sparcv9 sparc64 ppc ppc64
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflap.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflapth.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflap.so
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflapth.so
-%endif
-%doc rpm.doc/changelogs/libmudflap/ChangeLog*
-
-%changelog
-* Wed Nov  5 2008 Jakub Jelinek <jakub@redhat.com> 4.3.2-7
-- update from gcc-4_3-branch
-  - PRs c/35437, fortran/35680, fortran/37723, fortran/37749, fortran/37787,
-	fortran/37794, fortran/37903, libfortran/37707, libfortran/37863,
-	middle-end/37882, other/37897, rtl-optimization/37769, target/37909,
-	target/37939, tree-optimization/37102
-- fix ICE in extract_bit_field_1 (PR middle-end/37870)
-- combiner fix for shifts (PR c/37924)
-- fix -fdump-ipa-all -dv (PR middle-end/37858)
-- fix ICE with wrong use of noreturn attribute (PR tree-optimization/37879)
-- fix up --with-java_bootstrap build
-
-* Thu Oct  9 2008 Jakub Jelinek <jakub@redhat.com> 4.3.2-6
-- fix fallouts from the -g -O0 debugging patch (#466169, #466198)
-
-* Wed Oct  8 2008 Jakub Jelinek <jakub@redhat.com> 4.3.2-5
-- update from gcc-4_3-branch
-  - PRs c++/37555, c/35712, c/37645, fortran/35770, fortran/35945,
-	fortran/36374, fortran/36454, fortran/36700, fortran/37274,
-	fortran/37504, fortran/37580, fortran/37583, fortran/37626,
-	fortran/37706, middle-end/36575, middle-end/37236, middle-end/37731,
-	rtl-optimization/37544, target/35620, target/35713, target/37603,
-	tree-opt/35737, tree-optimization/36343, tree-optimization/37539
-- ensure one can put breakpoints on break, continue and goto statements
-  with -g -O0 (#465824, PRs debug/29609, debug/36690, debug/37616)
-- emit one DW_TAG_common_block for each common block in each scope, not
-  one for each common block in one CU (#465974, PR debug/37738)
-- Intel -maes and -mpclmul support
-
-* Wed Sep 17 2008 Jakub Jelinek <jakub@redhat.com> 4.3.2-4
-- update from gcc-4_3-branch
-  - PRs c++/37389, fortran/35837, fortran/36214, fortran/37099, fortran/37199,
-	rtl-optimization/37408, target/37466, tree-optimization/36630
-- revert PR c++/36741 fix
-- fix VLA debuginfo at -O0 (PR debug/34037)
-
-* Sat Sep  6 2008 Jakub Jelinek <jakub@redhat.com> 4.3.2-3
-- don't run tests that require Altivec hw on non-Altivec powerpcs
-- make sure none of libgcj binaries/libraries contains /usr/%{lib} in
-  RPATH
-- fix up BuildRoot
-
-* Fri Sep  5 2008 Jakub Jelinek <jakub@redhat.com> 4.3.2-2
-- update from gcc-4_3-branch
-  - PRs c++/37348, c/37261, fortran/36371, fortran/37193, middle-end/36449,
-	target/36332, target/37168
-- make ChangeLog files and gcc.info valid UTF-8, remove gnative2ascii from
-  gcc-gnat, comment out most of the Obsoletes (#225778)
-- on x86_64 decrease frame size in varargs functions that don't need saving
-  gpr or fpr registers
-- fix ICE on implicitly determined firstprivate where copy ctor or dtor
-  needs synthetization (PR c++/37189)
-- document how to recrease the tarball
-
-* Fri Aug 29 2008 Jakub Jelinek <jakub@redhat.com> 4.3.2-1
-- update from gcc-4_3-branch
-  - 4.3.2 release
-  - PRs c++/36741, middle-end/36548, middle-end/36817, middle-end/37125,
-	target/37184, target/37191, target/37197
-- backport further Fortran debuginfo improvements (#460378, #459375)
-- revert removal of adjacent bitfield comparison
-  optimization (PR middle-end/37248)
-- on ppc/ppc64 add paired.h, ppu_instrinsics.h, si2vmx.h and spu2vmx.h
-  headers (#460497)
-
-* Mon Aug 25 2008 Jakub Jelinek <jakub@redhat.com> 4.3.1-8
-- update from gcc-4_3-branch
-  - PRs debug/37156, libgcj/8995, libstdc++/37100, target/37101
-- backport Fortran debuginfo improvements (PRs debug/35896, fortran/35154,
-  fortran/35724, fortran/35892, fortran/29635, fortran/23057
-  fortran/24790, #457792, #457793, #459374, #459376, #459378)
-
-* Thu Aug 14 2008 Jakub Jelinek <jakub@redhat.com> 4.3.1-7
-- update from gcc-4_3-branch
-  - PRs bootstrap/35752, c++/36688, c++/36999, c++/37016, c/35746,
-	fortran/36582, libgcj/31890, middle-end/35432, middle-end/36691,
-	middle-end/37014, middle-end/37026, middle-end/37042,
-	rtl-optimization/35542, rtl-optimization/36998, target/35659,
-	target/36613, tree-optimization/36991
-- fix folding of widened comparisons (PR middle-end/37103)
-
-* Fri Aug  1 2008 Jakub Jelinek <jakub@redhat.com> 4.3.1-6
-- update from gcc-4_3-branch
-  - PRs c++/36405, c++/36767, c++/36852, debug/36278, preprocessor/36649,
-	rtl-optimization/36929
-  - fix the last -Os -fasynchronous-unwind-tables known issue (#447912,
-    PR rtl-optimization/36419)
-- don't loop > 230000 times in make_temp_file if /tmp is full (#203231)
-
-* Mon Jul 28 2008 Jakub Jelinek <jakub@redhat.com> 4.3.1-5
-- update from gcc-4_3-branch
-  - PRs c++/36407, fortran/36132, fortran/36366, fortran/36824, fortran/36852,
-	libfortran/36852, libstdc++/36552, libstdc++/36729, libstdc++/36832,
-	middle-end/36369, middle-end/36811, middle-end/36877,
-	rtl-optimization/35281, rtl-optimization/36419,
-	rtl-optimization/36753, target/35492, target/35802, target/36780,
-	target/36782, target/36784, target/36827, tree-optimization/36830
-- OpenMP 3.0 bugfixes from trunk
-  - fix occassional hangs of libgomp.c/ordered-3.c
-  - PR middle-end/36790
-
-* Tue Jul  8 2008 Jakub Jelinek <jakub@redhat.com> 4.3.1-4
-- update from gcc-4_3-branch
-  - PRs c++/34963, c++/36662, fortran/36546, fortran/36657, fortran/36676,
-	libstdc++/36612, libstdc++/36616, rtl-optimization/34744,
-	target/34780, target/34856, target/36510, target/36634,
-	target/36684, target/36698, target/36736, testsuite/36620,
-	tree-optimization/36648
-  - fix -frepo (#448390, PR c++/36364)
-- improve OpenMP debug info (PRs debug/36617, middle-end/36726)
-
-* Tue Jun 24 2008 Jakub Jelinek <jakub@redhat.com> 4.3.1-3
-- update from gcc-4_3-branch
-  - PRs c++/35317, c++/35320, documentation/30739, fortran/34908,
-	fortran/36276, fortran/36538, java/36247, middle-end/36584,
-	rtl-optimization/35604, target/36336, target/36424,
-	tree-optimization/36493, tree-optimization/36498,
-	tree-optimization/36504, tree-optimization/36519
-  - don't mark hard registers as reg pointers (#451068, target/36533)
-  - allow more compute_antic iterations (#450889, tree-optimization/36508)
-- fix #pragma omp task copyfn registration with cgraph (c++/36523)
-
-* Thu Jun 12 2008 Jakub Jelinek <jakub@redhat.com> 4.3.1-2
-- update from gcc-4_3-branch
-  - PRs c++/36408, middle-end/35336, middle-end/36506, testsuite/36443,
-	tree-optimization/36474
-- OpenMP 3.0 bugfixes from trunk
-  - fix a thinko in task dispatching on barriers
-  - PRs libgomp/36469, libgomp/36471
-- fix nested inline functions in -std=gnu99 mode (#450967, PR c/36507)
-
-* Mon Jun  9 2008 Jakub Jelinek <jakub@redhat.com> 4.3.1-1
-- update from gcc-4_3-branch
-  - 4.3.1 release
-  - PRs ada/24880, ada/26635, bootstrap/35169, bootstrap/36452, c++/35578,
-	c++/35986, c++/36023, c++/36237, c++/36308, fortran/35184,
-	fortran/35743, fortran/35745, fortran/35756, fortran/35759,
-	fortran/35780, fortran/35864, fortran/35997, fortran/36176,
-	fortran/36233, libfortran/35990, libfortran/35993, libfortran/35995,
-	libgcj/36252, libstdc++/35922, middle-end/34973, middle-end/36013,
-	middle-end/36077, middle-end/36093, middle-end/36106,
-	middle-end/36137, middle-end/36154, middle-end/36172,
-	middle-end/36194, middle-end/36227, middle-end/36244,
-	middle-end/36300, middle-end/PR28690, rtl-optimization/36111,
-	rtl-optimization/36419, target/27386, target/30243, target/34932,
-	target/35661, target/35921, target/36079, target/36090, target/36095,
-	target/36182, target/36224, target/36321, target/36362,
-	tree-optimization/34244, tree-optimization/34330,
-	tree-optimization/34976, tree-optimization/35204,
-	tree-optimization/36098, tree-optimization/36119,
-	tree-optimization/36129, tree-optimization/36181,
-	tree-optimization/36187, tree-optimization/36245,
-	tree-optimization/36262, tree-optimization/36291,
-	tree-optimization/36293, tree-optimization/36339
-- OpenMP 3.0 support
-
-* Tue May 20 2008 Tom "spot" Callaway <tcallawa@redhat.com> 4.3.0-11
-- fix missing file with sparcv9
-
-* Sun May 18 2008 Tom "spot" Callaway <tcallawa@redhat.com> 4.3.0-10
-- make sparcv9 the multilib_32_arch for sparc64
-
-* Sun May 18 2008 Tom "spot" Callaway <tcallawa@redhat.com> 4.3.0-9
-- sparcv9 support and detection
-
-* Mon Apr 28 2008 Jakub Jelinek <jakub@redhat.com> 4.3.0-8
-- update from gcc-4_3-branch
-  - decrease compile time stack usage during GC (#443739, PR debug/36060)
-  - fix -mregparm=X with K&R function decls (#443583, PR target/36015)
-  - fix tail called sqrt and math builtins (#435297,
-    PR rtl-optimization/36017)
-  - PRs c++/33486, c++/35316, c++/35325, c++/35678, c++/35747, c++/35758,
-	c++/35773, c/35436, c/35744, fortran/35932, fortran/35944,
-	fortran/35946, fortran/35947, fortran/35959, fortran/35994,
-	libgcj/35950, libstdc++/35597, libstdc++/35887, libstdc++/35954,
-	middle-end/36021, target/35944, testsuite/36056,
-	tree-optimization/35982, tree-optimization/36008,
-	tree-optimization/36034
-- fix C++ const references to bitfields (PR c++/35909)
-- fix C++ ++var = val error recovery (PR c++/35987)
-- fix C++ reference binding to function through using-decl (PR c++/35650)
-
-* Wed Apr 16 2008 Jakub Jelinek <jakub@redhat.com> 4.3.0-7
-- update from gcc-4_3-branch
-  - PRs c++/35708, c++/35734, libstdc++/35816, middle-end/35519,
-	rtl-optimization/34916, target/35364, target/35695,
-	tree-optimization/35821, tree-optimization/35833
-  - fix libgfortran buffer overflows
-- fix restoring of Altivec registers when alloca is used (PR target/35907)
-- misc fixes (PRs tree-optimization/35899, target/35662, c/35739)
-
-* Fri Apr  4 2008 Jakub Jelinek <jakub@redhat.com> 4.3.0-6
-- update from gcc-4_3-branch
-  - PRs ada/33857, c++/35245, c++/35741, c/35738, fortran/35698,
-	fortran/35699, fortran/35702, fortran/35724, fortran/35740,
-	fortran/35786, libfortran/35699, libstdc++/35725, middle-end/35429,
-	middle-end/35705, middle-end/35818, target/31110, target/31232,
-	target/35657, tree-opt/35431
-- fix OpenMP ICE on invalid extern/static VLA (PR c/35751)
-- fix PCH failure if a precompiled header is included more than
-  once (#251682, PR pch/13675)
-
-* Thu Mar 27 2008 Jakub Jelinek <jakub@redhat.com> 4.3.0-5
-- fix libgomp when sync builtins aren't available
-- on i386 build libgomp and __cxa_guard_* as i486+,
-  NPTL doesn't support pre-i486 anyway and atomic builtins give
-  significant speedups
-
-* Wed Mar 26 2008 Jakub Jelinek <jakub@redhat.com> 4.3.0-4
-- update from gcc-4_3-branch
-  - PRs c++/35332, c++/35548, debug/31510, fortran/33295, fortran/34813,
-	libfortran/35617, libfortran/35627, libgomp/35625, libstdc++/35256,
-	libstdc++/35637, middle-end/35593, middle-end/35609,
-	middle-end/35611, middle-end/35616, target/35504, testsuite/34168,
-	testsuite/35621
-- backport libgomp speedups from gomp-3_0-branch (#437268)
-- fix diagnostics with compound literals (PR c/35440)
-- fix C++ handling of late template attributes (PR c++/35546)
-- Prereq install-info in libgomp (#437523)
-
-* Fri Mar 14 2008 Jakub Jelinek <jakub@redhat.com> 4.3.0-3
-- update from gcc-4_3-branch
-  - PRs c++/33887, c++/35328, c++/35337, c++/35469, c/35438, c/35439,
-	fortran/35474, libstdc++/35541, libstdc++/35566, middle-end/35099,
-	middle-end/35185, middle-end/35456, middle-end/35526,
-	middle-end/35549, target/34000, target/35190, target/35225,
-	target/35350, target/35496, target/35540, target/35553,
-	tree-optimization/34989, tree-optimization/35472
-  - fix eclipse build (#434356)
-- libstdc++ doc fix (#436687)
-
-* Fri Mar  7 2008 Jakub Jelinek <jakub@redhat.com> 4.3.0-2
-- fix ppc/ppc64 8/16 bit sync builtins (PR target/35498)
-
-* Fri Mar  7 2008 Jakub Jelinek <jakub@redhat.com> 4.3.0-1
-- gcc 4.3.0 release
-  - PRs c++/35244, c++/35315, c++/35323, c++/35333, c++/35338, driver/35420,
-	libfortran/35355, libstdc++/35480, target/33963, target/35189,
-	target/35222, target/35401, target/35453
-
-* Fri Feb 29 2008 Jakub Jelinek <jakub@redhat.com> 4.3.0-0.13
-- update from gcc-4_3-branch
-  - PRs middle-end/19984, target/25477
-  - remove <system_error>, fix ppc/ppc64
-    std::{,tr1::}hash<long double>::operator() ABI
-
-* Thu Feb 28 2008 Jakub Jelinek <jakub@redhat.com> 4.3.0-0.12
-- update from gcc-4_3-branch
-  - PRs c++/34715, c++/35368, libfortran/24685, middle-end/34971,
-	middle-end/35390, target/25477
-
-* Fri Feb 22 2008 Jakub Jelinek <jakub@redhat.com> 4.3.0-0.11
-- update from gcc-4_3-branch
-  - 4.3.0 rc1
-  - PRs bootstrap/35218, bootstrap/35273, c++/34950, c++/35282,
-	middle-end/35265, rtl-optimization/35232, target/34526,
-	target/35071, target/35239, target/35264
-
-* Mon Feb 18 2008 Jakub Jelinek <jakub@redhat.com> 4.3.0-0.10
-- update to trunk
-  - PRs c++/11159, c++/28743, c++/34050, c++/35023, c++/35024, c++/35026,
-	c++/5645, c/28368, documentation/15479, fortran/34952,
-	fortran/35150, libgcj/33085, libstdc++/34797, libstdc++/35209,
-	libstdc++/35221, middle-end/34621, middle-end/35149, middle-end/35196,
-	middle-end/35227, preprocessor/35061, target/34930, target/35088,
-	testsuite/35119, testsuite/35208, tree-optimization/35164,
-	tree-optimization/35231
-- some OpenMP fixes (PRs c++/34964, c++/35028, c++/35078)
-- fix cp-tools.info* @direntry (#433222)
-
-* Thu Feb 14 2008 Jakub Jelinek <jakub@redhat.com> 4.3.0-0.9
-- update to trunk
-  - PRs middle-end/29673, ada/35143, c++/34774, c++/34824, c++/34962, c++/34937,
-	c++/34939, debug/35065, other/35148, target/34393
-- fix ia64 build (#432068)
-
-* Tue Feb 12 2008 Jakub Jelinek <jakub@redhat.com> 4.3.0-0.8
-- update to trunk
-  - PRs bootstrap/33781, bootstrap/34922, bootstrap/35051, bootstrap/35115,
-	c++/29048, c++/33553, c++/33916, c++/33964, c++/34052, c++/34094,
-	c++/34314, c++/34776, c++/34862, c++/34891, c++/34935, c++/34936,
-	c++/35049, c++/35056, c++/35074, c++/35077, c++/35096, c++/35097,
-	c++/35113, c++/35116, c/29326, c/34993, documentation/30330,
-	fortran/32315, fortran/32760, fortran/34910, fortran/34945,
-	fortran/35037, fortran/35093, java/35035, libffi/34612,
-	libfortran/35001, libfortran/35063, libgcj/30071, libstdc++/16251,
-	middle-end/33631, middle-end/34627, middle-end/35043,
-	middle-end/35136, middle-end/35163, middle_end/34150, objc++/34193,
-	other/29972, other/31405, other/32754, other/35042, other/35070,
-	other/35107, rtl-opt/33410, rtl-optimization/34773,
-	rtl-optimization/34995, rtl-optimization/34998, target/23322,
-	target/34900, target/34982, target/35045, target/35083,
-	target/35084, testsuite/33946, testsuite/35047,
-	tree-optimization/33992, tree-optimization/35085, tree-optimization/35171
-  - inline asm optimization fix (#432146, PR inline-asm/35160)
-  - SRA fix (#432090, PR c++/35144)
-- fix #pragma omp parallel body calling nested functions which store
-  into shared parent variables (PR middle-end/35130)
-- ./-> after dependent expr parsing fix (PR c++/35138)
-
-* Wed Jan 30 2008 Jakub Jelinek <jakub@redhat.com> 4.3.0-0.7
-- update from trunk
-  - fix ISO C99 6.7.4p3 diagnostics (#427634, PR c/35017)
-
-* Fri Jan 25 2008 Jakub Jelinek <jakub@redhat.com> 4.3.0-0.6
-- update from the trunk
-
-* Thu Jan 10 2008 Jakub Jelinek <jakub@redhat.com> 4.3.0-0.5
-- update from the trunk
-- don't require on ppc/ppc64 libmudflap in gcc subpackage
-
-* Thu Dec 20 2007 Jakub Jelinek <jakub@redhat.com> 4.3.0-0.4
-- update from the trunk
-- adjustments to build against xulrunner-devel
-
-* Fri Dec 14 2007 Jakub Jelinek <jakub@redhat.com> 4.3.0-0.3
-- build fastjar, gjar is uncomparably worse
-- fix profiledbootstrap and use it
-
-* Wed Dec 12 2007 Jakub Jelinek <jakub@redhat.com> 4.3.0-0.2
-- update from the trunk
-
-* Sun Dec  9 2007 Jakub Jelinek <jakub@redhat.com> 4.3.0-0.1
-- initial 4.3 package, using newly created redhat/gcc-4_3-branch

diff --git a/gcc44-build-id.patch b/gcc44-build-id.patch
new file mode 100644
index 0000000..f76f939
--- /dev/null
+++ b/gcc44-build-id.patch
@@ -0,0 +1,52 @@
+2007-07-22  Roland McGrath  <roland@redhat.com>
+
+	* config/rs6000/sysv4.h (LINK_EH_SPEC): Add --build-id for
+	non-relocatable link.
+	* config/linux.h (LINK_EH_SPEC): Likewise.
+	* config/alpha/elf.h (LINK_EH_SPEC): Likewise.
+	* config/ia64/linux.h (LINK_EH_SPEC): Likewise.
+
+--- gcc/config/rs6000/sysv4.h.~1~
++++ gcc/config/rs6000/sysv4.h
+@@ -906,7 +906,7 @@ extern int fixuplabelno;
+   %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}"
+ 
+ #if defined(HAVE_LD_EH_FRAME_HDR)
+-# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
++# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
+ #endif
+ 
+ #define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \
+--- gcc/config/linux.h.~1~
++++ gcc/config/linux.h
+@@ -85,7 +85,7 @@ Boston, MA 02110-1301, USA.  */
+     } while (0)
+ 
+ #if defined(HAVE_LD_EH_FRAME_HDR)
+-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
++#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
+ #endif
+ 
+ /* Define this so we can compile MS code for use with WINE.  */
+--- gcc/config/alpha/elf.h.~1~
++++ gcc/config/alpha/elf.h
+@@ -421,7 +421,7 @@ extern int alpha_this_gpdisp_sequence_nu
+    I imagine that other systems will catch up.  In the meantime, it
+    doesn't harm to make sure that the data exists to be used later.  */
+ #if defined(HAVE_LD_EH_FRAME_HDR)
+-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
++#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
+ #endif
+ 
+ /* A C statement (sans semicolon) to output to the stdio stream STREAM
+--- gcc/config/ia64/linux.h.~1~
++++ gcc/config/ia64/linux.h
+@@ -56,7 +56,7 @@ do {						\
+    Signalize that because we have fde-glibc, we don't need all C shared libs
+    linked against -lgcc_s.  */
+ #undef LINK_EH_SPEC
+-#define LINK_EH_SPEC ""
++#define LINK_EH_SPEC "%{!r:--build-id} "
+ 
+ #define MD_UNWIND_SUPPORT "config/ia64/linux-unwind.h"
+ 

diff --git a/gcc44-c++-builtin-redecl.patch b/gcc44-c++-builtin-redecl.patch
new file mode 100644
index 0000000..77655ad
--- /dev/null
+++ b/gcc44-c++-builtin-redecl.patch
@@ -0,0 +1,102 @@
+2007-10-02  Jakub Jelinek  <jakub@redhat.com>
+
+	* decl.c (duplicate_decls): When redeclaring a builtin function,
+	keep the merged decl builtin whenever types match, even if new
+	decl defines a function.
+
+	* gcc.dg/builtins-65.c: New test.
+	* g++.dg/ext/builtin10.C: New test.
+
+--- gcc/cp/decl.c.jj	2007-10-01 22:11:09.000000000 +0200
++++ gcc/cp/decl.c	2007-10-02 11:39:46.000000000 +0200
+@@ -1988,23 +1988,21 @@ duplicate_decls (tree newdecl, tree oldd
+ 	  DECL_ARGUMENTS (olddecl) = DECL_ARGUMENTS (newdecl);
+ 	  DECL_RESULT (olddecl) = DECL_RESULT (newdecl);
+ 	}
++      /* If redeclaring a builtin function, it stays built in.  */
++      if (types_match && DECL_BUILT_IN (olddecl))
++	{
++	  DECL_BUILT_IN_CLASS (newdecl) = DECL_BUILT_IN_CLASS (olddecl);
++	  DECL_FUNCTION_CODE (newdecl) = DECL_FUNCTION_CODE (olddecl);
++	  /* If we're keeping the built-in definition, keep the rtl,
++	     regardless of declaration matches.  */
++	  COPY_DECL_RTL (olddecl, newdecl);
++	}
+       if (new_defines_function)
+ 	/* If defining a function declared with other language
+ 	   linkage, use the previously declared language linkage.  */
+ 	SET_DECL_LANGUAGE (newdecl, DECL_LANGUAGE (olddecl));
+       else if (types_match)
+ 	{
+-	  /* If redeclaring a builtin function, and not a definition,
+-	     it stays built in.  */
+-	  if (DECL_BUILT_IN (olddecl))
+-	    {
+-	      DECL_BUILT_IN_CLASS (newdecl) = DECL_BUILT_IN_CLASS (olddecl);
+-	      DECL_FUNCTION_CODE (newdecl) = DECL_FUNCTION_CODE (olddecl);
+-	      /* If we're keeping the built-in definition, keep the rtl,
+-		 regardless of declaration matches.  */
+-	      COPY_DECL_RTL (olddecl, newdecl);
+-	    }
+-
+ 	  DECL_RESULT (newdecl) = DECL_RESULT (olddecl);
+ 	  /* Don't clear out the arguments if we're redefining a function.  */
+ 	  if (DECL_ARGUMENTS (olddecl))
+--- gcc/testsuite/gcc.dg/builtins-65.c.jj	2007-10-02 11:23:51.000000000 +0200
++++ gcc/testsuite/gcc.dg/builtins-65.c	2007-10-02 11:24:12.000000000 +0200
+@@ -0,0 +1,25 @@
++/* { dg-do compile } */
++/* { dg-options "-O2" } */
++
++typedef __SIZE_TYPE__ size_t;
++extern void __chk_fail (void);
++extern int snprintf (char *, size_t, const char *, ...);
++extern inline __attribute__((gnu_inline, always_inline)) int snprintf (char *a, size_t b, const char *fmt, ...)
++{
++  if (__builtin_object_size (a, 0) != -1UL && __builtin_object_size (a, 0) < b)
++    __chk_fail ();
++  return __builtin_snprintf (a, b, fmt, __builtin_va_arg_pack ());
++}
++extern int snprintf (char *, size_t, const char *, ...) __asm ("mysnprintf");
++
++char buf[10];
++
++int
++main (void)
++{
++  snprintf (buf, 10, "%d%d\n", 10, 10);
++  return 0;
++}
++
++/* { dg-final { scan-assembler "mysnprintf" } } */
++/* { dg-final { scan-assembler-not "__chk_fail" } } */
+--- gcc/testsuite/g++.dg/ext/builtin10.C.jj	2007-10-02 11:19:45.000000000 +0200
++++ gcc/testsuite/g++.dg/ext/builtin10.C	2007-10-02 11:23:26.000000000 +0200
+@@ -0,0 +1,27 @@
++// { dg-do compile }
++// { dg-options "-O2" }
++
++typedef __SIZE_TYPE__ size_t;
++extern "C" {
++extern void __chk_fail (void);
++extern int snprintf (char *, size_t, const char *, ...);
++extern inline __attribute__((gnu_inline, always_inline)) int snprintf (char *a, size_t b, const char *fmt, ...)
++{
++  if (__builtin_object_size (a, 0) != -1UL && __builtin_object_size (a, 0) < b)
++    __chk_fail ();
++  return __builtin_snprintf (a, b, fmt, __builtin_va_arg_pack ());
++}
++extern int snprintf (char *, size_t, const char *, ...) __asm ("mysnprintf");
++}
++
++char buf[10];
++
++int
++main (void)
++{
++  snprintf (buf, 10, "%d%d\n", 10, 10);
++  return 0;
++}
++
++// { dg-final { scan-assembler "mysnprintf" } }
++// { dg-final { scan-assembler-not "__chk_fail" } }

diff --git a/gcc44-hack.patch b/gcc44-hack.patch
new file mode 100644
index 0000000..4880b12
--- /dev/null
+++ b/gcc44-hack.patch
@@ -0,0 +1,113 @@
+--- libada/Makefile.in.jj	2009-01-14 12:07:35.000000000 +0100
++++ libada/Makefile.in	2009-01-15 14:25:33.000000000 +0100
+@@ -66,17 +66,39 @@ target_noncanonical:=@target_noncanonica
+ version := $(shell cat $(srcdir)/../gcc/BASE-VER)
+ libsubdir := $(libdir)/gcc/$(target_noncanonical)/$(version)$(MULTISUBDIR)
+ 
++DEFAULTMULTIFLAGS :=
++ifeq ($(MULTISUBDIR),)
++targ:=$(subst -, ,$(target))
++arch:=$(word 1,$(targ))
++ifeq ($(words $(targ)),2)
++osys:=$(word 2,$(targ))
++else
++osys:=$(word 3,$(targ))
++endif
++ifeq ($(strip $(filter-out i%86 x86_64 powerpc% ppc% s390% sparc% linux%, $(arch) $(osys))),)
++ifeq ($(shell $(CC) $(CFLAGS) -print-multi-os-directory),../lib64)
++DEFAULTMULTIFLAGS := -m64
++else
++ifeq ($(strip $(filter-out s390%, $(arch))),)
++DEFAULTMULTIFLAGS := -m31
++else
++DEFAULTMULTIFLAGS := -m32
++endif
++endif
++endif
++endif
++
+ # exeext should not be used because it's the *host* exeext.  We're building
+ # a *target* library, aren't we?!?  Likewise for CC.  Still, provide bogus
+ # definitions just in case something slips through the safety net provided
+ # by recursive make invocations in gcc/ada/Makefile.in
+ LIBADA_FLAGS_TO_PASS = \
+         "MAKEOVERRIDES=" \
+-        "LDFLAGS=$(LDFLAGS)" \
++        "LDFLAGS=$(strip $(LDFLAGS) $(DEFAULTMULTIFLAGS))" \
+         "LN_S=$(LN_S)" \
+         "SHELL=$(SHELL)" \
+-        "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS)" \
+-        "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS)" \
++        "GNATLIBFLAGS=$(strip $(GNATLIBFLAGS) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS))" \
++        "GNATLIBCFLAGS=$(strip $(GNATLIBCFLAGS) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS))" \
+         "TARGET_LIBGCC2_CFLAGS=$(TARGET_LIBGCC2_CFLAGS)" \
+         "THREAD_KIND=$(THREAD_KIND)" \
+         "TRACE=$(TRACE)" \
+@@ -87,7 +109,7 @@ LIBADA_FLAGS_TO_PASS = \
+         "exeext=.exeext.should.not.be.used " \
+ 	'CC=the.host.compiler.should.not.be.needed' \
+ 	"GCC_FOR_TARGET=$(CC)" \
+-        "CFLAGS=$(CFLAGS) $(WARN_CFLAGS)"
++        "CFLAGS=$(strip $(CFLAGS) $(DEFAULTMULTIFLAGS) $(WARN_CFLAGS))"
+ 
+ # Rules to build gnatlib.
+ .PHONY: gnatlib gnatlib-plain gnatlib-sjlj gnatlib-zcx gnatlib-shared oscons
+--- libjava/classpath/native/plugin/gcjwebplugin.cc.jj	2009-01-14 12:08:34.000000000 +0100
++++ libjava/classpath/native/plugin/gcjwebplugin.cc	2009-01-15 21:20:17.000000000 +0100
+@@ -45,7 +45,7 @@ exception statement from your version. *
+ 
+ // Netscape plugin API includes.
+ #include <npapi.h>
+-#include <npupp.h>
++#include <npfunctions.h>
+ 
+ // GLib includes.
+ #include <glib.h>
+@@ -827,7 +827,7 @@ GCJ_URLNotify (NPP instance, const char*
+   PLUGIN_DEBUG ("GCJ_URLNotify return");
+ }
+ 
+-jref
++void *
+ GCJ_GetJavaClass (void)
+ {
+   PLUGIN_DEBUG ("GCJ_GetJavaClass");
+@@ -1669,17 +1669,17 @@ NP_Initialize (NPNetscapeFuncs* browserT
+   // Return to the browser the plugin functions that we implement.
+   pluginTable->version = (NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR;
+   pluginTable->size = sizeof (NPPluginFuncs);
+-  pluginTable->newp = NewNPP_NewProc (GCJ_New);
+-  pluginTable->destroy = NewNPP_DestroyProc (GCJ_Destroy);
+-  pluginTable->setwindow = NewNPP_SetWindowProc (GCJ_SetWindow);
+-  pluginTable->newstream = NewNPP_NewStreamProc (GCJ_NewStream);
+-  pluginTable->destroystream = NewNPP_DestroyStreamProc (GCJ_DestroyStream);
+-  pluginTable->asfile = NewNPP_StreamAsFileProc (GCJ_StreamAsFile);
+-  pluginTable->writeready = NewNPP_WriteReadyProc (GCJ_WriteReady);
+-  pluginTable->write = NewNPP_WriteProc (GCJ_Write);
+-  pluginTable->print = NewNPP_PrintProc (GCJ_Print);
+-  pluginTable->urlnotify = NewNPP_URLNotifyProc (GCJ_URLNotify);
+-  pluginTable->getvalue = NewNPP_GetValueProc (GCJ_GetValue);
++  pluginTable->newp = (NPP_NewProcPtr) (GCJ_New);
++  pluginTable->destroy = (NPP_DestroyProcPtr) (GCJ_Destroy);
++  pluginTable->setwindow = (NPP_SetWindowProcPtr) (GCJ_SetWindow);
++  pluginTable->newstream = (NPP_NewStreamProcPtr) (GCJ_NewStream);
++  pluginTable->destroystream = (NPP_DestroyStreamProcPtr) (GCJ_DestroyStream);
++  pluginTable->asfile = (NPP_StreamAsFileProcPtr) (GCJ_StreamAsFile);
++  pluginTable->writeready = (NPP_WriteReadyProcPtr) (GCJ_WriteReady);
++  pluginTable->write = (NPP_WriteProcPtr) (GCJ_Write);
++  pluginTable->print = (NPP_PrintProcPtr) (GCJ_Print);
++  pluginTable->urlnotify = (NPP_URLNotifyProcPtr) (GCJ_URLNotify);
++  pluginTable->getvalue = (NPP_GetValueProcPtr) (GCJ_GetValue);
+   
+   initialized = true;
+ 
+--- gcc/ada/make.adb	2008-11-07 23:00:32.000000000 +0100
++++ gcc/ada/make.adb	2009-01-16 17:55:02.000000000 +0100
+@@ -8039,6 +8039,7 @@ package body Make is
+              or else Argv (2 .. Argv'Last) = "pg"
+              or else (Argv (2) = 'm' and then Argv'Last > 2)
+              or else (Argv (2) = 'f' and then Argv'Last > 2)
++             or else (Argv'Last >= 8 and then Argv (2 .. 8) = "-param=")
+          then
+             Add_Switch (Argv, Compiler, And_Save => And_Save);
+             Add_Switch (Argv, Linker, And_Save => And_Save);

diff --git a/gcc44-i386-libgomp.patch b/gcc44-i386-libgomp.patch
new file mode 100644
index 0000000..5d1eea8
--- /dev/null
+++ b/gcc44-i386-libgomp.patch
@@ -0,0 +1,61 @@
+Build i386.rpm libgomp and libsupc++.a(guard.o) as i486+, pre-i486
+hardware isn't supported because NPTL doesn't support it anyway.
+
+--- libgomp/configure.tgt.jj	2008-01-10 20:53:48.000000000 +0100
++++ libgomp/configure.tgt	2008-03-27 12:44:51.000000000 +0100
+@@ -44,14 +44,14 @@ if test $enable_linux_futex = yes; then
+ 	;;
+ 
+     # Note that bare i386 is not included here.  We need cmpxchg.
+-    i[456]86-*-linux*)
++    i[3456]86-*-linux*)
+ 	config_path="linux/x86 linux posix"
+ 	case " ${CC} ${CFLAGS} " in
+ 	  *" -m64 "*)
+ 	    ;;
+ 	  *)
+ 	    if test -z "$with_arch"; then
+-	      XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}"
++	      XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic"
+ 	    fi
+ 	esac
+ 	;;
+@@ -63,7 +63,7 @@ if test $enable_linux_futex = yes; then
+ 	config_path="linux/x86 linux posix"
+ 	case " ${CC} ${CFLAGS} " in
+ 	  *" -m32 "*)
+-	    XCFLAGS="${XCFLAGS} -march=i486 -mtune=i686"
++	    XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic"
+ 	    ;;
+ 	esac
+ 	;;
+--- libstdc++-v3/libsupc++/guard.cc.jj	2008-03-01 00:58:24.000000000 +0100
++++ libstdc++-v3/libsupc++/guard.cc	2008-03-27 14:08:44.000000000 +0100
+@@ -35,6 +35,27 @@
+ #include <new>
+ #include <ext/atomicity.h>
+ #include <ext/concurrence.h>
++#if defined __i386__ && !defined _GLIBCXX_ATOMIC_BUILTINS_4
++# define _GLIBCXX_ATOMIC_BUILTINS_4 1
++# define __sync_val_compare_and_swap(a, b, c) \
++  ({								\
++     typedef char sltast[sizeof (*a) == sizeof (int) ? 1 : -1];	\
++     int sltas;							\
++     __asm __volatile ("lock; cmpxchgl %3, (%1)"		\
++		       : "=a" (sltas)				\
++		       : "r" (a), "0" (b), "r" (c) : "memory");	\
++     sltas;							\
++   })
++# define __sync_lock_test_and_set(a, b) \
++  ({								\
++     typedef char sltast[sizeof (*a) == sizeof (int) ? 1 : -1];	\
++     int sltas;							\
++     __asm __volatile ("xchgl (%1), %0"				\
++		       : "=r" (sltas)				\
++		       : "r" (a), "0" (b) : "memory");		\
++     sltas;							\
++   })
++#endif
+ #if defined(__GTHREADS) && defined(__GTHREAD_HAS_COND) \
+     && defined(_GLIBCXX_ATOMIC_BUILTINS_4) && defined(_GLIBCXX_HAVE_LINUX_FUTEX)
+ # include <climits>

diff --git a/gcc44-ia64-libunwind.patch b/gcc44-ia64-libunwind.patch
new file mode 100644
index 0000000..8e10979
--- /dev/null
+++ b/gcc44-ia64-libunwind.patch
@@ -0,0 +1,538 @@
+2004-11-27  Jakub Jelinek  <jakub@redhat.com>
+
+	* config.gcc (ia64*-*-linux*): If native and libelf is installed,
+	use ia64/t-glibc-no-libunwind instead of the other t-*unwind*
+	fragments.
+	* config/ia64/t-glibc-no-libunwind: New file.
+	* config/ia64/change-symver.c: New file.
+	* config/ia64/unwind-ia64.c: If USE_SYMVER_GLOBAL and SHARED,
+	define _Unwind_* to __symverglobal_Unwind_*.
+	(alias): Undefine.
+	(symverglobal): Define.  Use it on _Unwind_*.
+	* config/ia64/mkmap-symver-multi.awk: New file.
+	* config/ia64/libgcc-ia64-no-libunwind.ver: New file.
+
+--- gcc/config.gcc.jj	2004-10-04 08:55:44.000000000 -0400
++++ gcc/config.gcc	2004-11-13 05:23:50.000000000 -0500
+@@ -1185,9 +1185,16 @@ ia64*-*-freebsd*)
+ 	;;
+ ia64*-*-linux*)
+ 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h ia64/sysv4.h ia64/linux.h"
+-	tmake_file="${tmake_file} ia64/t-ia64 t-libunwind ia64/t-glibc"
+-	if test x$with_system_libunwind != xyes ; then
+-		tmake_file="${tmake_file} t-libunwind-elf ia64/t-glibc-libunwind"
++	tmake_file="${tmake_file} ia64/t-ia64"
++	if test x${target} = x${host} && test x${target} = x${build} \
++	   && grep gelf_getverdef /usr/include/gelf.h > /dev/null 2>&1 \
++	   && test -f /usr/lib/libelf.so; then
++		tmake_file="${tmake_file} ia64/t-glibc-no-libunwind"
++	else
++		tmake_file="${tmake_file} t-libunwind ia64/t-glibc"
++		if test x$with_system_libunwind != xyes ; then
++			tmake_file="${tmake_file} t-libunwind-elf ia64/t-glibc-libunwind"
++		fi
+ 	fi
+ 	target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
+ 	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
+--- gcc/config/ia64/t-glibc-no-libunwind.jj	2004-02-18 10:27:36.000000000 -0500
++++ gcc/config/ia64/t-glibc-no-libunwind	2004-11-15 09:56:33.000000000 -0500
+@@ -0,0 +1,30 @@
++# Don't use system libunwind library on IA-64 GLIBC based system,
++# but make _Unwind_* symbols unversioned, so that created programs
++# are usable even when libgcc_s uses libunwind.
++LIB2ADDEH += $(srcdir)/config/ia64/fde-glibc.c
++SHLIB_MAPFILES += $(srcdir)/config/ia64/libgcc-ia64-no-libunwind.ver
++SHLIB_MKMAP = $(srcdir)/config/ia64/mkmap-symver-multi.awk
++
++SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
++	-Wl,--soname=$(SHLIB_SONAME) \
++	-Wl,--version-script=$(SHLIB_MAP) \
++	-o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp @multilib_flags@ $(SHLIB_OBJS) -lc && \
++	rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \
++	if [ -f $(SHLIB_DIR)/$(SHLIB_SONAME) ]; then \
++	  mv -f $(SHLIB_DIR)/$(SHLIB_SONAME) \
++		$(SHLIB_DIR)/$(SHLIB_SONAME).backup; \
++	else true; fi && \
++	gcc -O2 -o $(SHLIB_DIR)/$(SHLIB_SONAME).tweak \
++	  $$(gcc_srcdir)/config/ia64/change-symver.c -lelf && \
++	$(SHLIB_DIR)/$(SHLIB_SONAME).tweak $(SHLIB_DIR)/$(SHLIB_SONAME).tmp \
++	GCC_3.4.2 _GLOBAL_ \
++	_Unwind_GetGR _Unwind_RaiseException _Unwind_GetRegionStart _Unwind_SetIP \
++	_Unwind_GetIP _Unwind_GetLanguageSpecificData _Unwind_Resume \
++	_Unwind_DeleteException _Unwind_SetGR _Unwind_ForcedUnwind \
++	_Unwind_Backtrace _Unwind_FindEnclosingFunction _Unwind_GetCFA \
++	_Unwind_Resume_or_Rethrow _Unwind_GetBSP && \
++	rm -f $(SHLIB_DIR)/$(SHLIB_SONAME).tweak && \
++	mv $(SHLIB_DIR)/$(SHLIB_SONAME).tmp $(SHLIB_DIR)/$(SHLIB_SONAME) && \
++	$(LN_S) $(SHLIB_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK)
++
++TARGET_LIBGCC2_CFLAGS += -DUSE_SYMVER_GLOBAL
+--- gcc/config/ia64/change-symver.c.jj	2004-02-18 10:27:36.000000000 -0500
++++ gcc/config/ia64/change-symver.c	2004-11-13 05:23:50.000000000 -0500
+@@ -0,0 +1,211 @@
++#define _GNU_SOURCE 1
++#define _FILE_OFFSET_BITS 64
++#include <endian.h>
++#include <errno.h>
++#include <error.h>
++#include <fcntl.h>
++#include <fnmatch.h>
++#include <gelf.h>
++#include <stdlib.h>
++#include <string.h>
++#include <unistd.h>
++
++int
++compute_veridx (const char *name, Elf *elf, Elf_Data *verd, GElf_Shdr *verd_shdr)
++{
++  if (strcmp (name, "_GLOBAL_") == 0)
++    return 1;
++
++  int cnt;
++  size_t offset = 0;
++  for (cnt = verd_shdr->sh_info; --cnt >= 0; )
++    {
++      GElf_Verdef defmem;
++      GElf_Verdef *def;
++      GElf_Verdaux auxmem;
++      GElf_Verdaux *aux;
++      unsigned int auxoffset;
++
++      /* Get the data at the next offset.  */
++      def = gelf_getverdef (verd, offset, &defmem);
++      if (def == NULL)
++	break;
++
++      auxoffset = offset + def->vd_aux;
++      aux = gelf_getverdaux (verd, auxoffset, &auxmem);
++      if (aux == NULL)
++	break;
++
++      if (strcmp (name, elf_strptr (elf, verd_shdr->sh_link,
++		  aux->vda_name)) == 0)
++	return def->vd_ndx;
++
++      /* Find the next offset.  */
++      offset += def->vd_next;
++    }
++
++  return -1;
++}
++
++int
++main (int argc, char **argv)
++{
++  if (argc < 4)
++    error (1, 0, "Usage: change_symver library from_symver to_symver symbol...\nExample: change_symver libfoo.so FOO_1.0 *global* bar baz");
++
++  const char *fname = argv[1];
++
++  /* Open the file.  */
++  int fd;
++  fd = open (fname, O_RDWR);
++  if (fd == -1)
++    error (1, errno, fname);
++
++  elf_version (EV_CURRENT);
++
++  /* Now get the ELF descriptor.  */
++  Elf *elf = elf_begin (fd, ELF_C_READ_MMAP, NULL);
++  if (elf == NULL || elf_kind (elf) != ELF_K_ELF)
++    error (1, 0, "Couldn't open %s: %s", fname, elf_errmsg (-1));
++
++  size_t shstrndx;
++  /* Get the section header string table index.  */
++  if (elf_getshstrndx (elf, &shstrndx) < 0)
++    error (1, 0, "cannot get shstrndx from %s", fname);
++
++  GElf_Ehdr ehdr_mem;
++  GElf_Ehdr *ehdr;
++
++  /* We need the ELF header in a few places.  */
++  ehdr = gelf_getehdr (elf, &ehdr_mem);
++  if (ehdr == NULL)
++    error (1, 0, "couldn't get ELF headers %s: %s", fname, elf_errmsg (-1));
++
++  Elf_Scn *scn = NULL;
++  GElf_Shdr shdr_mem, verd_shdr, ver_shdr, dynsym_shdr;
++  Elf_Data *ver = NULL, *verd = NULL, *dynsym = NULL;
++
++  while ((scn = elf_nextscn (elf, scn)) != NULL)
++    {
++      GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
++
++      if (shdr == NULL)
++	error (1, 0, "couldn't get shdr from %s", fname);
++
++      if ((shdr->sh_flags & SHF_ALLOC) != 0)
++	{
++	  const char *name = elf_strptr (elf, shstrndx, shdr->sh_name);
++	  Elf_Data **p;
++
++	  if (strcmp (name, ".gnu.version") == 0)
++	    {
++	      p = &ver;
++	      ver_shdr = *shdr;
++	    }
++	  else if (strcmp (name, ".gnu.version_d") == 0)
++	    {
++	      p = &verd;
++	      verd_shdr = *shdr;
++	    }
++	  else if (strcmp (name, ".dynsym") == 0)
++	    {
++	      p = &dynsym;
++	      dynsym_shdr = *shdr;
++	    }
++	  else
++	    continue;
++
++	  if (*p != NULL)
++	    error (1, 0, "Two %s sections in %s", name, fname);
++	  *p = elf_getdata (scn, NULL);
++	  if (*p == NULL || elf_getdata (scn, *p) != NULL)
++	    error (1, 0, "No data or non-contiguous data in %s section in %s",
++		   name, fname);
++	}
++    }
++
++  if (ver == NULL || verd == NULL || dynsym == NULL)
++    error (1, 0, "Couldn't find one of the needed sections in %s", fname);
++
++  int from_idx = compute_veridx (argv[2], elf, verd, &verd_shdr);
++  if (from_idx == -1)
++    error (1, 0, "Could not find symbol version %s in %s", argv[2], fname);
++
++  int to_idx = compute_veridx (argv[3], elf, verd, &verd_shdr);
++  if (to_idx == -1)
++    error (1, 0, "Could not find symbol version %s in %s", argv[3], fname);
++
++  if (dynsym_shdr.sh_entsize != gelf_fsize (elf, ELF_T_SYM, 1, ehdr->e_version)
++      || dynsym_shdr.sh_size % dynsym_shdr.sh_entsize
++      || ver_shdr.sh_entsize != 2
++      || (ver_shdr.sh_size & 1)
++      || dynsym_shdr.sh_size / dynsym_shdr.sh_entsize != ver_shdr.sh_size / 2)
++    error (1, 0, "Unexpected sh_size or sh_entsize in %s", fname);
++
++  size_t nentries = ver_shdr.sh_size / 2;
++  size_t cnt;
++  GElf_Versym array[nentries];
++  for (cnt = 0; cnt < nentries; ++cnt)
++    {
++      GElf_Versym vsymmem;
++      GElf_Versym *vsym;
++
++      vsym = gelf_getversym (ver, cnt, &vsymmem);
++      if (vsym == NULL)
++	error (1, 0, "gelt_getversym failed in %s: %s", fname, elf_errmsg (-1));
++
++      array[cnt] = *vsym;
++      if (*vsym != from_idx)
++	continue;
++
++      GElf_Sym sym_mem;
++      GElf_Sym *sym;
++      sym = gelf_getsym (dynsym, cnt, &sym_mem);
++      if (sym == NULL)
++	error (1, 0, "gelt_getsym failed in %s: %s", fname, elf_errmsg (-1));
++
++      const char *name = elf_strptr (elf, dynsym_shdr.sh_link, sym->st_name);
++
++      int argn;
++      for (argn = 4; argn < argc; ++argn)
++	if (fnmatch (argv[argn], name, 0) == 0)
++	  {
++	    array[cnt] = to_idx;
++	    break;
++	  }
++    }
++
++  if (sizeof (array[0]) != 2)
++    abort ();
++
++#if __BYTE_ORDER == __LITTLE_ENDIAN
++  if (ehdr->e_ident[EI_DATA] == ELFDATA2LSB)
++    ;
++  else if (ehdr->e_ident[EI_DATA] == ELFDATA2MSB)
++#elif __BYTE_ORDER == __BIG_ENDIAN
++  if (ehdr->e_ident[EI_DATA] == ELFDATA2MSB)
++    ;
++  else if (ehdr->e_ident[EI_DATA] == ELFDATA2LSB)
++#else
++# error Unsupported endianity
++#endif
++    {
++      for (cnt = 0; cnt < nentries; ++cnt)
++	array[cnt] = ((array[cnt] & 0xff) << 8) | ((array[cnt] & 0xff00) >> 8);
++    }
++  else
++    error (1, 0, "Unknown EI_DATA %d in %s", ehdr->e_ident[EI_DATA], fname);
++
++  if (elf_end (elf) != 0)
++    error (1, 0, "couldn't close %s: %s", fname, elf_errmsg (-1));
++
++  if (lseek (fd, ver_shdr.sh_offset, SEEK_SET) != (off_t) ver_shdr.sh_offset)
++    error (1, 0, "failed to seek to %zd in %s", (size_t) ver_shdr.sh_offset,
++	   fname);
++
++  if (write (fd, array, 2 * nentries) != (ssize_t) (2 * nentries))
++    error (1, 0, "failed to write .gnu.version section into %s", fname);
++
++  close (fd);
++  return 0;
++}
+--- gcc/config/ia64/unwind-ia64.c.jj	2004-10-04 08:55:57.000000000 -0400
++++ gcc/config/ia64/unwind-ia64.c	2004-11-15 09:07:45.000000000 -0500
+@@ -51,6 +51,51 @@
+ #define UNW_FLAG_UHANDLER(x)	((x) & 0x0000000200000000L)
+ #define UNW_LENGTH(x)		((x) & 0x00000000ffffffffL)
+ 
++#if defined (USE_SYMVER_GLOBAL) && defined (SHARED)
++extern _Unwind_Reason_Code __symverglobal_Unwind_Backtrace
++  (_Unwind_Trace_Fn, void *);
++extern void __symverglobal_Unwind_DeleteException
++  (struct _Unwind_Exception *);
++extern void * __symverglobal_Unwind_FindEnclosingFunction (void *);
++extern _Unwind_Reason_Code __symverglobal_Unwind_ForcedUnwind
++  (struct _Unwind_Exception *, _Unwind_Stop_Fn, void *);
++extern _Unwind_Word __symverglobal_Unwind_GetCFA
++  (struct _Unwind_Context *);
++extern _Unwind_Word __symverglobal_Unwind_GetBSP
++  (struct _Unwind_Context *);
++extern _Unwind_Word __symverglobal_Unwind_GetGR
++  (struct _Unwind_Context *, int );
++extern _Unwind_Ptr __symverglobal_Unwind_GetIP (struct _Unwind_Context *);
++extern void *__symverglobal_Unwind_GetLanguageSpecificData
++  (struct _Unwind_Context *);
++extern _Unwind_Ptr __symverglobal_Unwind_GetRegionStart
++  (struct _Unwind_Context *);
++extern _Unwind_Reason_Code __symverglobal_Unwind_RaiseException
++  (struct _Unwind_Exception *);
++extern void __symverglobal_Unwind_Resume (struct _Unwind_Exception *);
++extern _Unwind_Reason_Code __symverglobal_Unwind_Resume_or_Rethrow
++   (struct _Unwind_Exception *);
++extern void __symverglobal_Unwind_SetGR
++  (struct _Unwind_Context *, int, _Unwind_Word);
++extern void __symverglobal_Unwind_SetIP
++  (struct _Unwind_Context *, _Unwind_Ptr);
++#define _Unwind_Backtrace __symverglobal_Unwind_Backtrace
++#define _Unwind_DeleteException __symverglobal_Unwind_DeleteException
++#define _Unwind_FindEnclosingFunction __symverglobal_Unwind_FindEnclosingFunction
++#define _Unwind_ForcedUnwind __symverglobal_Unwind_ForcedUnwind
++#define _Unwind_GetBSP __symverglobal_Unwind_GetBSP
++#define _Unwind_GetCFA __symverglobal_Unwind_GetCFA
++#define _Unwind_GetGR __symverglobal_Unwind_GetGR
++#define _Unwind_GetIP __symverglobal_Unwind_GetIP
++#define _Unwind_GetLanguageSpecificData __symverglobal_Unwind_GetLanguageSpecificData
++#define _Unwind_GetRegionStart __symverglobal_Unwind_GetRegionStart
++#define _Unwind_RaiseException __symverglobal_Unwind_RaiseException
++#define _Unwind_Resume __symverglobal_Unwind_Resume
++#define _Unwind_Resume_or_Rethrow __symverglobal_Unwind_Resume_or_Rethrow
++#define _Unwind_SetGR __symverglobal_Unwind_SetGR
++#define _Unwind_SetIP __symverglobal_Unwind_SetIP
++#endif
++
+ enum unw_application_register
+ {
+   UNW_AR_BSP,
+@@ -2402,4 +2447,44 @@ alias (_Unwind_SetGR);
+ alias (_Unwind_SetIP);
+ #endif
+ 
++#if defined (USE_SYMVER_GLOBAL) && defined (SHARED)
++#undef alias
++#define symverglobal(name, version) \
++__typeof (__symverglobal##name) __symverlocal##name		\
++  __attribute__ ((alias ("__symverglobal" #name)));		\
++__asm__ (".symver __symverglobal" #name"," #name "@@GCC_3.4.2");\
++__asm__ (".symver __symverlocal" #name"," #name "@" #version)
++
++#undef _Unwind_Backtrace
++#undef _Unwind_DeleteException
++#undef _Unwind_FindEnclosingFunction
++#undef _Unwind_ForcedUnwind
++#undef _Unwind_GetBSP
++#undef _Unwind_GetCFA
++#undef _Unwind_GetGR
++#undef _Unwind_GetIP
++#undef _Unwind_GetLanguageSpecificData
++#undef _Unwind_GetRegionStart
++#undef _Unwind_RaiseException
++#undef _Unwind_Resume
++#undef _Unwind_Resume_or_Rethrow
++#undef _Unwind_SetGR
++#undef _Unwind_SetIP
++symverglobal (_Unwind_Backtrace, GCC_3.3);
++symverglobal (_Unwind_DeleteException, GCC_3.0);
++symverglobal (_Unwind_FindEnclosingFunction, GCC_3.3);
++symverglobal (_Unwind_ForcedUnwind, GCC_3.0);
++symverglobal (_Unwind_GetBSP, GCC_3.3.2);
++symverglobal (_Unwind_GetCFA, GCC_3.3);
++symverglobal (_Unwind_GetGR, GCC_3.0);
++symverglobal (_Unwind_GetIP, GCC_3.0);
++symverglobal (_Unwind_GetLanguageSpecificData, GCC_3.0);
++symverglobal (_Unwind_GetRegionStart, GCC_3.0);
++symverglobal (_Unwind_RaiseException, GCC_3.0);
++symverglobal (_Unwind_Resume, GCC_3.0);
++symverglobal (_Unwind_Resume_or_Rethrow, GCC_3.3);
++symverglobal (_Unwind_SetGR, GCC_3.0);
++symverglobal (_Unwind_SetIP, GCC_3.0);
++#endif
++
+ #endif
+--- gcc/config/ia64/mkmap-symver-multi.awk.jj	2004-02-18 10:27:36.000000000 -0500
++++ gcc/config/ia64/mkmap-symver-multi.awk	2004-11-15 09:46:50.000000000 -0500
+@@ -0,0 +1,133 @@
++# Generate an ELF symbol version map a-la Solaris and GNU ld.
++#	Contributed by Richard Henderson <rth@cygnus.com>
++#
++# This file is part of GCC.
++#
++# GCC is free software; you can redistribute it and/or modify it under
++# the terms of the GNU General Public License as published by the Free
++# Software Foundation; either version 2, or (at your option) any later
++# version.
++#
++# GCC is distributed in the hope that it will be useful, but WITHOUT
++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
++# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
++# License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with GCC; see the file COPYING.  If not, write to the Free
++# Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
++# 02110-1301, USA.
++
++BEGIN {
++  state = "nm";
++  sawsymbol = 0;
++}
++
++# Remove comment and blank lines.
++/^ *#/ || /^ *$/ {
++  next;
++}
++
++# We begin with nm input.  Collect the set of symbols that are present
++# so that we can not emit them into the final version script -- Solaris
++# complains at us if we do.
++
++state == "nm" && /^%%/ {
++  state = "ver";
++  next;
++}
++
++state == "nm" && ($1 == "U" || $2 == "U") {
++  next;
++}
++
++state == "nm" && NF == 3 {
++  if ($3 ~ /^[^@]*@GCC_[0-9.]*$/) {
++    def[$3] = 1
++    tl=$3
++    sub(/^.*@/,"",tl)
++    ver[$3] = tl
++  } else {
++    sub(/@@?GCC_[0-9.]*$/,"",$3)
++    def[$3] = 1;
++  }
++  sawsymbol = 1;
++  next;
++}
++
++state == "nm" {
++  next;
++}
++
++# Now we process a simplified variant of the Solaris symbol version
++# script.  We have one symbol per line, no semicolons, simple markers
++# for beginning and ending each section, and %inherit markers for
++# describing version inheritence.  A symbol may appear in more than
++# one symbol version, and the last seen takes effect.
++
++NF == 3 && $1 == "%inherit" {
++  inherit[$2] = $3;
++  next;
++}
++
++NF == 2 && $2 == "{" {
++  libs[$1] = 1;
++  thislib = $1;
++  next;
++}
++
++$1 == "}" {
++  thislib = "";
++  next;
++}
++
++{
++  ver[$1] = thislib;
++  next;
++}
++
++END {
++  if (!sawsymbol)
++    {
++      print "No symbols seen -- broken or mis-installed nm?" | "cat 1>&2";
++      exit 1;
++    }
++  for (l in libs)
++    output(l);
++}
++
++function output(lib) {
++  if (done[lib])
++    return;
++  done[lib] = 1;
++  if (inherit[lib])
++    output(inherit[lib]);
++
++  empty=1
++  for (sym in ver)
++    if ((ver[sym] == lib) && (sym in def))
++      {
++	if (empty)
++	  {
++	    printf("%s {\n", lib);
++	    printf("  global:\n");
++	    empty = 0;
++	  }
++	symp = sym;
++	sub(/@GCC_[0-9.]*$/,"",symp);
++	printf("\t%s;\n", symp);
++	if (dotsyms)
++	  printf("\t.%s;\n", symp);
++      }
++
++  if (empty)
++    {
++      for (l in libs)
++	if (inherit[l] == lib)
++	  inherit[l] = inherit[lib];
++    }
++  else if (inherit[lib])
++    printf("} %s;\n", inherit[lib]);
++  else
++    printf ("\n  local:\n\t*;\n};\n");
++}
+--- gcc/config/ia64/libgcc-ia64-no-libunwind.ver.jj	2004-02-18 10:27:36.000000000 -0500
++++ gcc/config/ia64/libgcc-ia64-no-libunwind.ver	2004-11-15 09:19:56.000000000 -0500
+@@ -0,0 +1,17 @@
++GCC_3.4.2 {
++  _Unwind_GetGR
++  _Unwind_RaiseException
++  _Unwind_GetRegionStart
++  _Unwind_SetIP
++  _Unwind_GetIP
++  _Unwind_GetLanguageSpecificData
++  _Unwind_Resume
++  _Unwind_DeleteException
++  _Unwind_SetGR
++  _Unwind_ForcedUnwind
++  _Unwind_Backtrace
++  _Unwind_FindEnclosingFunction
++  _Unwind_GetCFA
++  _Unwind_Resume_or_Rethrow
++  _Unwind_GetBSP
++}

diff --git a/gcc44-java-debug-iface-type.patch b/gcc44-java-debug-iface-type.patch
new file mode 100644
index 0000000..63a1b50
--- /dev/null
+++ b/gcc44-java-debug-iface-type.patch
@@ -0,0 +1,17 @@
+2008-01-25  Jakub Jelinek  <jakub@redhat.com>
+
+	* lang.c (java_classify_record): Revert 2007-12-20 change.
+
+--- gcc/java/lang.c	2007-12-27 09:09:49.000000000 +0100
++++ gcc/java/lang.c	2008-01-25 17:43:57.000000000 +0100
+@@ -965,9 +965,7 @@ java_classify_record (tree type)
+   if (! CLASS_P (type))
+     return RECORD_IS_STRUCT;
+ 
+-  /* ??? GDB does not support DW_TAG_interface_type as of December,
+-     2007.  Re-enable this at a later time.  */
+-  if (0 && CLASS_INTERFACE (TYPE_NAME (type)))
++  if (CLASS_INTERFACE (TYPE_NAME (type)))
+     return RECORD_IS_INTERFACE;
+ 
+   return RECORD_IS_CLASS;

diff --git a/gcc44-java-nomulti.patch b/gcc44-java-nomulti.patch
new file mode 100644
index 0000000..17334aa
--- /dev/null
+++ b/gcc44-java-nomulti.patch
@@ -0,0 +1,44 @@
+--- libjava/configure.ac.jj	2007-12-07 17:55:50.000000000 +0100
++++ libjava/configure.ac	2007-12-07 18:36:56.000000000 +0100
+@@ -82,6 +82,13 @@ AC_ARG_ENABLE(java-maintainer-mode,
+ 	[allow rebuilding of .class and .h files]))
+ AM_CONDITIONAL(JAVA_MAINTAINER_MODE, test "$enable_java_maintainer_mode" = yes)
+ 
++AC_ARG_ENABLE(libjava-multilib,
++	AS_HELP_STRING([--enable-libjava-multilib], [build libjava as multilib]))
++if test "$enable_libjava_multilib" = no; then
++  multilib=no
++  ac_configure_args="$ac_configure_args --disable-multilib"
++fi
++
+ # It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX.
+ GCC_NO_EXECUTABLES
+ 
+--- libjava/configure.jj	2007-12-07 17:55:50.000000000 +0100
++++ libjava/configure	2007-12-07 18:39:58.000000000 +0100
+@@ -1021,6 +1021,8 @@ Optional Features:
+                           default=yes
+   --enable-java-maintainer-mode
+                           allow rebuilding of .class and .h files
++  --enable-libjava-multilib
++                          build libjava as multilib
+   --disable-dependency-tracking  speeds up one-time build
+   --enable-dependency-tracking   do not reject slow dependency extractors
+   --enable-maintainer-mode  enable make rules and dependencies not useful
+@@ -1973,6 +1975,16 @@ else
+ fi
+ 
+ 
++# Check whether --enable-libjava-multilib was given.
++if test "${enable_libjava_multilib+set}" = set; then
++  enableval=$enable_libjava_multilib;
++fi
++
++if test "$enable_libjava_multilib" = no; then
++  multilib=no
++  ac_configure_args="$ac_configure_args --disable-multilib"
++fi
++
+ # It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX.
+ 
+ 

diff --git a/gcc44-libgomp-omp_h-multilib.patch b/gcc44-libgomp-omp_h-multilib.patch
new file mode 100644
index 0000000..d0e98d1
--- /dev/null
+++ b/gcc44-libgomp-omp_h-multilib.patch
@@ -0,0 +1,17 @@
+2008-06-09  Jakub Jelinek  <jakub@redhat.com>
+
+	* omp.h.in (omp_nest_lock_t): Fix up for Linux multilibs.
+
+--- libgomp/omp.h.in.jj	2008-06-09 13:34:05.000000000 +0200
++++ libgomp/omp.h.in	2008-06-09 13:34:48.000000000 +0200
+@@ -42,8 +42,8 @@ typedef struct
+ 
+ typedef struct
+ {
+-  unsigned char _x[@OMP_NEST_LOCK_SIZE@] 
+-    __attribute__((__aligned__(@OMP_NEST_LOCK_ALIGN@)));
++  unsigned char _x[8 + sizeof (void *)] 
++    __attribute__((__aligned__(sizeof (void *))));
+ } omp_nest_lock_t;
+ #endif
+ 

diff --git a/gcc44-libtool-no-rpath.patch b/gcc44-libtool-no-rpath.patch
new file mode 100644
index 0000000..466c661
--- /dev/null
+++ b/gcc44-libtool-no-rpath.patch
@@ -0,0 +1,27 @@
+libtool sucks.
+--- ltmain.sh.jj	2007-12-07 14:53:21.000000000 +0100
++++ ltmain.sh	2008-09-05 21:51:48.000000000 +0200
+@@ -5394,6 +5394,7 @@ EOF
+ 	  rpath="$finalize_rpath"
+ 	  test "$mode" != relink && rpath="$compile_rpath$rpath"
+ 	  for libdir in $rpath; do
++	    case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
+ 	    if test -n "$hardcode_libdir_flag_spec"; then
+ 	      if test -n "$hardcode_libdir_separator"; then
+ 		if test -z "$hardcode_libdirs"; then
+@@ -6071,6 +6072,7 @@ EOF
+       rpath=
+       hardcode_libdirs=
+       for libdir in $compile_rpath $finalize_rpath; do
++	case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
+ 	if test -n "$hardcode_libdir_flag_spec"; then
+ 	  if test -n "$hardcode_libdir_separator"; then
+ 	    if test -z "$hardcode_libdirs"; then
+@@ -6120,6 +6122,7 @@ EOF
+       rpath=
+       hardcode_libdirs=
+       for libdir in $finalize_rpath; do
++	case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
+ 	if test -n "$hardcode_libdir_flag_spec"; then
+ 	  if test -n "$hardcode_libdir_separator"; then
+ 	    if test -z "$hardcode_libdirs"; then

diff --git a/gcc44-ppc32-retaddr.patch b/gcc44-ppc32-retaddr.patch
new file mode 100644
index 0000000..e9ae1bc
--- /dev/null
+++ b/gcc44-ppc32-retaddr.patch
@@ -0,0 +1,86 @@
+2005-11-28  Jakub Jelinek  <jakub@redhat.com>
+
+	* config/rs6000/rs6000.c (rs6000_return_addr): If COUNT == 0,
+	read word RETURN_ADDRESS_OFFSET bytes above arg_pointer_rtx
+	instead of doing an extran indirection from frame_pointer_rtx.
+
+	* gcc.dg/20051128-1.c: New test.
+
+--- gcc/config/rs6000/rs6000.c.jj	2005-11-26 14:38:01.000000000 +0100
++++ gcc/config/rs6000/rs6000.c	2005-11-28 20:32:18.000000000 +0100
+@@ -13166,17 +13166,22 @@ rs6000_return_addr (int count, rtx frame
+      don't try to be too clever here.  */
+   if (count != 0 || (DEFAULT_ABI != ABI_AIX && flag_pic))
+     {
++      rtx x;
+       cfun->machine->ra_needs_full_frame = 1;
+ 
+-      return
+-	gen_rtx_MEM
+-	  (Pmode,
+-	   memory_address
+-	   (Pmode,
+-	    plus_constant (copy_to_reg
+-			   (gen_rtx_MEM (Pmode,
+-					 memory_address (Pmode, frame))),
+-			   RETURN_ADDRESS_OFFSET)));
++      if (count == 0)
++	{
++	  gcc_assert (frame == frame_pointer_rtx);
++	  x = arg_pointer_rtx;
++	}
++      else
++	{
++	  x = memory_address (Pmode, frame);
++	  x = copy_to_reg (gen_rtx_MEM (Pmode, x));
++	}
++
++      x = plus_constant (x, RETURN_ADDRESS_OFFSET);
++      return gen_rtx_MEM (Pmode, memory_address (Pmode, x));
+     }
+ 
+   cfun->machine->ra_need_lr = 1;
+--- gcc/testsuite/gcc.dg/20051128-1.c.jj	2005-10-10 11:21:41.096999000 +0200
++++ gcc/testsuite/gcc.dg/20051128-1.c	2005-11-28 12:30:57.000000000 +0100
+@@ -0,0 +1,41 @@
++/* { dg-do run } */
++/* { dg-options "-O2 -fpic" } */
++
++extern void exit (int);
++extern void abort (void);
++
++int b;
++
++struct A
++{
++  void *pad[147];
++  void *ra, *h;
++  long o;
++};
++
++void
++__attribute__((noinline))
++foo (struct A *a, void *x)
++{
++  __builtin_memset (a, 0, sizeof (a));
++  if (!b)
++    exit (0);
++}
++
++void
++__attribute__((noinline))
++bar (void)
++{
++  struct A a;
++
++  __builtin_unwind_init ();
++  foo (&a, __builtin_return_address (0));
++}
++
++int
++main (void)
++{
++  bar ();
++  abort ();
++  return 0;
++}

diff --git a/gcc44-pr27898.patch b/gcc44-pr27898.patch
new file mode 100644
index 0000000..172bb81
--- /dev/null
+++ b/gcc44-pr27898.patch
@@ -0,0 +1,16 @@
+2006-08-18  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c/27898
+	* gcc.dg/pr27898.c: New test.
+
+--- gcc/testsuite/gcc.dg/pr27898.c.jj	2006-08-18 09:19:33.000000000 +0200
++++ gcc/testsuite/gcc.dg/pr27898.c	2006-08-18 09:19:27.000000000 +0200
+@@ -0,0 +1,8 @@
++/* PR c/27898 */
++/* { dg-do compile } */
++/* { dg-options "--combine" } */
++/* { dg-additional-sources "pr27898.c" } */
++
++union u { struct { int i; }; };
++
++extern int foo (union u *);

diff --git a/gcc44-pr32139.patch b/gcc44-pr32139.patch
new file mode 100644
index 0000000..f356967
--- /dev/null
+++ b/gcc44-pr32139.patch
@@ -0,0 +1,19 @@
+2007-06-01  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/32139
+	* gcc.c-torture/compile/20070531-1.c: New test.
+
+--- gcc/testsuite/gcc.c-torture/compile/20070531-1.c.jj	2007-05-31 13:47:22.000000000 +0200
++++ gcc/testsuite/gcc.c-torture/compile/20070531-1.c	2007-06-01 10:57:15.000000000 +0200
+@@ -0,0 +1,11 @@
++/* PR tree-optimization/32139 */
++int foo (void);
++int bar (void) __attribute__ ((const));
++
++int
++test (int x)
++{
++  int a = (x == 10000 ? foo : bar) ();
++  int b = (x == 10000 ? foo : bar) ();
++  return a + b;
++}

diff --git a/gcc44-pr33763.patch b/gcc44-pr33763.patch
new file mode 100644
index 0000000..86c8ac7
--- /dev/null
+++ b/gcc44-pr33763.patch
@@ -0,0 +1,153 @@
+2007-11-06  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/33763
+	* gcc.dg/pr33763.c: New test.
+	* g++.dg/opt/inline13.C: New test.
+
+2007-11-06  Jan Hubicka  <jh@suse.cz>
+
+	PR tree-optimization/33763
+	* tree-inline.c (expand_call_inline): Silently ignore always_inline
+	attribute for redefined extern inline functions.
+
+--- gcc/tree-inline.c.jj	2007-11-06 09:29:04.000000000 +0100
++++ gcc/tree-inline.c	2007-11-06 16:19:12.000000000 +0100
+@@ -3157,6 +3157,12 @@ expand_call_inline (basic_block bb, gimp
+ 	goto egress;
+ 
+       if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (fn))
++	/* For extern inline functions that get redefined we always
++	   silently ignored alway_inline flag. Better behaviour would
++	   be to be able to keep both bodies and use extern inline body
++	   for inlining, but we can't do that because frontends overwrite
++	   the body.  */
++	  && !cg_edge->callee->local.redefined_extern_inline
+ 	  /* Avoid warnings during early inline pass. */
+ 	  && cgraph_global_info_ready)
+ 	{
+--- gcc/testsuite/gcc.dg/pr33763.c.jj	2007-11-06 16:19:12.000000000 +0100
++++ gcc/testsuite/gcc.dg/pr33763.c	2007-11-06 16:19:12.000000000 +0100
+@@ -0,0 +1,60 @@
++/* PR tree-optimization/33763 */
++/* { dg-do compile } */
++/* { dg-options "-O2" } */
++
++typedef struct
++{
++  void *a;
++  void *b;
++} T;
++extern void *foo (const char *, const char *);
++extern void *bar (void *, const char *, T);
++extern int baz (const char *, int);
++
++extern inline __attribute__ ((always_inline, gnu_inline)) int
++baz (const char *x, int y)
++{
++  return 2;
++}
++
++int
++baz (const char *x, int y)
++{
++  return 1;
++}
++
++int xa, xb;
++
++static void *
++inl (const char *x, const char *y)
++{
++  T t = { &xa, &xb };
++  int *f = (int *) __builtin_malloc (sizeof (int));
++  const char *z;
++  int o = 0;
++  void *r = 0;
++
++  for (z = y; *z; z++)
++    {
++      if (*z == 'r')
++	o |= 1;
++      if (*z == 'w')
++	o |= 2;
++    }
++  if (o == 1)
++    *f = baz (x, 0);
++  if (o == 2)
++    *f = baz (x, 1);
++  if (o == 3)
++    *f = baz (x, 2);
++
++  if (o && *f > 0)
++    r = bar (f, "w", t);
++  return r;
++}
++
++void *
++foo (const char *x, const char *y)
++{
++  return inl (x, y);
++}
+--- gcc/testsuite/g++.dg/opt/inline13.C.jj	2007-11-06 16:20:20.000000000 +0100
++++ gcc/testsuite/g++.dg/opt/inline13.C	2007-11-06 16:21:30.000000000 +0100
+@@ -0,0 +1,60 @@
++// PR tree-optimization/33763
++// { dg-do compile }
++// { dg-options "-O2" }
++
++typedef struct
++{
++  void *a;
++  void *b;
++} T;
++extern void *foo (const char *, const char *);
++extern void *bar (void *, const char *, T);
++extern int baz (const char *, int);
++
++extern inline __attribute__ ((always_inline, gnu_inline)) int
++baz (const char *x, int y)
++{
++  return 2;
++}
++
++int
++baz (const char *x, int y)
++{
++  return 1;
++}
++
++int xa, xb;
++
++static void *
++inl (const char *x, const char *y)
++{
++  T t = { &xa, &xb };
++  int *f = (int *) __builtin_malloc (sizeof (int));
++  const char *z;
++  int o = 0;
++  void *r = 0;
++
++  for (z = y; *z; z++)
++    {
++      if (*z == 'r')
++	o |= 1;
++      if (*z == 'w')
++	o |= 2;
++    }
++  if (o == 1)
++    *f = baz (x, 0);
++  if (o == 2)
++    *f = baz (x, 1);
++  if (o == 3)
++    *f = baz (x, 2);
++
++  if (o && *f > 0)
++    r = bar (f, "w", t);
++  return r;
++}
++
++void *
++foo (const char *x, const char *y)
++{
++  return inl (x, y);
++}

diff --git a/gcc44-rh330771.patch b/gcc44-rh330771.patch
new file mode 100644
index 0000000..f52b919
--- /dev/null
+++ b/gcc44-rh330771.patch
@@ -0,0 +1,34 @@
+2007-10-16  Jakub Jelinek  <jakub@redhat.com>
+
+	* Makefile.am (libgcj_tools_la_LIBADD): Add.
+	* Makefile.in: Regenerated.
+
+--- libjava/Makefile.am.jj	2007-03-17 09:20:30.000000000 +0100
++++ libjava/Makefile.am	2007-10-16 15:45:14.000000000 +0200
+@@ -277,6 +277,8 @@ EXTRA_libgcj_la_SOURCES = java/lang/Obje
+ 
+ libgcj_tools_la_SOURCES = classpath/tools/tools.zip
+ libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS) -findirect-dispatch -fno-indirect-classes  -fsource-filename=$(here)/classpath/tools/all-classes.lst
++## See jv_convert_LDADD.
++libgcj_tools_la_LIBADD = -L$(here)/.libs libgcj.la
+ libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \
+  -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
+  $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
+--- libjava/Makefile.in.jj	2007-07-04 21:11:11.000000000 +0200
++++ libjava/Makefile.in	2007-10-16 15:56:07.000000000 +0200
+@@ -153,7 +153,6 @@ am__objects_1 = gnu/gcj/xlib/lib_gnu_awt
+ am_lib_gnu_awt_xlib_la_OBJECTS = $(am__objects_1)
+ lib_gnu_awt_xlib_la_OBJECTS = $(am_lib_gnu_awt_xlib_la_OBJECTS)
+ @XLIB_AWT_TRUE@am_lib_gnu_awt_xlib_la_rpath = -rpath $(toolexeclibdir)
+-libgcj_tools_la_LIBADD =
+ am_libgcj_tools_la_OBJECTS = classpath/tools/libgcj_tools_la-tools.lo
+ libgcj_tools_la_OBJECTS = $(am_libgcj_tools_la_OBJECTS)
+ @INTERPRETER_TRUE@am__DEPENDENCIES_1 = gnu/classpath/jdwp.lo \
+@@ -941,6 +940,7 @@ libgcj_la_LINK = $(LIBLINK)
+ EXTRA_libgcj_la_SOURCES = java/lang/Object.java
+ libgcj_tools_la_SOURCES = classpath/tools/tools.zip
+ libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS) -findirect-dispatch -fno-indirect-classes  -fsource-filename=$(here)/classpath/tools/all-classes.lst
++libgcj_tools_la_LIBADD = -L$(here)/.libs libgcj.la
+ libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \
+  -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
+  $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)

diff --git a/gcc44-rh341221.patch b/gcc44-rh341221.patch
new file mode 100644
index 0000000..1f5ff91
--- /dev/null
+++ b/gcc44-rh341221.patch
@@ -0,0 +1,28 @@
+2007-10-21  Jakub Jelinek  <jakub@redhat.com>
+
+	* doc/Makefile.am (POD2MAN): Set date from cp-tools.texinfo
+	timestamp rather than from current date.
+	* doc/Makefile.in: Regenerated.
+
+--- libjava/classpath/doc/Makefile.am.jj	2007-12-07 17:55:00.000000000 +0100
++++ libjava/classpath/doc/Makefile.am	2007-12-07 18:55:28.000000000 +0100
+@@ -31,7 +31,7 @@ TOOLS_MANFILES = \
+ 	gtnameserv.1 \
+ 	gjdoc.1
+ 
+-POD2MAN = pod2man --center="GNU" --release="$(VERSION)"
++POD2MAN = pod2man --center="GNU" --release="$(VERSION)" --date="$(shell ls --time-style=+%F -l $(srcdir)/cp-tools.texinfo | awk '{print $$6}')"
+ TEXI2POD = perl $(srcdir)/texi2pod.pl
+ STAMP = echo timestamp >
+ 
+--- libjava/classpath/doc/Makefile.in.jj	2007-12-07 17:55:00.000000000 +0100
++++ libjava/classpath/doc/Makefile.in	2007-12-07 18:55:43.000000000 +0100
+@@ -382,7 +382,7 @@ TOOLS_MANFILES = \
+ 	gtnameserv.1 \
+ 	gjdoc.1
+ 
+-POD2MAN = pod2man --center="GNU" --release="$(VERSION)"
++POD2MAN = pod2man --center="GNU" --release="$(VERSION)" --date="$(shell ls --time-style=+%F -l $(srcdir)/cp-tools.texinfo | awk '{print $$6}')"
+ TEXI2POD = perl $(srcdir)/texi2pod.pl
+ STAMP = echo timestamp >
+ @GENINSRC_FALSE@STAMP_GENINSRC = 

diff --git a/gcc44-sparc-config-detection.patch b/gcc44-sparc-config-detection.patch
new file mode 100644
index 0000000..cc3cb41
--- /dev/null
+++ b/gcc44-sparc-config-detection.patch
@@ -0,0 +1,40 @@
+--- gcc/config.gcc.jj	2008-04-24 15:42:46.000000000 -0500
++++ gcc/config.gcc	2008-04-24 15:44:51.000000000 -0500
+@@ -2175,7 +2175,7 @@ sparc-*-elf*)
+ 	tmake_file="sparc/t-elf sparc/t-crtfm"
+ 	extra_parts="crti.o crtn.o crtbegin.o crtend.o"
+ 	;;
+-sparc-*-linux*)		# SPARC's running GNU/Linux, libc6
++sparc-*-linux* | sparcv9*-*-linux*)		# SPARC's running GNU/Linux, libc6
+ 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h linux.h"
+ 	extra_options="${extra_options} sparc/long-double-switch.opt"
+ 	tmake_file="${tmake_file} sparc/t-linux"
+@@ -2287,7 +2287,7 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd*
+ 		*) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
+ 	esac
+ 	;;
+-sparc64-*-linux*)		# 64-bit SPARC's running GNU/Linux
++sparc64*-*-linux*)		# 64-bit SPARC's running GNU/Linux
+ 	tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h linux.h sparc/linux64.h"
+ 	extra_options="${extra_options} sparc/long-double-switch.opt"
+ 	tmake_file="${tmake_file} sparc/t-linux sparc/t-linux64 sparc/t-crtfm"
+--- libgcc/config.host.jj	2008-04-24 15:46:19.000000000 -0500
++++ libgcc/config.host	2008-04-24 15:46:49.000000000 -0500
+@@ -572,7 +572,7 @@ sparc64-*-openbsd*)
+ 	;;
+ sparc-*-elf*)
+ 	;;
+-sparc-*-linux*)		# SPARC's running GNU/Linux, libc6
++sparc-*-linux* | sparcv9*-*-linux*)		# SPARC's running GNU/Linux, libc6
+ 	extra_parts="$extra_parts crtfastmath.o"
+ 	tmake_file="${tmake_file} sparc/t-crtfm"
+ 	;;
+@@ -590,7 +590,7 @@ sparc-wrs-vxworks)
+ 	;;
+ sparc64-*-freebsd*|ultrasparc-*-freebsd*)
+ 	;;
+-sparc64-*-linux*)		# 64-bit SPARC's running GNU/Linux
++sparc64*-*-linux*)		# 64-bit SPARC's running GNU/Linux
+ 	extra_parts="$extra_parts crtfastmath.o"
+ 	tmake_file="${tmake_file} sparc/t-crtfm"
+ 	;;

diff --git a/import.log b/import.log
new file mode 100644
index 0000000..c2040a3
--- /dev/null
+++ b/import.log
@@ -0,0 +1 @@
+gcc-4_4_0-0_3:HEAD:gcc-4.4.0-0.3.src.rpm:1232130841

diff --git a/sources b/sources
index 042742f..27264af 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-eb9ce8c6f929283bc91c93a6087e8ced  gcc-4.3.2-20081105.tar.bz2
-92a70f9e56223b653bce0f58f90cf950  fastjar-0.95.tar.gz
+2659f09c2e43ef8b7d4406321753f1b2  fastjar-0.97.tar.gz
+0fafcb0d23d420c978ab253702094ada  gcc-4.4.0-20090115.tar.bz2

                 reply	other threads:[~2026-06-29 12:23 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=178273583901.1.8445215389207279544.rpms-gcc-7c0747109312@fedoraproject.org \
    --to=jakub@fedoraproject.org \
    --cc=git-commits@fedoraproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox