[gcc] 4.6.0-0.2

Jakub Jelinek jakub at fedoraproject.org
Sat Jan 22 10:26:52 UTC 2011


commit 759d90703df5a33f20b45147feabf073143fa845
Author: Jakub Jelinek <jakub at redhat.com>
Date:   Sat Jan 22 11:26:14 2011 +0100

    4.6.0-0.2

 .gitignore                                         |    2 +
 gcc.spec                                           |  284 +++++++-----------
 gcc45-libstdc++-docs.patch                         |   47 ---
 gcc45-rh330771.patch                               |   27 --
 ...-redecl.patch => gcc46-c++-builtin-redecl.patch |    0
 gcc45-cloog-dl.patch => gcc46-cloog-dl.patch       |  312 +++++++++++++-------
 gcc45-hack.patch => gcc46-hack.patch               |   15 +-
 ...-i386-libgomp.patch => gcc46-i386-libgomp.patch |    0
 ...-java-nomulti.patch => gcc46-java-nomulti.patch |    0
 ...lib.patch => gcc46-libgomp-omp_h-multilib.patch |    0
 gcc46-libstdc++-docs.patch                         |   36 +++
 ...-no-rpath.patch => gcc46-libtool-no-rpath.patch |    0
 ...o-add-needed.patch => gcc46-no-add-needed.patch |   28 +-
 ...pc32-retaddr.patch => gcc46-ppc32-retaddr.patch |    0
 gcc45-pr33763.patch => gcc46-pr33763.patch         |    0
 gcc45-pr38757.patch => gcc46-pr38757.patch         |   67 ++---
 gcc46-pr46890.patch                                |  110 +++++++
 gcc46-pr47106-revert.patch                         |   31 ++
 gcc46-rh330771.patch                               |   27 ++
 ...ion.patch => gcc46-sparc-config-detection.patch |   28 +-
 gcc46-unwind-debughook-sdt.patch                   |   88 ++++++
 sources                                            |    2 +-
 22 files changed, 667 insertions(+), 437 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index ce24fb8..cd9e64e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,4 @@
 fastjar-0.97.tar.gz
 gcc-4.5.1-20101130.tar.bz2
+/fastjar-0.97.tar.gz
+/gcc-4.6.0-20110122.tar.bz2
diff --git a/gcc.spec b/gcc.spec
index 19ceb37..a15de73 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,9 +1,9 @@
-%global DATE 20101130
-%global SVNREV 167299
-%global gcc_version 4.5.1
+%global DATE 20110122
+%global SVNREV 169125
+%global gcc_version 4.6.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 6
+%global gcc_release 0.2
 %global _unpackaged_files_terminate_build 0
 %global multilib_64_archs sparc64 ppc64 s390x x86_64
 %ifarch %{ix86} x86_64 ia64 ppc ppc64 alpha
@@ -12,6 +12,7 @@
 %global build_ada 0
 %endif
 %global build_java 1
+%global build_go 1
 %global build_cloog 1
 %global build_libstdcxx_docs 1
 # If you don't have already a usable gcc-java and libgcj for your arch,
@@ -42,7 +43,7 @@ License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions
 Group: Development/Languages
 # The source for this package was pulled from upstream's vcs.  Use the
 # following commands to generate the tarball:
-# svn export svn://gcc.gnu.org/svn/gcc/branches/redhat/gcc-4_4-branch@%{SVNREV} gcc-%{version}-%{DATE}
+# svn export svn://gcc.gnu.org/svn/gcc/branches/redhat/gcc-4_6-branch@%{SVNREV} gcc-%{version}-%{DATE}
 # tar cf - gcc-%{version}-%{DATE} | bzip2 -9 > gcc-%{version}-%{DATE}.tar.bz2
 Source0: gcc-%{version}-%{DATE}.tar.bz2
 Source1: libgcc_post_upgrade.c
@@ -65,6 +66,7 @@ BuildRequires: binutils >= 2.20.51.0.2-12
 # -static is used several times.
 BuildRequires: glibc-static
 BuildRequires: zlib-devel, gettext, dejagnu, bison, flex, texinfo, sharutils
+BuildRequires: systemtap-sdt-devel >= 1.3
 # For VTA guality testing
 BuildRequires: gdb
 %if %{build_java}
@@ -138,20 +140,23 @@ Requires(post): /sbin/install-info
 Requires(preun): /sbin/install-info
 AutoReq: true
 
-Patch0: gcc45-hack.patch
-Patch2: gcc45-c++-builtin-redecl.patch
-Patch4: gcc45-java-nomulti.patch
-Patch5: gcc45-ppc32-retaddr.patch
-Patch6: gcc45-pr33763.patch
-Patch7: gcc45-rh330771.patch
-Patch8: gcc45-i386-libgomp.patch
-Patch9: gcc45-sparc-config-detection.patch
-Patch10: gcc45-libgomp-omp_h-multilib.patch
-Patch11: gcc45-libtool-no-rpath.patch
-Patch12: gcc45-cloog-dl.patch
-Patch14: gcc45-pr38757.patch
-Patch15: gcc45-libstdc++-docs.patch
-Patch17: gcc45-no-add-needed.patch
+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-unwind-debughook-sdt.patch
+Patch19: gcc46-pr47106-revert.patch
+Patch20: gcc46-pr46890.patch
 
 Patch1000: fastjar-0.97-segfault.patch
 Patch1001: fastjar-0.97-len1.patch
@@ -175,11 +180,11 @@ Patch1004: fastjar-man.patch
 %endif
 
 %description
-The gcc package contains the GNU Compiler Collection version 4.5.
+The gcc package contains the GNU Compiler Collection version 4.6.
 You'll need this package in order to compile C code.
 
 %package -n libgcc
-Summary: GCC version 4.5 shared support library
+Summary: GCC version 4.6 shared support library
 Group: System Environment/Libraries
 Autoreq: false
 
@@ -481,6 +486,9 @@ GNAT is a GNU Ada 95 front-end to GCC. This package includes static libraries.
 %patch15 -p0 -b .libstdc++-docs~
 %endif
 %patch17 -p0 -b .no-add-needed~
+%patch18 -p0 -b .unwind-debughook-sdt~
+%patch19 -p0 -b .pr47106-revert~
+%patch20 -p0 -b .pr46890~
 
 # This testcase doesn't compile.
 rm libjava/testsuite/libjava.lang/PR35020*
@@ -497,11 +505,8 @@ tar xzf %{SOURCE4}
 tar xjf %{SOURCE10}
 %endif
 
-sed -i -e 's/4\.5\.2/4.5.1/' gcc/BASE-VER
+sed -i -e 's/4\.6\.0/4.6.0/' gcc/BASE-VER
 echo 'Red Hat %{version}-%{gcc_release}' > gcc/DEV-PHASE
-%if 0%{?fedora} <= 14
-sed -i -e 's/#define EMIT_IMPLICIT_PTR 1/#define EMIT_IMPLICIT_PTR 0/' gcc/cfgexpand.c
-%endif
 
 # Default to -gdwarf-3 rather than -gdwarf-2
 sed -i '/UInteger Var(dwarf_version)/s/Init(2)/Init(3)/' gcc/common.opt
@@ -538,6 +543,9 @@ if [ -d libstdc++-v3/config/abi/post/sparc64-linux-gnu ]; then
 fi
 %endif
 
+# This test causes fork failures, because it spawns way too many threads
+rm -f gcc/testsuite/go.test/test/chan/goroutines.go
+
 %build
 
 %if %{build_java}
@@ -627,9 +635,9 @@ CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`"
 	--with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions \
 	--enable-gnu-unique-object --enable-linker-build-id \
 %if !%{build_ada}
-	--enable-languages=c,c++,objc,obj-c++,java,fortran,lto \
+	--enable-languages=c,c++,objc,obj-c++,java,fortran,go,lto \
 %else
-	--enable-languages=c,c++,objc,obj-c++,java,fortran,ada,lto \
+	--enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto \
 %endif
 	--enable-plugin \
 %if !%{build_java}
@@ -724,9 +732,6 @@ done)
 (cd libgfortran; for i in ChangeLog*; do
 	cp -p $i ../rpm.doc/gfortran/$i.libgfortran
 done)
-(cd gcc/objc; for i in README*; do
-	cp -p $i ../../rpm.doc/objc/$i.objc
-done)
 (cd libobjc; for i in README*; do
 	cp -p $i ../rpm.doc/objc/$i.libobjc
 done)
@@ -950,28 +955,28 @@ popd
 
 pushd $FULLPATH
 if [ "%{_lib}" = "lib" ]; then
-ln -sf ../../../libobjc.so.2 libobjc.so
+ln -sf ../../../libobjc.so.3 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
 ln -sf ../../../libmudflap.so.0.* libmudflap.so
 ln -sf ../../../libmudflapth.so.0.* libmudflapth.so
 %if %{build_java}
-ln -sf ../../../libgcj.so.11.* libgcj.so
-ln -sf ../../../libgcj-tools.so.11.* libgcj-tools.so
-ln -sf ../../../libgij.so.11.* libgij.so
+ln -sf ../../../libgcj.so.12.* libgcj.so
+ln -sf ../../../libgcj-tools.so.12.* libgcj-tools.so
+ln -sf ../../../libgij.so.12.* libgij.so
 %endif
 else
-ln -sf ../../../../%{_lib}/libobjc.so.2 libobjc.so
+ln -sf ../../../../%{_lib}/libobjc.so.3 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
 ln -sf ../../../../%{_lib}/libmudflap.so.0.* libmudflap.so
 ln -sf ../../../../%{_lib}/libmudflapth.so.0.* libmudflapth.so
 %if %{build_java}
-ln -sf ../../../../%{_lib}/libgcj.so.11.* libgcj.so
-ln -sf ../../../../%{_lib}/libgcj-tools.so.11.* libgcj-tools.so
-ln -sf ../../../../%{_lib}/libgij.so.11.* libgij.so
+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
 %endif
 fi
 %if %{build_java}
@@ -996,35 +1001,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.5.so
+ln -sf ../../../../../libgnarl-*.so libgnarl-4.6.so
 ln -sf ../../../../../libgnat-*.so libgnat.so
-ln -sf ../../../../../libgnat-*.so libgnat-4.5.so
+ln -sf ../../../../../libgnat-*.so libgnat-4.6.so
 else
 ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl.so
-ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl-4.5.so
+ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl-4.6.so
 ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat.so
-ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat-4.5.so
+ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat-4.6.so
 fi
 popd
 else
 pushd $FULLPATH/adalib
 if [ "%{_lib}" = "lib" ]; then
 ln -sf ../../../../libgnarl-*.so libgnarl.so
-ln -sf ../../../../libgnarl-*.so libgnarl-4.5.so
+ln -sf ../../../../libgnarl-*.so libgnarl-4.6.so
 ln -sf ../../../../libgnat-*.so libgnat.so
-ln -sf ../../../../libgnat-*.so libgnat-4.5.so
+ln -sf ../../../../libgnat-*.so libgnat-4.6.so
 else
 ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl.so
-ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl-4.5.so
+ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl-4.6.so
 ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat.so
-ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat-4.5.so
+ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat-4.6.so
 fi
 popd
 fi
 %endif
 
 %ifarch sparcv9 ppc
-ln -sf ../../../../../lib64/libobjc.so.2 64/libobjc.so
+ln -sf ../../../../../lib64/libobjc.so.3 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
@@ -1034,9 +1039,9 @@ echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libmudflapth.so.0.* | sed 's
 echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libmudflap.so.0.* | sed 's,^.*libm,libm,'`' )' > 64/libmudflap.so
 echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libmudflapth.so.0.* | sed 's,^.*libm,libm,'`' )' > 64/libmudflapth.so
 %if %{build_java}
-ln -sf ../`echo ../../../../lib/libgcj.so.11.* | sed s~/lib/~/lib64/~` 64/libgcj.so
-ln -sf ../`echo ../../../../lib/libgcj-tools.so.11.* | sed s~/lib/~/lib64/~` 64/libgcj-tools.so
-ln -sf ../`echo ../../../../lib/libgij.so.11.* | sed s~/lib/~/lib64/~` 64/libgij.so
+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 lib32/libgcj_bc.so libgcj_bc.so
 ln -sf ../lib64/libgcj_bc.so 64/libgcj_bc.so
 %endif
@@ -1060,7 +1065,7 @@ ln -sf ../lib64/adalib 64/adalib
 %endif
 %ifarch %{multilib_64_archs}
 mkdir -p 32
-ln -sf ../../../../libobjc.so.2 32/libobjc.so
+ln -sf ../../../../libobjc.so.3 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
@@ -1070,9 +1075,9 @@ echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libmudflapth.so.0.* | se
 echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libmudflap.so.0.* | sed 's,^.*libm,libm,'`' )' > 32/libmudflap.so
 echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libmudflapth.so.0.* | sed 's,^.*libm,libm,'`' )' > 32/libmudflapth.so
 %if %{build_java}
-ln -sf ../`echo ../../../../lib64/libgcj.so.11.* | sed s~/../lib64/~/~` 32/libgcj.so
-ln -sf ../`echo ../../../../lib64/libgcj-tools.so.11.* | sed s~/../lib64/~/~` 32/libgcj-tools.so
-ln -sf ../`echo ../../../../lib64/libgij.so.11.* | sed s~/../lib64/~/~` 32/libgij.so
+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
 %endif
 mv -f %{buildroot}%{_prefix}/lib/libgfortran.*a 32/
 mv -f %{buildroot}%{_prefix}/lib/libobjc.*a 32/
@@ -1121,7 +1126,7 @@ popd
 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgfortran.so.3.*
 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgomp.so.1.*
 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libmudflap{,th}.so.0.*
-chmod 755 %{buildroot}%{_prefix}/%{_lib}/libobjc.so.2.*
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libobjc.so.3.*
 
 %if %{build_ada}
 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgnarl*so*
@@ -1636,7 +1641,7 @@ fi
 
 %files -n libobjc
 %defattr(-,root,root,-)
-%{_prefix}/%{_lib}/libobjc.so.2*
+%{_prefix}/%{_lib}/libobjc.so.3*
 
 %files gfortran
 %defattr(-,root,root,-)
@@ -1955,119 +1960,54 @@ fi
 %endif
 
 %changelog
-* Tue Nov 30 2010 Jakub Jelinek <jakub at redhat.com> 4.5.1-6
-- update from gcc-4_5-branch
-  - PRs ada/40777, c/46547, debug/46258, fortran/45742, fortran/46638,
-	fortran/46668, middle-end/43057, middle-end/46651,
-	rtl-optimization/46315, rtl-optimization/46571, target/31100,
-	target/44266, target/45807, tree-optimization/44545,
-	tree-optimization/46491, tree-optimization/46498,
-	tree-optimization/46675
-%if 0%{fedora} >= 15
-- rebuilt against new mpfr and libmpc
-%endif
-
-* Fri Nov 12 2010 Jakub Jelinek <jakub at redhat.com> 4.5.1-5
-- update from gcc-4_5-branch
-  - PRs bootstrap/44455, bootstrap/44621, c++/45894, c++/45983, c++/46024,
-	c++/46160, c/44772, c/45969, debug/42487, debug/44832, debug/45656,
-	debug/45939, fortran/42169, fortran/45748, fortran/46007,
-	fortran/46140, fortran/46152, java/43839, libffi/45677,
-	libfortran/45710, libgfortran/46010, libgfortran/46373,
-	libstdc++/45403, libstdc++/45711, libstdc++/45924, libstdc++/45999,
-	middle-end/43690, middle-end/44569, middle-end/45569,
-	middle-end/45869, middle-end/46019, middle-end/46419,
-	rtl-opt/46226, rtl-optimization/43358, rtl-optimization/44691,
-	rtl-optimization/46237, target/42070, target/43715, target/43764,
-	target/44452, target/45820, target/45843, target/45946, target/46098,
-	target/46153, target/46419, tree-optimization/45314,
-	tree-optimization/45752, tree-optimization/45854,
-	tree-optimization/45902, tree-optimization/45982,
-	tree-optimization/46099, tree-optimization/46107,
-	tree-optimization/46165, tree-optimization/46167,
-	tree-optimization/46177, tree-optimization/46355
-- -Wunused-but-set* fix for computed goto (PR c/46015)
-- fix -Wunused-but-set* for ObjC and ObjC++
-- VTA backports
-  - PRs bootstrap/43994, bootstrap/45630, debug/43478, debug/44023,
-	debug/46171, debug/46252, debug/46255, rtl-optimization/45162,
-	tree-optimization/46066
-%if 0%{?fedora} > 14
-- DW_OP_GNU_implicit_pointer support
-%endif
-
-* Fri Sep 24 2010 Jakub Jelinek <jakub at redhat.com> 4.5.1-4
-- update from gcc-4_5-branch
-  - PRs bootstrap/43847, debug/43628, fortran/45081, fortran/45595,
-	java/44095, libfortran/45532, libstdc++/45398, middle-end/40386,
-	middle-end/44554, middle-end/44763, middle-end/45312,
-	middle-end/45567, middle-end/45678, middle-end/45704, other/45443,
-	rtl-optimization/41085, rtl-optimization/41087,
-	rtl-optimization/42775, rtl-optimization/44919,
-	rtl-optimization/45051, rtl-optimization/45593,
-	rtl-optimization/45728, target/35664, target/36502, target/40959,
-	target/42313, target/44651, target/45694, target/45726,
-	tree-optimization/45623, tree-optimization/45709
-  - fix ICE in dwarf2out_finish (#632847, PR debug/45660)
-  - fix combiner (#634757, PR rtl-optimization/45695)
-- yet another -Wunused-but-set* fix for C++ consts in
-  templates (PR c++/45588)
-- emit slightly more compact .eh_frame
-
-* Tue Sep  7 2010 Jakub Jelinek <jakub at redhat.com> 4.5.1-3
-- update from gcc-4_5-branch
-  - PRs c++/44991, c++/45315, debug/45500, fortran/45019, fortran/45186,
-	fortran/45344, fortran/45489, fortran/45530, libstdc++/45283,
-	lto/45496, middle-end/44632, middle-end/45292, middle-end/45423,
-	middle-end/45458, middle-end/45484, rtl-optimization/44858,
-	rtl-optimization/45353, rtl-optimization/45400, target/41484,
-	target/45070, target/45296, target/45327, tree-optimization/45241,
-	tree-optimization/45260, tree-optimization/45393
-  - fix TYPENAME_TYPE handling (#620095, PRs c++/45200, c++/45293, c++/45558)
-
-* Tue Aug 31 2010 Dennis Gilmore <dennis at ausil.us> 4.5.1-2
-- enable cloog on sparc arches
-
-* Thu Aug 12 2010 Jakub Jelinek <jakub at redhat.com> 4.5.1-1
-- update from gcc-4_5-branch
-  - GCC 4.5.1 release
-  - PRs boehm-gc/34544, c++/45112, fortran/31588, fortran/42051,
-	fortran/43954, fortran/44064, fortran/44660, fortran/44929,
-	fortran/45151, libstdc++/44963, middle-end/44133, middle-end/45034,
-	middle-end/45262, target/41089, target/43698, target/44805,
-	testsuite/43283, tree-optimization/44914, tree-optimization/45052,
-	tree-optimization/45109
-  - fix VTA ICE in caller-save.c (#622060, PR debug/45259)
-- fix up gdb libstdc++ pretty printing (#621717)
-- fix up libgcj.so, libgij.so and libgcj-tools.so symlinks (#619156)
-
-* Fri Jul 30 2010 Jakub Jelinek <jakub at redhat.com> 4.5.0-4
-- update from gcc-4_5-branch
-  - PRs c++/43016, c++/44996, c++/45008, c/45079, debug/45015, fortran/30668,
-	fortran/31346, fortran/34260, fortran/40011, testsuite/38946,
-	tree-optimization/44900, tree-optimization/44977
-  - fix vectorizer ICE (#617492, PR tree-optimization/45047)
-- use --enable-linker-build-id in configury instead of patching
-  --build-id support in
-- VTA backports
-  - PRs debug/45055, rtl-optimization/45137, debug/45003,
-	debug/45006, bootstrap/45028
-
-* Fri Jul 16 2010 Jakub Jelinek <jakub at redhat.com> 4.5.0-3
-- update from gcc-4_5-branch
-  - PRs ada/43731, fortran/44773, pch/14940, testsuite/44325
-  - fix vectorizer (#614375, #614814, PR tree-optimization/44886)
-- fix fortran CHARACTER type SELECT CASE handling (PR fortran/40206)
-- fix inline-asm check for auto-inc-dec operands (PR testsuite/44701)
-- fix va_start on x86_64 (PR target/44942)
-
-* Fri Jul  9 2010 Jakub Jelinek <jakub at redhat.com> 4.5.0-2
-- update from gcc-4_5-branch
-  - PRs c++/44703, fortran/44847, middle-end/41355, middle-end/44828,
-	target/43888, tree-optimization/44284
-- use DW_OP_const[48]u instead of DW_OP_addr before DW_OP_GNU_push_tls_address
-- fix a multilib issue with *.py[oc] files in libstdc++ (#612742)
-- fix up libgcj_bc.so
-
-* Wed Jul  7 2010 Jakub Jelinek <jakub at redhat.com> 4.5.0-1
-- initial 4.5 package, using newly created redhat/gcc-4_5-branch
+* Sat Jan 22 2011 Jakub Jelinek <jakub at 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
+
+* Tue Jan  4 2011 Jakub Jelinek <jakub at redhat.com> 4.6.0-0.1
+- new package
diff --git a/gcc45-c++-builtin-redecl.patch b/gcc46-c++-builtin-redecl.patch
similarity index 100%
rename from gcc45-c++-builtin-redecl.patch
rename to gcc46-c++-builtin-redecl.patch
diff --git a/gcc45-cloog-dl.patch b/gcc46-cloog-dl.patch
similarity index 69%
rename from gcc45-cloog-dl.patch
rename to gcc46-cloog-dl.patch
index a3ea1ea..eb09a22 100644
--- a/gcc45-cloog-dl.patch
+++ b/gcc46-cloog-dl.patch
@@ -1,73 +1,111 @@
-2010-07-01  Jakub Jelinek  <jakub at redhat.com>
+2011-01-04  Jakub Jelinek  <jakub at redhat.com>
 
-	* Makefile.in (BACKENDLIBS): Link against -ldl instead of -lcloog -lppl.
+	* Makefile.in (BACKENDLIBS): Link against -ldl instead of
+	-lcloog -lppl.
 	(graphite.o, graphite%.o): Force -O, remove -fkeep-inline-functions.
-	(graphite-ppl.o): Depend on graphite.h.
-	* graphite.h: Include <dlfcn.h>.  Reference libcloog and libppl symbols
-	through pointers in cloog_pointers__ variable.
+	(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-ppl.c: Include graphite.h.
+	* 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/graphite.c.jj	2010-06-30 09:48:30.000000000 +0200
-+++ gcc/graphite.c	2010-07-01 16:57:48.248523237 +0200
-@@ -67,6 +67,35 @@ along with GCC; see the file COPYING3.  
- #include "graphite-clast-to-gimple.h"
- #include "graphite-sese-to-poly.h"
+--- gcc/Makefile.in.jj	2011-01-03 13:44:14.163900902 +0100
++++ gcc/Makefile.in	2011-01-04 17:48:53.588775911 +0100
+@@ -985,6 +985,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)
  
-+__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
-@@ -210,6 +239,12 @@ graphite_initialize (void)
-       return false;
-     }
+ #
+ # Now figure out from those variables how to compile and link.
+@@ -1038,7 +1040,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@
+@@ -2671,39 +2673,39 @@ 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 \
+-   graphite-dependences.h graphite-cloog-compat.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-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
++   sese.h graphite-ppl.h $(GRAPHITE_POLY_H) graphite-dependences.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) \
+@@ -3488,6 +3490,11 @@ $(out_object_file): $(out_file) $(CONFIG
+ 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \
+ 		$(out_file) $(OUTPUT_OPTION)
  
-+  if (!init_cloog_pointers ())
-+    {
-+      sorry ("Graphite loop optimizations cannot be used");
-+      return false;
-+    }
++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,261 @@ static inline int cloog_matrix_nrows (Cl
+    return m->NbRows;
+ }
+ #endif /* CLOOG_ORG  */
 +
-   recompute_all_dominators ();
-   initialize_original_copy_tables ();
-   cloog_initialize ();
---- gcc/graphite.h.jj	2010-06-30 09:48:30.000000000 +0200
-+++ gcc/graphite.h	2010-07-01 17:29:37.225491850 +0200
-@@ -21,4 +21,224 @@ along with GCC; see the file COPYING3.  
- #ifndef GCC_GRAPHITE_H
- #define GCC_GRAPHITE_H
- 
 +#include <dlfcn.h>
 +#define DYNSYMS \
 +  DYNSYM (cloog_block_alloc); \
@@ -172,7 +210,12 @@
 +  DYNSYM (stmt_for); \
 +  DYNSYM (stmt_guard); \
 +  DYNSYM (stmt_root); \
-+  DYNSYM (stmt_user);
++  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);
 +extern struct
 +{
 +  bool inited;
@@ -190,7 +233,12 @@
 +#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)
@@ -198,15 +246,35 @@
 +#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)
@@ -285,66 +353,90 @@
 +#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 cloog_finalize (*cloog_pointers__.p_ppl_finalize)
 +
- #endif  /* GCC_GRAPHITE_H  */
---- gcc/Makefile.in.jj	2010-06-30 21:23:29.000000000 +0200
-+++ gcc/Makefile.in	2010-07-01 17:33:11.016479963 +0200
-@@ -1011,7 +1011,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) $(LIBELFLIBS)
- # Any system libraries needed just for GNAT.
- SYSLIBS = @GNAT_LIBEXC@
-@@ -2607,7 +2607,7 @@ graphite-poly.o: graphite-poly.c $(CONFI
-    $(TREE_DATA_REF_H) tree-pass.h domwalk.h graphite.h graphite-dependences.h \
-    pointer-set.h value-prof.h graphite-ppl.h sese.h output.h graphite-poly.h
- graphite-ppl.o: graphite-ppl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
--   $(GGC_H) graphite-ppl.h
-+   $(GGC_H) graphite-ppl.h graphite.h
- graphite-scop-detection.o: graphite-scop-detection.c $(CONFIG_H) $(SYSTEM_H) \
-    $(GGC_H) $(TREE_H) $(RTL_H) $(BASIC_BLOCK_H) $(DIAGNOSTIC_H) $(TOPLEV_H) \
-    $(TREE_FLOW_H) $(TREE_DUMP_H) $(TIMEVAR_H) $(CFGLOOP_H) $(GIMPLE_H) \
-@@ -3359,6 +3359,11 @@ $(out_object_file): $(out_file) $(CONFIG
- 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \
- 		$(out_file) $(OUTPUT_OPTION)
++
+ #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
+@@ -54,6 +54,35 @@ along with GCC; see the file COPYING3.  
+ #include "graphite-clast-to-gimple.h"
+ #include "graphite-sese-to-poly.h"
  
-+graphite%.o : \
-+  ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS))
-+graphite.o : \
-+  ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS))
++__typeof (cloog_pointers__) cloog_pointers__;
 +
- # Build auxiliary files that support ecoff format.
- mips-tfile: mips-tfile.o version.o $(LIBDEPS)
- 	$(LINKER) $(LINKERFLAGS) $(LDFLAGS) -o $@ \
---- gcc/graphite-ppl.c.jj	2010-06-30 09:48:30.000000000 +0200
-+++ gcc/graphite-ppl.c	2010-07-01 17:08:14.161335642 +0200
-@@ -29,6 +29,7 @@ along with GCC; see the file COPYING3.  
- #include "ppl_c.h"
- #include "cloog/cloog.h"
- #include "graphite-ppl.h"
-+#include "graphite.h"
++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.  */
  
- /* Translates row ROW of the CloogMatrix MATRIX to a PPL Constraint.  */
+ static void
+@@ -199,6 +228,12 @@ graphite_initialize (void)
+       return false;
+     }
  
---- gcc/graphite-clast-to-gimple.c.jj	2010-06-30 09:48:30.000000000 +0200
-+++ gcc/graphite-clast-to-gimple.c	2010-07-01 16:50:15.812485671 +0200
-@@ -613,11 +613,11 @@ gcc_type_for_cloog_iv (const char *cloog
-    STMT.  */
++  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)
-+gcc_type_for_iv_of_clast_loop (struct clast_for *stmt_fora)
+-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);
--  const char *cloog_iv = stmt_for->iterator;
-+  const char *cloog_iv = stmt_fora->iterator;
    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/gcc45-hack.patch b/gcc46-hack.patch
similarity index 88%
rename from gcc45-hack.patch
rename to gcc46-hack.patch
index 470627d..4689ce8 100644
--- a/gcc45-hack.patch
+++ b/gcc46-hack.patch
@@ -54,16 +54,6 @@
  
  # Rules to build gnatlib.
  .PHONY: gnatlib gnatlib-plain gnatlib-sjlj gnatlib-zcx gnatlib-shared oscons
---- gcc/ada/make.adb	2008-11-07 23:00:32.000000000 +0100
-+++ gcc/ada/make.adb	2009-01-16 17:55:02.000000000 +0100
-@@ -8007,6 +8007,7 @@ package body Make is
-              or else Argv (2 .. Argv'Last) = "pg"
-              or else (Argv (2) = 'm' and then Argv'Last > 2)
-              or else (Argv (2) = 'f' and then Argv'Last > 2)
-+             or else (Argv'Last >= 8 and then Argv (2 .. 8) = "-param=")
-          then
-             Add_Switch (Argv, Compiler, And_Save => And_Save);
-             Add_Switch (Argv, Linker,   And_Save => And_Save);
 --- gcc/ada/sem_util.adb	(revision 161677)
 +++ gcc/ada/sem_util.adb	(working copy)
 @@ -2246,7 +2246,11 @@
@@ -89,14 +79,15 @@
           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,7 @@ multi-do:
+@@ -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}" \
- 				LIBCFLAGS="$(LIBCFLAGS) $${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
diff --git a/gcc45-i386-libgomp.patch b/gcc46-i386-libgomp.patch
similarity index 100%
rename from gcc45-i386-libgomp.patch
rename to gcc46-i386-libgomp.patch
diff --git a/gcc45-java-nomulti.patch b/gcc46-java-nomulti.patch
similarity index 100%
rename from gcc45-java-nomulti.patch
rename to gcc46-java-nomulti.patch
diff --git a/gcc45-libgomp-omp_h-multilib.patch b/gcc46-libgomp-omp_h-multilib.patch
similarity index 100%
rename from gcc45-libgomp-omp_h-multilib.patch
rename to gcc46-libgomp-omp_h-multilib.patch
diff --git a/gcc46-libstdc++-docs.patch b/gcc46-libstdc++-docs.patch
new file mode 100644
index 0000000..a926da8
--- /dev/null
+++ b/gcc46-libstdc++-docs.patch
@@ -0,0 +1,36 @@
+--- 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><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>API Documentation</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><link rel="home" href="spine.html" title="The GNU C++ Library Documentation" /><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">API Documentation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk02.html">Prev</a> </td><th width="60%" align="center"></th><td width="20%" align="right"> <a accesskey="n" href="bk03.html">Next</a></td></tr></table><hr /></div><div class="article" title="API Documentation"><div class="titlepage"><div><div><h2 class="title"><a id="api"></a>API Documentation</h2></div><div><p class="copyright">Copyright © 
+       2008
+     , 
+-      2010
++      2010, 2011
+      
+       <a class="ulink" href="http://www.fsf.org/" target="_top">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" type="disc"><li class="listitem"><p>
++      <a class="ulink" href="api/index.html" target="_top">for the 4.6 release, local
++      </a>
++    </p></li><li class="listitem"><p>
+       <a class="ulink" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-3.4/index.html" target="_top">for the 3.4 release
+       </a>
+     </p></li><li class="listitem"><p>
diff --git a/gcc45-libtool-no-rpath.patch b/gcc46-libtool-no-rpath.patch
similarity index 100%
rename from gcc45-libtool-no-rpath.patch
rename to gcc46-libtool-no-rpath.patch
diff --git a/gcc45-no-add-needed.patch b/gcc46-no-add-needed.patch
similarity index 62%
rename from gcc45-no-add-needed.patch
rename to gcc46-no-add-needed.patch
index 23704d3..debd655 100644
--- a/gcc45-no-add-needed.patch
+++ b/gcc46-no-add-needed.patch
@@ -6,9 +6,9 @@
 	* config/alpha/elf.h (LINK_EH_SPEC): Likewise.
 	* config/ia64/linux.h (LINK_EH_SPEC): Likewise.
 
---- gcc/config/alpha/elf.h.~1~
-+++ gcc/config/alpha/elf.h
-@@ -421,7 +421,7 @@ extern int alpha_this_gpdisp_sequence_nu
+--- 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)
@@ -17,9 +17,9 @@
  #endif
  
  /* A C statement (sans semicolon) to output to the stdio stream STREAM
---- gcc/config/ia64/linux.h.~1~
-+++ gcc/config/ia64/linux.h
-@@ -58,7 +58,7 @@ do {						\
+--- 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
@@ -28,9 +28,9 @@
  
  #define MD_UNWIND_SUPPORT "config/ia64/linux-unwind.h"
  
---- gcc/config/linux.h.~1~
-+++ gcc/config/linux.h
-@@ -89,7 +89,7 @@ see the files COPYING3 and COPYING.RUNTI
+--- gcc/config/linux.h.jj	2011-01-03 12:53:03.739057299 +0100
++++ gcc/config/linux.h	2011-01-04 18:14:10.932814884 +0100
+@@ -102,7 +102,7 @@ see the files COPYING3 and COPYING.RUNTI
      } while (0)
  
  #if defined(HAVE_LD_EH_FRAME_HDR)
@@ -38,11 +38,11 @@
 +#define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} "
  #endif
  
- /* Define this so we can compile MS code for use with WINE.  */
---- gcc/config/rs6000/sysv4.h.~1~
-+++ gcc/config/rs6000/sysv4.h
-@@ -917,7 +917,7 @@ SVR4_ASM_SPEC \
-   %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}"
+ #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} "
diff --git a/gcc45-ppc32-retaddr.patch b/gcc46-ppc32-retaddr.patch
similarity index 100%
rename from gcc45-ppc32-retaddr.patch
rename to gcc46-ppc32-retaddr.patch
diff --git a/gcc45-pr33763.patch b/gcc46-pr33763.patch
similarity index 100%
rename from gcc45-pr33763.patch
rename to gcc46-pr33763.patch
diff --git a/gcc45-pr38757.patch b/gcc46-pr38757.patch
similarity index 56%
rename from gcc45-pr38757.patch
rename to gcc46-pr38757.patch
index d550988..5e6bf57 100644
--- a/gcc45-pr38757.patch
+++ b/gcc46-pr38757.patch
@@ -11,11 +11,11 @@
 	(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	2010-06-30 09:48:30.000000000 +0200
-+++ gcc/langhooks.h	2010-07-01 16:15:22.432616871 +0200
-@@ -454,6 +454,10 @@ struct lang_hooks
-      is enabled.  */
-   bool eh_use_cxa_end_cleanup;
+--- 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.  */
@@ -24,42 +24,29 @@
    /* Whenever you add entries here, make sure you adjust langhooks-def.h
       and langhooks.c accordingly.  */
  };
---- gcc/langhooks-def.h.jj	2010-06-30 09:48:30.000000000 +0200
-+++ gcc/langhooks-def.h	2010-07-01 16:16:07.427460761 +0200
-@@ -1,5 +1,5 @@
- /* Default macros to initialize the lang_hooks data structure.
--   Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-+   Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-    Free Software Foundation, Inc.
-    Contributed by Alexandre Oliva  <aoliva at redhat.com>
- 
-@@ -111,6 +111,7 @@ extern void lhd_omp_firstprivatize_type_
- #define LANG_HOOKS_EH_PERSONALITY	lhd_gcc_personality
- #define LANG_HOOKS_EH_RUNTIME_TYPE	lhd_pass_through_t
+--- 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
-@@ -301,6 +302,7 @@ extern void lhd_end_section (void);
-   LANG_HOOKS_EH_PERSONALITY, \
+@@ -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_SOURCE_LANGUAGE, \
+-  LANG_HOOKS_DEEP_UNSHARING \
++  LANG_HOOKS_DEEP_UNSHARING, \
++  LANG_HOOKS_SOURCE_LANGUAGE \
  }
  
  #endif /* GCC_LANG_HOOKS_DEF_H */
---- gcc/c-lang.c.jj	2010-06-30 09:48:30.000000000 +0200
-+++ gcc/c-lang.c	2010-07-01 16:14:25.396197804 +0200
-@@ -1,6 +1,6 @@
- /* Language-specific hook definitions for C front end.
-    Copyright (C) 1991, 1995, 1997, 1998,
--   1999, 2000, 2001, 2003, 2004, 2005, 2007, 2008
-+   1999, 2000, 2001, 2003, 2004, 2005, 2007, 2008, 2009
-    Free Software Foundation, Inc.
- 
- This file is part of GCC.
-@@ -37,6 +37,12 @@ along with GCC; see the file COPYING3.  
+--- 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;
  
@@ -72,7 +59,7 @@
  /* Lang hooks common to C and ObjC are declared in c-objc-common.h;
     consequently, there should be very few hooks below.  */
  
-@@ -44,6 +50,8 @@ enum c_language_kind c_language = clk_c;
+@@ -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
@@ -81,22 +68,22 @@
  
  /* Each front end provides its own lang hook initializer.  */
  struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;
---- gcc/dwarf2out.c.jj	2010-07-01 14:07:41.000000000 +0200
-+++ gcc/dwarf2out.c	2010-07-01 16:13:24.597354717 +0200
-@@ -17150,9 +17150,18 @@ add_bit_size_attribute (dw_die_ref die, 
+--- 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
--      && TYPE_ARG_TYPES (func_type) != NULL)
+-  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))
++  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 (TYPE_ARG_TYPES (func_type) != NULL)
++      if (prototype_p (func_type) != NULL)
 +	add_AT_flag (die, DW_AT_prototyped, 1);
 +      break;
 +    default:
@@ -105,7 +92,7 @@
  }
  
  /* Add an 'abstract_origin' attribute below a given DIE.  The DIE is found
-@@ -19246,6 +19255,10 @@ gen_compile_unit_die (const char *filena
+@@ -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;
diff --git a/gcc46-pr46890.patch b/gcc46-pr46890.patch
new file mode 100644
index 0000000..7afb3f6
--- /dev/null
+++ b/gcc46-pr46890.patch
@@ -0,0 +1,110 @@
+2010-12-17  Nathan Froyd  <froydnj at codesourcery.com>
+
+	PR c++/46890
+	* parser.c (cp_parser_class_specifier): Add RID_TYPEDEF to
+	lookahead logic and fix setting of want_semicolon.
+
+	* g++.dg/pr46890.C: New test.
+	* g++.dg/parse/semicolon.C: Add new cases.
+
+--- gcc/cp/parser.c
++++ gcc/cp/parser.c
+@@ -16959,17 +16959,16 @@ cp_parser_class_specifier (cp_parser* parser)
+ 	   static const <type> var = ...;  */
+       case CPP_KEYWORD:
+ 	if (keyword_is_storage_class_specifier (token->keyword)
+-	    || keyword_is_type_qualifier (token->keyword))
++	    || keyword_is_type_qualifier (token->keyword)
++	    || token->keyword == RID_TYPEDEF)
+ 	  {
+ 	    cp_token *lookahead = cp_lexer_peek_nth_token (parser->lexer, 2);
+ 
+-	    if (lookahead->type == CPP_KEYWORD
+-		&& !keyword_begins_type_specifier (lookahead->keyword))
+-	      want_semicolon = false;
+-	    else if (lookahead->type == CPP_NAME)
+-	      /* Handling user-defined types here would be nice, but
+-		 very tricky.  */
+-	      want_semicolon = false;
++	    /* Handling user-defined types here would be nice, but very
++	       tricky.  */
++	    want_semicolon
++	      = (lookahead->type == CPP_KEYWORD
++		 && keyword_begins_type_specifier (lookahead->keyword));
+ 	  }
+ 	break;
+       default:
+--- gcc/testsuite/g++.dg/parse/semicolon3.C
++++ gcc/testsuite/g++.dg/parse/semicolon3.C
+@@ -62,6 +62,48 @@ autotest (void)
+   return ok10.a;
+ }
+ 
++struct OK11
++{
++  int a;
++} // no complaints
++  const *ok11_var;
++
++struct OK12
++{
++  int a;
++} // no complaints
++  const &ok12_var = *(new OK12());
++
++struct OK13
++{
++  int a;
++} // no complaints
++  static *ok13_var;
++
++class OK14
++{
++  struct OK14sub
++  {
++    int a;
++  } // no complaints
++    static &ok14_var;
++};
++
++class OK15
++{
++  int a;
++} typedef tOK15;
++
++class OK16
++{
++  int a;
++} typedef *pOK16;
++
++class OK17
++{
++  int a;
++} typedef &rOK16;
++
+ struct E1
+ {
+   int a;
+@@ -196,6 +238,13 @@ class E17
+     mutable int i;
+ } // { dg-error "after class definition" }
+ 
++class E18
++{
++  int a;
++} // { dg-error "after class definition" }
++
++typedef int E18int;
++
+ /* This was the original test from the PR.  */
+ 
+ class C0
+--- gcc/testsuite/g++.dg/pr46890.C
++++ gcc/testsuite/g++.dg/pr46890.C
+@@ -0,0 +1,6 @@
++// PR c++/46890
++// { dg-do compile }
++
++struct MdatResource {
++const char *mdatAlloc;
++} const *_resource;
diff --git a/gcc46-pr47106-revert.patch b/gcc46-pr47106-revert.patch
new file mode 100644
index 0000000..9940f65
--- /dev/null
+++ b/gcc46-pr47106-revert.patch
@@ -0,0 +1,31 @@
+Temporarily revert:
+	2011-01-21  Alexandre Oliva  <aoliva at redhat.com>
+
+	PR debug/47106
+	* cfgexpand.c (account_used_vars_for_block): Only account vars
+	that are annotated as used.
+	(estimated_stack_frame_size): Don't set TREE_USED.
+
+--- gcc/cfgexpand.c	(revision 169093)
++++ gcc/cfgexpand.c	(revision 169092)
+@@ -1325,7 +1325,7 @@ account_used_vars_for_block (tree block,
+ 
+   /* Expand all variables at this level.  */
+   for (t = BLOCK_VARS (block); t ; t = DECL_CHAIN (t))
+-    if (var_ann (t) && var_ann (t)->used)
++    if (TREE_USED (t))
+       size += expand_one_var (t, toplevel, false);
+ 
+   /* Expand all variables at containing levels.  */
+@@ -1389,10 +1389,9 @@ estimated_stack_frame_size (tree decl)
+ 
+   FOR_EACH_LOCAL_DECL (cfun, ix, var)
+     {
+-      /* TREE_USED marks local variables that do not appear in lexical
+-	 blocks.  We don't want to expand those that do twice.  */
+       if (TREE_USED (var))
+         size += expand_one_var (var, true, false);
++      TREE_USED (var) = 1;
+     }
+   size += account_used_vars_for_block (outer_block, true);
+ 
diff --git a/gcc46-rh330771.patch b/gcc46-rh330771.patch
new file mode 100644
index 0000000..102730f
--- /dev/null
+++ b/gcc46-rh330771.patch
@@ -0,0 +1,27 @@
+2007-10-16  Jakub Jelinek  <jakub at 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/gcc45-sparc-config-detection.patch b/gcc46-sparc-config-detection.patch
similarity index 57%
rename from gcc45-sparc-config-detection.patch
rename to gcc46-sparc-config-detection.patch
index d94b17d..cd36e70 100644
--- a/gcc45-sparc-config-detection.patch
+++ b/gcc46-sparc-config-detection.patch
@@ -1,21 +1,21 @@
 --- gcc/config.gcc.jj	2008-04-24 15:42:46.000000000 -0500
 +++ gcc/config.gcc	2008-04-24 15:44:51.000000000 -0500
-@@ -2393,7 +2393,7 @@ sparc-*-elf*)
- 	tmake_file="sparc/t-elf sparc/t-crtfm"
- 	extra_parts="crti.o crtn.o crtbegin.o crtend.o"
+@@ -2483,7 +2483,7 @@ sparc-*-rtems*)
+ 	tmake_file="sparc/t-elf sparc/t-crtfm t-rtems"
+ 	extra_parts="crtbegin.o crtend.o"
  	;;
--sparc-*-linux*)		# SPARC's running GNU/Linux, libc6
-+sparc-*-linux* | sparcv9*-*-linux*)		# SPARC's running GNU/Linux, libc6
- 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h linux.h glibc-stdint.h"
+-sparc-*-linux*)
++sparc-*-linux* | sparcv9-*-linux*)
+ 	tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h linux.h glibc-stdint.h"
  	extra_options="${extra_options} sparc/long-double-switch.opt"
- 	tmake_file="${tmake_file} sparc/t-linux"
-@@ -2481,7 +2481,7 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd*
- 		*) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
- 	esac
- 	;;
--sparc64-*-linux*)		# 64-bit SPARC's running GNU/Linux
-+sparc64*-*-linux*)		# 64-bit SPARC's running GNU/Linux
- 	tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h linux.h glibc-stdint.h sparc/linux64.h"
+ 	case ${target} in
+@@ -2577,7 +2577,7 @@ sparc64-*-rtems*)
+ 	tmake_file="${tmake_file} 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 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
diff --git a/gcc46-unwind-debughook-sdt.patch b/gcc46-unwind-debughook-sdt.patch
new file mode 100644
index 0000000..3b87e39
--- /dev/null
+++ b/gcc46-unwind-debughook-sdt.patch
@@ -0,0 +1,88 @@
+2011-01-14  Tom Tromey  <tromey at redhat.com>
+
+	* unwind-dw2.c: Include sys/sdt.h if it exists.
+	(_Unwind_DebugHook): Use STAP_PROBE2.
+	* config.in, configure: Rebuild.
+	* configure.ac: Check for sys/sdt.h.
+
+--- gcc/configure.ac
++++ gcc/configure.ac
+@@ -4313,6 +4313,16 @@ if test x$gcc_cv_libc_provides_ssp = xyes; then
+ 	    [Define if your target C library provides stack protector support])
+ fi
+ 
++# Test for <sys/sdt.h> on the target.
++GCC_TARGET_TEMPLATE([HAVE_SYS_SDT_H])
++AC_MSG_CHECKING(sys/sdt.h in the target C library)
++have_sys_sdt_h=no
++if test -f $target_header_dir/sys/sdt.h; then
++  AC_DEFINE(HAVE_SYS_SDT_H, 1,
++            [Define if your target C library provides sys/sdt.h])
++fi
++AC_MSG_RESULT($have_sys_sdt_h)
++
+ # Check if TFmode long double should be used by default or not.
+ # Some glibc targets used DFmode long double, but with glibc 2.4
+ # and later they can use TFmode.
+--- gcc/unwind-dw2.c
++++ gcc/unwind-dw2.c
+@@ -37,6 +37,10 @@
+ #include "gthr.h"
+ #include "unwind-dw2.h"
+ 
++#ifdef HAVE_SYS_SDT_H
++#include <sys/sdt.h>
++#endif
++
+ #ifndef __USING_SJLJ_EXCEPTIONS__
+ 
+ #ifndef STACK_GROWS_DOWNWARD
+@@ -1493,7 +1497,13 @@ static void
+ _Unwind_DebugHook (void *cfa __attribute__ ((__unused__)),
+ 		   void *handler __attribute__ ((__unused__)))
+ {
++  /* We only want to use stap probes starting with v3.  Earlier
++     versions added too much startup cost.  */
++#if defined (HAVE_SYS_SDT_H) && defined (STAP_PROBE2) && _SDT_NOTE_TYPE >= 3
++  STAP_PROBE2 (libgcc, unwind, cfa, handler);
++#else
+   asm ("");
++#endif
+ }
+ 
+ /* Install TARGET into CURRENT so that we can return to it.  This is a
+
+--- gcc/config.in.jj	2011-01-22 10:21:47.000000000 +0100
++++ gcc/config.in	2011-01-22 11:10:39.000000000 +0100
+@@ -1405,6 +1407,9 @@
+ #endif
+ 
+ 
++/* Define if your target C library provides sys/sdt.h */
++#undef HAVE_SYS_SDT_H
++
+ /* Define to 1 if you have the <sys/stat.h> header file. */
+ #ifndef USED_FOR_TARGET
+ #undef HAVE_SYS_STAT_H
+--- gcc/configure.jj	2011-01-22 10:20:55.000000000 +0100
++++ gcc/configure	2011-01-22 11:10:34.990648298 +0100
+@@ -25757,6 +25757,19 @@ $as_echo "#define TARGET_LIBC_PROVIDES_S
+ 
+ fi
+ 
++# Test for <sys/sdt.h> on the target.
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking sys/sdt.h in the target C library" >&5
++$as_echo_n "checking sys/sdt.h in the target C library... " >&6; }
++have_sys_sdt_h=no
++if test -f $target_header_dir/sys/sdt.h; then
++
++$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h
++
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_sys_sdt_h" >&5
++$as_echo "$have_sys_sdt_h" >&6; }
++
+ # Check if TFmode long double should be used by default or not.
+ # Some glibc targets used DFmode long double, but with glibc 2.4
+ # and later they can use TFmode.
diff --git a/sources b/sources
index ca46f3b..24dfdb2 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
 2659f09c2e43ef8b7d4406321753f1b2  fastjar-0.97.tar.gz
-c853e1a8fa92ffe0f95601fcedae81bf  gcc-4.5.1-20101130.tar.bz2
+89ee1132792194e62424dee99a780c60  gcc-4.6.0-20110122.tar.bz2


More information about the scm-commits mailing list