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