public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/gcc] rhel-f41-base: 4.7.0-0.2
@ 2026-06-29 12:25 Jakub Jelinek
  0 siblings, 0 replies; 2+ messages in thread
From: Jakub Jelinek @ 2026-06-29 12:25 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/gcc
Branch : rhel-f41-base
Commit : a539bf409474f51a42e61843d4d3b64a80fea38c
Author : Jakub Jelinek <jakub@redhat.com>
Date   : 2012-01-03T15:31:26+01:00
Stats  : +5/-5 in 1 file(s)
URL    : https://src.fedoraproject.org/rpms/gcc/c/a539bf409474f51a42e61843d4d3b64a80fea38c?branch=rhel-f41-base

Log:
4.7.0-0.2

---
diff --git a/gcc47-pr38757.patch b/gcc47-pr38757.patch
index b6b3233..5fd23ea 100644
--- a/gcc47-pr38757.patch
+++ b/gcc47-pr38757.patch
@@ -70,7 +70,7 @@
  struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;
 --- gcc/dwarf2out.c.jj	2011-01-03 12:53:05.102056475 +0100
 +++ gcc/dwarf2out.c	2011-01-04 18:03:14.534151763 +0100
-@@ -17650,9 +17650,18 @@ add_bit_size_attribute (dw_die_ref die, 
+@@ -15793,9 +15793,18 @@ add_bit_size_attribute (dw_die_ref die, 
  static inline void
  add_prototyped_attribute (dw_die_ref die, tree func_type)
  {
@@ -92,10 +92,10 @@
  }
  
  /* Add an 'abstract_origin' attribute below a given DIE.  The DIE is found
-@@ -19875,6 +19884,10 @@ gen_compile_unit_die (const char *filena
- 	language = DW_LANG_ObjC;
-       else if (strcmp (language_string, "GNU Objective-C++") == 0)
- 	language = DW_LANG_ObjC_plus_plus;
+@@ -18438,6 +18447,10 @@ gen_compile_unit_die (const char *filena
+ 	  if (strcmp (language_string, "GNU Go") == 0)
+ 	    language = DW_LANG_Go;
+ 	}
 +      else if (strcmp (language_string, "GNU C") == 0
 +	       && lang_hooks.source_language
 +	       && lang_hooks.source_language () >= 1999)

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [rpms/gcc] rhel-f41-base: 4.7.0-0.2
@ 2026-06-29 12:25 Jakub Jelinek
  0 siblings, 0 replies; 2+ messages in thread
From: Jakub Jelinek @ 2026-06-29 12:25 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/gcc
Branch : rhel-f41-base
Commit : 5c29a257402c1e3f62f44c0906c0c5e5bcb5fbb7
Author : Jakub Jelinek <jakub@redhat.com>
Date   : 2012-01-03T15:17:22+01:00
Stats  : +1753/-2091 in 38 file(s)
URL    : https://src.fedoraproject.org/rpms/gcc/c/5c29a257402c1e3f62f44c0906c0c5e5bcb5fbb7?branch=rhel-f41-base

Log:
4.7.0-0.2

---
diff --git a/.gitignore b/.gitignore
index 3268ccc..2b92100 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,4 @@
 /gcc-4.6.1-20110627.tar.bz2
 /gcc-4.6.1-20110708.tar.bz2
 /gcc-4.6.1-20110715.tar.bz2
+/gcc-4.7.0-20120103.tar.bz2

diff --git a/gcc.spec b/gcc.spec
index 5801bce..92fab44 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,9 +1,9 @@
-%global DATE 20111027
-%global SVNREV 180561
-%global gcc_version 4.6.2
+%global DATE 20120103
+%global SVNREV 182847
+%global gcc_version 4.7.0
 # Note, gcc_release must be integer, if you want to add suffixes to
 # %{release}, append them after %{gcc_release} on Release: line.
-%global gcc_release 1 
+%global gcc_release 0
 %global _unpackaged_files_terminate_build 0
 %global multilib_64_archs sparc64 ppc64 s390x x86_64
 %ifarch %{ix86} x86_64 ia64 ppc ppc64 alpha
@@ -12,16 +12,17 @@
 %global build_ada 0
 %endif
 %global build_java 1
-%ifarch %{ix86} x86_64
 %global build_go 1
-%else
-%global build_go 0
-%endif
 %ifarch %{ix86} x86_64 ia64
 %global build_libquadmath 1
 %else
 %global build_libquadmath 0
 %endif
+%ifarch %{ix86} x86_64 %{arm} alpha
+%global build_libitm 1
+%else
+%global build_libitm 0
+%endif
 %global build_cloog 1
 %global build_libstdcxx_docs 1
 # If you don't have already a usable gcc-java and libgcj for your arch,
@@ -45,14 +46,14 @@
 Summary: Various compilers (C, C++, Objective-C, Java, ...)
 Name: gcc
 Version: %{gcc_version}
-Release: %{gcc_release}%{?dist}.1
+Release: %{gcc_release}.2%{?dist}
 # libgcc, libgfortran, libmudflap, libgomp, libstdc++ and crtstuff have
 # GCC Runtime Exception.
 License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
 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_6-branch@%{SVNREV} gcc-%{version}-%{DATE}
+# svn export svn://gcc.gnu.org/svn/gcc/branches/redhat/gcc-4_7-branch@%{SVNREV} gcc-%{version}-%{DATE}
 # tar cf - gcc-%{version}-%{DATE} | bzip2 -9 > gcc-%{version}-%{DATE}.tar.bz2
 Source0: gcc-%{version}-%{DATE}.tar.bz2
 %global fastjar_ver 0.97
@@ -153,23 +154,22 @@ Requires(post): /sbin/install-info
 Requires(preun): /sbin/install-info
 AutoReq: true
 
-Patch0: gcc46-hack.patch
-Patch2: gcc46-c++-builtin-redecl.patch
-Patch4: gcc46-java-nomulti.patch
-Patch5: gcc46-ppc32-retaddr.patch
-Patch6: gcc46-pr33763.patch
-Patch7: gcc46-rh330771.patch
-Patch8: gcc46-i386-libgomp.patch
-Patch9: gcc46-sparc-config-detection.patch
-Patch10: gcc46-libgomp-omp_h-multilib.patch
-Patch11: gcc46-libtool-no-rpath.patch
-Patch12: gcc46-cloog-dl.patch
-Patch14: gcc46-pr38757.patch
-Patch15: gcc46-libstdc++-docs.patch
-Patch17: gcc46-no-add-needed.patch
-Patch18: gcc46-ppl-0.10.patch
-Patch19: gcc46-pr47858.patch
-Patch20: gcc46-libjava-prims-ctype.patch
+Patch0: gcc47-hack.patch
+Patch1: gcc47-c++-builtin-redecl.patch
+Patch2: gcc47-java-nomulti.patch
+Patch3: gcc47-ppc32-retaddr.patch
+Patch4: gcc47-pr33763.patch
+Patch5: gcc47-rh330771.patch
+Patch6: gcc47-i386-libgomp.patch
+Patch7: gcc47-sparc-config-detection.patch
+Patch8: gcc47-libgomp-omp_h-multilib.patch
+Patch9: gcc47-libtool-no-rpath.patch
+Patch10: gcc47-cloog-dl.patch
+Patch11: gcc47-pr38757.patch
+Patch12: gcc47-libstdc++-docs.patch
+Patch13: gcc47-no-add-needed.patch
+Patch14: gcc47-ppl-0.10.patch
+Patch15: gcc47-libitm-fno-exceptions.patch
 
 Patch1000: fastjar-0.97-segfault.patch
 Patch1001: fastjar-0.97-len1.patch
@@ -193,11 +193,11 @@ Patch1004: fastjar-man.patch
 %endif
 
 %description
-The gcc package contains the GNU Compiler Collection version 4.6.
+The gcc package contains the GNU Compiler Collection version 4.7.
 You'll need this package in order to compile C code.
 
 %package -n libgcc
-Summary: GCC version 4.6 shared support library
+Summary: GCC version 4.7 shared support library
 Group: System Environment/Libraries
 Autoreq: false
 
@@ -398,6 +398,34 @@ Requires: libquadmath-devel = %{version}-%{release}
 This package contains static libraries for building Fortran programs
 using REAL*16 and programs using __float128 math.
 
+%package -n libitm
+Summary: The GNU Transactional Memory library
+Group: System Environment/Libraries
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+
+%description -n libitm
+This package contains the GNU Transactional Memory library
+which is a GCC transactional memory support runtime library.
+
+%package -n libitm-devel
+Summary: The GNU Transactional Memory support
+Group: Development/Libraries
+Requires: libitm = %{version}-%{release}
+Requires: gcc = %{version}-%{release}
+
+%description -n libitm-devel
+This package contains headers and support files for the
+GNU Transactional Memory library.
+
+%package -n libitm-static
+Summary: The GNU Transactional Memory static library
+Group: Development/Libraries
+Requires: libitm-devel = %{version}-%{release}
+
+%description -n libitm-static
+This package contains GNU Transactional Memory static libraries.
+
 %package java
 Summary: Java support for GCC
 Group: Development/Languages
@@ -620,28 +648,27 @@ package or when debugging this package.
 %prep
 %setup -q -n gcc-%{version}-%{DATE}
 %patch0 -p0 -b .hack~
-%patch2 -p0 -b .c++-builtin-redecl~
-%patch4 -p0 -b .java-nomulti~
-%patch5 -p0 -b .ppc32-retaddr~
-%patch6 -p0 -b .pr33763~
-%patch7 -p0 -b .rh330771~
-%patch8 -p0 -b .i386-libgomp~
-%patch9 -p0 -b .sparc-config-detection~
-%patch10 -p0 -b .libgomp-omp_h-multilib~
-%patch11 -p0 -b .libtool-no-rpath~
+%patch1 -p0 -b .c++-builtin-redecl~
+%patch2 -p0 -b .java-nomulti~
+%patch3 -p0 -b .ppc32-retaddr~
+%patch4 -p0 -b .pr33763~
+%patch5 -p0 -b .rh330771~
+%patch6 -p0 -b .i386-libgomp~
+%patch7 -p0 -b .sparc-config-detection~
+%patch8 -p0 -b .libgomp-omp_h-multilib~
+%patch9 -p0 -b .libtool-no-rpath~
 %if %{build_cloog}
-%patch12 -p0 -b .cloog-dl~
+%patch10 -p0 -b .cloog-dl~
 %endif
-%patch14 -p0 -b .pr38757~
+%patch11 -p0 -b .pr38757~
 %if %{build_libstdcxx_docs}
-%patch15 -p0 -b .libstdc++-docs~
+%patch12 -p0 -b .libstdc++-docs~
 %endif
-%patch17 -p0 -b .no-add-needed~
+%patch13 -p0 -b .no-add-needed~
 %if 0%{?fedora} < 15 || 0%{?rhel} < 7
-%patch18 -p0 -b .ppl-0.10~
+%patch14 -p0 -b .ppl-0.10~
 %endif
-%patch19 -p0 -b .pr47858~
-%patch20 -p0 -b .libjava-prims-ctype~
+%patch15 -p0 -b .libitm-fno-exceptions~
 
 %if 0%{?_enable_debug_packages}
 cat > split-debuginfo.sh <<\EOF
@@ -653,7 +680,7 @@ if [ -f "${BUILDDIR}"/debugfiles.list \
   > "${BUILDDIR}"/debugfiles-base.list
   cd "${RPM_BUILD_ROOT}"
   for f in `find usr/lib/debug -name \*.debug \
-	    | egrep 'lib[0-9]*/lib(gcc|gomp|stdc)'`; do
+	    | egrep 'lib[0-9]*/lib(gcc|gomp|stdc|quadmath|itm)'`; do
     echo "/$f" >> "${BUILDDIR}"/debugfiles-base.list
     if [ -f "$f" -a ! -L "$f" ]; then
       cp -a "$f" "${BUILDDIR}"/test.debug
@@ -664,7 +691,7 @@ if [ -f "${BUILDDIR}"/debugfiles.list \
     fi
   done
   for f in `find usr/lib/debug/.build-id -type l`; do
-    ls -l "$f" | egrep -q -- '->.*lib[0-9]*/lib(gcc|gomp|stdc)' \
+    ls -l "$f" | egrep -q -- '->.*lib[0-9]*/lib(gcc|gomp|stdc|quadmath|itm)' \
       && echo "/$f" >> "${BUILDDIR}"/debugfiles-base.list
   done
   grep -v -f "${BUILDDIR}"/debugfiles-base.list \
@@ -705,7 +732,7 @@ tar xzf %{SOURCE4}
 tar xjf %{SOURCE10}
 %endif
 
-sed -i -e 's/4\.6\.3/4.6.2/' gcc/BASE-VER
+sed -i -e 's/4\.7\.0/4.7.0/' gcc/BASE-VER
 echo 'Red Hat %{version}-%{gcc_release}' > gcc/DEV-PHASE
 
 %if 0%{?fedora} >= 16 || 0%{?rhel} >= 7
@@ -852,8 +879,9 @@ CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`" 
 	../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
 	--with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap \
 	--enable-shared --enable-threads=posix --enable-checking=release \
+	--disable-build-with-cxx --disable-build-poststage1-with-cxx \
 	--with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions \
-	--enable-gnu-unique-object --enable-linker-build-id \
+	--enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu \
 	--enable-languages=c,c++,objc,obj-c++,java,fortran${enablelada}${enablelgo},lto \
 	--enable-plugin \
 %if !%{build_java}
@@ -917,8 +945,8 @@ CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`" 
 	--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
+GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" bootstrap
+#GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" profiledbootstrap
 
 # Make generated man pages even if Pod::Man is not new enough
 perl -pi -e 's/head3/head2/' ../contrib/texi2pod.pl
@@ -940,7 +968,7 @@ cd ../..
 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/go rpm.doc/libgo rpm.doc/libquadmath
+mkdir -p rpm.doc/go rpm.doc/libgo rpm.doc/libquadmath rpm.doc/libitm
 mkdir -p rpm.doc/changelogs/{gcc/cp,gcc/java,gcc/ada,libstdc++-v3,libobjc,libmudflap,libgomp}
 
 for i in {gcc,gcc/cp,gcc/java,gcc/ada,libstdc++-v3,libobjc,libmudflap,libgomp}/ChangeLog*; do
@@ -974,6 +1002,11 @@ cp -p libjava/LIBGCJ_LICENSE rpm.doc/libjava/
 	cp -p $i ../rpm.doc/libquadmath/$i.libquadmath
 done)
 %endif
+%if %{build_libitm}
+(cd libitm; for i in ChangeLog*; do
+	cp -p $i ../rpm.doc/libitm/$i.libitm
+done)
+%endif
 %if %{build_go}
 (cd gcc/go; for i in README* ChangeLog*; do
 	cp -p $i ../../rpm.doc/go/$i
@@ -1123,6 +1156,7 @@ sed -i -e 's/lib: /&%%{static:%%eJava programs cannot be linked statically}/' \
 %endif
 
 mv %{buildroot}%{_prefix}/lib/libgfortran.spec $FULLPATH/
+mv %{buildroot}%{_prefix}/lib/libitm.spec $FULLPATH/
 
 mkdir -p %{buildroot}/%{_lib}
 mv -f %{buildroot}%{_prefix}/%{_lib}/libgcc_s.so.1 %{buildroot}/%{_lib}/libgcc_s-%{gcc_version}-%{DATE}.so.1
@@ -1200,7 +1234,7 @@ popd
 
 pushd $FULLPATH
 if [ "%{_lib}" = "lib" ]; then
-ln -sf ../../../libobjc.so.3 libobjc.so
+ln -sf ../../../libobjc.so.4 libobjc.so
 ln -sf ../../../libstdc++.so.6.*[0-9] libstdc++.so
 ln -sf ../../../libgfortran.so.3.* libgfortran.so
 ln -sf ../../../libgomp.so.1.* libgomp.so
@@ -1212,13 +1246,16 @@ ln -sf ../../../libgo.so.0.* libgo.so
 %if %{build_libquadmath}
 ln -sf ../../../libquadmath.so.0.* libquadmath.so
 %endif
+%if %{build_libitm}
+ln -sf ../../../libitm.so.1.* libitm.so
+%endif
 %if %{build_java}
-ln -sf ../../../libgcj.so.12.* libgcj.so
-ln -sf ../../../libgcj-tools.so.12.* libgcj-tools.so
-ln -sf ../../../libgij.so.12.* libgij.so
+ln -sf ../../../libgcj.so.13.* libgcj.so
+ln -sf ../../../libgcj-tools.so.13.* libgcj-tools.so
+ln -sf ../../../libgij.so.13.* libgij.so
 %endif
 else
-ln -sf ../../../../%{_lib}/libobjc.so.3 libobjc.so
+ln -sf ../../../../%{_lib}/libobjc.so.4 libobjc.so
 ln -sf ../../../../%{_lib}/libstdc++.so.6.*[0-9] libstdc++.so
 ln -sf ../../../../%{_lib}/libgfortran.so.3.* libgfortran.so
 ln -sf ../../../../%{_lib}/libgomp.so.1.* libgomp.so
@@ -1230,10 +1267,13 @@ ln -sf ../../../../%{_lib}/libgo.so.0.* libgo.so
 %if %{build_libquadmath}
 ln -sf ../../../../%{_lib}/libquadmath.so.0.* libquadmath.so
 %endif
+%if %{build_libitm}
+ln -sf ../../../../%{_lib}/libitm.so.1.* libitm.so
+%endif
 %if %{build_java}
-ln -sf ../../../../%{_lib}/libgcj.so.12.* libgcj.so
-ln -sf ../../../../%{_lib}/libgcj-tools.so.12.* libgcj-tools.so
-ln -sf ../../../../%{_lib}/libgij.so.12.* libgij.so
+ln -sf ../../../../%{_lib}/libgcj.so.13.* libgcj.so
+ln -sf ../../../../%{_lib}/libgcj-tools.so.13.* libgcj-tools.so
+ln -sf ../../../../%{_lib}/libgij.so.13.* libgij.so
 %endif
 fi
 %if %{build_java}
@@ -1248,6 +1288,9 @@ mv -f %{buildroot}%{_prefix}/%{_lib}/libmudflap{,th}.*a $FULLLPATH/
 %if %{build_libquadmath}
 mv -f %{buildroot}%{_prefix}/%{_lib}/libquadmath.*a $FULLLPATH/
 %endif
+%if %{build_libitm}
+mv -f %{buildroot}%{_prefix}/%{_lib}/libitm.*a $FULLLPATH/
+%endif
 %if %{build_go}
 mv -f %{buildroot}%{_prefix}/%{_lib}/libgo.*a $FULLLPATH/
 mv -f %{buildroot}%{_prefix}/%{_lib}/libgobegin.*a $FULLLPATH/
@@ -1265,35 +1308,35 @@ 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.6.so
+ln -sf ../../../../../libgnarl-*.so libgnarl-4.7.so
 ln -sf ../../../../../libgnat-*.so libgnat.so
-ln -sf ../../../../../libgnat-*.so libgnat-4.6.so
+ln -sf ../../../../../libgnat-*.so libgnat-4.7.so
 else
 ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl.so
-ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl-4.6.so
+ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl-4.7.so
 ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat.so
-ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat-4.6.so
+ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat-4.7.so
 fi
 popd
 else
 pushd $FULLPATH/adalib
 if [ "%{_lib}" = "lib" ]; then
 ln -sf ../../../../libgnarl-*.so libgnarl.so
-ln -sf ../../../../libgnarl-*.so libgnarl-4.6.so
+ln -sf ../../../../libgnarl-*.so libgnarl-4.7.so
 ln -sf ../../../../libgnat-*.so libgnat.so
-ln -sf ../../../../libgnat-*.so libgnat-4.6.so
+ln -sf ../../../../libgnat-*.so libgnat-4.7.so
 else
 ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl.so
-ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl-4.6.so
+ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl-4.7.so
 ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat.so
-ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat-4.6.so
+ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat-4.7.so
 fi
 popd
 fi
 %endif
 
 %ifarch sparcv9 ppc
-ln -sf ../../../../../lib64/libobjc.so.3 64/libobjc.so
+ln -sf ../../../../../lib64/libobjc.so.4 64/libobjc.so
 ln -sf ../`echo ../../../../lib/libstdc++.so.6.*[0-9] | 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
@@ -1312,10 +1355,15 @@ rm -f libquadmath.so
 echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libquadmath.so.0.* | sed 's,^.*libq,libq,'`' )' > libquadmath.so
 echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libquadmath.so.0.* | sed 's,^.*libq,libq,'`' )' > 64/libquadmath.so
 %endif
+%if %{build_libitm}
+rm -f libitm.so
+echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libitm.so.1.* | sed 's,^.*libi,libi,'`' )' > libitm.so
+echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libitm.so.1.* | sed 's,^.*libi,libi,'`' )' > 64/libitm.so
+%endif
 %if %{build_java}
-ln -sf ../`echo ../../../../lib/libgcj.so.12.* | sed s~/lib/~/lib64/~` 64/libgcj.so
-ln -sf ../`echo ../../../../lib/libgcj-tools.so.12.* | sed s~/lib/~/lib64/~` 64/libgcj-tools.so
-ln -sf ../`echo ../../../../lib/libgij.so.12.* | sed s~/lib/~/lib64/~` 64/libgij.so
+ln -sf ../`echo ../../../../lib/libgcj.so.13.* | sed s~/lib/~/lib64/~` 64/libgcj.so
+ln -sf ../`echo ../../../../lib/libgcj-tools.so.13.* | sed s~/lib/~/lib64/~` 64/libgcj-tools.so
+ln -sf ../`echo ../../../../lib/libgij.so.13.* | 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
@@ -1335,6 +1383,10 @@ ln -sf ../lib64/libmudflapth.a 64/libmudflapth.a
 ln -sf lib32/libquadmath.a libquadmath.a
 ln -sf ../lib64/libquadmath.a 64/libquadmath.a
 %endif
+%if %{build_libitm}
+ln -sf lib32/libitm.a libitm.a
+ln -sf ../lib64/libitm.a 64/libitm.a
+%endif
 %if %{build_go}
 ln -sf lib32/libgo.a libgo.a
 ln -sf ../lib64/libgo.a 64/libgo.a
@@ -1350,7 +1402,7 @@ ln -sf ../lib64/adalib 64/adalib
 %endif
 %ifarch %{multilib_64_archs}
 mkdir -p 32
-ln -sf ../../../../libobjc.so.3 32/libobjc.so
+ln -sf ../../../../libobjc.so.4 32/libobjc.so
 ln -sf ../`echo ../../../../lib64/libstdc++.so.6.*[0-9] | 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
@@ -1369,10 +1421,15 @@ rm -f libquadmath.so
 echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libquadmath.so.0.* | sed 's,^.*libq,libq,'`' )' > libquadmath.so
 echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libquadmath.so.0.* | sed 's,^.*libq,libq,'`' )' > 32/libquadmath.so
 %endif
+%if %{build_libitm}
+rm -f libitm.so
+echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libitm.so.1.* | sed 's,^.*libi,libi,'`' )' > libitm.so
+echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libitm.so.1.* | sed 's,^.*libi,libi,'`' )' > 32/libitm.so
+%endif
 %if %{build_java}
-ln -sf ../`echo ../../../../lib64/libgcj.so.12.* | sed s~/../lib64/~/~` 32/libgcj.so
-ln -sf ../`echo ../../../../lib64/libgcj-tools.so.12.* | sed s~/../lib64/~/~` 32/libgcj-tools.so
-ln -sf ../`echo ../../../../lib64/libgij.so.12.* | sed s~/../lib64/~/~` 32/libgij.so
+ln -sf ../`echo ../../../../lib64/libgcj.so.13.* | sed s~/../lib64/~/~` 32/libgcj.so
+ln -sf ../`echo ../../../../lib64/libgcj-tools.so.13.* | sed s~/../lib64/~/~` 32/libgcj-tools.so
+ln -sf ../`echo ../../../../lib64/libgij.so.13.* | sed s~/../lib64/~/~` 32/libgij.so
 %endif
 mv -f %{buildroot}%{_prefix}/lib/libobjc.*a 32/
 mv -f %{buildroot}%{_prefix}/lib/libgomp.*a 32/
@@ -1392,6 +1449,10 @@ ln -sf lib64/libmudflapth.a libmudflapth.a
 ln -sf ../lib32/libquadmath.a 32/libquadmath.a
 ln -sf lib64/libquadmath.a libquadmath.a
 %endif
+%if %{build_libitm}
+ln -sf ../lib32/libitm.a 32/libitm.a
+ln -sf lib64/libitm.a libitm.a
+%endif
 %if %{build_go}
 ln -sf ../lib32/libgo.a 32/libgo.a
 ln -sf lib64/libgo.a libgo.a
@@ -1418,6 +1479,9 @@ ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libm
 %if %{build_libquadmath}
 ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libquadmath.a 32/libquadmath.a
 %endif
+%if %{build_libitm}
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libitm.a 32/libitm.a
+%endif
 %if %{build_go}
 ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libgo.a 32/libgo.a
 ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libgobegin.a 32/libgobegin.a
@@ -1436,7 +1500,8 @@ ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/adal
 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 -o -name libquadmath.a \
-		    -o -name libgo.a \) -a -type f`
+		    -o -name libitm.a -o -name libgo.a -o -name libcaf\*.a \) \
+		 -a -type f`
 popd
 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgfortran.so.3.*
 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgomp.so.1.*
@@ -1444,10 +1509,13 @@ chmod 755 %{buildroot}%{_prefix}/%{_lib}/libmudflap{,th}.so.0.*
 %if %{build_libquadmath}
 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libquadmath.so.0.*
 %endif
+%if %{build_libitm}
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libitm.so.1.*
+%endif
 %if %{build_go}
 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgo.so.0.*
 %endif
-chmod 755 %{buildroot}%{_prefix}/%{_lib}/libobjc.so.3.*
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libobjc.so.4.*
 
 %if %{build_ada}
 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgnarl*so*
@@ -1538,7 +1606,7 @@ touch %{buildroot}%{_prefix}/%{_lib}/gcj-%{version}/classmap.db
 rm -f %{buildroot}%{mandir}/man3/ffi*
 
 # Help plugins find out nvra.
-echo gcc-%{version}-%{release}.%{arch} > $FULLPATH/rpmver
+echo gcc-%{version}-%{release}.%{_arch} > $FULLPATH/rpmver
 
 %check
 cd obj-%{gcc_target_platform}
@@ -1726,6 +1794,21 @@ fi
 
 %postun -n libquadmath -p /sbin/ldconfig
 
+%post -n libitm
+/sbin/ldconfig
+if [ -f %{_infodir}/libitm.info.gz ]; then
+  /sbin/install-info \
+    --info-dir=%{_infodir} %{_infodir}/libitm.info.gz || :
+fi
+
+%preun -n libitm
+if [ $1 = 0 -a -f %{_infodir}/libitm.info.gz ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/libitm.info.gz || :
+fi
+
+%postun -n libitm -p /sbin/ldconfig
+
 %post -n libgo -p /sbin/ldconfig
 
 %postun -n libgo -p /sbin/ldconfig
@@ -1774,6 +1857,8 @@ fi
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/omp.h
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdint.h
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdint-gcc.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdalign.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdnoreturn.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
@@ -1791,11 +1876,15 @@ fi
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/fma4intrin.h
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/xopintrin.h
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/lwpintrin.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/abmintrin.h
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/popcntintrin.h
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/bmiintrin.h
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/tbmintrin.h
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ia32intrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/avx2intrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/bmi2intrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/f16cintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/fmaintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/lzcntintrin.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
@@ -1823,6 +1912,7 @@ fi
 %{_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
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libitm.spec
 %ifarch sparcv9 ppc
 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/crt*.o
@@ -1840,6 +1930,10 @@ fi
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libquadmath.a
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libquadmath.so
 %endif
+%if %{build_libitm}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libitm.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libitm.so
+%endif
 %endif
 %ifarch %{multilib_64_archs}
 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
@@ -1858,6 +1952,10 @@ fi
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libquadmath.a
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libquadmath.so
 %endif
+%if %{build_libitm}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libitm.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libitm.so
+%endif
 %endif
 %ifarch sparcv9 sparc64 ppc ppc64
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflap.a
@@ -1868,6 +1966,10 @@ fi
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libquadmath.a
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libquadmath.so
 %endif
+%if %{build_libitm}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libitm.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libitm.so
+%endif
 %endif
 %dir %{_prefix}/libexec/getconf
 %{_prefix}/libexec/getconf/default
@@ -2013,7 +2115,7 @@ fi
 
 %files -n libobjc
 %defattr(-,root,root,-)
-%{_prefix}/%{_lib}/libobjc.so.3*
+%{_prefix}/%{_lib}/libobjc.so.4*
 
 %files gfortran
 %defattr(-,root,root,-)
@@ -2035,6 +2137,7 @@ fi
 %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/f951
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgfortran.spec
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgfortranbegin.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libcaf_single.a
 %ifarch sparcv9 sparc64 ppc ppc64
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgfortran.a
 %endif
@@ -2042,12 +2145,14 @@ fi
 %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/libcaf_single.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/libcaf_single.a
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgfortran.a
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgfortran.so
 %endif
@@ -2376,6 +2481,43 @@ fi
 %endif
 %endif
 
+%if %{build_libitm}
+%files -n libitm
+%defattr(-,root,root,-)
+%{_prefix}/%{_lib}/libitm.so.1*
+%{_infodir}/libitm.info*
+
+%files -n libitm-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/itm.h
+#%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/itm_weak.h
+%ifnarch sparcv9 sparc64 ppc ppc64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libitm.so
+%endif
+%doc rpm.doc/libitm/ChangeLog*
+
+%files -n libitm-static
+%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/libitm.a
+%endif
+%ifarch sparc64 ppc64
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64/libitm.a
+%endif
+%ifnarch sparcv9 sparc64 ppc ppc64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libitm.a
+%endif
+%endif
+
 %if %{build_go}
 %files go
 %defattr(-,root,root,-)
@@ -2466,527 +2608,30 @@ fi
 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}
 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
+%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}/plugin
 
 %changelog
-* Mon Oct 31 2011 Rex Dieter <rdieter@fedoraproject.org> 4.6.2-1.fc17.1
-- rebuild (gmp)
-
-* Thu Oct 27 2011 Jakub Jelinek <jakub@redhat.com> 4.6.2-1
-- update from the 4.6 branch
-  - GCC 4.6.2 release
-  - PRs c++/44473, c++/49216, c++/49855, c++/49896, c++/50531, c++/50611,
-	c++/50618, c++/50787, c++/50793, c/50565, debug/50816, fortran/47023,
-	fortran/48706, fortran/50016, fortran/50273, fortran/50570,
-	fortran/50585, fortran/50625, fortran/50659, fortran/50718,
-	libobjc/49883, libobjc/50002, libstdc++/48698, middle-end/49801,
-	middle-end/50326, middle-end/50386, obj-c++/48275, objc-++/48275,
-	target/49049, target/49824, target/49965, target/49967, target/50106,
-	target/50350, target/50652, target/50737, target/50788, target/50820,
-	tree-optimization/49279, tree-optimization/50189,
-	tree-optimization/50700, tree-optimization/50712,
-	tree-optimization/50723
-- add armv7hl configury options (#746843)
-- add `gcc -print-file-name=rpmver` file with gcc NVRA for plugins
-  (#744922)
-- fix build against current glibc, ctype.h changes broke libjava compilation
-
-* Mon Oct  2 2011 Jakub Jelinek <jakub@redhat.com> 4.6.1-10
-- update from the 4.6 branch
-  - PRs c++/20039, c++/40831, c++/42844, c++/46105, c++/48320, c++/50424,
-	c++/50442, c++/50491, c++/50508, inline-asm/50571, libstdc++/49559,
-	libstdc++/50509, libstdc++/50510, libstdc++/50529, middle-end/49886,
-	target/50091, target/50341, target/50464, testsuite/50487,
-	tree-optimization/49518, tree-optimization/49628,
-	tree-optimization/49911, tree-optimization/50162,
-	tree-optimization/50412, tree-optimization/50413,
-	tree-optimization/50472
-- recognize IVs with REFERENCE_TYPE in simple_iv similarly to
-  IVs with POINTER_TYPE (#528578)
-- return larger types for odd-sized precision in Fortran type_for_size
-  langhook if possible
-
-* Thu Sep  8 2011 Jakub Jelinek <jakub@redhat.com> 4.6.1-9
-- update from the 4.6 branch
-  - PRs c++/49267, c++/50089, c++/50157, c++/50207, c++/50220, c++/50224,
-	c++/50234, c++/50255, c++/50309, c/50179, fortran/50163,
-	libffi/49594, libfortran/50192, libstdc++/50268, middle-end/50116,
-	middle-end/50266, target/50090, target/50202, target/50289,
-	target/50310, tree-optimization/50178
-- debug info related backports from the trunk
-  - PRs debug/50191, debug/50215
-- fix call site debug info on big endian targets (PR debug/50299)
-- put libgcc.a into libgcc_s.so linker script also on arm (#733549)
-- use %%{?fedora} instead of %%{fedora}, handle 0%%{?rhel} >= 7 like
-  0%%{?fedora} >= 16
-
-* Wed Aug 24 2011 Jakub Jelinek <jakub@redhat.com> 4.6.1-8
-- update from the 4.6 branch
-  - PRs c++/46862, c++/48993, c++/49669, c++/49921, c++/49988, c++/50024,
-	c++/50054, c++/50086, fortran/49792, fortran/50050, fortran/50109,
-	fortran/50129, fortran/50130, middle-end/49923, target/50001,
-	target/50092, tree-optimization/48739
-- build EH_SPEC_BLOCK with the same location as current function
-  to help gcov (#732802, PR c++/50055)
-- support used attribute on template class methods and static data
-  members for forced instantiation (#722587)
-- fix up location copying in the vectorizer (PR tree-optimization/50133)
-- unshare CALL_INSN_FUNCTION_USAGE (PR middle-end/48722)
-- fix up gthr*.h for -E -C (#713800)
-
-* Thu Aug  4 2011 Jakub Jelinek <jakub@redhat.com> 4.6.1-7
-- update from the 4.6 branch
-  - PRs c++/43886, c++/49593, c++/49803, fortran/49885,
-	tree-optimization/49948
-- add self_spec support to specs
-- add COPYING.RUNTIME to gcc and libgcc docs (#727809)
-- SPARC entry_value fixes (PRs target/48220, debug/49815)
-- fix up c-family headers in gcc-plugin-devel (#728011, PRs plugins/45348,
-  plugins/46577, plugins/48425)
-
-* Tue Aug  2 2011 Jakub Jelinek <jakub@redhat.com> 4.6.1-6
-- update from the 4.6 branch
-  - PRs c++/49260, c++/49924, libstdc++/49925, target/47908, target/49920
-  - fix libquadmath on i686 (#726909)
-- OpenMP 3.1 support (PR fortran/42041, PR fortran/46752)
-%if 0%{?fedora} >= 16 || 0%{?rhel} >= 7
-- make -grecord-gcc-switches the default
-%endif
-
-* Sun Jul 31 2011 Jakub Jelinek <jakub@redhat.com> 4.6.1-5
-- update from the 4.6 branch
-  - PRs debug/49871, fortran/48876, fortran/49791, middle-end/49897,
-	middle-end/49898, rtl-optimization/49799, target/47364
-- don't attempt to size optimize -gdwarf-2 DW_AT_data_member_location
-  from DW_OP_plus_uconst form
-
-* Wed Jul 27 2011 Jakub Jelinek <jakub@redhat.com> 4.6.1-4
-- update from the 4.6 branch
-  - PRs ada/49819, c++/49785, debug/47393, fortran/49648, fortran/49708,
-	middle-end/49675, middle-end/49732, target/39386, target/49600,
-	target/49723, target/49746, testsuite/49753, tree-opt/49671,
-	tree-optimization/45819, tree-optimization/49309,
-	tree-optimization/49725, tree-optimization/49768
-- require gmp-devel, mpfr-devel and libmpc-devel in gcc-plugin-devel
-  (#725569)
-- backport -grecord-gcc-switches (#507759, PR other/32998)
-%if 0%{?fedora} >= 16 || 0%{?rhel} >= 7
-- more compact debug macro info for -g3 - .debug_macro section
-- improve call site debug info for some floating point parameters
-  passed on the stack (PR debug/49846)
-%endif
-- fix -mcmodel=large call constraints (PR target/49866, #725516)
-
-* Fri Jul 15 2011 Jakub Jelinek <jakub@redhat.com> 4.6.1-3
-- update from the 4.6 branch
-  - PRs ada/46350, ada/48711, c++/49672, fortran/48926, fortran/49562,
-	fortran/49690, fortran/49698, target/39633, target/46779,
-	target/49487, target/49541, target/49621, tree-opt/49309,
-	tree-optimization/49094, tree-optimization/49651
-- backport -march=bdver2 and -mtune=bdver2 support
-%if 0%{?fedora} < 16 || 0%{?rhel} >= 7
-- use ENTRY_VALUE RTLs internally to improve generated debug info,
-  just make sure to remove it from possible options before emitting
-  var-tracking notes
-%endif
-
-* Fri Jul  8 2011 Jakub Jelinek <jakub@redhat.com> 4.6.1-2
-- update from the 4.6 branch
-  - PRs ada/49511, bootstrap/23656, bootstrap/49247, c++/48157, c/48825,
-	c++/49418, c++/49440, c++/49528, c++/49598, c/49644, debug/49262,
-	debug/49522, fortran/49466, fortran/49479, fortran/49623,
-	libffi/46660, libfortran/49296, middle-end/49640, other/47733,
-	regression/47836, rtl-optimization/49014, rtl-optimization/49472,
-	rtl-optimization/49619, target/34734, target/47997, target/48273,
-	target/49089, target/49335, target/49660, testsuite/49643,
-	tree-optimization/38752, tree-optimization/49516,
-	tree-optimization/49539, tree-optimization/49572,
-	tree-optimization/49615, tree-optimization/49618
-  - decrease compiler memory and time requirements on Fortran DATA
-    with many times repeated initializers (#716721, PR fortran/49540)
-- backport some debuginfo improvements and fixes
-  - PRs debug/49364, debug/49602
-  - fix typed DWARF stack ICE (#717240, PR49567)
-- backport __builtin_assume_aligned support (#713586)
-- backport further C++ FE improvements for heavy overloading use
-  (#651098, PR c++/48481)
-
-* Mon Jun 27 2011 Jakub Jelinek <jakub@redhat.com> 4.6.1-1
-- update from the 4.6 branch
-  - GCC 4.6.1 release
-  - PRs c++/33840, c++/49117, c++/49134, c++/49229, c++/49251, c++/49264,
-	c++/49276, c++/49290, c++/49298, c++/49369, c++/49482, c++/49507,
-	debug/47590, debug/48459, fortran/47601, fortran/48699,
-	fortran/49074, fortran/49103, fortran/49112, fortran/49268,
-	fortran/49324, fortran/49417, gcov-profile/49299, middle-end/49191,
-	rtl-optimization/48542, rtl-optimization/49235, target/44618,
-	target/48454, target/49186, target/49238, target/49307, target/49411,
-	target/49461, testsuite/49432, tree-optimization/48613,
-	tree-optimization/48702, tree-optimization/49038,
-	tree-optimization/49115, tree-optimization/49243,
-	tree-optimization/49419
-  - fix GCSE (#712480, PR rtl-optimization/49390)
-- use rm -f and mv -f in split-debuginfo.sh (#716664)
-- backport some debuginfo improvements and bugfixes
-%if 0%{?fedora} >= 16 || 0%{?rhel} >= 7
-  - improve debug info for IPA-SRA through DW_OP_GNU_parameter_ref
-    (PR debug/47858)
-  - emit DW_OP_GNU_convert <0> as convert to untyped
-%endif
-  - emit .debug_loc empty ranges for parameters that are
-    modified even before first insn in a function (PR debug/49382)
-  - fix debug ICE on s390x (PR debug/49544)
-  - VTA ICE fix (PR middle-end/49308)
-- balance work in #pragma omp for schedule(static) better (PR libgomp/49490)
-
-* Fri Jun  3 2011 Jakub Jelinek <jakub@redhat.com> 4.6.0-10
-- update from the 4.6 branch
-  - PRs fortran/45786, fortran/49265, middle-end/48953, middle-end/48985,
-	tree-optimization/49093
-- backport some debuginfo improvements
-  - PRs debug/47919, debug/47994, debug/49250
-- decrease C++ FE memory usage on code with heavy overloading
-  (#651098, PR c++/48481)
-
-* Mon May 30 2011 Jakub Jelinek <jakub@redhat.com> 4.6.0-9
-- update from the 4.6 branch
-  - PRs c++/44311, c++/44994, c++/45080, c++/45401, c++/45418, c++/45698,
-	c++/46005, c++/46245, c++/46696, c++/47049, c++/47184, c++/47277,
-	c++/48284, c++/48292, c++/48424, c++/48935, c++/49156, c++/49165,
-	c++/49176, c++/49223, fortran/48955, libobjc/48177, libstdc++/49141,
-	target/43700, target/43995, target/44643, target/45263,
-	tree-optimization/44897, tree-optimization/49161,
-	tree-optimization/49217, tree-optimization/49218
-%if 0%{?fedora} >= 16 || 0%{?rhel} >= 7
-- default to -gdwarf-4 -fno-debug-types-section instead of -gdwarf-3
-- backport DW_OP_GNU_entry_value support
-  (PRs rtl-optimization/48826, debug/48902, bootstrap/48148,
-   debug/48203, bootstrap/48168, debug/48023, debug/48178,
-   debug/48163, debug/48160, bootstrap/48153, middle-end/48152,
-   bootstrap/48148, debug/45882)
-- backport DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret}
-  support (PRs debug/48928, debug/48853)
-%endif
-- split off debuginfo for libgcc_s, libstdc++ and libgomp into
-  gcc-base-debuginfo subpackage (#706973)
-- run ldconfig in libgcc %%postun, drop libcc_post_upgrade,
-  instead write the script in <lua> (#705832)
-
-* Wed May 25 2011 Jakub Jelinek <jakub@redhat.com> 4.6.0-8
-- update from the 4.6 branch
-  - PRs bootstrap/49086, c++/47263, c++/47336, c++/47544, c++/48522,
-	c++/48617, c++/48647, c++/48736, c++/48745, c++/48780, c++/48859,
-	c++/48869, c++/48873, c++/48884, c++/48945, c++/48948, c++/49042,
-	c++/49043, c++/49066, c++/49082, c++/49105, c++/49136, c/49120,
-	debug/48159, debug/49032, fortran/48889, libstdc++/49058, lto/48207,
-	lto/48703, lto/49123, middle-end/48973, middle-end/49029,
-	preprocessor/48677, target/48986, target/49002, target/49104,
-	target/49128, target/49133, tree-optimization/48172,
-	tree-optimization/48794, tree-optimization/48822,
-	tree-optimization/48975, tree-optimization/49000,
-	tree-optimization/49018, tree-optimization/49039,
-	tree-optimization/49073, tree-optimization/49079
-  - ppc V2DImode ABI fix (#705764, PR target/48857)
-  - fix ppc var-tracking ICE (#703888, PR debug/48967)
-
-* Mon May  9 2011 Jakub Jelinek <jakub@redhat.com> 4.6.0-7
-- update from the 4.6 branch
-  - PRs ada/48844, c++/40975, c++/48089, c++/48446, c++/48656, c++/48749,
-	c++/48838, c++/48909, c++/48911, fortran/48112, fortran/48279,
-	fortran/48462, fortran/48720, fortran/48746, fortran/48788,
-	fortran/48800, fortran/48810, fortran/48894, libgfortran/48030,
-	libstdc++/48750, libstdc++/48760, lto/48846, middle-end/48597,
-	preprocessor/48192, target/48226, target/48252, target/48262,
-	target/48774, target/48900, tree-optimization/48809
-- fix ICE with references in templates (PR c++/48574)
-- disable tail call optimization if tail recursion needs accumulators
-  (PR PR tree-optimization/48837)
-
-* Thu Apr 28 2011 Jakub Jelinek <jakub@redhat.com> 4.6.0-6
-- update from the 4.6 branch
-  - PRs c++/42687, c++/46304, c++/48046, c++/48657, c++/48707, c++/48726,
-	c/48685, c/48716, c/48742, debug/48768, fortran/47976,
-	fortran/48588, libstdc++/48521, lto/48148, lto/48492,
-	middle-end/48695, other/48748, preprocessor/48740, target/48288,
-	target/48708, target/48723, tree-optimization/48611,
-	tree-optimization/48717, tree-optimization/48731,
-	tree-optimization/48734
-
-* Tue Apr 19 2011 Jakub Jelinek <jakub@redhat.com> 4.6.0-5
-- update from the 4.6 branch
-  - PRs c++/48537, c++/48632, fortran/48360, fortran/48456,
-	libfortran/47571, libstdc++/48476, libstdc++/48631,
-	libstdc++/48635, lto/48538, middle-end/46364, middle-end/48661,
-	preprocessor/48248, target/48366, target/48605, target/48614,
-	target/48678, testsuite/48675, tree-optimization/48616
-  - fix calling functor or non-pointer-to-member through
-    overloaded pointer-to-member operator (#695567, PR c++/48594)
-
-* Wed Apr 13 2011 Jakub Jelinek <jakub@redhat.com> 4.6.0-4
-- update from the 4.6 branch
-  - PRs c++/48450, c++/48452, c++/48468, c++/48500, c++/48523, c++/48528,
-	c++/48534, c++/48570, c++/48574, c/48517, libstdc++/48465,
-	libstdc++/48541, libstdc++/48566, target/47829, target/48090,
-	testsuite/48506, tree-optimization/48195, tree-optimization/48377
-  - fix combiner with -g (#695019, PR rtl-optimization/48549)
-  - fix OpenMP atomic __float128 handling on i?86 (#696129,
-    PR middle-end/48591)
-
-* Fri Apr  8 2011 Jakub Jelinek <jakub@redhat.com> 4.6.0-3
-- update from the 4.6 branch
-  - PRs bootstrap/48431, c++/48280, debug/48343, debug/48466, fortran/48117,
-	fortran/48291, libstdc++/48398, middle-end/48335,
-	rtl-optimization/48143, rtl-optimization/48144, target/16292,
-	target/48142
-  - don't ICE because of empty partitions during LTO (#688767, PR lto/48246)
-- don't emit DW_AT_*_pc for CUs without any code
-
-* Thu Mar 31 2011 Jakub Jelinek <jakub@redhat.com> 4.6.0-2
-- update from the 4.6 branch
-  - PRs c++/47504, c++/47570, c++/47999, c++/48166, c++/48212, c++/48265,
-	c++/48281, c++/48289, c++/48296, c++/48313, c++/48319, c++/48369,
-	debug/48041, debug/48253, preprocessor/48248, target/48349
-- add -fno-debug-types-section switch
-- don't emit .debug_abbrev section if it is empty and unused
-
-* Tue Mar 29 2011 Jakub Jelinek <jakub@redhat.com> 4.6.0-1
-- update from the 4.6 branch
-  - GCC 4.6.0 release
-  - PRs c/42544, c/48197, debug/48204, middle-end/48031,
-	middle-end/48134, middle-end/48269, other/48179, other/48221,
-	other/48234, rtl-optimization/48156, target/47553,
-	target/48237, testsuite/48251, tree-optimization/48228
-  - improve RTL DSE speed with large number of stores (#684900,
-    PR rtl-optimization/48141)
-- add gnative2ascii binary and man page to libgcj
-
-* Mon Mar 21 2011 Jakub Jelinek <jakub@redhat.com> 4.6.0-0.15
-- update from the 4.6 branch
-  - PRs bootstrap/45381, bootstrap/48135
-- fix s390 ICE during address delegitimization (PR target/48213, #689266)
-
-* Fri Mar 18 2011 Jakub Jelinek <jakub@redhat.com> 4.6.0-0.14
-- update from the 4.6 branch
-  - PRs bootstrap/48161, c++/48113, c++/48115, c++/48132, debug/47510,
-	debug/48176, libstdc++/48123, middle-end/47405, middle-end/48165,
-	target/46778, target/46788, target/48171
-- update libstdc++ pretty printers from trunk
-
-* Tue Mar 15 2011 Jakub Jelinek <jakub@redhat.com> 4.6.0-0.13
-- update from trunk and the 4.6 branch
-  - PRs bootstrap/48000, bootstrap/48102, c++/44629, c++/45651, c++/46220,
-	c++/46803, c++/47125, c++/47144, c++/47198, c++/47488, c++/47705,
-	c++/47808, c++/47957, c++/47971, c++/48003, c++/48008, c++/48015,
-	c++/48029, c++/48035, c++/48069, c/47786, debug/47881, debug/48043,
-	fortran/47552, fortran/47850, fortran/48054, fortran/48059,
-	libfortran/48066, libgfortran/48047, libstdc++/48038, libstdc++/48114,
-	lto/47497, lto/48073, lto/48086, middle-end/47968, middle-end/47975,
-	middle-end/48044, middle-end/48098, rtl-optimization/47866,
-	rtl-optimization/47899, target/45413, target/47719, target/47862,
-	target/47986, target/48032, target/48053, testsuite/47954,
-	tree-optimization/47127, tree-optimization/47278,
-	tree-optimization/47714, tree-optimization/47967,
-	tree-optimization/48022, tree-optimization/48063,
-	tree-optimization/48067
-  - fix var-tracking ICE on s390x (#682410, PR debug/47991)
-
-* Fri Mar  4 2011 Jakub Jelinek <jakub@redhat.com> 4.6.0-0.12
-- update from trunk
-  - PRs c++/46159, c++/46282, c++/47200, c++/47774, c++/47851, c++/47950,
-	c++/47974, c/47963, libstdc++/47913, middle-end/47283,
-	rtl-optimization/47925, target/47935, tree-optimization/47890
-- rebuilt against ppl 0.11.2, reenable cloog-ppl Requires
-
-* Tue Mar  1 2011 Jakub Jelinek <jakub@redhat.com> 4.6.0-0.11
-- update from trunk
-  - PRs c++/46466, c++/47873, c++/47897, c++/47906, debug/28047,
-	fortran/40850, fortran/47839, fortran/47846, fortran/47872,
-	fortran/47878, fortran/47886, fortran/47894, libfortran/45165,
-	libfortran/47802, libgfortran/47778, libgfortran/47933,
-	libobjc/47922, libstdc++/42622, libstdc++/47921, lto/46911,
-	lto/47924, middle-end/46790, middle-end/47903, target/42240,
-	target/45261, target/46898, testsuite/47801, tree-optimization/45470
-  - fix stack slot padding reusal (#679924, PR middle-end/47893)
-  - fix ICE on DECL_PARM_INDEX in cp_tree_equal (#680603, PR c++/47904)
-- disable IPA-SRA at -O2/-Os (#668489, PR debug/47858)
-- temporarily disable cloog-ppl Requires, so that ppl and cloog-ppl can
-  be bumped
-
-* Wed Feb 22 2011 Jakub Jelinek <jakub@redhat.com> 4.6.0-0.10
-- update from trunk
-  - PRs c++/46868, tree-optimization/47838, tree-optimization/47849
-- don't ship aotcompile.py* and classfile.py* in libstdc++ (#678982)
-
-* Wed Feb 22 2011 Jakub Jelinek <jakub@redhat.com> 4.6.0-0.9
-- update from trunk
-  - PRs bootstrap/47827, c++/44118, c++/46394, c++/46472, c++/46831,
-	c++/47199, c++/47207, c++/47242, c++/47666, c++/47703, c++/47833,
-	doc/47848, fortran/41359, fortran/44945, fortran/45077,
-	fortran/45743, fortran/46818, fortran/47797, libfortran/47694,
-	libfortran/47830, libgomp/47854, lto/47820, lto/47822,
-	objc++/47711, objc/47784, rtl-optimization/46002,
-	rtl-optimization/47763, target/47822, target/47840,
-	tree-optimization/47835
-  - fix handling of ObjC pointer to struct with flexible array member
-    in interfaces (#678928, PR objc/47832)
-- temporarily BuildRequire urw-fonts until graphviz is fixed (#677114)
-
-* Sun Feb 20 2011 Jakub Jelinek <jakub@redhat.com> 4.6.0-0.8
-- update from trunk
-  - PRs ada/41929, bootstrap/47736, bootstrap/47807, c++/46807,
-	c++/47172, c++/47208, c++/47326, c++/47482, c++/47503,
-	c++/47704, c++/47783, c++/47795, c/47809, debug/47630,
-	debug/47780, driver/45731, driver/47390, driver/47787,
-	fortran/47348, fortran/47349, fortran/47569, fortran/47633,
-	fortran/47642, fortran/47648, fortran/47716, fortran/47728,
-	fortran/47730, fortran/47745, fortran/47750, fortran/47767,
-	fortran/47768, fortran/47775, fortran/47789, libfortran/47757,
-	libgfortran/47667, libgomp/47731, libgomp/47758, libgomp/47804,
-	libjava/47484, libstdc++/47709, libstdc++/47724, libstdc++/47773,
-	libstdc++/47776, lto/47647, lto/47798, middle-end/47581,
-	middle-end/47725, middle-end/47788, pch/14940,
-	rtl-optimization/46178, target/43653, target/45808, target/47696,
-	target/47755, target/47792, tree-optimization/46494,
-	tree-optimization/46620, tree-optimization/47737,
-	tree-optimization/47738, tree-optimization/47743
-  - fix i?86 shift + plus peephole2 (#678530, PR target/47800)
-
-* Sat Feb 12 2011 Jakub Jelinek <jakub@redhat.com> 4.6.0-0.7
-- update from trunk
-  - PRs binutils/12283, c++/47511, debug/42631, debug/47684, driver/47678,
-	fortran/42434, fortran/45290, fortran/45586, fortran/47352,
-	fortran/47463, fortran/47550, fortran/47574, fortran/47583,
-	fortran/47592, fortran/47637, libffi/46661, libfortran/47571,
-	libgfortran/47567, libstdc++/43863, libstdc++/47433,
-	libstdc++/47628, libstdc++/47668, lto/47225, lto/47241,
-	middle-end/45505, middle-end/47610, middle-end/47639,
-	middle-end/47646, target/42333, target/44606, target/45701,
-	target/46481, target/46610, target/46997, target/47032,
-	target/47324, target/47534, target/47548, target/47558,
-	target/47629, target/47636, target/47665, target/47683,
-	testsuite/47400, testsuite/47622, tree-optimization/42893,
-	tree-optimization/46834, tree-optimization/46994,
-	tree-optimization/46995, tree-optimization/47420,
-	tree-optimization/47615, tree-optimization/47621,
-	tree-optimization/47632, tree-optimization/47641,
-	tree-optimization/47664, tree-optimization/47707
-  - fix postreload on auto inc/decrement instructions (#675787,
-    PR rtl-optimization/47614)
-  - fix a hang in VRP (#676473, PR tree-optimization/47677)
-  - fix STL headers with -fno-operator-names (#676910, PR libstdc++/47662)
-- fix scheduling of debug insns (#675711, PR debug/47620)
-
-* Sat Feb  5 2011 Jakub Jelinek <jakub@redhat.com> 4.6.0-0.6
-- update from trunk
-  - PRs bootstrap/47044, bootstrap/47147, c++/29571, c++/46890, c++/47311,
-	c++/47398, c++/47416, c++/47589, debug/43092, debug/47498,
-	debug/47501, driver/47547, fortran/35810, fortran/45170,
-	fortran/47042, fortran/47082, fortran/47350, fortran/47455,
-	fortran/47463, fortran/47507, fortran/47519, fortran/47523,
-	fortran/47531, fortran/47565, fortran/47572, gcc/46692,
-	inline-asm/23200, java/21206, libfortran/47571, libgcj/44341,
-	libgfortran/47434, libquadmath/47293, libstdc++/46914,
-	libstdc++/47560, lto/47274, middle-end/47543,
-	rtl-optimization/43494, rtl-optimization/44031,
-	rtl-optimization/47525, target/42894, target/45325,
-	target/47272, target/47312, target/47564, target/47580,
-	tree-optimization/40979, tree-optimization/43695,
-	tree-optimization/45122, tree-optimization/46194,
-	tree-optimization/47538, tree-optimization/47541,
-	tree-optimization/47555, tree-optimization/47559,
-	tree-optimization/47561, tree-optimization/47566,
-	tree-optimization/47576
-- suppress -Woverlength-string warnings inside of __asm__
-- fix section flags conflict handling for relro sections (#674890,
-  PR middle-end/47610)
-
-* Fri Jan 28 2011 Jakub Jelinek <jakub@redhat.com> 4.6.0-0.5
+* Tue Jan  3 2012 Jakub Jelinek <jakub@redhat.com> 4.7.0-0.2
 - update from trunk
-  - PRs bootstrap/47467, c++/43601, c++/47476, c/21659, c/43082, c/47473,
-	debug/45130, debug/45136, debug/45454, fortran/38536, fortran/47399,
-	fortran/47421, fortran/47448, fortran/47472, fortran/47474,
-	libfortran/47375, libfortran/47431, libfortran/47432,
-	libfortran/47491, libgfortran/47285, libstdc++/47387,
-	libstdc++/47433, libstdc++/47437, lto/44334, lto/47333,
-	lto/47423, middle-end/46949, middle-end/47401, middle-end/47411,
-	middle-end/47414, rtl-optimization/37273, rtl-optimization/44174,
-	rtl-optimization/44469, rtl-optimization/46856,
-	rtl-optimization/46878, rtl-optimization/47166,
-	rtl-optimization/47464, target/40125, target/45701,
-	target/46519, target/46997, target/47237, target/47246,
-	target/47385, target/47408, testsuite/45988,
-	tree-optimization/26854, tree-optimization/29832,
-	tree-optimization/43567, tree-optimization/43657,
-	tree-optimization/43884, tree-optimization/46168,
-	tree-optimization/46215, tree-optimization/46970,
-	tree-optimization/47190, tree-optimization/47228,
-	tree-optimization/47234, tree-optimization/47265,
-	tree-optimization/47271, tree-optimization/47382,
-	tree-optimization/47427, tree-optimization/47428,
-	tree-optimization/47443
-  - really fix the PCH issue on powerpc64 (PR pch/47430)
-  - handle truth_xor_expr in potential_constant_expression_1
-    (#672156, PR tree-optimization/47426)
-- fix named section conflict handling (PR middle-end/31490)
-- suppress -Woverlength-string warnings in __extension__ guarded
-  code
-
-* Mon Jan 24 2011 Jakub Jelinek <jakub@redhat.com> 4.6.0-0.4
-- build gcc-go and libgo* only on architectures that support it
-- workaround PCH issue on powerpc64
-
-* Sat Jan 22 2011 Jakub Jelinek <jakub@redhat.com> 4.6.0-0.3
-- add gcc-go, libgo{,-devel,-static}, libquadmath{,-devel,-static},
-  libgfortran-static and gcc-plugin-devel subpackages
-- fix up libstdc++-doc man page location (#664475)
-
-* Sat Jan 22 2011 Jakub Jelinek <jakub@redhat.com> 4.6.0-0.2
-- update from the trunk
-  - PRs bootstrap/47055, bootstrap/47187, bootstrap/47215, c++/33558,
-	c++/45520, c++/46552, c++/46658, c++/46688, c++/46903, c++/46977,
-	c++/47022, c++/47041, c++/47067, c++/47213, c++/47218, c++/47289,
-	c++/47291, c++/47303, c++/47388, c/47150, debug/46240, debug/46583,
-	debug/46704, debug/46724, debug/46955, debug/47079, debug/47106,
-	debug/47209, debug/47283, debug/47402, debug/PR46973, driver/42445,
-	driver/47244, fortran/33117, fortran/38536, fortran/41580,
-	fortran/45777, fortran/45848, fortran/46017, fortran/46313,
-	fortran/46402, fortran/46405, fortran/46416, fortran/46478,
-	fortran/46625, fortran/46817, fortran/46896, fortran/47024,
-	fortran/47051, fortran/47174, fortran/47177, fortran/47180,
-	fortran/47182, fortran/47189, fortran/47194, fortran/47195,
-	fortran/47204, fortran/47224, fortran/47240, fortran/47260,
-	fortran/47268, fortran/47295, fortran/47327, fortran/47331,
-	fortran/47377, fortran/47394, gcc/46902, libfortran/46267,
-	libfortran/47296, libfortran/47322, libgfortran/47154,
-	libgfortran/47296, libstdc++/36104, libstdc++/47045, libstdc++/47145,
-	libstdc++/47185, libstdc++/47320, libstdc++/47321, libstdc++/47323,
-	libstdc++/47354, lto/45375, lto/45721, lto/46083, lto/46760,
-	lto/47162, lto/47188, lto/47222, lto/47225, lto/47259, lto/47264,
-	middle-end/32511, middle-end/45235, middle-end/45566,
-	middle-end/46823, middle-end/46894, middle-end/47281,
-	middle-end/47370, middle-end/47395, objc/45989, objc/47078,
-	objc/47232, objc/47314, other/45915, other/46946, preprocessor/39213,
-	rtl-optimization/39077, rtl-optimization/41619,
-	rtl-optimization/45352, rtl-optimization/47216,
-	rtl-optimization/47299, rtl-optimization/47337,
-	rtl-optimization/47366, target/19162, target/38118, target/43309,
-	target/45258, target/46037, target/46655, target/46997, target/47201,
-	target/47219, target/47251, target/47318, testsuite/33033,
-	testsuite/41146, testsuite/45342, testsuite/46230, testsuite/46912,
-	testsuite/47325, testsuite/47371, tree-optimization/45934,
-	tree-optimization/45967, tree-optimization/46021,
-	tree-optimization/46076, tree-optimization/46130,
-	tree-optimization/46302, tree-optimization/46367,
-	tree-optimization/47005, tree-optimization/47053,
-	tree-optimization/47056, tree-optimization/47086,
-	tree-optimization/47139, tree-optimization/47141,
-	tree-optimization/47167, tree-optimization/47179,
-	tree-optimization/47233, tree-optimization/47234,
-	tree-optimization/47239, tree-optimization/47276,
-	tree-optimization/47280, tree-optimization/47286,
-	tree-optimization/47290, tree-optimization/47313,
-	tree-optimization/47355, tree-optimization/47365,
-	tree-optimization/47391, tree-optmization/46469
-- add systemtap probe to _Unwind_DebugHook
-
-* Wed Jan  5 2011 Jakub Jelinek <jakub@redhat.com> 4.6.0-0.1
+  - PRs bootstrap/51686, bootstrap/51725, c++/15867, c++/16603, c++/20140,
+	c++/23211, c++/51316, c++/51379, c++/51397, c++/51462, c++/51507,
+	c++/51547, c++/51666, c++/51669, c++/51675, c++/51723, debug/51650,
+	driver/48306, fortran/46262, fortran/46328, fortran/51052,
+	fortran/51502, fortran/51529, fortran/51682, libfortran/51646,
+	libgcj/49193, libstdc++/48362, libstdc++/49204, libstdc++/51608,
+	libstdc++/51701, libstdc++/51711, lto/51650, middle-end/48641,
+	middle-end/51200, middle-end/51212, middle-end/51252,
+	middle-end/51730, other/51679, pch/51722, rtl-optimization/50396,
+	rtl-optimization/51069, rtl-optimization/51667, target/27468,
+	target/47643, target/51345, target/51552, target/51623, target/51643,
+	target/51729, testsuite/50722, testsuite/51645, testsuite/51702,
+	tree-optimization/43491, tree-optimization/51070,
+	tree-optimization/51269, tree-optimization/51683,
+	tree-optimization/51684, tree-optimization/51692,
+	tree-optimization/51704, tree-optimization/51719
+
+* Wed Dec 21 2011 Jakub Jelinek <jakub@redhat.com> 4.7.0-0.1
 - new package

diff --git a/gcc46-c++-builtin-redecl.patch b/gcc46-c++-builtin-redecl.patch
deleted file mode 100644
index 9463428..0000000
--- a/gcc46-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-85.c: New test.
-	* g++.dg/ext/builtin30.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
-@@ -2001,23 +2001,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 just redeclaring a
- 	     function.  */
---- gcc/testsuite/gcc.dg/builtins-85.c.jj	2007-10-02 11:23:51.000000000 +0200
-+++ gcc/testsuite/gcc.dg/builtins-85.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/builtin30.C.jj	2007-10-02 11:19:45.000000000 +0200
-+++ gcc/testsuite/g++.dg/ext/builtin30.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/gcc46-cloog-dl.patch b/gcc46-cloog-dl.patch
deleted file mode 100644
index 11ce82b..0000000
--- a/gcc46-cloog-dl.patch
+++ /dev/null
@@ -1,459 +0,0 @@
-2011-01-04  Jakub Jelinek  <jakub@redhat.com>
-
-	* Makefile.in (BACKENDLIBS): Link against -ldl instead of
-	-lcloog -lppl.
-	(graphite.o, graphite%.o): Force -O, remove -fkeep-inline-functions.
-	(GRAPHITE_CLOOG_UTIL_H, GRAPHITE_POLY_H): New.
-	(graphite*.o): Adjust dependencies.
-	* graphite-cloog-compat.h: Include <dlfcn.h>.  Reference libcloog and
-	libppl symbols through pointers in cloog_pointers__ variable.
-	* graphite.c (init_cloog_pointers): New function.
-	(graphite_transform_loops): Call init_cloog_pointers.
-	* graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Rename
-	stmt_for argument to stmt_fora.
-	* graphite-poly.h: Include graphite-cloog-util.h.
-
---- gcc/Makefile.in.jj	2011-01-03 13:44:14.163900902 +0100
-+++ gcc/Makefile.in	2011-01-04 17:48:53.588775911 +0100
-@@ -984,6 +984,8 @@ GCC_PLUGIN_H = gcc-plugin.h highlev-plug
- PLUGIN_H = plugin.h $(GCC_PLUGIN_H)
- PLUGIN_VERSION_H = plugin-version.h configargs.h
- LIBFUNCS_H = libfuncs.h $(HASHTAB_H)
-+GRAPHITE_CLOOG_UTIL_H = graphite-cloog-util.h graphite-cloog-compat.h
-+GRAPHITE_POLY_H = graphite-poly.h $(GRAPHITE_CLOOG_UTIL_H)
- 
- #\f
- # Now figure out from those variables how to compile and link.
-@@ -1037,7 +1039,7 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY)
- # and the system's installed libraries.
- LIBS = @LIBS@ $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBIBERTY) $(LIBDECNUMBER) \
- 	$(HOST_LIBS)
--BACKENDLIBS = $(CLOOGLIBS) $(PPLLIBS) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \
-+BACKENDLIBS = $(GMPLIBS) $(if $(CLOOGLIBS),-ldl) $(PLUGINLIBS) $(HOST_LIBS) \
- 	$(ZLIB)
- # Any system libraries needed just for GNAT.
- SYSLIBS = @GNAT_LIBEXC@
-@@ -2668,40 +2670,40 @@ sese.o : sese.c sese.h $(CONFIG_H) $(SYS
-    $(TREE_FLOW_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) tree-pass.h value-prof.h
- graphite.o : graphite.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(DIAGNOSTIC_CORE_H) \
-    $(TREE_FLOW_H) $(TREE_DUMP_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) sese.h \
--   $(DBGCNT_H) graphite-ppl.h graphite-poly.h graphite-scop-detection.h \
-+   $(DBGCNT_H) graphite-ppl.h $(GRAPHITE_POLY_H) graphite-scop-detection.h \
-    graphite-clast-to-gimple.h graphite-sese-to-poly.h
- graphite-blocking.o : graphite-blocking.c $(CONFIG_H) $(SYSTEM_H) \
-    coretypes.h $(TREE_FLOW_H) $(TREE_DUMP_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) \
--   sese.h graphite-ppl.h graphite-poly.h
-+   sese.h graphite-ppl.h $(GRAPHITE_POLY_H)
- graphite-clast-to-gimple.o : graphite-clast-to-gimple.c $(CONFIG_H) \
-    $(SYSTEM_H) coretypes.h $(DIAGNOSTIC_CORE_H) $(TREE_FLOW_H) $(TREE_DUMP_H) \
--   $(CFGLOOP_H) $(TREE_DATA_REF_H) sese.h graphite-cloog-util.h \
--   graphite-ppl.h graphite-poly.h graphite-clast-to-gimple.h \
-+   $(CFGLOOP_H) $(TREE_DATA_REF_H) sese.h $(GRAPHITE_CLOOG_UTIL_H) \
-+   graphite-ppl.h $(GRAPHITE_POLY_H) graphite-clast-to-gimple.h \
-    graphite-dependences.h graphite-cloog-compat.h
- graphite-cloog-util.o : graphite-cloog-util.c $(CONFIG_H) $(SYSTEM_H) \
--   coretypes.h graphite-cloog-util.h graphite-cloog-compat.h
-+   coretypes.h $(GRAPHITE_CLOOG_UTIL_H) graphite-cloog-compat.h
- graphite-dependences.o : graphite-dependences.c $(CONFIG_H) $(SYSTEM_H) \
-    coretypes.h $(TREE_FLOW_H) $(TREE_DUMP_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) \
--   sese.h graphite-ppl.h graphite-poly.h graphite-dependences.h \
--   graphite-cloog-util.h
-+   sese.h graphite-ppl.h $(GRAPHITE_POLY_H) graphite-dependences.h \
-+   $(GRAPHITE_CLOOG_UTIL_H)
- graphite-flattening.o : graphite-flattening.c $(CONFIG_H) $(SYSTEM_H)	\
-    coretypes.h $(TREE_FLOW_H) $(TREE_DUMP_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) \
--   sese.h graphite-ppl.h graphite-poly.h
-+   sese.h graphite-ppl.h $(GRAPHITE_POLY_H)
- graphite-interchange.o : graphite-interchange.c $(CONFIG_H) $(SYSTEM_H) \
-    coretypes.h $(TREE_FLOW_H) $(TREE_DUMP_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) \
--   sese.h graphite-ppl.h graphite-poly.h
-+   sese.h graphite-ppl.h $(GRAPHITE_POLY_H)
- graphite-poly.o : graphite-poly.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
-    $(DIAGNOSTIC_CORE_H) $(TREE_FLOW_H) $(TREE_DUMP_H) gimple-pretty-print.h \
--   $(CFGLOOP_H) $(TREE_DATA_REF_H) sese.h graphite-ppl.h graphite-poly.h \
--   graphite-dependences.h graphite-cloog-util.h
-+   $(CFGLOOP_H) $(TREE_DATA_REF_H) sese.h graphite-ppl.h $(GRAPHITE_POLY_H) \
-+   graphite-dependences.h $(GRAPHITE_CLOOG_UTIL_H)
- graphite-ppl.o : graphite-ppl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
--   graphite-cloog-util.h graphite-ppl.h
-+   $(GRAPHITE_CLOOG_UTIL_H) graphite-ppl.h
- graphite-scop-detection.o : graphite-scop-detection.c $(CONFIG_H) $(SYSTEM_H) \
-    coretypes.h $(TREE_FLOW_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) $(TREE_PASS_H) \
--   sese.h graphite-ppl.h graphite-poly.h graphite-scop-detection.h
-+   sese.h graphite-ppl.h $(GRAPHITE_POLY_H) graphite-scop-detection.h
- graphite-sese-to-poly.o : graphite-sese-to-poly.c $(CONFIG_H) \
-    $(SYSTEM_H) coretypes.h $(TREE_FLOW_H) $(TREE_DUMP_H) $(CFGLOOP_H) \
--   $(TREE_DATA_REF_H) domwalk.h sese.h graphite-ppl.h graphite-poly.h \
-+   $(TREE_DATA_REF_H) domwalk.h sese.h graphite-ppl.h $(GRAPHITE_POLY_H) \
-    graphite-sese-to-poly.h
- tree-vect-loop.o: tree-vect-loop.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
-    $(TM_H) $(GGC_H) $(TREE_H) $(BASIC_BLOCK_H) $(DIAGNOSTIC_H) $(TREE_FLOW_H) \
-@@ -3482,6 +3484,11 @@ $(out_object_file): $(out_file) $(CONFIG
- 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \
- 		$(out_file) $(OUTPUT_OPTION)
- 
-+graphite%.o : \
-+  ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS))
-+graphite.o : \
-+  ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS))
-+
- # Build auxiliary files that support ecoff format.
- mips-tfile: mips-tfile.o version.o $(LIBDEPS)
- 	$(LINKER) $(LINKERFLAGS) $(LDFLAGS) -o $@ \
---- gcc/graphite-cloog-compat.h.jj	2011-01-03 12:53:05.000000000 +0100
-+++ gcc/graphite-cloog-compat.h	2011-01-04 17:34:09.857757544 +0100
-@@ -272,4 +272,277 @@ static inline int cloog_matrix_nrows (Cl
-    return m->NbRows;
- }
- #endif /* CLOOG_ORG  */
-+
-+#include <dlfcn.h>
-+#if PPL_VERSION_MAJOR == 0 && PPL_VERSION_MINOR < 11
-+#define DYNSYMS_PPL11
-+#else
-+#define DYNSYMS_PPL11 \
-+  DYNSYM (ppl_new_PIP_Problem_from_constraints); \
-+  DYNSYM (ppl_PIP_Problem_is_satisfiable); \
-+  DYNSYM (ppl_delete_PIP_Problem);
-+#endif
-+#define DYNSYMS \
-+  DYNSYM (cloog_block_alloc); \
-+  DYNSYM (cloog_block_list_free); \
-+  DYNSYM (cloog_block_list_malloc); \
-+  DYNSYM (cloog_clast_create); \
-+  DYNSYM (cloog_clast_free); \
-+  DYNSYM (cloog_domain_free); \
-+  DYNSYM (cloog_domain_matrix2domain); \
-+  DYNSYM (cloog_initialize); \
-+  DYNSYM (cloog_loop_malloc); \
-+  DYNSYM (cloog_matrix_alloc); \
-+  DYNSYM (cloog_matrix_copy); \
-+  DYNSYM (cloog_matrix_free); \
-+  DYNSYM (cloog_matrix_print); \
-+  DYNSYM (cloog_names_malloc); \
-+  DYNSYM (cloog_names_scalarize); \
-+  DYNSYM (cloog_options_free); \
-+  DYNSYM (cloog_options_malloc); \
-+  DYNSYM (cloog_program_dump_cloog); \
-+  DYNSYM (cloog_program_extract_scalars); \
-+  DYNSYM (cloog_program_free); \
-+  DYNSYM (cloog_program_generate); \
-+  DYNSYM (cloog_program_malloc); \
-+  DYNSYM (cloog_program_print); \
-+  DYNSYM (cloog_program_scatter); \
-+  DYNSYM (cloog_statement_alloc); \
-+  DYNSYM (cloog_domain_union); \
-+  DYNSYM (cloog_matrix_read); \
-+  DYNSYM (cloog_new_pol); \
-+  DYNSYM (cloog_vector_gcd); \
-+  DYNSYM (ppl_finalize); \
-+  DYNSYM (ppl_assign_Coefficient_from_mpz_t); \
-+  DYNSYM (ppl_assign_Linear_Expression_from_Linear_Expression); \
-+  DYNSYM (ppl_Coefficient_to_mpz_t); \
-+  DYNSYM (ppl_Constraint_coefficient); \
-+  DYNSYM (ppl_Constraint_inhomogeneous_term); \
-+  DYNSYM (ppl_Constraint_space_dimension); \
-+  DYNSYM (ppl_Constraint_System_begin); \
-+  DYNSYM (ppl_Constraint_System_const_iterator_dereference); \
-+  DYNSYM (ppl_Constraint_System_const_iterator_equal_test); \
-+  DYNSYM (ppl_Constraint_System_const_iterator_increment); \
-+  DYNSYM (ppl_Constraint_System_end); \
-+  DYNSYM (ppl_Constraint_System_insert_Constraint); \
-+  DYNSYM (ppl_Constraint_System_space_dimension); \
-+  DYNSYM (ppl_Constraint_type); \
-+  DYNSYM (ppl_delete_Coefficient); \
-+  DYNSYM (ppl_delete_Constraint); \
-+  DYNSYM (ppl_delete_Constraint_System_const_iterator); \
-+  DYNSYM (ppl_delete_Linear_Expression); \
-+  DYNSYM (ppl_delete_Pointset_Powerset_C_Polyhedron); \
-+  DYNSYM (ppl_delete_Pointset_Powerset_C_Polyhedron_iterator); \
-+  DYNSYM (ppl_delete_Polyhedron); \
-+  DYNSYM (ppl_Linear_Expression_add_to_coefficient); \
-+  DYNSYM (ppl_Linear_Expression_add_to_inhomogeneous); \
-+  DYNSYM (ppl_Linear_Expression_coefficient); \
-+  DYNSYM (ppl_Linear_Expression_inhomogeneous_term); \
-+  DYNSYM (ppl_Linear_Expression_space_dimension); \
-+  DYNSYM (ppl_new_Coefficient); \
-+  DYNSYM (ppl_new_Coefficient_from_mpz_t); \
-+  DYNSYM (ppl_new_Constraint); \
-+  DYNSYM (ppl_new_Constraint_System); \
-+  DYNSYM (ppl_new_Constraint_System_const_iterator); \
-+  DYNSYM (ppl_new_C_Polyhedron_from_C_Polyhedron); \
-+  DYNSYM (ppl_new_C_Polyhedron_from_space_dimension); \
-+  DYNSYM (ppl_new_C_Polyhedron_recycle_Constraint_System); \
-+  DYNSYM (ppl_new_Linear_Expression); \
-+  DYNSYM (ppl_new_Linear_Expression_from_Constraint); \
-+  DYNSYM (ppl_new_Linear_Expression_from_Linear_Expression); \
-+  DYNSYM (ppl_new_Linear_Expression_with_dimension); \
-+  DYNSYM (ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron); \
-+  DYNSYM (ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron); \
-+  DYNSYM (ppl_new_Pointset_Powerset_C_Polyhedron_from_space_dimension); \
-+  DYNSYM (ppl_new_Pointset_Powerset_C_Polyhedron_iterator); \
-+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_add_constraint); \
-+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_add_space_dimensions_and_embed); \
-+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_difference_assign); \
-+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_intersection_assign); \
-+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_is_empty); \
-+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_iterator_begin); \
-+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_iterator_dereference); \
-+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_iterator_end); \
-+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_iterator_equal_test); \
-+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_iterator_increment); \
-+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_map_space_dimensions); \
-+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_maximize); \
-+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_minimize); \
-+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_remove_space_dimensions); \
-+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_size); \
-+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_space_dimension); \
-+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_upper_bound_assign); \
-+  DYNSYM (ppl_Polyhedron_add_constraint); \
-+  DYNSYM (ppl_Polyhedron_add_constraints); \
-+  DYNSYM (ppl_Polyhedron_add_space_dimensions_and_embed); \
-+  DYNSYM (ppl_Polyhedron_get_constraints); \
-+  DYNSYM (ppl_Polyhedron_map_space_dimensions); \
-+  DYNSYM (ppl_Polyhedron_remove_space_dimensions); \
-+  DYNSYM (ppl_Polyhedron_space_dimension); \
-+  DYNSYM (ppl_subtract_Linear_Expression_from_Linear_Expression); \
-+  DYNSYM (pprint); \
-+  DYNSYM (stmt_block); \
-+  DYNSYM (stmt_for); \
-+  DYNSYM (stmt_guard); \
-+  DYNSYM (stmt_root); \
-+  DYNSYM (stmt_user); \
-+  DYNSYM (ppl_delete_Constraint_System); \
-+  DYNSYM (ppl_initialize); \
-+  DYNSYM (ppl_new_Constraint_System_from_Constraint); \
-+  DYNSYM (ppl_new_C_Polyhedron_from_Constraint_System); \
-+  DYNSYM (ppl_Polyhedron_affine_image); \
-+  DYNSYM (ppl_io_fprint_Pointset_Powerset_C_Polyhedron); \
-+  DYNSYMS_PPL11
-+extern struct
-+{
-+  bool inited;
-+  void *h;
-+#define DYNSYM(x) __typeof (x) *p_##x
-+  DYNSYMS
-+#undef DYNSYM
-+} cloog_pointers__;
-+
-+#define cloog_block_alloc (*cloog_pointers__.p_cloog_block_alloc)
-+#define cloog_block_list_free (*cloog_pointers__.p_cloog_block_list_free)
-+#define cloog_block_list_malloc (*cloog_pointers__.p_cloog_block_list_malloc)
-+#define cloog_clast_create (*cloog_pointers__.p_cloog_clast_create)
-+#define cloog_clast_free (*cloog_pointers__.p_cloog_clast_free)
-+#define cloog_domain_free (*cloog_pointers__.p_cloog_domain_free)
-+#define cloog_domain_matrix2domain (*cloog_pointers__.p_cloog_domain_matrix2domain)
-+#define cloog_initialize (*cloog_pointers__.p_cloog_initialize)
-+#ifndef CLOOG_ORG
-+#undef cloog_loop_malloc
-+#define cloog_loop_malloc(STATE) (*cloog_pointers__.p_cloog_loop_malloc) ()
-+#else
-+#define cloog_loop_malloc (*cloog_pointers__.p_cloog_loop_malloc)
-+#endif
-+#define cloog_matrix_alloc (*cloog_pointers__.p_cloog_matrix_alloc)
-+#define cloog_matrix_copy (*cloog_pointers__.p_cloog_matrix_copy)
-+#define cloog_matrix_free (*cloog_pointers__.p_cloog_matrix_free)
-+#define cloog_matrix_print (*cloog_pointers__.p_cloog_matrix_print)
-+#define cloog_names_malloc (*cloog_pointers__.p_cloog_names_malloc)
-+#define cloog_names_scalarize (*cloog_pointers__.p_cloog_names_scalarize)
-+#define cloog_options_free (*cloog_pointers__.p_cloog_options_free)
-+#ifndef CLOOG_ORG
-+#undef cloog_options_malloc
-+#define cloog_options_malloc(STATE) (*cloog_pointers__.p_cloog_options_malloc) ()
-+#undef cloog_program_dump_cloog
-+#define cloog_program_dump_cloog(DUMPFILE, PROGRAM, SCATTERINGLIST) \
-+  (*cloog_pointers__.p_cloog_program_dump_cloog) (DUMPFILE, PROGRAM)
-+#undef cloog_program_extract_scalars
-+#define cloog_program_extract_scalars(PROG, SCATT, OPT) \
-+  (*cloog_pointers__.p_cloog_program_extract_scalars) (PROG, SCATT)
-+#else
-+#define cloog_options_malloc (*cloog_pointers__.p_cloog_options_malloc)
-+#define cloog_program_dump_cloog (*cloog_pointers__.p_cloog_program_dump_cloog)
-+#define cloog_program_extract_scalars (*cloog_pointers__.p_cloog_program_extract_scalars)
-+#endif
-+#define cloog_program_free (*cloog_pointers__.p_cloog_program_free)
-+#define cloog_program_generate (*cloog_pointers__.p_cloog_program_generate)
-+#define cloog_program_malloc (*cloog_pointers__.p_cloog_program_malloc)
-+#define cloog_program_print (*cloog_pointers__.p_cloog_program_print)
-+#ifndef CLOOG_ORG
-+#undef cloog_program_scatter
-+#define cloog_program_scatter(PROG, SCATT, OPT) \
-+  (*cloog_pointers__.p_cloog_program_scatter) (PROG, SCATT)
-+#undef cloog_statement_alloc
-+#define cloog_statement_alloc(STATE, INDEX) \
-+  (*cloog_pointers__.p_cloog_statement_alloc) (INDEX)
-+#else
-+#define cloog_program_scatter (*cloog_pointers__.p_cloog_program_scatter)
-+#define cloog_statement_alloc (*cloog_pointers__.p_cloog_statement_alloc)
-+#endif
-+#define cloog_domain_union (*cloog_pointers__.p_cloog_domain_union)
-+#define cloog_matrix_read (*cloog_pointers__.p_cloog_matrix_read)
-+#define cloog_new_pol (*cloog_pointers__.p_cloog_new_pol)
-+#define cloog_vector_gcd (*cloog_pointers__.p_cloog_vector_gcd)
-+#define ppl_finalize (*cloog_pointers__.p_ppl_finalize)
-+#define ppl_assign_Coefficient_from_mpz_t (*cloog_pointers__.p_ppl_assign_Coefficient_from_mpz_t)
-+#define ppl_assign_Linear_Expression_from_Linear_Expression (*cloog_pointers__.p_ppl_assign_Linear_Expression_from_Linear_Expression)
-+#define ppl_Coefficient_to_mpz_t (*cloog_pointers__.p_ppl_Coefficient_to_mpz_t)
-+#define ppl_Constraint_coefficient (*cloog_pointers__.p_ppl_Constraint_coefficient)
-+#define ppl_Constraint_inhomogeneous_term (*cloog_pointers__.p_ppl_Constraint_inhomogeneous_term)
-+#define ppl_Constraint_space_dimension (*cloog_pointers__.p_ppl_Constraint_space_dimension)
-+#define ppl_Constraint_System_begin (*cloog_pointers__.p_ppl_Constraint_System_begin)
-+#define ppl_Constraint_System_const_iterator_dereference (*cloog_pointers__.p_ppl_Constraint_System_const_iterator_dereference)
-+#define ppl_Constraint_System_const_iterator_equal_test (*cloog_pointers__.p_ppl_Constraint_System_const_iterator_equal_test)
-+#define ppl_Constraint_System_const_iterator_increment (*cloog_pointers__.p_ppl_Constraint_System_const_iterator_increment)
-+#define ppl_Constraint_System_end (*cloog_pointers__.p_ppl_Constraint_System_end)
-+#define ppl_Constraint_System_insert_Constraint (*cloog_pointers__.p_ppl_Constraint_System_insert_Constraint)
-+#define ppl_Constraint_System_space_dimension (*cloog_pointers__.p_ppl_Constraint_System_space_dimension)
-+#define ppl_Constraint_type (*cloog_pointers__.p_ppl_Constraint_type)
-+#define ppl_delete_Coefficient (*cloog_pointers__.p_ppl_delete_Coefficient)
-+#define ppl_delete_Constraint (*cloog_pointers__.p_ppl_delete_Constraint)
-+#define ppl_delete_Constraint_System_const_iterator (*cloog_pointers__.p_ppl_delete_Constraint_System_const_iterator)
-+#define ppl_delete_Linear_Expression (*cloog_pointers__.p_ppl_delete_Linear_Expression)
-+#define ppl_delete_Pointset_Powerset_C_Polyhedron (*cloog_pointers__.p_ppl_delete_Pointset_Powerset_C_Polyhedron)
-+#define ppl_delete_Pointset_Powerset_C_Polyhedron_iterator (*cloog_pointers__.p_ppl_delete_Pointset_Powerset_C_Polyhedron_iterator)
-+#define ppl_delete_Polyhedron (*cloog_pointers__.p_ppl_delete_Polyhedron)
-+#define ppl_Linear_Expression_add_to_coefficient (*cloog_pointers__.p_ppl_Linear_Expression_add_to_coefficient)
-+#define ppl_Linear_Expression_add_to_inhomogeneous (*cloog_pointers__.p_ppl_Linear_Expression_add_to_inhomogeneous)
-+#define ppl_Linear_Expression_coefficient (*cloog_pointers__.p_ppl_Linear_Expression_coefficient)
-+#define ppl_Linear_Expression_inhomogeneous_term (*cloog_pointers__.p_ppl_Linear_Expression_inhomogeneous_term)
-+#define ppl_Linear_Expression_space_dimension (*cloog_pointers__.p_ppl_Linear_Expression_space_dimension)
-+#define ppl_new_Coefficient (*cloog_pointers__.p_ppl_new_Coefficient)
-+#define ppl_new_Coefficient_from_mpz_t (*cloog_pointers__.p_ppl_new_Coefficient_from_mpz_t)
-+#define ppl_new_Constraint (*cloog_pointers__.p_ppl_new_Constraint)
-+#define ppl_new_Constraint_System (*cloog_pointers__.p_ppl_new_Constraint_System)
-+#define ppl_new_Constraint_System_const_iterator (*cloog_pointers__.p_ppl_new_Constraint_System_const_iterator)
-+#define ppl_new_C_Polyhedron_from_C_Polyhedron (*cloog_pointers__.p_ppl_new_C_Polyhedron_from_C_Polyhedron)
-+#define ppl_new_C_Polyhedron_from_space_dimension (*cloog_pointers__.p_ppl_new_C_Polyhedron_from_space_dimension)
-+#define ppl_new_C_Polyhedron_recycle_Constraint_System (*cloog_pointers__.p_ppl_new_C_Polyhedron_recycle_Constraint_System)
-+#define ppl_new_Linear_Expression (*cloog_pointers__.p_ppl_new_Linear_Expression)
-+#define ppl_new_Linear_Expression_from_Constraint (*cloog_pointers__.p_ppl_new_Linear_Expression_from_Constraint)
-+#define ppl_new_Linear_Expression_from_Linear_Expression (*cloog_pointers__.p_ppl_new_Linear_Expression_from_Linear_Expression)
-+#define ppl_new_Linear_Expression_with_dimension (*cloog_pointers__.p_ppl_new_Linear_Expression_with_dimension)
-+#define ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron (*cloog_pointers__.p_ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron)
-+#define ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron (*cloog_pointers__.p_ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron)
-+#define ppl_new_Pointset_Powerset_C_Polyhedron_from_space_dimension (*cloog_pointers__.p_ppl_new_Pointset_Powerset_C_Polyhedron_from_space_dimension)
-+#define ppl_new_Pointset_Powerset_C_Polyhedron_iterator (*cloog_pointers__.p_ppl_new_Pointset_Powerset_C_Polyhedron_iterator)
-+#define ppl_Pointset_Powerset_C_Polyhedron_add_constraint (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_add_constraint)
-+#define ppl_Pointset_Powerset_C_Polyhedron_add_space_dimensions_and_embed (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_add_space_dimensions_and_embed)
-+#define ppl_Pointset_Powerset_C_Polyhedron_difference_assign (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_difference_assign)
-+#define ppl_Pointset_Powerset_C_Polyhedron_intersection_assign (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_intersection_assign)
-+#define ppl_Pointset_Powerset_C_Polyhedron_is_empty (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_is_empty)
-+#define ppl_Pointset_Powerset_C_Polyhedron_iterator_begin (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_iterator_begin)
-+#define ppl_Pointset_Powerset_C_Polyhedron_iterator_dereference (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_iterator_dereference)
-+#define ppl_Pointset_Powerset_C_Polyhedron_iterator_end (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_iterator_end)
-+#define ppl_Pointset_Powerset_C_Polyhedron_iterator_equal_test (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_iterator_equal_test)
-+#define ppl_Pointset_Powerset_C_Polyhedron_iterator_increment (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_iterator_increment)
-+#define ppl_Pointset_Powerset_C_Polyhedron_map_space_dimensions (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_map_space_dimensions)
-+#define ppl_Pointset_Powerset_C_Polyhedron_maximize (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_maximize)
-+#define ppl_Pointset_Powerset_C_Polyhedron_minimize (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_minimize)
-+#define ppl_Pointset_Powerset_C_Polyhedron_remove_space_dimensions (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_remove_space_dimensions)
-+#define ppl_Pointset_Powerset_C_Polyhedron_size (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_size)
-+#define ppl_Pointset_Powerset_C_Polyhedron_space_dimension (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_space_dimension)
-+#define ppl_Pointset_Powerset_C_Polyhedron_upper_bound_assign (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_upper_bound_assign)
-+#define ppl_Polyhedron_add_constraint (*cloog_pointers__.p_ppl_Polyhedron_add_constraint)
-+#define ppl_Polyhedron_add_constraints (*cloog_pointers__.p_ppl_Polyhedron_add_constraints)
-+#define ppl_Polyhedron_add_space_dimensions_and_embed (*cloog_pointers__.p_ppl_Polyhedron_add_space_dimensions_and_embed)
-+#define ppl_Polyhedron_get_constraints (*cloog_pointers__.p_ppl_Polyhedron_get_constraints)
-+#define ppl_Polyhedron_map_space_dimensions (*cloog_pointers__.p_ppl_Polyhedron_map_space_dimensions)
-+#define ppl_Polyhedron_remove_space_dimensions (*cloog_pointers__.p_ppl_Polyhedron_remove_space_dimensions)
-+#define ppl_Polyhedron_space_dimension (*cloog_pointers__.p_ppl_Polyhedron_space_dimension)
-+#define ppl_subtract_Linear_Expression_from_Linear_Expression (*cloog_pointers__.p_ppl_subtract_Linear_Expression_from_Linear_Expression)
-+#define pprint (*cloog_pointers__.p_pprint)
-+#define stmt_block (*cloog_pointers__.p_stmt_block)
-+#define stmt_for (*cloog_pointers__.p_stmt_for)
-+#define stmt_guard (*cloog_pointers__.p_stmt_guard)
-+#define stmt_root (*cloog_pointers__.p_stmt_root)
-+#define stmt_user (*cloog_pointers__.p_stmt_user)
-+#define ppl_delete_Constraint_System (*cloog_pointers__.p_ppl_delete_Constraint_System)
-+#define ppl_initialize (*cloog_pointers__.p_ppl_initialize)
-+#define ppl_new_Constraint_System_from_Constraint (*cloog_pointers__.p_ppl_new_Constraint_System_from_Constraint)
-+#define ppl_new_C_Polyhedron_from_Constraint_System (*cloog_pointers__.p_ppl_new_C_Polyhedron_from_Constraint_System)
-+#define ppl_Polyhedron_affine_image (*cloog_pointers__.p_ppl_Polyhedron_affine_image)
-+#define ppl_io_fprint_Pointset_Powerset_C_Polyhedron (*cloog_pointers__.p_ppl_io_fprint_Pointset_Powerset_C_Polyhedron)
-+#if !(PPL_VERSION_MAJOR == 0 && PPL_VERSION_MINOR < 11)
-+#define ppl_new_PIP_Problem_from_constraints (*cloog_pointers__.p_ppl_new_PIP_Problem_from_constraints)
-+#define ppl_PIP_Problem_is_satisfiable (*cloog_pointers__.p_ppl_PIP_Problem_is_satisfiable)
-+#define ppl_delete_PIP_Problem (*cloog_pointers__.p_ppl_delete_PIP_Problem)
-+#endif
-+
-+#define cloog_finalize (*cloog_pointers__.p_ppl_finalize)
-+
-+
- #endif /* GRAPHITE_CLOOG_COMPAT_H  */
---- gcc/graphite.c.jj	2011-01-03 12:53:05.194056513 +0100
-+++ gcc/graphite.c	2011-01-04 16:18:32.385007767 +0100
-@@ -56,6 +56,35 @@ along with GCC; see the file COPYING3.  
- 
- CloogState *cloog_state;
- 
-+__typeof (cloog_pointers__) cloog_pointers__;
-+
-+static bool
-+init_cloog_pointers (void)
-+{
-+  void *h;
-+
-+  if (cloog_pointers__.inited)
-+    return cloog_pointers__.h != NULL;
-+  h = dlopen ("libcloog.so.0", RTLD_LAZY);
-+  cloog_pointers__.h = h;
-+  if (h == NULL)
-+    return false;
-+#define DYNSYM(x) \
-+  do \
-+    { \
-+      union { __typeof (cloog_pointers__.p_##x) p; void *q; } u; \
-+      u.q = dlsym (h, #x); \
-+      if (u.q == NULL) \
-+	return false; \
-+      cloog_pointers__.p_##x = u.p; \
-+    } \
-+  while (0)
-+  DYNSYMS
-+#undef DYNSYM
-+  return true;
-+}
-+
-+
- /* Print global statistics to FILE.  */
- 
- static void
-@@ -201,6 +230,12 @@ graphite_initialize (void)
-       return false;
-     }
- 
-+  if (!init_cloog_pointers ())
-+    {
-+      sorry ("Graphite loop optimizations cannot be used");
-+      return false;
-+    }
-+
-   scev_reset ();
-   recompute_all_dominators ();
-   initialize_original_copy_tables ();
---- gcc/graphite-clast-to-gimple.c.jj	2011-01-03 12:53:05.000000000 +0100
-+++ gcc/graphite-clast-to-gimple.c	2011-01-04 16:29:55.738007463 +0100
-@@ -738,10 +738,10 @@ clast_get_body_of_loop (struct clast_stm
-    from STMT_FOR.  */
- 
- static tree
--gcc_type_for_iv_of_clast_loop (struct clast_for *stmt_for, int level,
-+gcc_type_for_iv_of_clast_loop (struct clast_for *stmt_fora, int level,
- 			       tree lb_type, tree ub_type)
- {
--  struct clast_stmt *stmt = (struct clast_stmt *) stmt_for;
-+  struct clast_stmt *stmt = (struct clast_stmt *) stmt_fora;
-   struct clast_user_stmt *body = clast_get_body_of_loop (stmt);
-   CloogStatement *cs = body->statement;
-   poly_bb_p pbb = (poly_bb_p) cloog_statement_usr (cs);
---- gcc/graphite-poly.h.jj	2011-01-03 12:53:05.000000000 +0100
-+++ gcc/graphite-poly.h	2011-01-04 17:35:53.308788629 +0100
-@@ -22,6 +22,8 @@ along with GCC; see the file COPYING3.  
- #ifndef GCC_GRAPHITE_POLY_H
- #define GCC_GRAPHITE_POLY_H
- 
-+#include "graphite-cloog-util.h"
-+
- typedef struct poly_dr *poly_dr_p;
- DEF_VEC_P(poly_dr_p);
- DEF_VEC_ALLOC_P (poly_dr_p, heap);

diff --git a/gcc46-hack.patch b/gcc46-hack.patch
deleted file mode 100644
index 4689ce8..0000000
--- a/gcc46-hack.patch
+++ /dev/null
@@ -1,114 +0,0 @@
---- libada/Makefile.in.jj	2009-01-14 12:07:35.000000000 +0100
-+++ libada/Makefile.in	2009-01-15 14:25:33.000000000 +0100
-@@ -69,18 +69,40 @@ version := $(shell cat $(srcdir)/../gcc/
- libsubdir := $(libdir)/gcc/$(target_noncanonical)/$(version)$(MULTISUBDIR)
- ADA_RTS_DIR=$(GCC_DIR)/ada/rts$(subst /,_,$(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)" \
--        "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS)" \
-+        "GNATLIBFLAGS=$(strip $(GNATLIBFLAGS) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS))" \
-+        "GNATLIBCFLAGS=$(strip $(GNATLIBCFLAGS) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS))" \
-+        "GNATLIBCFLAGS_FOR_C=$(strip $(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS))" \
-         "TARGET_LIBGCC2_CFLAGS=$(TARGET_LIBGCC2_CFLAGS)" \
-         "THREAD_KIND=$(THREAD_KIND)" \
-         "TRACE=$(TRACE)" \
-@@ -91,7 +113,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
---- gcc/ada/sem_util.adb	(revision 161677)
-+++ gcc/ada/sem_util.adb	(working copy)
-@@ -2246,7 +2246,11 @@
-          end if;
- 
-       elsif Is_Entity_Name (A2) then
-+
-+         --  Triggered by -Wall
-+         pragma Warnings (Off);
-          return Denotes_Same_Prefix (A2, A1);
-+         pragma Warnings (On);
- 
-       elsif Nkind_In (A1, N_Selected_Component, N_Indexed_Component, N_Slice)
-               and then
-@@ -4694,7 +4698,7 @@
-             Exp           : Node_Id;
-             Assn          : Node_Id;
-             Choice        : Node_Id;
--            Comp_Type     : Entity_Id;
-+            Comp_Type     : Entity_Id := Empty;
-             Is_Array_Aggr : Boolean;
- 
-          begin
---- config-ml.in.jj	2010-06-30 09:50:44.000000000 +0200
-+++ config-ml.in	2010-07-02 21:24:17.994211151 +0200
-@@ -516,6 +516,8 @@ multi-do:
- 				ADAFLAGS="$(ADAFLAGS) $${flags}" \
- 				prefix="$(prefix)" \
- 				exec_prefix="$(exec_prefix)" \
-+				mandir="$(mandir)" \
-+				infodir="$(infodir)" \
- 				GCJFLAGS="$(GCJFLAGS) $${flags}" \
- 				GOCFLAGS="$(GOCFLAGS) $${flags}" \
- 				CXXFLAGS="$(CXXFLAGS) $${flags}" \
---- libjava/Makefile.am.jj	2010-07-09 11:17:33.729604090 +0200
-+++ libjava/Makefile.am	2010-07-09 13:16:41.894375641 +0200
-@@ -710,7 +710,8 @@ if USE_LIBGCJ_BC
- ## later.
- 	@echo Installing dummy lib libgcj_bc.so.1.0.0; \
- 	rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
--	mv $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
-+	$(INSTALL) $(INSTALL_STRIP_FLAG) $(here)/.libs/libgcj_bc.so $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
-+	rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0; \
- 	$(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \
- 	-o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \
- 	rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \
---- libjava/Makefile.in.jj	2010-07-09 11:17:34.000000000 +0200
-+++ libjava/Makefile.in	2010-07-09 13:18:07.542572270 +0200
-@@ -12665,7 +12665,8 @@ install-exec-hook: install-binPROGRAMS i
- 	install-libexecsubPROGRAMS
- @USE_LIBGCJ_BC_TRUE@	@echo Installing dummy lib libgcj_bc.so.1.0.0; \
- @USE_LIBGCJ_BC_TRUE@	rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
--@USE_LIBGCJ_BC_TRUE@	mv $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
-+@USE_LIBGCJ_BC_TRUE@	$(INSTALL) $(INSTALL_STRIP_FLAG) $(here)/.libs/libgcj_bc.so $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
-+@USE_LIBGCJ_BC_TRUE@	rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0; \
- @USE_LIBGCJ_BC_TRUE@	$(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \
- @USE_LIBGCJ_BC_TRUE@	-o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \
- @USE_LIBGCJ_BC_TRUE@	rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \

diff --git a/gcc46-i386-libgomp.patch b/gcc46-i386-libgomp.patch
deleted file mode 100644
index 5d1eea8..0000000
--- a/gcc46-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_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/gcc46-java-nomulti.patch b/gcc46-java-nomulti.patch
deleted file mode 100644
index 17334aa..0000000
--- a/gcc46-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
-@@ -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/gcc46-libgomp-omp_h-multilib.patch b/gcc46-libgomp-omp_h-multilib.patch
deleted file mode 100644
index d0e98d1..0000000
--- a/gcc46-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/gcc46-libjava-prims-ctype.patch b/gcc46-libjava-prims-ctype.patch
deleted file mode 100644
index 027e1e7..0000000
--- a/gcc46-libjava-prims-ctype.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-2011-10-27  Jakub Jelinek  <jakub@redhat.com>
-
-	* prims.cc (__NO_CTYPE): For glibc define this before including
-	ctype.h.
-
---- libjava/prims.cc	2009-04-28 06:02:30.000000000 +0200
-+++ libjava/prims.cc	2011-10-27 12:57:42.748752380 +0200
-@@ -38,6 +38,14 @@ details.  */
- #endif
- 
- #ifndef DISABLE_GETENV_PROPERTIES
-+#ifdef __GLIBC__
-+/* glibc 2.15+ provides even for C++ inline optimized ::isspace etc.
-+   Unfortunately those inlines are throw (), and call a function pointer
-+   (which is throw () too, but with -fnon-call-exceptions this results
-+   in a __cxa_call_unexpected call.  This macro disables the optimized
-+   version.  */
-+#define __NO_CTYPE 1
-+#endif
- #include <ctype.h>
- #include <java-props.h>
- #define PROCESS_GCJ_PROPERTIES process_gcj_properties()

diff --git a/gcc46-libstdc++-docs.patch b/gcc46-libstdc++-docs.patch
deleted file mode 100644
index 2d1cd5f..0000000
--- a/gcc46-libstdc++-docs.patch
+++ /dev/null
@@ -1,36 +0,0 @@
---- libstdc++-v3/doc/html/index.html.jj	2011-01-03 12:53:21.282829010 +0100
-+++ libstdc++-v3/doc/html/index.html	2011-01-04 18:06:28.999851145 +0100
-@@ -12,7 +12,8 @@
- <div>
- <h1>The GNU C++ Library Documentation</h1>
- 
--<p>Copyright 2008, 2009 FSF</p>
-+<p>Release 4.6.0</p>
-+<p>Copyright 2008, 2009, 2010, 2011 FSF</p>
- 
- <p>
-   Permission is granted to copy, distribute and/or modify this
---- libstdc++-v3/doc/html/api.html.jj	2011-01-03 12:53:21.000000000 +0100
-+++ libstdc++-v3/doc/html/api.html	2011-01-04 18:12:01.672757784 +0100
-@@ -3,7 +3,7 @@
- <html xmlns="http://www.w3.org/1999/xhtml"><head><title>The GNU C++ Library API Reference</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><link rel="home" href="spine.html" title="The GNU C++ Library"/><link rel="up" href="bk02.html" title=""/><link rel="prev" href="bk02.html" title=""/><link rel="next" href="bk03.html" title=""/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNU C++ Library API Reference</th></tr><tr><td align="left"><a accesskey="p" href="bk02.html">Prev</a> </td><th width="60%" align="center"/><td align="right"> <a accesskey="n" href="bk03.html">Next</a></td></tr></table><hr/></div><div class="article" title="The GNU C++ Library API Reference"><div class="titlepage"><div><div><h2 class="title"><a id="api"/>The GNU C++ Library API Reference</h2></div><div><p class="copyright">Copyright © 
-       2008
-     , 
--      2010
-+      2010, 2011
-      
-       <a class="link" href="http://www.fsf.org/">FSF
-       </a>
-@@ -19,8 +19,11 @@
-   member functions for the library classes, finding out what is in a
-   particular include file, looking at inheritance diagrams, etc.
- </p><p>
--  The API documentation, rendered into HTML, can be viewed online:
-+  The API documentation, rendered into HTML, can be viewed here:
- </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>
-+      <a class="ulink" href="api/index.html">for the 4.6 release, local
-+      </a>
-+    </p></li><li class="listitem"><p>
-       <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-3.4/index.html">for the 3.4 release
-       </a>
-     </p></li><li class="listitem"><p>

diff --git a/gcc46-libtool-no-rpath.patch b/gcc46-libtool-no-rpath.patch
deleted file mode 100644
index 466c661..0000000
--- a/gcc46-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/gcc46-no-add-needed.patch b/gcc46-no-add-needed.patch
deleted file mode 100644
index 8aac209..0000000
--- a/gcc46-no-add-needed.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-2010-02-08  Roland McGrath  <roland@redhat.com>
-
-	* config/rs6000/sysv4.h (LINK_EH_SPEC): Pass --no-add-needed to the
-	linker.
-	* config/gnu-user.h (LINK_EH_SPEC): Likewise.
-	* config/alpha/elf.h (LINK_EH_SPEC): Likewise.
-	* config/ia64/linux.h (LINK_EH_SPEC): Likewise.
-
---- gcc/config/alpha/elf.h.jj	2011-01-03 12:52:31.118056764 +0100
-+++ gcc/config/alpha/elf.h	2011-01-04 18:14:10.931874160 +0100
-@@ -438,7 +438,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 "--no-add-needed %{!static:--eh-frame-hdr} "
- #endif
- 
- /* A C statement (sans semicolon) to output to the stdio stream STREAM
---- gcc/config/ia64/linux.h.jj	2011-01-03 13:02:11.462994522 +0100
-+++ gcc/config/ia64/linux.h	2011-01-04 18:14:10.931874160 +0100
-@@ -82,7 +82,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 "--no-add-needed "
- 
- #define MD_UNWIND_SUPPORT "config/ia64/linux-unwind.h"
- 
---- gcc/config/gnu-user.h.jj	2011-01-03 12:53:03.739057299 +0100
-+++ gcc/config/gnu-user.h	2011-01-04 18:14:10.932814884 +0100
-@@ -82,7 +82,7 @@ see the files COPYING3 and COPYING.RUNTI
- #define LIB_SPEC GNU_USER_TARGET_LIB_SPEC
- 
- #if defined(HAVE_LD_EH_FRAME_HDR)
--#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
-+#define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} "
- #endif
- 
- #undef LINK_GCC_C_SEQUENCE_SPEC
---- gcc/config/rs6000/sysv4.h.jj	2011-01-03 13:02:18.255994215 +0100
-+++ gcc/config/rs6000/sysv4.h	2011-01-04 18:14:10.933888871 +0100
-@@ -869,7 +869,7 @@ extern int fixuplabelno;
-   -dynamic-linker " LINUX_DYNAMIC_LINKER "}}"
- 
- #if defined(HAVE_LD_EH_FRAME_HDR)
--# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
-+# define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} "
- #endif
- 
- #define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \

diff --git a/gcc46-ppc32-retaddr.patch b/gcc46-ppc32-retaddr.patch
deleted file mode 100644
index e9ae1bc..0000000
--- a/gcc46-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/gcc46-ppl-0.10.patch b/gcc46-ppl-0.10.patch
deleted file mode 100644
index d43f34f..0000000
--- a/gcc46-ppl-0.10.patch
+++ /dev/null
@@ -1,121 +0,0 @@
-2011-01-28  Jakub Jelinek  <jakub@redhat.com>
-
-	Revert:
-	2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
-
-	* configure: Regenerated.
-	* configure.ac: Check for version 0.11 (or later revision) of PPL.
-gcc/
-	* doc/install.texi: Update the expected version number of PPL to 0.11.
-	* graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
-	#if PPL_VERSION_MINOR < 11.
-
---- gcc/doc/install.texi	(revision 169207)
-+++ gcc/doc/install.texi	(revision 169206)
-@@ -332,7 +332,7 @@ and @option{--with-mpc-include}.  Altern
- distribution is found in a subdirectory of your GCC sources named
- @file{mpc}, it will be built together with GCC@.
- 
--@item Parma Polyhedra Library (PPL) version 0.11
-+@item Parma Polyhedra Library (PPL) version 0.10
- 
- Necessary to build GCC with the Graphite loop optimizations.
- It can be downloaded from @uref{http://www.cs.unipr.it/ppl/Download/}.
---- gcc/graphite-ppl.c	(revision 169207)
-+++ gcc/graphite-ppl.c	(revision 169206)
-@@ -521,6 +521,15 @@ debug_gmp_value (mpz_t val)
- bool
- ppl_powerset_is_empty (ppl_Pointset_Powerset_C_Polyhedron_t ps)
- {
-+#if PPL_VERSION_MAJOR == 0 && PPL_VERSION_MINOR < 11
-+  /* On PPL 0.10,
-+     ppl_Pointset_Powerset_C_Polyhedron_contains_integer_point (ps)
-+     takes too long on some cases and so we call _is_empty instead.  */
-+  return ppl_Pointset_Powerset_C_Polyhedron_is_empty (ps);
-+
-+#else
-+  /* On PPL 0.11 or later, we can check for integer feasibility using
-+     the PIP solver.  */
-   ppl_PIP_Problem_t pip;
-   ppl_dimension_type d;
-   ppl_const_Constraint_System_t pcs;
-@@ -561,6 +570,7 @@ ppl_powerset_is_empty (ppl_Pointset_Powe
-   ppl_delete_Pointset_Powerset_C_Polyhedron_iterator (end);
- 
-   return !has_integer_solutions;
-+#endif
- }
- 
- #endif
---- configure.ac	(revision 169207)
-+++ configure.ac	(revision 169206)
-@@ -1688,9 +1688,9 @@ if test "x$with_ppl" != xno; then
-   if test "$enable_ppl_version_check" != no; then
-     saved_CFLAGS="$CFLAGS"
-     CFLAGS="$CFLAGS $pplinc $gmpinc"
--    AC_MSG_CHECKING([for version 0.11 (revision 0 or later) of PPL])
-+    AC_MSG_CHECKING([for version 0.10 (revision 0 or later) of PPL])
-     AC_TRY_COMPILE([#include "ppl_c.h"],[
--    #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 11
-+    #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 10
-     choke me
-     #endif
-     ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); ppllibs= ; pplinc= ; with_ppl=no ])
---- configure	(revision 169207)
-+++ configure	(revision 169206)
-@@ -5775,8 +5775,8 @@ fi
-   if test "$enable_ppl_version_check" != no; then
-     saved_CFLAGS="$CFLAGS"
-     CFLAGS="$CFLAGS $pplinc $gmpinc"
--    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for version 0.11 (revision 0 or later) of PPL" >&5
--$as_echo_n "checking for version 0.11 (revision 0 or later) of PPL... " >&6; }
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for version 0.10 (revision 0 or later) of PPL" >&5
-+$as_echo_n "checking for version 0.10 (revision 0 or later) of PPL... " >&6; }
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- #include "ppl_c.h"
-@@ -5784,7 +5784,7 @@ int
- main ()
- {
- 
--    #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 11
-+    #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 10
-     choke me
-     #endif
- 
---- gcc/testsuite/gcc.dg/graphite/interchange-11.c.jj	2011-01-28 09:38:11.000000000 +0100
-+++ gcc/testsuite/gcc.dg/graphite/interchange-11.c	2011-01-28 11:06:56.461429848 +0100
-@@ -46,5 +46,5 @@ main (void)
-   return 0;
- }
- 
--/* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" } } */
-+/* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" { xfail *-*-* } } } */
- /* { dg-final { cleanup-tree-dump "graphite" } } */
---- gcc/testsuite/gcc.dg/graphite/interchange-13.c.jj	2011-01-28 09:38:12.000000000 +0100
-+++ gcc/testsuite/gcc.dg/graphite/interchange-13.c	2011-01-28 11:07:08.182429223 +0100
-@@ -50,5 +50,5 @@ main (void)
- }
- 
- 
--/* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" } } */
-+/* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" { xfail *-*-* } } } */
- /* { dg-final { cleanup-tree-dump "graphite" } } */
---- gcc/testsuite/gcc.dg/graphite/interchange-1.c.jj	2011-01-28 09:38:13.000000000 +0100
-+++ gcc/testsuite/gcc.dg/graphite/interchange-1.c	2011-01-28 11:06:42.160429193 +0100
-@@ -49,5 +49,5 @@ main (void)
-   return 0;
- }
- 
--/* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" } } */
-+/* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" { xfail *-*-* } } } */
- /* { dg-final { cleanup-tree-dump "graphite" } } */
---- gcc/testsuite/gfortran.dg/graphite/interchange-3.f90.jj	2011-01-28 09:38:05.000000000 +0100
-+++ gcc/testsuite/gfortran.dg/graphite/interchange-3.f90	2011-01-28 11:07:46.313420441 +0100
-@@ -24,5 +24,5 @@ Program FOO
- 
- end Program FOO
- 
--! { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" } }
-+! { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" { xfail *-*-* } } }
- ! { dg-final { cleanup-tree-dump "graphite" } }

diff --git a/gcc46-pr33763.patch b/gcc46-pr33763.patch
deleted file mode 100644
index 86c8ac7..0000000
--- a/gcc46-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
-@@ -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/gcc46-pr38757.patch b/gcc46-pr38757.patch
deleted file mode 100644
index 5e6bf57..0000000
--- a/gcc46-pr38757.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-2009-03-18  Jakub Jelinek  <jakub@redhat.com>
-
-	PR debug/38757
-	* langhooks.h (struct lang_hooks): Add source_language langhook.
-	* langhooks-def.h (LANG_HOOKS_SOURCE_LANGUAGE): Define to NULL.
-	(LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_SOURCE_LANGUAGE.
-	* c-lang.c (c_source_language): New function.
-	(LANG_HOOKS_SOURCE_LANGUAGE): Define.
-	* dwarf2out.c (add_prototyped_attribute): Add DW_AT_prototype
-	also for DW_LANG_{C,C99,ObjC}.
-	(gen_compile_unit_die): Use lang_hooks.source_language () to
-	determine if DW_LANG_C99 or DW_LANG_C89 should be returned.
-
---- gcc/langhooks.h.jj	2011-01-03 12:53:05.125745450 +0100
-+++ gcc/langhooks.h	2011-01-04 17:59:43.166744926 +0100
-@@ -467,6 +467,10 @@ struct lang_hooks
-      gimplification.  */
-   bool deep_unsharing;
- 
-+  /* Return year of the source language standard version if the FE supports
-+     multiple versions of the standard.  */
-+  int (*source_language) (void);
-+
-   /* Whenever you add entries here, make sure you adjust langhooks-def.h
-      and langhooks.c accordingly.  */
- };
---- gcc/langhooks-def.h.jj	2011-01-03 12:53:05.000000000 +0100
-+++ gcc/langhooks-def.h	2011-01-04 18:00:44.858851030 +0100
-@@ -118,6 +118,7 @@ extern void lhd_omp_firstprivatize_type_
- #define LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS	NULL
- #define LANG_HOOKS_EH_USE_CXA_END_CLEANUP	false
- #define LANG_HOOKS_DEEP_UNSHARING	false
-+#define LANG_HOOKS_SOURCE_LANGUAGE	NULL
- 
- /* Attribute hooks.  */
- #define LANG_HOOKS_ATTRIBUTE_TABLE		NULL
-@@ -307,7 +308,8 @@ extern void lhd_end_section (void);
-   LANG_HOOKS_EH_RUNTIME_TYPE, \
-   LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS, \
-   LANG_HOOKS_EH_USE_CXA_END_CLEANUP, \
--  LANG_HOOKS_DEEP_UNSHARING \
-+  LANG_HOOKS_DEEP_UNSHARING, \
-+  LANG_HOOKS_SOURCE_LANGUAGE \
- }
- 
- #endif /* GCC_LANG_HOOKS_DEF_H */
---- gcc/c-lang.c.jj	2011-01-03 12:53:05.376056936 +0100
-+++ gcc/c-lang.c	2011-01-04 17:59:43.167743798 +0100
-@@ -36,6 +36,12 @@ along with GCC; see the file COPYING3.  
- 
- enum c_language_kind c_language = clk_c;
- 
-+static int
-+c_source_language (void)
-+{
-+  return flag_isoc99 ? 1999 : 1989;
-+}
-+
- /* Lang hooks common to C and ObjC are declared in c-objc-common.h;
-    consequently, there should be very few hooks below.  */
- 
-@@ -43,6 +49,8 @@ enum c_language_kind c_language = clk_c;
- #define LANG_HOOKS_NAME "GNU C"
- #undef LANG_HOOKS_INIT
- #define LANG_HOOKS_INIT c_objc_common_init
-+#undef LANG_HOOKS_SOURCE_LANGUAGE
-+#define LANG_HOOKS_SOURCE_LANGUAGE c_source_language
- 
- /* Each front end provides its own lang hook initializer.  */
- struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;
---- gcc/dwarf2out.c.jj	2011-01-03 12:53:05.102056475 +0100
-+++ gcc/dwarf2out.c	2011-01-04 18:03:14.534151763 +0100
-@@ -17650,9 +17650,18 @@ add_bit_size_attribute (dw_die_ref die, 
- static inline void
- add_prototyped_attribute (dw_die_ref die, tree func_type)
- {
--  if (get_AT_unsigned (comp_unit_die (), DW_AT_language) == DW_LANG_C89
--      && prototype_p (func_type))
--    add_AT_flag (die, DW_AT_prototyped, 1);
-+  switch (get_AT_unsigned (comp_unit_die (), DW_AT_language))
-+    {
-+    case DW_LANG_C:
-+    case DW_LANG_C89:
-+    case DW_LANG_C99:
-+    case DW_LANG_ObjC:
-+      if (prototype_p (func_type) != NULL)
-+	add_AT_flag (die, DW_AT_prototyped, 1);
-+      break;
-+    default:
-+      break;
-+    }
- }
- 
- /* Add an 'abstract_origin' attribute below a given DIE.  The DIE is found
-@@ -19875,6 +19884,10 @@ gen_compile_unit_die (const char *filena
- 	language = DW_LANG_ObjC;
-       else if (strcmp (language_string, "GNU Objective-C++") == 0)
- 	language = DW_LANG_ObjC_plus_plus;
-+      else if (strcmp (language_string, "GNU C") == 0
-+	       && lang_hooks.source_language
-+	       && lang_hooks.source_language () >= 1999)
-+	language = DW_LANG_C99;
-     }
- 
-   add_AT_unsigned (die, DW_AT_language, language);

diff --git a/gcc46-pr47858.patch b/gcc46-pr47858.patch
deleted file mode 100644
index 8d05ac6..0000000
--- a/gcc46-pr47858.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-2011-03-01  Jakub Jelinek  <jakub@redhat.com>
-
-	PR debug/47858
-	* opts.c (default_options_table): Enable -fipa-sra by default
-	only for -O3, not for -O2 and -Os.
-
---- gcc/opts.c.jj	2011-02-20 08:36:59.888390890 +0100
-+++ gcc/opts.c	2011-03-01 12:04:38.680558351 +0100
-@@ -487,13 +487,13 @@ static const struct default_options defa
-     { OPT_LEVELS_2_PLUS, OPT_ftree_switch_conversion, NULL, 1 },
-     { OPT_LEVELS_2_PLUS, OPT_fipa_cp, NULL, 1 },
-     { OPT_LEVELS_2_PLUS, OPT_fdevirtualize, NULL, 1 },
--    { OPT_LEVELS_2_PLUS, OPT_fipa_sra, NULL, 1 },
-     { OPT_LEVELS_2_PLUS, OPT_falign_loops, NULL, 1 },
-     { OPT_LEVELS_2_PLUS, OPT_falign_jumps, NULL, 1 },
-     { OPT_LEVELS_2_PLUS, OPT_falign_labels, NULL, 1 },
-     { OPT_LEVELS_2_PLUS, OPT_falign_functions, NULL, 1 },
- 
-     /* -O3 optimizations.  */
-+    { OPT_LEVELS_3_PLUS, OPT_fipa_sra, NULL, 1 },
-     { OPT_LEVELS_3_PLUS, OPT_ftree_loop_distribute_patterns, NULL, 1 },
-     { OPT_LEVELS_3_PLUS, OPT_fpredictive_commoning, NULL, 1 },
-     /* Inlining of functions reducing size is a good idea with -Os

diff --git a/gcc46-rh330771.patch b/gcc46-rh330771.patch
deleted file mode 100644
index 102730f..0000000
--- a/gcc46-rh330771.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-2007-10-16  Jakub Jelinek  <jakub@redhat.com>
-
-	* Makefile.am (libgcj_tools_la_LIBADD): Add.
-	* Makefile.in: Regenerated.
-
---- libjava/Makefile.am.jj	2009-05-06 08:14:50.000000000 +0200
-+++ libjava/Makefile.am	2009-05-06 10:26:43.000000000 +0200
-@@ -550,7 +550,7 @@ libgcj_tools_la_LDFLAGS = -rpath $(toole
-  $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBJAVA_LDFLAGS_NOUNDEF) \
-  $(LIBJAVA_LDFLAGS_LIBMATH)
- 
--libgcj_tools_la_LIBADD = libgcj.la
-+libgcj_tools_la_LIBADD = -L$(here)/.libs libgcj.la
- libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec \
-  $(libgcj_tools_la_version_dep)
- if BUILD_SUBLIBS
---- libjava/Makefile.in.jj	2009-05-06 08:14:49.000000000 +0200
-+++ libjava/Makefile.in	2009-05-06 10:27:18.000000000 +0200
-@@ -1110,7 +1110,7 @@ libgcj_tools_la_LDFLAGS = -rpath $(toole
-  $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBJAVA_LDFLAGS_NOUNDEF) \
-  $(LIBJAVA_LDFLAGS_LIBMATH)
- 
--libgcj_tools_la_LIBADD = libgcj.la
-+libgcj_tools_la_LIBADD = -L$(here)/.libs libgcj.la
- libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec \
- 	$(libgcj_tools_la_version_dep) $(am__append_19)
- libgcj_tools_la_LINK = $(LIBLINK) $(libgcj_tools_la_LDFLAGS) \

diff --git a/gcc46-sparc-config-detection.patch b/gcc46-sparc-config-detection.patch
deleted file mode 100644
index 5f1937b..0000000
--- a/gcc46-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
-@@ -2530,7 +2530,7 @@ sparc-*-rtems*)
- 	tmake_file="sparc/t-elf sparc/t-crtin sparc/t-crtfm t-rtems"
- 	extra_parts="crtbegin.o crtend.o"
- 	;;
--sparc-*-linux*)
-+sparc-*-linux* | sparcv9-*-linux*)
- 	tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h"
- 	extra_options="${extra_options} sparc/long-double-switch.opt"
- 	case ${target} in
-@@ -2624,7 +2624,7 @@ sparc64-*-rtems*)
- 	tmake_file="${tmake_file} sparc/t-crtin sparc/t-crtfm t-rtems"
- 	extra_parts="crtbegin.o crtend.o"
- 	;;
--sparc64-*-linux*)
-+sparc64*-*-linux*)
- 	tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.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/gcc47-c++-builtin-redecl.patch b/gcc47-c++-builtin-redecl.patch
new file mode 100644
index 0000000..fa30745
--- /dev/null
+++ b/gcc47-c++-builtin-redecl.patch
@@ -0,0 +1,134 @@
+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-85.c: New test.
+	* g++.dg/ext/builtin30.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
+@@ -2137,39 +2137,37 @@ 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 (DECL_BUILT_IN_CLASS (newdecl) == BUILT_IN_NORMAL)
++	    {
++	      enum built_in_function fncode = DECL_FUNCTION_CODE (newdecl);
++	      switch (fncode)
++		{
++		  /* If a compatible prototype of these builtin functions
++		     is seen, assume the runtime implements it with the
++		     expected semantics.  */
++		case BUILT_IN_STPCPY:
++		  if (builtin_decl_explicit_p (fncode))
++		    set_builtin_decl_implicit_p (fncode, true);
++		  break;
++		default:
++		  break;
++		}
++	    }
++	}
+       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);
+-	      if (DECL_BUILT_IN_CLASS (newdecl) == BUILT_IN_NORMAL)
+-		{
+-		  enum built_in_function fncode = DECL_FUNCTION_CODE (newdecl);
+-		  switch (fncode)
+-		    {
+-		      /* If a compatible prototype of these builtin functions
+-			 is seen, assume the runtime implements it with the
+-			 expected semantics.  */
+-		    case BUILT_IN_STPCPY:
+-		      if (builtin_decl_explicit_p (fncode))
+-			set_builtin_decl_implicit_p (fncode, true);
+-		      break;
+-		    default:
+-		      break;
+-		    }
+-		}
+-	    }
+-
+ 	  DECL_RESULT (newdecl) = DECL_RESULT (olddecl);
+ 	  /* Don't clear out the arguments if we're just redeclaring a
+ 	     function.  */
+--- gcc/testsuite/gcc.dg/builtins-85.c.jj	2007-10-02 11:23:51.000000000 +0200
++++ gcc/testsuite/gcc.dg/builtins-85.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/builtin30.C.jj	2007-10-02 11:19:45.000000000 +0200
++++ gcc/testsuite/g++.dg/ext/builtin30.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/gcc47-cloog-dl.patch b/gcc47-cloog-dl.patch
new file mode 100644
index 0000000..1ed7165
--- /dev/null
+++ b/gcc47-cloog-dl.patch
@@ -0,0 +1,472 @@
+2011-01-04  Jakub Jelinek  <jakub@redhat.com>
+
+	* Makefile.in (BACKENDLIBS): Link against -ldl instead of
+	-lcloog -lppl.
+	(graphite.o, graphite%.o): Force -O, remove -fkeep-inline-functions.
+	(GRAPHITE_CLOOG_UTIL_H, GRAPHITE_POLY_H): New.
+	(graphite*.o): Adjust dependencies.
+	* graphite-cloog-compat.h: Include <dlfcn.h>.  Reference libcloog and
+	libppl symbols through pointers in cloog_pointers__ variable.
+	* graphite.c (init_cloog_pointers): New function.
+	(graphite_transform_loops): Call init_cloog_pointers.
+	* graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Rename
+	stmt_for argument to stmt_fora.
+	* graphite-poly.h: Include graphite-cloog-util.h.
+
+--- gcc/Makefile.in.jj	2011-01-03 13:44:14.163900902 +0100
++++ gcc/Makefile.in	2011-01-04 17:48:53.588775911 +0100
+@@ -962,6 +962,8 @@ GCC_PLUGIN_H = gcc-plugin.h highlev-plug
+ PLUGIN_H = plugin.h $(GCC_PLUGIN_H)
+ PLUGIN_VERSION_H = plugin-version.h configargs.h
+ LIBFUNCS_H = libfuncs.h $(HASHTAB_H)
++GRAPHITE_CLOOG_UTIL_H = graphite-cloog-util.h graphite-cloog-compat.h
++GRAPHITE_POLY_H = graphite-poly.h $(GRAPHITE_CLOOG_UTIL_H)
+ 
+ #\f
+ # Now figure out from those variables how to compile and link.
+@@ -1016,7 +1018,7 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY)
+ # and the system's installed libraries.
+ LIBS = @LIBS@ libcommon.a $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBIBERTY) \
+ 	$(LIBDECNUMBER) $(HOST_LIBS)
+-BACKENDLIBS = $(CLOOGLIBS) $(PPLLIBS) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \
++BACKENDLIBS = $(GMPLIBS) $(if $(CLOOGLIBS),-ldl) $(PLUGINLIBS) $(HOST_LIBS) \
+ 	$(ZLIB)
+ # Any system libraries needed just for GNAT.
+ SYSLIBS = @GNAT_LIBEXC@
+@@ -2602,40 +2604,40 @@ sese.o : sese.c sese.h $(CONFIG_H) $(SYS
+    $(TREE_FLOW_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) tree-pass.h value-prof.h
+ graphite.o : graphite.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(DIAGNOSTIC_CORE_H) \
+    $(TREE_FLOW_H) $(TREE_DUMP_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) sese.h \
+-   $(DBGCNT_H) graphite-ppl.h graphite-poly.h graphite-scop-detection.h \
++   $(DBGCNT_H) graphite-ppl.h $(GRAPHITE_POLY_H) graphite-scop-detection.h \
+    graphite-clast-to-gimple.h graphite-sese-to-poly.h
+ graphite-blocking.o : graphite-blocking.c $(CONFIG_H) $(SYSTEM_H) \
+    coretypes.h $(TREE_FLOW_H) $(TREE_DUMP_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) \
+-   sese.h graphite-ppl.h graphite-poly.h
++   sese.h graphite-ppl.h $(GRAPHITE_POLY_H)
+ graphite-clast-to-gimple.o : graphite-clast-to-gimple.c $(CONFIG_H) \
+    $(SYSTEM_H) coretypes.h $(DIAGNOSTIC_CORE_H) $(TREE_FLOW_H) $(TREE_DUMP_H) \
+-   $(CFGLOOP_H) $(TREE_DATA_REF_H) sese.h graphite-cloog-util.h \
+-   graphite-ppl.h graphite-poly.h graphite-clast-to-gimple.h \
++   $(CFGLOOP_H) $(TREE_DATA_REF_H) sese.h $(GRAPHITE_CLOOG_UTIL_H) \
++   graphite-ppl.h $(GRAPHITE_POLY_H) graphite-clast-to-gimple.h \
+    graphite-dependences.h graphite-cloog-compat.h
+ graphite-cloog-util.o : graphite-cloog-util.c $(CONFIG_H) $(SYSTEM_H) \
+-   coretypes.h graphite-cloog-util.h graphite-cloog-compat.h
++   coretypes.h $(GRAPHITE_CLOOG_UTIL_H) graphite-cloog-compat.h
+ graphite-dependences.o : graphite-dependences.c $(CONFIG_H) $(SYSTEM_H) \
+    coretypes.h $(TREE_FLOW_H) $(TREE_DUMP_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) \
+-   sese.h graphite-ppl.h graphite-poly.h graphite-dependences.h \
+-   graphite-cloog-util.h
++   sese.h graphite-ppl.h $(GRAPHITE_POLY_H) graphite-dependences.h \
++   $(GRAPHITE_CLOOG_UTIL_H)
+ graphite-flattening.o : graphite-flattening.c $(CONFIG_H) $(SYSTEM_H)	\
+    coretypes.h $(TREE_FLOW_H) $(TREE_DUMP_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) \
+-   sese.h graphite-ppl.h graphite-poly.h
++   sese.h graphite-ppl.h $(GRAPHITE_POLY_H)
+ graphite-interchange.o : graphite-interchange.c $(CONFIG_H) $(SYSTEM_H) \
+    coretypes.h $(TREE_FLOW_H) $(TREE_DUMP_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) \
+-   sese.h graphite-ppl.h graphite-poly.h
++   sese.h graphite-ppl.h $(GRAPHITE_POLY_H)
+ graphite-poly.o : graphite-poly.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
+    $(DIAGNOSTIC_CORE_H) $(TREE_FLOW_H) $(TREE_DUMP_H) gimple-pretty-print.h \
+-   $(CFGLOOP_H) $(TREE_DATA_REF_H) sese.h graphite-ppl.h graphite-poly.h \
+-   graphite-dependences.h graphite-cloog-util.h
++   $(CFGLOOP_H) $(TREE_DATA_REF_H) sese.h graphite-ppl.h $(GRAPHITE_POLY_H) \
++   graphite-dependences.h $(GRAPHITE_CLOOG_UTIL_H)
+ graphite-ppl.o : graphite-ppl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
+-   graphite-cloog-util.h graphite-ppl.h
++   $(GRAPHITE_CLOOG_UTIL_H) graphite-ppl.h
+ graphite-scop-detection.o : graphite-scop-detection.c $(CONFIG_H) $(SYSTEM_H) \
+    coretypes.h $(TREE_FLOW_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) $(TREE_PASS_H) \
+-   sese.h graphite-ppl.h graphite-poly.h graphite-scop-detection.h
++   sese.h graphite-ppl.h $(GRAPHITE_POLY_H) graphite-scop-detection.h
+ graphite-sese-to-poly.o : graphite-sese-to-poly.c $(CONFIG_H) \
+    $(SYSTEM_H) coretypes.h $(TREE_FLOW_H) $(TREE_DUMP_H) $(CFGLOOP_H) \
+-   $(TREE_DATA_REF_H) domwalk.h sese.h graphite-ppl.h graphite-poly.h \
++   $(TREE_DATA_REF_H) domwalk.h sese.h graphite-ppl.h $(GRAPHITE_POLY_H) \
+    graphite-sese-to-poly.h
+ tree-vect-loop.o: tree-vect-loop.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
+    $(TM_H) $(GGC_H) $(TREE_H) $(BASIC_BLOCK_H) $(DIAGNOSTIC_H) $(TREE_FLOW_H) \
+@@ -3454,6 +3456,15 @@ $(common_out_object_file): $(common_out_
+ 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \
+ 	  $< $(OUTPUT_OPTION)
+ 
++graphite%.o : \
++  ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS))
++graphite.o : \
++  ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS))
++graphite%.o : \
++  ALL_CXXFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CXXFLAGS))
++graphite.o : \
++  ALL_CXXFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CXXFLAGS))
++
+ # Build auxiliary files that support ecoff format.
+ mips-tfile: mips-tfile.o $(LIBDEPS)
+ 	$(LINKER) $(LINKERFLAGS) $(LDFLAGS) -o $@ \
+--- gcc/graphite-cloog-compat.h.jj	2011-01-03 12:53:05.000000000 +0100
++++ gcc/graphite-cloog-compat.h	2011-01-04 17:34:09.857757544 +0100
+@@ -272,4 +272,279 @@ static inline int cloog_matrix_nrows (Cl
+    return m->NbRows;
+ }
+ #endif /* CLOOG_ORG  */
++
++#include <dlfcn.h>
++#if PPL_VERSION_MAJOR == 0 && PPL_VERSION_MINOR < 11
++#define DYNSYMS_PPL11
++#else
++#define DYNSYMS_PPL11 \
++  DYNSYM (ppl_new_PIP_Problem_from_constraints); \
++  DYNSYM (ppl_PIP_Problem_is_satisfiable); \
++  DYNSYM (ppl_delete_PIP_Problem);
++#endif
++#define DYNSYMS \
++  DYNSYM (cloog_block_alloc); \
++  DYNSYM (cloog_block_list_free); \
++  DYNSYM (cloog_block_list_malloc); \
++  DYNSYM (cloog_clast_create); \
++  DYNSYM (cloog_clast_free); \
++  DYNSYM (cloog_domain_free); \
++  DYNSYM (cloog_domain_matrix2domain); \
++  DYNSYM (cloog_initialize); \
++  DYNSYM (cloog_loop_malloc); \
++  DYNSYM (cloog_matrix_alloc); \
++  DYNSYM (cloog_matrix_copy); \
++  DYNSYM (cloog_matrix_free); \
++  DYNSYM (cloog_matrix_print); \
++  DYNSYM (cloog_names_malloc); \
++  DYNSYM (cloog_names_scalarize); \
++  DYNSYM (cloog_options_free); \
++  DYNSYM (cloog_options_malloc); \
++  DYNSYM (cloog_program_dump_cloog); \
++  DYNSYM (cloog_program_extract_scalars); \
++  DYNSYM (cloog_program_free); \
++  DYNSYM (cloog_program_generate); \
++  DYNSYM (cloog_program_malloc); \
++  DYNSYM (cloog_program_print); \
++  DYNSYM (cloog_program_scatter); \
++  DYNSYM (cloog_statement_alloc); \
++  DYNSYM (cloog_domain_union); \
++  DYNSYM (cloog_matrix_read); \
++  DYNSYM (cloog_new_pol); \
++  DYNSYM (cloog_vector_gcd); \
++  DYNSYM (ppl_finalize); \
++  DYNSYM (ppl_assign_Coefficient_from_mpz_t); \
++  DYNSYM (ppl_assign_Linear_Expression_from_Linear_Expression); \
++  DYNSYM (ppl_Coefficient_to_mpz_t); \
++  DYNSYM (ppl_Constraint_coefficient); \
++  DYNSYM (ppl_Constraint_inhomogeneous_term); \
++  DYNSYM (ppl_Constraint_space_dimension); \
++  DYNSYM (ppl_Constraint_System_begin); \
++  DYNSYM (ppl_Constraint_System_const_iterator_dereference); \
++  DYNSYM (ppl_Constraint_System_const_iterator_equal_test); \
++  DYNSYM (ppl_Constraint_System_const_iterator_increment); \
++  DYNSYM (ppl_Constraint_System_end); \
++  DYNSYM (ppl_Constraint_System_insert_Constraint); \
++  DYNSYM (ppl_Constraint_System_space_dimension); \
++  DYNSYM (ppl_Constraint_type); \
++  DYNSYM (ppl_delete_Coefficient); \
++  DYNSYM (ppl_delete_Constraint); \
++  DYNSYM (ppl_delete_Constraint_System_const_iterator); \
++  DYNSYM (ppl_delete_Linear_Expression); \
++  DYNSYM (ppl_delete_Pointset_Powerset_C_Polyhedron); \
++  DYNSYM (ppl_delete_Pointset_Powerset_C_Polyhedron_iterator); \
++  DYNSYM (ppl_delete_Polyhedron); \
++  DYNSYM (ppl_Linear_Expression_add_to_coefficient); \
++  DYNSYM (ppl_Linear_Expression_add_to_inhomogeneous); \
++  DYNSYM (ppl_Linear_Expression_coefficient); \
++  DYNSYM (ppl_Linear_Expression_inhomogeneous_term); \
++  DYNSYM (ppl_Linear_Expression_space_dimension); \
++  DYNSYM (ppl_new_Coefficient); \
++  DYNSYM (ppl_new_Coefficient_from_mpz_t); \
++  DYNSYM (ppl_new_Constraint); \
++  DYNSYM (ppl_new_Constraint_System); \
++  DYNSYM (ppl_new_Constraint_System_const_iterator); \
++  DYNSYM (ppl_new_C_Polyhedron_from_C_Polyhedron); \
++  DYNSYM (ppl_new_C_Polyhedron_from_space_dimension); \
++  DYNSYM (ppl_new_C_Polyhedron_recycle_Constraint_System); \
++  DYNSYM (ppl_new_Linear_Expression); \
++  DYNSYM (ppl_new_Linear_Expression_from_Constraint); \
++  DYNSYM (ppl_new_Linear_Expression_from_Linear_Expression); \
++  DYNSYM (ppl_new_Linear_Expression_with_dimension); \
++  DYNSYM (ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron); \
++  DYNSYM (ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron); \
++  DYNSYM (ppl_new_Pointset_Powerset_C_Polyhedron_from_space_dimension); \
++  DYNSYM (ppl_new_Pointset_Powerset_C_Polyhedron_iterator); \
++  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_add_constraint); \
++  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_add_space_dimensions_and_embed); \
++  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_difference_assign); \
++  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_intersection_assign); \
++  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_is_empty); \
++  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_iterator_begin); \
++  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_iterator_dereference); \
++  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_iterator_end); \
++  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_iterator_equal_test); \
++  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_iterator_increment); \
++  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_map_space_dimensions); \
++  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_maximize); \
++  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_minimize); \
++  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_remove_space_dimensions); \
++  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_size); \
++  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_space_dimension); \
++  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_upper_bound_assign); \
++  DYNSYM (ppl_Polyhedron_add_constraint); \
++  DYNSYM (ppl_Polyhedron_add_constraints); \
++  DYNSYM (ppl_Polyhedron_add_space_dimensions_and_embed); \
++  DYNSYM (ppl_Polyhedron_get_constraints); \
++  DYNSYM (ppl_Polyhedron_map_space_dimensions); \
++  DYNSYM (ppl_Polyhedron_remove_space_dimensions); \
++  DYNSYM (ppl_Polyhedron_space_dimension); \
++  DYNSYM (ppl_subtract_Linear_Expression_from_Linear_Expression); \
++  DYNSYM (pprint); \
++  DYNSYM (stmt_block); \
++  DYNSYM (stmt_for); \
++  DYNSYM (stmt_guard); \
++  DYNSYM (stmt_root); \
++  DYNSYM (stmt_user); \
++  DYNSYM (stmt_ass); \
++  DYNSYM (ppl_delete_Constraint_System); \
++  DYNSYM (ppl_initialize); \
++  DYNSYM (ppl_new_Constraint_System_from_Constraint); \
++  DYNSYM (ppl_new_C_Polyhedron_from_Constraint_System); \
++  DYNSYM (ppl_Polyhedron_affine_image); \
++  DYNSYM (ppl_io_fprint_Pointset_Powerset_C_Polyhedron); \
++  DYNSYMS_PPL11
++extern struct cloog_pointers_s__
++{
++  bool inited;
++  void *h;
++#define DYNSYM(x) __typeof (x) *p_##x
++  DYNSYMS
++#undef DYNSYM
++} cloog_pointers__;
++
++#define cloog_block_alloc (*cloog_pointers__.p_cloog_block_alloc)
++#define cloog_block_list_free (*cloog_pointers__.p_cloog_block_list_free)
++#define cloog_block_list_malloc (*cloog_pointers__.p_cloog_block_list_malloc)
++#define cloog_clast_create (*cloog_pointers__.p_cloog_clast_create)
++#define cloog_clast_free (*cloog_pointers__.p_cloog_clast_free)
++#define cloog_domain_free (*cloog_pointers__.p_cloog_domain_free)
++#define cloog_domain_matrix2domain (*cloog_pointers__.p_cloog_domain_matrix2domain)
++#define cloog_initialize (*cloog_pointers__.p_cloog_initialize)
++#ifndef CLOOG_ORG
++#undef cloog_loop_malloc
++#define cloog_loop_malloc(STATE) (*cloog_pointers__.p_cloog_loop_malloc) ()
++#else
++#define cloog_loop_malloc (*cloog_pointers__.p_cloog_loop_malloc)
++#endif
++#define cloog_matrix_alloc (*cloog_pointers__.p_cloog_matrix_alloc)
++#define cloog_matrix_copy (*cloog_pointers__.p_cloog_matrix_copy)
++#define cloog_matrix_free (*cloog_pointers__.p_cloog_matrix_free)
++#define cloog_matrix_print (*cloog_pointers__.p_cloog_matrix_print)
++#define cloog_names_malloc (*cloog_pointers__.p_cloog_names_malloc)
++#define cloog_names_scalarize (*cloog_pointers__.p_cloog_names_scalarize)
++#define cloog_options_free (*cloog_pointers__.p_cloog_options_free)
++#ifndef CLOOG_ORG
++#undef cloog_options_malloc
++#define cloog_options_malloc(STATE) (*cloog_pointers__.p_cloog_options_malloc) ()
++#undef cloog_program_dump_cloog
++#define cloog_program_dump_cloog(DUMPFILE, PROGRAM, SCATTERINGLIST) \
++  (*cloog_pointers__.p_cloog_program_dump_cloog) (DUMPFILE, PROGRAM)
++#undef cloog_program_extract_scalars
++#define cloog_program_extract_scalars(PROG, SCATT, OPT) \
++  (*cloog_pointers__.p_cloog_program_extract_scalars) (PROG, SCATT)
++#else
++#define cloog_options_malloc (*cloog_pointers__.p_cloog_options_malloc)
++#define cloog_program_dump_cloog (*cloog_pointers__.p_cloog_program_dump_cloog)
++#define cloog_program_extract_scalars (*cloog_pointers__.p_cloog_program_extract_scalars)
++#endif
++#define cloog_program_free (*cloog_pointers__.p_cloog_program_free)
++#define cloog_program_generate (*cloog_pointers__.p_cloog_program_generate)
++#define cloog_program_malloc (*cloog_pointers__.p_cloog_program_malloc)
++#define cloog_program_print (*cloog_pointers__.p_cloog_program_print)
++#ifndef CLOOG_ORG
++#undef cloog_program_scatter
++#define cloog_program_scatter(PROG, SCATT, OPT) \
++  (*cloog_pointers__.p_cloog_program_scatter) (PROG, SCATT)
++#undef cloog_statement_alloc
++#define cloog_statement_alloc(STATE, INDEX) \
++  (*cloog_pointers__.p_cloog_statement_alloc) (INDEX)
++#else
++#define cloog_program_scatter (*cloog_pointers__.p_cloog_program_scatter)
++#define cloog_statement_alloc (*cloog_pointers__.p_cloog_statement_alloc)
++#endif
++#define cloog_domain_union (*cloog_pointers__.p_cloog_domain_union)
++#define cloog_matrix_read (*cloog_pointers__.p_cloog_matrix_read)
++#define cloog_new_pol (*cloog_pointers__.p_cloog_new_pol)
++#define cloog_vector_gcd (*cloog_pointers__.p_cloog_vector_gcd)
++#define ppl_finalize (*cloog_pointers__.p_ppl_finalize)
++#define ppl_assign_Coefficient_from_mpz_t (*cloog_pointers__.p_ppl_assign_Coefficient_from_mpz_t)
++#define ppl_assign_Linear_Expression_from_Linear_Expression (*cloog_pointers__.p_ppl_assign_Linear_Expression_from_Linear_Expression)
++#define ppl_Coefficient_to_mpz_t (*cloog_pointers__.p_ppl_Coefficient_to_mpz_t)
++#define ppl_Constraint_coefficient (*cloog_pointers__.p_ppl_Constraint_coefficient)
++#define ppl_Constraint_inhomogeneous_term (*cloog_pointers__.p_ppl_Constraint_inhomogeneous_term)
++#define ppl_Constraint_space_dimension (*cloog_pointers__.p_ppl_Constraint_space_dimension)
++#define ppl_Constraint_System_begin (*cloog_pointers__.p_ppl_Constraint_System_begin)
++#define ppl_Constraint_System_const_iterator_dereference (*cloog_pointers__.p_ppl_Constraint_System_const_iterator_dereference)
++#define ppl_Constraint_System_const_iterator_equal_test (*cloog_pointers__.p_ppl_Constraint_System_const_iterator_equal_test)
++#define ppl_Constraint_System_const_iterator_increment (*cloog_pointers__.p_ppl_Constraint_System_const_iterator_increment)
++#define ppl_Constraint_System_end (*cloog_pointers__.p_ppl_Constraint_System_end)
++#define ppl_Constraint_System_insert_Constraint (*cloog_pointers__.p_ppl_Constraint_System_insert_Constraint)
++#define ppl_Constraint_System_space_dimension (*cloog_pointers__.p_ppl_Constraint_System_space_dimension)
++#define ppl_Constraint_type (*cloog_pointers__.p_ppl_Constraint_type)
++#define ppl_delete_Coefficient (*cloog_pointers__.p_ppl_delete_Coefficient)
++#define ppl_delete_Constraint (*cloog_pointers__.p_ppl_delete_Constraint)
++#define ppl_delete_Constraint_System_const_iterator (*cloog_pointers__.p_ppl_delete_Constraint_System_const_iterator)
++#define ppl_delete_Linear_Expression (*cloog_pointers__.p_ppl_delete_Linear_Expression)
++#define ppl_delete_Pointset_Powerset_C_Polyhedron (*cloog_pointers__.p_ppl_delete_Pointset_Powerset_C_Polyhedron)
++#define ppl_delete_Pointset_Powerset_C_Polyhedron_iterator (*cloog_pointers__.p_ppl_delete_Pointset_Powerset_C_Polyhedron_iterator)
++#define ppl_delete_Polyhedron (*cloog_pointers__.p_ppl_delete_Polyhedron)
++#define ppl_Linear_Expression_add_to_coefficient (*cloog_pointers__.p_ppl_Linear_Expression_add_to_coefficient)
++#define ppl_Linear_Expression_add_to_inhomogeneous (*cloog_pointers__.p_ppl_Linear_Expression_add_to_inhomogeneous)
++#define ppl_Linear_Expression_coefficient (*cloog_pointers__.p_ppl_Linear_Expression_coefficient)
++#define ppl_Linear_Expression_inhomogeneous_term (*cloog_pointers__.p_ppl_Linear_Expression_inhomogeneous_term)
++#define ppl_Linear_Expression_space_dimension (*cloog_pointers__.p_ppl_Linear_Expression_space_dimension)
++#define ppl_new_Coefficient (*cloog_pointers__.p_ppl_new_Coefficient)
++#define ppl_new_Coefficient_from_mpz_t (*cloog_pointers__.p_ppl_new_Coefficient_from_mpz_t)
++#define ppl_new_Constraint (*cloog_pointers__.p_ppl_new_Constraint)
++#define ppl_new_Constraint_System (*cloog_pointers__.p_ppl_new_Constraint_System)
++#define ppl_new_Constraint_System_const_iterator (*cloog_pointers__.p_ppl_new_Constraint_System_const_iterator)
++#define ppl_new_C_Polyhedron_from_C_Polyhedron (*cloog_pointers__.p_ppl_new_C_Polyhedron_from_C_Polyhedron)
++#define ppl_new_C_Polyhedron_from_space_dimension (*cloog_pointers__.p_ppl_new_C_Polyhedron_from_space_dimension)
++#define ppl_new_C_Polyhedron_recycle_Constraint_System (*cloog_pointers__.p_ppl_new_C_Polyhedron_recycle_Constraint_System)
++#define ppl_new_Linear_Expression (*cloog_pointers__.p_ppl_new_Linear_Expression)
++#define ppl_new_Linear_Expression_from_Constraint (*cloog_pointers__.p_ppl_new_Linear_Expression_from_Constraint)
++#define ppl_new_Linear_Expression_from_Linear_Expression (*cloog_pointers__.p_ppl_new_Linear_Expression_from_Linear_Expression)
++#define ppl_new_Linear_Expression_with_dimension (*cloog_pointers__.p_ppl_new_Linear_Expression_with_dimension)
++#define ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron (*cloog_pointers__.p_ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron)
++#define ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron (*cloog_pointers__.p_ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron)
++#define ppl_new_Pointset_Powerset_C_Polyhedron_from_space_dimension (*cloog_pointers__.p_ppl_new_Pointset_Powerset_C_Polyhedron_from_space_dimension)
++#define ppl_new_Pointset_Powerset_C_Polyhedron_iterator (*cloog_pointers__.p_ppl_new_Pointset_Powerset_C_Polyhedron_iterator)
++#define ppl_Pointset_Powerset_C_Polyhedron_add_constraint (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_add_constraint)
++#define ppl_Pointset_Powerset_C_Polyhedron_add_space_dimensions_and_embed (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_add_space_dimensions_and_embed)
++#define ppl_Pointset_Powerset_C_Polyhedron_difference_assign (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_difference_assign)
++#define ppl_Pointset_Powerset_C_Polyhedron_intersection_assign (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_intersection_assign)
++#define ppl_Pointset_Powerset_C_Polyhedron_is_empty (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_is_empty)
++#define ppl_Pointset_Powerset_C_Polyhedron_iterator_begin (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_iterator_begin)
++#define ppl_Pointset_Powerset_C_Polyhedron_iterator_dereference (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_iterator_dereference)
++#define ppl_Pointset_Powerset_C_Polyhedron_iterator_end (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_iterator_end)
++#define ppl_Pointset_Powerset_C_Polyhedron_iterator_equal_test (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_iterator_equal_test)
++#define ppl_Pointset_Powerset_C_Polyhedron_iterator_increment (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_iterator_increment)
++#define ppl_Pointset_Powerset_C_Polyhedron_map_space_dimensions (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_map_space_dimensions)
++#define ppl_Pointset_Powerset_C_Polyhedron_maximize (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_maximize)
++#define ppl_Pointset_Powerset_C_Polyhedron_minimize (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_minimize)
++#define ppl_Pointset_Powerset_C_Polyhedron_remove_space_dimensions (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_remove_space_dimensions)
++#define ppl_Pointset_Powerset_C_Polyhedron_size (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_size)
++#define ppl_Pointset_Powerset_C_Polyhedron_space_dimension (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_space_dimension)
++#define ppl_Pointset_Powerset_C_Polyhedron_upper_bound_assign (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_upper_bound_assign)
++#define ppl_Polyhedron_add_constraint (*cloog_pointers__.p_ppl_Polyhedron_add_constraint)
++#define ppl_Polyhedron_add_constraints (*cloog_pointers__.p_ppl_Polyhedron_add_constraints)
++#define ppl_Polyhedron_add_space_dimensions_and_embed (*cloog_pointers__.p_ppl_Polyhedron_add_space_dimensions_and_embed)
++#define ppl_Polyhedron_get_constraints (*cloog_pointers__.p_ppl_Polyhedron_get_constraints)
++#define ppl_Polyhedron_map_space_dimensions (*cloog_pointers__.p_ppl_Polyhedron_map_space_dimensions)
++#define ppl_Polyhedron_remove_space_dimensions (*cloog_pointers__.p_ppl_Polyhedron_remove_space_dimensions)
++#define ppl_Polyhedron_space_dimension (*cloog_pointers__.p_ppl_Polyhedron_space_dimension)
++#define ppl_subtract_Linear_Expression_from_Linear_Expression (*cloog_pointers__.p_ppl_subtract_Linear_Expression_from_Linear_Expression)
++#define pprint (*cloog_pointers__.p_pprint)
++#define stmt_block (*cloog_pointers__.p_stmt_block)
++#define stmt_for (*cloog_pointers__.p_stmt_for)
++#define stmt_guard (*cloog_pointers__.p_stmt_guard)
++#define stmt_root (*cloog_pointers__.p_stmt_root)
++#define stmt_user (*cloog_pointers__.p_stmt_user)
++#define stmt_ass (*cloog_pointers__.p_stmt_ass)
++#define ppl_delete_Constraint_System (*cloog_pointers__.p_ppl_delete_Constraint_System)
++#define ppl_initialize (*cloog_pointers__.p_ppl_initialize)
++#define ppl_new_Constraint_System_from_Constraint (*cloog_pointers__.p_ppl_new_Constraint_System_from_Constraint)
++#define ppl_new_C_Polyhedron_from_Constraint_System (*cloog_pointers__.p_ppl_new_C_Polyhedron_from_Constraint_System)
++#define ppl_Polyhedron_affine_image (*cloog_pointers__.p_ppl_Polyhedron_affine_image)
++#define ppl_io_fprint_Pointset_Powerset_C_Polyhedron (*cloog_pointers__.p_ppl_io_fprint_Pointset_Powerset_C_Polyhedron)
++#if !(PPL_VERSION_MAJOR == 0 && PPL_VERSION_MINOR < 11)
++#define ppl_new_PIP_Problem_from_constraints (*cloog_pointers__.p_ppl_new_PIP_Problem_from_constraints)
++#define ppl_PIP_Problem_is_satisfiable (*cloog_pointers__.p_ppl_PIP_Problem_is_satisfiable)
++#define ppl_delete_PIP_Problem (*cloog_pointers__.p_ppl_delete_PIP_Problem)
++#endif
++
++#define cloog_finalize (*cloog_pointers__.p_ppl_finalize)
++
++
+ #endif /* GRAPHITE_CLOOG_COMPAT_H  */
+--- gcc/graphite.c.jj	2011-01-03 12:53:05.194056513 +0100
++++ gcc/graphite.c	2011-01-04 16:18:32.385007767 +0100
+@@ -56,6 +56,35 @@ along with GCC; see the file COPYING3.  
+ 
+ CloogState *cloog_state;
+ 
++__typeof (cloog_pointers__) cloog_pointers__;
++
++static bool
++init_cloog_pointers (void)
++{
++  void *h;
++
++  if (cloog_pointers__.inited)
++    return cloog_pointers__.h != NULL;
++  h = dlopen ("libcloog.so.0", RTLD_LAZY);
++  cloog_pointers__.h = h;
++  if (h == NULL)
++    return false;
++#define DYNSYM(x) \
++  do \
++    { \
++      union { __typeof (cloog_pointers__.p_##x) p; void *q; } u; \
++      u.q = dlsym (h, #x); \
++      if (u.q == NULL) \
++	return false; \
++      cloog_pointers__.p_##x = u.p; \
++    } \
++  while (0)
++  DYNSYMS
++#undef DYNSYM
++  return true;
++}
++
++
+ /* Print global statistics to FILE.  */
+ 
+ static void
+@@ -201,6 +230,12 @@ graphite_initialize (void)
+       return false;
+     }
+ 
++  if (!init_cloog_pointers ())
++    {
++      sorry ("Graphite loop optimizations cannot be used");
++      return false;
++    }
++
+   scev_reset ();
+   recompute_all_dominators ();
+   initialize_original_copy_tables ();
+--- gcc/graphite-clast-to-gimple.c.jj	2011-01-03 12:53:05.000000000 +0100
++++ gcc/graphite-clast-to-gimple.c	2011-01-04 16:29:55.738007463 +0100
+@@ -836,7 +836,7 @@ clast_get_body_of_loop (struct clast_stm
+    from STMT_FOR.  */
+ 
+ static tree
+-type_for_clast_for (struct clast_for *stmt_for, ivs_params_p ip)
++type_for_clast_for (struct clast_for *stmt_fora, ivs_params_p ip)
+ {
+   mpz_t bound_one, bound_two;
+   tree lb_type, ub_type;
+@@ -844,8 +844,8 @@ type_for_clast_for (struct clast_for *st
+   mpz_init (bound_one);
+   mpz_init (bound_two);
+ 
+-  lb_type = type_for_clast_expr (stmt_for->LB, ip, bound_one, bound_two);
+-  ub_type = type_for_clast_expr (stmt_for->UB, ip, bound_one, bound_two);
++  lb_type = type_for_clast_expr (stmt_fora->LB, ip, bound_one, bound_two);
++  ub_type = type_for_clast_expr (stmt_fora->UB, ip, bound_one, bound_two);
+ 
+   mpz_clear (bound_one);
+   mpz_clear (bound_two);
+--- gcc/graphite-poly.h.jj	2011-01-03 12:53:05.000000000 +0100
++++ gcc/graphite-poly.h	2011-01-04 17:35:53.308788629 +0100
+@@ -22,6 +22,8 @@ along with GCC; see the file COPYING3.  
+ #ifndef GCC_GRAPHITE_POLY_H
+ #define GCC_GRAPHITE_POLY_H
+ 
++#include "graphite-cloog-util.h"
++
+ typedef struct poly_dr *poly_dr_p;
+ DEF_VEC_P(poly_dr_p);
+ DEF_VEC_ALLOC_P (poly_dr_p, heap);

diff --git a/gcc47-hack.patch b/gcc47-hack.patch
new file mode 100644
index 0000000..1903e95
--- /dev/null
+++ b/gcc47-hack.patch
@@ -0,0 +1,102 @@
+--- libada/Makefile.in.jj	2009-01-14 12:07:35.000000000 +0100
++++ libada/Makefile.in	2009-01-15 14:25:33.000000000 +0100
+@@ -66,18 +66,40 @@ libsubdir := $(libdir)/gcc/$(target_nonc
+ ADA_RTS_DIR=$(GCC_DIR)/ada/rts$(subst /,_,$(MULTISUBDIR))
+ ADA_RTS_SUBDIR=./rts$(subst /,_,$(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=$(LDFLAGS) $(DEFAULTMULTIFLAGS)" \
+         "LN_S=$(LN_S)" \
+         "SHELL=$(SHELL)" \
+-        "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS)" \
+-        "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS)" \
+-        "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS)" \
++        "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS)" \
++        "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS)" \
++        "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS)" \
+         "PICFLAG_FOR_TARGET=$(PICFLAG)" \
+         "THREAD_KIND=$(THREAD_KIND)" \
+         "TRACE=$(TRACE)" \
+@@ -88,7 +110,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)"
++        "CFLAGS=$(CFLAGS) $(DEFAULTMULTIFLAGS)"
+ 
+ # Rules to build gnatlib.
+ .PHONY: gnatlib gnatlib-plain gnatlib-sjlj gnatlib-zcx gnatlib-shared osconstool
+--- gcc/ada/sem_util.adb	(revision 161677)
++++ gcc/ada/sem_util.adb	(working copy)
+@@ -5487,7 +5487,7 @@ package body Sem_Util is
+             Exp           : Node_Id;
+             Assn          : Node_Id;
+             Choice        : Node_Id;
+-            Comp_Type     : Entity_Id;
++            Comp_Type     : Entity_Id := Empty;
+             Is_Array_Aggr : Boolean;
+ 
+          begin
+--- config-ml.in.jj	2010-06-30 09:50:44.000000000 +0200
++++ config-ml.in	2010-07-02 21:24:17.994211151 +0200
+@@ -516,6 +516,8 @@ multi-do:
+ 				ADAFLAGS="$(ADAFLAGS) $${flags}" \
+ 				prefix="$(prefix)" \
+ 				exec_prefix="$(exec_prefix)" \
++				mandir="$(mandir)" \
++				infodir="$(infodir)" \
+ 				GCJFLAGS="$(GCJFLAGS) $${flags}" \
+ 				GOCFLAGS="$(GOCFLAGS) $${flags}" \
+ 				CXXFLAGS="$(CXXFLAGS) $${flags}" \
+--- libjava/Makefile.am.jj	2010-07-09 11:17:33.729604090 +0200
++++ libjava/Makefile.am	2010-07-09 13:16:41.894375641 +0200
+@@ -710,7 +710,8 @@ if USE_LIBGCJ_BC
+ ## later.
+ 	@echo Installing dummy lib libgcj_bc.so.1.0.0; \
+ 	rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
+-	mv $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
++	$(INSTALL) $(INSTALL_STRIP_FLAG) $(here)/.libs/libgcj_bc.so $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
++	rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0; \
+ 	$(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \
+ 	-o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \
+ 	rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \
+--- libjava/Makefile.in.jj	2010-07-09 11:17:34.000000000 +0200
++++ libjava/Makefile.in	2010-07-09 13:18:07.542572270 +0200
+@@ -12665,7 +12665,8 @@ install-exec-hook: install-binPROGRAMS i
+ 	install-libexecsubPROGRAMS
+ @USE_LIBGCJ_BC_TRUE@	@echo Installing dummy lib libgcj_bc.so.1.0.0; \
+ @USE_LIBGCJ_BC_TRUE@	rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
+-@USE_LIBGCJ_BC_TRUE@	mv $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
++@USE_LIBGCJ_BC_TRUE@	$(INSTALL) $(INSTALL_STRIP_FLAG) $(here)/.libs/libgcj_bc.so $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
++@USE_LIBGCJ_BC_TRUE@	rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0; \
+ @USE_LIBGCJ_BC_TRUE@	$(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \
+ @USE_LIBGCJ_BC_TRUE@	-o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \
+ @USE_LIBGCJ_BC_TRUE@	rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \

diff --git a/gcc47-i386-libgomp.patch b/gcc47-i386-libgomp.patch
new file mode 100644
index 0000000..f6a6b91
--- /dev/null
+++ b/gcc47-i386-libgomp.patch
@@ -0,0 +1,28 @@
+--- 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[456]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
+ 	;;

diff --git a/gcc47-java-nomulti.patch b/gcc47-java-nomulti.patch
new file mode 100644
index 0000000..17334aa
--- /dev/null
+++ b/gcc47-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/gcc47-libgomp-omp_h-multilib.patch b/gcc47-libgomp-omp_h-multilib.patch
new file mode 100644
index 0000000..d0e98d1
--- /dev/null
+++ b/gcc47-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/gcc47-libitm-fno-exceptions.patch b/gcc47-libitm-fno-exceptions.patch
new file mode 100644
index 0000000..ed752da
--- /dev/null
+++ b/gcc47-libitm-fno-exceptions.patch
@@ -0,0 +1,26 @@
+2011-12-22  Jakub Jelinek  <jakub@redhat.com>
+
+	* Makefile.am (beginend.lo): Append -fno-exceptions to
+	CXXFLAGS.
+	* Makefile.in: Regenerated.
+
+--- libitm/Makefile.am.jj	2011-12-20 13:47:57.000000000 +0100
++++ libitm/Makefile.am	2011-12-22 09:14:06.663469165 +0100
+@@ -72,6 +72,7 @@ endif
+ if ARCH_X86_AVX
+ x86_avx.lo : XCFLAGS += -mavx
+ endif
++beginend.lo : CXXFLAGS += -fno-exceptions
+ 
+ if ARCH_FUTEX
+ libitm_la_SOURCES += futex.cc
+--- libitm/Makefile.in.jj	2011-12-20 13:47:57.000000000 +0100
++++ libitm/Makefile.in	2011-12-22 09:14:29.466329944 +0100
+@@ -1278,6 +1278,7 @@ vpath % $(strip $(search_path))
+ @LIBITM_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBITM_BUILD_VERSIONED_SHLIB_TRUE@	 > $@ || (rm -f $@ ; exit 1)
+ @ARCH_X86_TRUE@x86_sse.lo : XCFLAGS += -msse
+ @ARCH_X86_AVX_TRUE@x86_avx.lo : XCFLAGS += -mavx
++beginend.lo : CXXFLAGS += -fno-exceptions
+ 
+ all-local: $(STAMP_GENINSRC)
+ 

diff --git a/gcc47-libjava-prims-ctype.patch b/gcc47-libjava-prims-ctype.patch
new file mode 100644
index 0000000..027e1e7
--- /dev/null
+++ b/gcc47-libjava-prims-ctype.patch
@@ -0,0 +1,22 @@
+2011-10-27  Jakub Jelinek  <jakub@redhat.com>
+
+	* prims.cc (__NO_CTYPE): For glibc define this before including
+	ctype.h.
+
+--- libjava/prims.cc	2009-04-28 06:02:30.000000000 +0200
++++ libjava/prims.cc	2011-10-27 12:57:42.748752380 +0200
+@@ -38,6 +38,14 @@ details.  */
+ #endif
+ 
+ #ifndef DISABLE_GETENV_PROPERTIES
++#ifdef __GLIBC__
++/* glibc 2.15+ provides even for C++ inline optimized ::isspace etc.
++   Unfortunately those inlines are throw (), and call a function pointer
++   (which is throw () too, but with -fnon-call-exceptions this results
++   in a __cxa_call_unexpected call.  This macro disables the optimized
++   version.  */
++#define __NO_CTYPE 1
++#endif
+ #include <ctype.h>
+ #include <java-props.h>
+ #define PROCESS_GCJ_PROPERTIES process_gcj_properties()

diff --git a/gcc47-libstdc++-docs.patch b/gcc47-libstdc++-docs.patch
new file mode 100644
index 0000000..577dd49
--- /dev/null
+++ b/gcc47-libstdc++-docs.patch
@@ -0,0 +1,26 @@
+--- libstdc++-v3/doc/html/index.html.jj	2011-01-03 12:53:21.282829010 +0100
++++ libstdc++-v3/doc/html/index.html	2011-01-04 18:06:28.999851145 +0100
+@@ -5,6 +5,8 @@
+       <a class="link" href="http://www.fsf.org/">FSF
+       </a>
+     </p><p>
++      Release 4.7.0
++    </p><p>
+       Permission is granted to copy, distribute and/or modify this
+       document under the terms of the GNU Free Documentation
+       License, Version 1.2 or any later version published by the
+--- libstdc++-v3/doc/html/api.html.jj	2011-01-03 12:53:21.000000000 +0100
++++ libstdc++-v3/doc/html/api.html	2011-01-04 18:12:01.672757784 +0100
+@@ -19,8 +19,11 @@
+   member functions for the library classes, finding out what is in a
+   particular include file, looking at inheritance diagrams, etc.
+ </p><p>
+-  The API documentation, rendered into HTML, can be viewed online:
++  The API documentation, rendered into HTML, can be viewed here:
+ </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>
++      <a class="ulink" href="api/index.html">for the 4.7 release, local
++      </a>
++    </p></li><li class="listitem"><p>
+       <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-3.4/index.html">for the 3.4 release
+       </a>
+     </p></li><li class="listitem"><p>

diff --git a/gcc47-libtool-no-rpath.patch b/gcc47-libtool-no-rpath.patch
new file mode 100644
index 0000000..466c661
--- /dev/null
+++ b/gcc47-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/gcc47-no-add-needed.patch b/gcc47-no-add-needed.patch
new file mode 100644
index 0000000..7e38b0b
--- /dev/null
+++ b/gcc47-no-add-needed.patch
@@ -0,0 +1,52 @@
+2010-02-08  Roland McGrath  <roland@redhat.com>
+
+	* config/rs6000/sysv4.h (LINK_EH_SPEC): Pass --no-add-needed to the
+	linker.
+	* config/gnu-user.h (LINK_EH_SPEC): Likewise.
+	* config/alpha/elf.h (LINK_EH_SPEC): Likewise.
+	* config/ia64/linux.h (LINK_EH_SPEC): Likewise.
+
+--- gcc/config/alpha/elf.h.jj	2011-01-03 12:52:31.118056764 +0100
++++ gcc/config/alpha/elf.h	2011-01-04 18:14:10.931874160 +0100
+@@ -438,7 +438,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 "--no-add-needed %{!static:--eh-frame-hdr} "
+ #endif
+ 
+ /* A C statement (sans semicolon) to output to the stdio stream STREAM
+--- gcc/config/ia64/linux.h.jj	2011-01-03 13:02:11.462994522 +0100
++++ gcc/config/ia64/linux.h	2011-01-04 18:14:10.931874160 +0100
+@@ -77,7 +77,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 "--no-add-needed "
+ 
+ /* Put all *tf routines in libgcc.  */
+ #undef LIBGCC2_HAS_TF_MODE
+--- gcc/config/gnu-user.h.jj	2011-01-03 12:53:03.739057299 +0100
++++ gcc/config/gnu-user.h	2011-01-04 18:14:10.932814884 +0100
+@@ -82,7 +82,7 @@ see the files COPYING3 and COPYING.RUNTI
+ #define LIB_SPEC GNU_USER_TARGET_LIB_SPEC
+ 
+ #if defined(HAVE_LD_EH_FRAME_HDR)
+-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
++#define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} "
+ #endif
+ 
+ #undef LINK_GCC_C_SEQUENCE_SPEC
+--- gcc/config/rs6000/sysv4.h.jj	2011-01-03 13:02:18.255994215 +0100
++++ gcc/config/rs6000/sysv4.h	2011-01-04 18:14:10.933888871 +0100
+@@ -820,7 +820,7 @@ extern int fixuplabelno;
+   -dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}"
+ 
+ #if defined(HAVE_LD_EH_FRAME_HDR)
+-# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
++# define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} "
+ #endif
+ 
+ #define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \

diff --git a/gcc47-ppc32-retaddr.patch b/gcc47-ppc32-retaddr.patch
new file mode 100644
index 0000000..e9ae1bc
--- /dev/null
+++ b/gcc47-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/gcc47-ppl-0.10.patch b/gcc47-ppl-0.10.patch
new file mode 100644
index 0000000..d43f34f
--- /dev/null
+++ b/gcc47-ppl-0.10.patch
@@ -0,0 +1,121 @@
+2011-01-28  Jakub Jelinek  <jakub@redhat.com>
+
+	Revert:
+	2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
+
+	* configure: Regenerated.
+	* configure.ac: Check for version 0.11 (or later revision) of PPL.
+gcc/
+	* doc/install.texi: Update the expected version number of PPL to 0.11.
+	* graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
+	#if PPL_VERSION_MINOR < 11.
+
+--- gcc/doc/install.texi	(revision 169207)
++++ gcc/doc/install.texi	(revision 169206)
+@@ -332,7 +332,7 @@ and @option{--with-mpc-include}.  Altern
+ distribution is found in a subdirectory of your GCC sources named
+ @file{mpc}, it will be built together with GCC@.
+ 
+-@item Parma Polyhedra Library (PPL) version 0.11
++@item Parma Polyhedra Library (PPL) version 0.10
+ 
+ Necessary to build GCC with the Graphite loop optimizations.
+ It can be downloaded from @uref{http://www.cs.unipr.it/ppl/Download/}.
+--- gcc/graphite-ppl.c	(revision 169207)
++++ gcc/graphite-ppl.c	(revision 169206)
+@@ -521,6 +521,15 @@ debug_gmp_value (mpz_t val)
+ bool
+ ppl_powerset_is_empty (ppl_Pointset_Powerset_C_Polyhedron_t ps)
+ {
++#if PPL_VERSION_MAJOR == 0 && PPL_VERSION_MINOR < 11
++  /* On PPL 0.10,
++     ppl_Pointset_Powerset_C_Polyhedron_contains_integer_point (ps)
++     takes too long on some cases and so we call _is_empty instead.  */
++  return ppl_Pointset_Powerset_C_Polyhedron_is_empty (ps);
++
++#else
++  /* On PPL 0.11 or later, we can check for integer feasibility using
++     the PIP solver.  */
+   ppl_PIP_Problem_t pip;
+   ppl_dimension_type d;
+   ppl_const_Constraint_System_t pcs;
+@@ -561,6 +570,7 @@ ppl_powerset_is_empty (ppl_Pointset_Powe
+   ppl_delete_Pointset_Powerset_C_Polyhedron_iterator (end);
+ 
+   return !has_integer_solutions;
++#endif
+ }
+ 
+ #endif
+--- configure.ac	(revision 169207)
++++ configure.ac	(revision 169206)
+@@ -1688,9 +1688,9 @@ if test "x$with_ppl" != xno; then
+   if test "$enable_ppl_version_check" != no; then
+     saved_CFLAGS="$CFLAGS"
+     CFLAGS="$CFLAGS $pplinc $gmpinc"
+-    AC_MSG_CHECKING([for version 0.11 (revision 0 or later) of PPL])
++    AC_MSG_CHECKING([for version 0.10 (revision 0 or later) of PPL])
+     AC_TRY_COMPILE([#include "ppl_c.h"],[
+-    #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 11
++    #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 10
+     choke me
+     #endif
+     ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); ppllibs= ; pplinc= ; with_ppl=no ])
+--- configure	(revision 169207)
++++ configure	(revision 169206)
+@@ -5775,8 +5775,8 @@ fi
+   if test "$enable_ppl_version_check" != no; then
+     saved_CFLAGS="$CFLAGS"
+     CFLAGS="$CFLAGS $pplinc $gmpinc"
+-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for version 0.11 (revision 0 or later) of PPL" >&5
+-$as_echo_n "checking for version 0.11 (revision 0 or later) of PPL... " >&6; }
++    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for version 0.10 (revision 0 or later) of PPL" >&5
++$as_echo_n "checking for version 0.10 (revision 0 or later) of PPL... " >&6; }
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+ #include "ppl_c.h"
+@@ -5784,7 +5784,7 @@ int
+ main ()
+ {
+ 
+-    #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 11
++    #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 10
+     choke me
+     #endif
+ 
+--- gcc/testsuite/gcc.dg/graphite/interchange-11.c.jj	2011-01-28 09:38:11.000000000 +0100
++++ gcc/testsuite/gcc.dg/graphite/interchange-11.c	2011-01-28 11:06:56.461429848 +0100
+@@ -46,5 +46,5 @@ main (void)
+   return 0;
+ }
+ 
+-/* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" } } */
++/* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" { xfail *-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "graphite" } } */
+--- gcc/testsuite/gcc.dg/graphite/interchange-13.c.jj	2011-01-28 09:38:12.000000000 +0100
++++ gcc/testsuite/gcc.dg/graphite/interchange-13.c	2011-01-28 11:07:08.182429223 +0100
+@@ -50,5 +50,5 @@ main (void)
+ }
+ 
+ 
+-/* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" } } */
++/* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" { xfail *-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "graphite" } } */
+--- gcc/testsuite/gcc.dg/graphite/interchange-1.c.jj	2011-01-28 09:38:13.000000000 +0100
++++ gcc/testsuite/gcc.dg/graphite/interchange-1.c	2011-01-28 11:06:42.160429193 +0100
+@@ -49,5 +49,5 @@ main (void)
+   return 0;
+ }
+ 
+-/* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" } } */
++/* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" { xfail *-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "graphite" } } */
+--- gcc/testsuite/gfortran.dg/graphite/interchange-3.f90.jj	2011-01-28 09:38:05.000000000 +0100
++++ gcc/testsuite/gfortran.dg/graphite/interchange-3.f90	2011-01-28 11:07:46.313420441 +0100
+@@ -24,5 +24,5 @@ Program FOO
+ 
+ end Program FOO
+ 
+-! { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" } }
++! { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" { xfail *-*-* } } }
+ ! { dg-final { cleanup-tree-dump "graphite" } }

diff --git a/gcc47-pr33763.patch b/gcc47-pr33763.patch
new file mode 100644
index 0000000..0cf0723
--- /dev/null
+++ b/gcc47-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
+@@ -3817,6 +3817,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 always_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
+ 	  /* PR 20090218-1_0.c. Body can be provided by another module. */
+--- 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/gcc47-pr38757.patch b/gcc47-pr38757.patch
new file mode 100644
index 0000000..b6b3233
--- /dev/null
+++ b/gcc47-pr38757.patch
@@ -0,0 +1,105 @@
+2009-03-18  Jakub Jelinek  <jakub@redhat.com>
+
+	PR debug/38757
+	* langhooks.h (struct lang_hooks): Add source_language langhook.
+	* langhooks-def.h (LANG_HOOKS_SOURCE_LANGUAGE): Define to NULL.
+	(LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_SOURCE_LANGUAGE.
+	* c-lang.c (c_source_language): New function.
+	(LANG_HOOKS_SOURCE_LANGUAGE): Define.
+	* dwarf2out.c (add_prototyped_attribute): Add DW_AT_prototype
+	also for DW_LANG_{C,C99,ObjC}.
+	(gen_compile_unit_die): Use lang_hooks.source_language () to
+	determine if DW_LANG_C99 or DW_LANG_C89 should be returned.
+
+--- gcc/langhooks.h.jj	2011-01-03 12:53:05.125745450 +0100
++++ gcc/langhooks.h	2011-01-04 17:59:43.166744926 +0100
+@@ -467,6 +467,10 @@ struct lang_hooks
+      gimplification.  */
+   bool deep_unsharing;
+ 
++  /* Return year of the source language standard version if the FE supports
++     multiple versions of the standard.  */
++  int (*source_language) (void);
++
+   /* Whenever you add entries here, make sure you adjust langhooks-def.h
+      and langhooks.c accordingly.  */
+ };
+--- gcc/langhooks-def.h.jj	2011-01-03 12:53:05.000000000 +0100
++++ gcc/langhooks-def.h	2011-01-04 18:00:44.858851030 +0100
+@@ -118,6 +118,7 @@ extern void lhd_omp_firstprivatize_type_
+ #define LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS	NULL
+ #define LANG_HOOKS_EH_USE_CXA_END_CLEANUP	false
+ #define LANG_HOOKS_DEEP_UNSHARING	false
++#define LANG_HOOKS_SOURCE_LANGUAGE	NULL
+ 
+ /* Attribute hooks.  */
+ #define LANG_HOOKS_ATTRIBUTE_TABLE		NULL
+@@ -307,7 +308,8 @@ extern void lhd_end_section (void);
+   LANG_HOOKS_EH_RUNTIME_TYPE, \
+   LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS, \
+   LANG_HOOKS_EH_USE_CXA_END_CLEANUP, \
+-  LANG_HOOKS_DEEP_UNSHARING \
++  LANG_HOOKS_DEEP_UNSHARING, \
++  LANG_HOOKS_SOURCE_LANGUAGE \
+ }
+ 
+ #endif /* GCC_LANG_HOOKS_DEF_H */
+--- gcc/c-lang.c.jj	2011-01-03 12:53:05.376056936 +0100
++++ gcc/c-lang.c	2011-01-04 17:59:43.167743798 +0100
+@@ -36,6 +36,12 @@ along with GCC; see the file COPYING3.
+ 
+ enum c_language_kind c_language = clk_c;
+ 
++static int
++c_source_language (void)
++{
++  return flag_isoc99 ? 1999 : 1989;
++}
++
+ /* Lang hooks common to C and ObjC are declared in c-objc-common.h;
+    consequently, there should be very few hooks below.  */
+ 
+@@ -45,6 +51,8 @@ enum c_language_kind c_language = clk_c;
+ #define LANG_HOOKS_INIT c_objc_common_init
+ #undef LANG_HOOKS_INIT_TS
+ #define LANG_HOOKS_INIT_TS c_common_init_ts
++#undef LANG_HOOKS_SOURCE_LANGUAGE
++#define LANG_HOOKS_SOURCE_LANGUAGE c_source_language
+ 
+ /* Each front end provides its own lang hook initializer.  */
+ struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;
+--- gcc/dwarf2out.c.jj	2011-01-03 12:53:05.102056475 +0100
++++ gcc/dwarf2out.c	2011-01-04 18:03:14.534151763 +0100
+@@ -17650,9 +17650,18 @@ add_bit_size_attribute (dw_die_ref die, 
+ static inline void
+ add_prototyped_attribute (dw_die_ref die, tree func_type)
+ {
+-  if (get_AT_unsigned (comp_unit_die (), DW_AT_language) == DW_LANG_C89
+-      && prototype_p (func_type))
+-    add_AT_flag (die, DW_AT_prototyped, 1);
++  switch (get_AT_unsigned (comp_unit_die (), DW_AT_language))
++    {
++    case DW_LANG_C:
++    case DW_LANG_C89:
++    case DW_LANG_C99:
++    case DW_LANG_ObjC:
++      if (prototype_p (func_type))
++	add_AT_flag (die, DW_AT_prototyped, 1);
++      break;
++    default:
++      break;
++    }
+ }
+ 
+ /* Add an 'abstract_origin' attribute below a given DIE.  The DIE is found
+@@ -19875,6 +19884,10 @@ gen_compile_unit_die (const char *filena
+ 	language = DW_LANG_ObjC;
+       else if (strcmp (language_string, "GNU Objective-C++") == 0)
+ 	language = DW_LANG_ObjC_plus_plus;
++      else if (strcmp (language_string, "GNU C") == 0
++	       && lang_hooks.source_language
++	       && lang_hooks.source_language () >= 1999)
++	language = DW_LANG_C99;
+     }
+ 
+   add_AT_unsigned (die, DW_AT_language, language);

diff --git a/gcc47-pr47858.patch b/gcc47-pr47858.patch
new file mode 100644
index 0000000..8d05ac6
--- /dev/null
+++ b/gcc47-pr47858.patch
@@ -0,0 +1,23 @@
+2011-03-01  Jakub Jelinek  <jakub@redhat.com>
+
+	PR debug/47858
+	* opts.c (default_options_table): Enable -fipa-sra by default
+	only for -O3, not for -O2 and -Os.
+
+--- gcc/opts.c.jj	2011-02-20 08:36:59.888390890 +0100
++++ gcc/opts.c	2011-03-01 12:04:38.680558351 +0100
+@@ -487,13 +487,13 @@ static const struct default_options defa
+     { OPT_LEVELS_2_PLUS, OPT_ftree_switch_conversion, NULL, 1 },
+     { OPT_LEVELS_2_PLUS, OPT_fipa_cp, NULL, 1 },
+     { OPT_LEVELS_2_PLUS, OPT_fdevirtualize, NULL, 1 },
+-    { OPT_LEVELS_2_PLUS, OPT_fipa_sra, NULL, 1 },
+     { OPT_LEVELS_2_PLUS, OPT_falign_loops, NULL, 1 },
+     { OPT_LEVELS_2_PLUS, OPT_falign_jumps, NULL, 1 },
+     { OPT_LEVELS_2_PLUS, OPT_falign_labels, NULL, 1 },
+     { OPT_LEVELS_2_PLUS, OPT_falign_functions, NULL, 1 },
+ 
+     /* -O3 optimizations.  */
++    { OPT_LEVELS_3_PLUS, OPT_fipa_sra, NULL, 1 },
+     { OPT_LEVELS_3_PLUS, OPT_ftree_loop_distribute_patterns, NULL, 1 },
+     { OPT_LEVELS_3_PLUS, OPT_fpredictive_commoning, NULL, 1 },
+     /* Inlining of functions reducing size is a good idea with -Os

diff --git a/gcc47-rh330771.patch b/gcc47-rh330771.patch
new file mode 100644
index 0000000..102730f
--- /dev/null
+++ b/gcc47-rh330771.patch
@@ -0,0 +1,27 @@
+2007-10-16  Jakub Jelinek  <jakub@redhat.com>
+
+	* Makefile.am (libgcj_tools_la_LIBADD): Add.
+	* Makefile.in: Regenerated.
+
+--- libjava/Makefile.am.jj	2009-05-06 08:14:50.000000000 +0200
++++ libjava/Makefile.am	2009-05-06 10:26:43.000000000 +0200
+@@ -550,7 +550,7 @@ libgcj_tools_la_LDFLAGS = -rpath $(toole
+  $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBJAVA_LDFLAGS_NOUNDEF) \
+  $(LIBJAVA_LDFLAGS_LIBMATH)
+ 
+-libgcj_tools_la_LIBADD = libgcj.la
++libgcj_tools_la_LIBADD = -L$(here)/.libs libgcj.la
+ libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec \
+  $(libgcj_tools_la_version_dep)
+ if BUILD_SUBLIBS
+--- libjava/Makefile.in.jj	2009-05-06 08:14:49.000000000 +0200
++++ libjava/Makefile.in	2009-05-06 10:27:18.000000000 +0200
+@@ -1110,7 +1110,7 @@ libgcj_tools_la_LDFLAGS = -rpath $(toole
+  $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBJAVA_LDFLAGS_NOUNDEF) \
+  $(LIBJAVA_LDFLAGS_LIBMATH)
+ 
+-libgcj_tools_la_LIBADD = libgcj.la
++libgcj_tools_la_LIBADD = -L$(here)/.libs libgcj.la
+ libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec \
+ 	$(libgcj_tools_la_version_dep) $(am__append_19)
+ libgcj_tools_la_LINK = $(LIBLINK) $(libgcj_tools_la_LDFLAGS) \

diff --git a/gcc47-sparc-config-detection.patch b/gcc47-sparc-config-detection.patch
new file mode 100644
index 0000000..ce2acc7
--- /dev/null
+++ b/gcc47-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
+@@ -2356,7 +2356,7 @@ sparc-*-rtems*)
+ 	tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
+ 	tmake_file="sparc/t-sparc sparc/t-elf t-rtems"
+ 	;;
+-sparc-*-linux*)
++sparc-*-linux* | sparcv9-*-linux*)
+ 	tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
+ 	extra_options="${extra_options} sparc/long-double-switch.opt"
+ 	case ${target} in
+@@ -2409,7 +2409,7 @@ sparc64-*-rtems*)
+ 	extra_options="${extra_options}"
+ 	tmake_file="${tmake_file} sparc/t-sparc t-rtems"
+ 	;;
+-sparc64-*-linux*)
++sparc64*-*-linux*)
+ 	tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/default-64.h sparc/linux64.h sparc/tso.h"
+ 	extra_options="${extra_options} sparc/long-double-switch.opt"
+ 	tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
+--- libgcc/config.host.jj	2008-04-24 15:46:19.000000000 -0500
++++ libgcc/config.host	2008-04-24 15:46:49.000000000 -0500
+@@ -1002,7 +1002,7 @@ sparc-*-elf*)
+ 	tmake_file="${tmake_file} t-fdpbit t-crtfm"
+ 	extra_parts="$extra_parts crti.o crtn.o crtfastmath.o"
+ 	;;
+-sparc-*-linux*)		# SPARC's running GNU/Linux, libc6
++sparc-*-linux* | sparcv9-*-linux*)		# SPARC's running GNU/Linux, libc6
+ 	tmake_file="${tmake_file} t-crtfm"
+ 	if test "${host_address}" = 64; then
+ 		tmake_file="$tmake_file sparc/t-linux64"
+@@ -1050,7 +1050,7 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd*
+ 	tmake_file="$tmake_file t-crtfm"
+ 	extra_parts="$extra_parts crtfastmath.o"
+ 	;;
+-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} t-crtfm sparc/t-linux"
+ 	if test "${host_address}" = 64; then

diff --git a/sources b/sources
index cd22db4..7275915 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
 2659f09c2e43ef8b7d4406321753f1b2  fastjar-0.97.tar.gz
-cd8f143e98921c6dd7551937185e7fa1  gcc-4.6.2-20111027.tar.bz2
+31f7127d4679f41e263d4009900439b2  gcc-4.7.0-20120103.tar.bz2

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-06-29 12:25 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-29 12:25 [rpms/gcc] rhel-f41-base: 4.7.0-0.2 Jakub Jelinek
  -- strict thread matches above, loose matches on Subject: below --
2026-06-29 12:25 Jakub Jelinek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox