diff --git a/.gitignore b/.gitignore index 84a6258..599ab06 100644 --- a/.gitignore +++ b/.gitignore @@ -47,3 +47,6 @@ /gcc-4.7.2-20121015.tar.bz2 /gcc-4.7.2-20121105.tar.bz2 /gcc-4.7.2-20121109.tar.bz2 +/cloog-0.17.0.tar.gz +/isl-0.10.tar.bz2 +/gcc-4.8.0-20130106.tar.bz2 diff --git a/gcc.spec b/gcc.spec index 5ed22ea..506eee3 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,9 +1,9 @@ -%global DATE 20121109 -%global SVNREV 193356 -%global gcc_version 4.7.2 +%global DATE 20130106 +%global SVNREV 194938 +%global gcc_version 4.8.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 9 +%global gcc_release 0.3 %global _unpackaged_files_terminate_build 0 %global multilib_64_archs sparc64 ppc64 s390x x86_64 %ifarch %{ix86} x86_64 ia64 ppc ppc64 alpha @@ -11,7 +11,11 @@ %else %global build_ada 0 %endif +%if 0%{?rhel} >= 7 +%global build_java 0 +%else %global build_java 1 +%endif %ifarch %{ix86} x86_64 ppc ppc64 s390 s390x %{arm} %global build_go 1 %else @@ -22,6 +26,21 @@ %else %global build_libquadmath 0 %endif +%ifarch %{ix86} x86_64 +%global build_libasan 1 +%else +%global build_libasan 0 +%endif +%ifarch x86_64 +%global build_libtsan 1 +%else +%global build_libtsan 0 +%endif +%ifarch %{ix86} x86_64 ppc ppc64 s390 s390x %{arm} +%global build_libatomic 1 +%else +%global build_libatomic 0 +%endif %ifarch %{ix86} x86_64 %{arm} alpha ppc ppc64 %global build_libitm 1 %else @@ -64,6 +83,10 @@ Group: Development/Languages # 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 isl_version 0.10 +Source1: ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-%{isl_version}.tar.bz2 +%global cloog_version 0.17.0 +Source2: ftp://gcc.gnu.org/pub/gcc/infrastructure/cloog-%{cloog_version}.tar.gz %global fastjar_ver 0.97 Source4: http://download.savannah.nongnu.org/releases/fastjar/fastjar-%{fastjar_ver}.tar.gz URL: http://gcc.gnu.org @@ -118,14 +141,6 @@ BuildRequires: gcc-gnat >= 3.1, libgnat >= 3.1 %ifarch ia64 BuildRequires: libunwind >= 0.98 %endif -%if %{build_cloog} -%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 -BuildRequires: ppl >= 0.11.2, ppl-devel >= 0.11.2 -%else -BuildRequires: ppl >= 0.10, ppl-devel >= 0.10 -%endif -BuildRequires: cloog-ppl >= 0.15, cloog-ppl-devel >= 0.15 -%endif %if %{build_libstdcxx_docs} BuildRequires: doxygen >= 1.7.1 BuildRequires: graphviz @@ -163,33 +178,28 @@ Requires: libgomp = %{version}-%{release} Obsoletes: gcc-gnat < %{version}-%{release} Obsoletes: libgnat < %{version}-%{release} %endif -%if %{build_cloog} -Requires: cloog-ppl >= 0.15 -%endif Requires(post): /sbin/install-info Requires(preun): /sbin/install-info AutoReq: true Provides: bundled(libiberty) -Patch0: gcc47-hack.patch -Patch1: gcc47-c++-builtin-redecl.patch -Patch2: gcc47-java-nomulti.patch -Patch3: gcc47-ppc32-retaddr.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 -Patch16: gcc47-rh837630.patch -Patch17: gcc47-arm-hfp-ldso.patch -Patch18: gcc47-pr55137.patch -Patch19: gcc47-pr55236.patch +Patch0: gcc48-hack.patch +Patch1: gcc48-java-nomulti.patch +Patch2: gcc48-ppc32-retaddr.patch +Patch3: gcc48-rh330771.patch +Patch4: gcc48-i386-libgomp.patch +Patch5: gcc48-sparc-config-detection.patch +Patch6: gcc48-libgomp-omp_h-multilib.patch +Patch7: gcc48-libtool-no-rpath.patch +Patch8: gcc48-cloog-dl.patch +Patch9: gcc48-cloog-dl2.patch +Patch10: gcc48-pr38757.patch +Patch11: gcc48-libstdc++-docs.patch +Patch12: gcc48-no-add-needed.patch +Patch13: gcc48-asan-ppc.patch +Patch14: gcc48-pr55341.patch +Patch15: gcc48-pr55608.patch +Patch16: gcc48-pr55844.patch Patch1000: fastjar-0.97-segfault.patch Patch1001: fastjar-0.97-len1.patch @@ -446,6 +456,61 @@ Requires: libitm-devel = %{version}-%{release} %description -n libitm-static This package contains GNU Transactional Memory static libraries. +%package -n libatomic +Summary: The GNU Atomic library +Group: System Environment/Libraries +Requires(post): /sbin/install-info +Requires(preun): /sbin/install-info + +%description -n libatomic +This package contains the GNU Atomic library +which is a GCC support runtime library for atomic operations not supported +by hardware. + +%package -n libatomic-static +Summary: The GNU Atomic static library +Group: Development/Libraries +Requires: libatomic = %{version}-%{release} + +%description -n libatomic-static +This package contains GNU Atomic static libraries. + +%package -n libasan +Summary: The Address Sanitizer runtime library +Group: System Environment/Libraries +Requires(post): /sbin/install-info +Requires(preun): /sbin/install-info + +%description -n libasan +This package contains the Address Sanitizer library +which is used for -fsanitize=address instrumented programs. + +%package -n libasan-static +Summary: The Address Sanitizer static library +Group: Development/Libraries +Requires: libasan = %{version}-%{release} + +%description -n libasan-static +This package contains Address Sanitizer static runtime library. + +%package -n libtsan +Summary: The Thread Sanitizer runtime library +Group: System Environment/Libraries +Requires(post): /sbin/install-info +Requires(preun): /sbin/install-info + +%description -n libtsan +This package contains the Thread Sanitizer library +which is used for -fsanitize=thread instrumented programs. + +%package -n libtsan-static +Summary: The Thread Sanitizer static library +Group: Development/Libraries +Requires: libtsan = %{version}-%{release} + +%description -n libtsan-static +This package contains Thread Sanitizer static runtime library. + %package java Summary: Java support for GCC Group: Development/Languages @@ -668,34 +733,28 @@ package or when debugging this package. %endif %prep -%setup -q -n gcc-%{version}-%{DATE} +%setup -q -n gcc-%{version}-%{DATE} -a 1 -a 2 %patch0 -p0 -b .hack~ -%patch1 -p0 -b .c++-builtin-redecl~ -%patch2 -p0 -b .java-nomulti~ -%patch3 -p0 -b .ppc32-retaddr~ -%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~ +%patch1 -p0 -b .java-nomulti~ +%patch2 -p0 -b .ppc32-retaddr~ +%patch3 -p0 -b .rh330771~ +%patch4 -p0 -b .i386-libgomp~ +%patch5 -p0 -b .sparc-config-detection~ +%patch6 -p0 -b .libgomp-omp_h-multilib~ +%patch7 -p0 -b .libtool-no-rpath~ %if %{build_cloog} -%patch10 -p0 -b .cloog-dl~ +%patch8 -p0 -b .cloog-dl~ +%patch9 -p0 -b .cloog-dl2~ %endif -%patch11 -p0 -b .pr38757~ +%patch10 -p0 -b .pr38757~ %if %{build_libstdcxx_docs} -%patch12 -p0 -b .libstdc++-docs~ +%patch11 -p0 -b .libstdc++-docs~ %endif -%patch13 -p0 -b .no-add-needed~ -%if 0%{?fedora} < 15 && 0%{?rhel} < 7 -%patch14 -p0 -b .ppl-0.10~ -%endif -%patch15 -p0 -b .libitm-fno-exceptions~ -%patch16 -p0 -b .rh837630~ -%if 0%{?fedora} >= 18 || 0%{?rhel} >= 7 -%patch17 -p0 -b .arm-hfp-ldso~ -%endif -%patch18 -p0 -b .pr55137~ -%patch19 -p0 -b .pr55236~ +%patch12 -p0 -b .no-add-needed~ +%patch13 -p0 -b .asan-ppc~ +%patch14 -p0 -b .pr55341~ +%patch15 -p0 -b .pr55608~ +%patch16 -p0 -b .pr55844~ %if 0%{?_enable_debug_packages} cat > split-debuginfo.sh <<\EOF @@ -837,8 +896,8 @@ cd java_hacks cp -a ../../libjava/classpath/tools/external external mkdir -p gnu/classpath/tools cp -a ../../libjava/classpath/tools/gnu/classpath/tools/{common,javah,getopt} gnu/classpath/tools/ -cp -a ../../libjava/classpath/tools/resource/gnu/classpath/tools/common/Messages.properties gnu/classpath/tools/common -cp -a ../../libjava/classpath/tools/resource/gnu/classpath/tools/getopt/Messages.properties gnu/classpath/tools/getopt +cp -a ../../libjava/classpath/tools/resource/gnu/classpath/tools/common/messages.properties gnu/classpath/tools/common +cp -a ../../libjava/classpath/tools/resource/gnu/classpath/tools/getopt/messages.properties gnu/classpath/tools/getopt cd external/asm; for i in `find . -name \*.java`; do gcj --encoding ISO-8859-1 -C $i -I.; done; cd ../.. for i in `find gnu -name \*.java`; do gcj -C $i -I. -Iexternal/asm/; done gcj -findirect-dispatch -O2 -fmain=gnu.classpath.tools.javah.Main -I. -Iexternal/asm/ `find . -name \*.class` -o gjavah.real @@ -858,6 +917,48 @@ cd .. %endif %endif +%if %{build_cloog} +mkdir isl-build isl-install +%ifarch s390 s390x +ISL_FLAG_PIC=-fPIC +%else +ISL_FLAG_PIC=-fpic +%endif +cd isl-build +../../isl-%{isl_version}/configure --disable-shared \ + CC=/usr/bin/gcc CXX=/usr/bin/g++ \ + CFLAGS="${CFLAGS:-%optflags} $ISL_FLAG_PIC" --prefix=`cd ..; pwd`/isl-install +make %{?_smp_mflags} +make install +cd .. + +mkdir cloog-build cloog-install +cd cloog-build +cat >> ../../cloog-%{cloog_version}/source/isl/constraints.c << \EOF +#include +static void __attribute__((used)) *s1 = (void *) isl_union_map_compute_flow; +static void __attribute__((used)) *s2 = (void *) isl_map_dump; +EOF +sed -i 's|libcloog|libgcc48privatecloog|g' \ + ../../cloog-%{cloog_version}/{,test/}Makefile.{am,in} +isl_prefix=`cd ../isl-install; pwd` \ +../../cloog-%{cloog_version}/configure --with-isl=system \ + --with-isl-prefix=`cd ../isl-install; pwd` \ + CC=/usr/bin/gcc CXX=/usr/bin/g++ \ + CFLAGS="${CFLAGS:-%optflags}" CXXFLAGS="${CXXFLAGS:-%optflags}" \ + --prefix=`cd ..; pwd`/cloog-install +sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool +sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool +make %{?_smp_mflags} +make %{?_smp_mflags} install +cd ../cloog-install/lib +rm libgcc48privatecloog-isl.so{,.3} +mv libgcc48privatecloog-isl.so.3.0.0 libcloog-isl.so.3 +ln -sf libcloog-isl.so.3 libcloog-isl.so +ln -sf libcloog-isl.so.3 libcloog.so +cd ../.. +%endif + CC=gcc OPT_FLAGS=`echo %{optflags}|sed -e 's/\(-Wp,\)\?-D_FORTIFY_SOURCE=[12]//g'` OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-m64//g;s/-m32//g;s/-m31//g'` @@ -901,12 +1002,12 @@ enablelada=,ada %if %{build_go} enablelgo=,go %endif -CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`" \ +CC="$CC" CFLAGS="$OPT_FLAGS" \ + CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g'`" \ XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" GCJFLAGS="$OPT_FLAGS" \ ../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \ --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap \ --enable-shared --enable-threads=posix --enable-checking=release \ - --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 --with-linker-hash-style=gnu \ --enable-languages=c,c++,objc,obj-c++,java,fortran${enablelada}${enablelgo},lto \ @@ -924,9 +1025,9 @@ CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`" --disable-libjava-multilib \ %endif %if %{build_cloog} - --with-ppl --disable-ppl-version-check --with-cloog \ + --with-isl=`pwd`/isl-install --with-cloog=`pwd`/cloog-install \ %else - --without-ppl --without-cloog \ + --without-isl --without-cloog \ %endif %ifarch %{arm} --disable-sjlj-exceptions \ @@ -980,6 +1081,10 @@ GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" bootstrap GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" profiledbootstrap %endif +%if %{build_cloog} +cp -a cloog-install/lib/libcloog-isl.so.3 gcc/ +%endif + # Make generated man pages even if Pod::Man is not new enough perl -pi -e 's/head3/head2/' ../contrib/texi2pod.pl for i in ../gcc/doc/*.texi; do @@ -1001,9 +1106,9 @@ 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 rpm.doc/libitm -mkdir -p rpm.doc/changelogs/{gcc/cp,gcc/java,gcc/ada,libstdc++-v3,libobjc,libmudflap,libgomp} +mkdir -p rpm.doc/changelogs/{gcc/cp,gcc/java,gcc/ada,libstdc++-v3,libobjc,libmudflap,libgomp,libatomic,libsanitizer} -for i in {gcc,gcc/cp,gcc/java,gcc/ada,libstdc++-v3,libobjc,libmudflap,libgomp}/ChangeLog*; do +for i in {gcc,gcc/cp,gcc/java,gcc/ada,libstdc++-v3,libobjc,libmudflap,libgomp,libatomic,libsanitizer}/ChangeLog*; do cp -p $i rpm.doc/changelogs/$i done @@ -1088,6 +1193,10 @@ chmod 644 %{buildroot}%{_infodir}/gnat* FULLPATH=%{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version} FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version} +%if %{build_cloog} +cp -a cloog-install/lib/libcloog-isl.so.3 $FULLPATH/ +%endif + # fix some things ln -sf gcc %{buildroot}%{_prefix}/bin/cc rm -f %{buildroot}%{_prefix}/lib/cpp @@ -1275,7 +1384,7 @@ ln -sf ../../../libgomp.so.1.* libgomp.so ln -sf ../../../libmudflap.so.0.* libmudflap.so ln -sf ../../../libmudflapth.so.0.* libmudflapth.so %if %{build_go} -ln -sf ../../../libgo.so.0.* libgo.so +ln -sf ../../../libgo.so.3.* libgo.so %endif %if %{build_libquadmath} ln -sf ../../../libquadmath.so.0.* libquadmath.so @@ -1283,10 +1392,16 @@ ln -sf ../../../libquadmath.so.0.* libquadmath.so %if %{build_libitm} ln -sf ../../../libitm.so.1.* libitm.so %endif +%if %{build_libatomic} +ln -sf ../../../libatomic.so.1.* libatomic.so +%endif +%if %{build_libasan} +ln -sf ../../../libasan.so.0.* libasan.so +%endif %if %{build_java} -ln -sf ../../../libgcj.so.13.* libgcj.so -ln -sf ../../../libgcj-tools.so.13.* libgcj-tools.so -ln -sf ../../../libgij.so.13.* libgij.so +ln -sf ../../../libgcj.so.14.* libgcj.so +ln -sf ../../../libgcj-tools.so.14.* libgcj-tools.so +ln -sf ../../../libgij.so.14.* libgij.so %endif else ln -sf ../../../../%{_lib}/libobjc.so.4 libobjc.so @@ -1296,7 +1411,7 @@ ln -sf ../../../../%{_lib}/libgomp.so.1.* libgomp.so ln -sf ../../../../%{_lib}/libmudflap.so.0.* libmudflap.so ln -sf ../../../../%{_lib}/libmudflapth.so.0.* libmudflapth.so %if %{build_go} -ln -sf ../../../../%{_lib}/libgo.so.0.* libgo.so +ln -sf ../../../../%{_lib}/libgo.so.3.* libgo.so %endif %if %{build_libquadmath} ln -sf ../../../../%{_lib}/libquadmath.so.0.* libquadmath.so @@ -1304,10 +1419,20 @@ ln -sf ../../../../%{_lib}/libquadmath.so.0.* libquadmath.so %if %{build_libitm} ln -sf ../../../../%{_lib}/libitm.so.1.* libitm.so %endif +%if %{build_libatomic} +ln -sf ../../../../%{_lib}/libatomic.so.1.* libatomic.so +%endif +%if %{build_libasan} +ln -sf ../../../../%{_lib}/libasan.so.0.* libasan.so +%endif +%if %{build_libtsan} +rm -f libtsan.so +echo 'INPUT ( %{_prefix}/%{_lib}/'`echo ../../../../%{_lib}/libtsan.so.0.* | sed 's,^.*libt,libt,'`' )' > libtsan.so +%endif %if %{build_java} -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 +ln -sf ../../../../%{_lib}/libgcj.so.14.* libgcj.so +ln -sf ../../../../%{_lib}/libgcj-tools.so.14.* libgcj-tools.so +ln -sf ../../../../%{_lib}/libgij.so.14.* libgij.so %endif fi %if %{build_java} @@ -1325,6 +1450,15 @@ mv -f %{buildroot}%{_prefix}/%{_lib}/libquadmath.*a $FULLLPATH/ %if %{build_libitm} mv -f %{buildroot}%{_prefix}/%{_lib}/libitm.*a $FULLLPATH/ %endif +%if %{build_libatomic} +mv -f %{buildroot}%{_prefix}/%{_lib}/libatomic.*a $FULLLPATH/ +%endif +%if %{build_libasan} +mv -f %{buildroot}%{_prefix}/%{_lib}/libasan.*a $FULLLPATH/ +%endif +%if %{build_libtsan} +mv -f %{buildroot}%{_prefix}/%{_lib}/libtsan.*a $FULLLPATH/ +%endif %if %{build_go} mv -f %{buildroot}%{_prefix}/%{_lib}/libgo.*a $FULLLPATH/ mv -f %{buildroot}%{_prefix}/%{_lib}/libgobegin.*a $FULLLPATH/ @@ -1381,8 +1515,8 @@ echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libmudflap.so.0.* | sed 's echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libmudflapth.so.0.* | sed 's,^.*libm,libm,'`' )' > 64/libmudflapth.so %if %{build_go} rm -f libgo.so -echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libgo.so.0.* | sed 's,^.*libg,libg,'`' )' > libgo.so -echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgo.so.0.* | sed 's,^.*libg,libg,'`' )' > 64/libgo.so +echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libgo.so.3.* | sed 's,^.*libg,libg,'`' )' > libgo.so +echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgo.so.3.* | sed 's,^.*libg,libg,'`' )' > 64/libgo.so %endif %if %{build_libquadmath} rm -f libquadmath.so @@ -1394,10 +1528,20 @@ 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_libatomic} +rm -f libatomic.so +echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libatomic.so.1.* | sed 's,^.*liba,liba,'`' )' > libatomic.so +echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libatomic.so.1.* | sed 's,^.*liba,liba,'`' )' > 64/libatomic.so +%endif +%if %{build_libasan} +rm -f libasan.so +echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libasan.so.0.* | sed 's,^.*liba,liba,'`' )' > libasan.so +echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libasan.so.0.* | sed 's,^.*liba,liba,'`' )' > 64/libasan.so +%endif %if %{build_java} -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 ../`echo ../../../../lib/libgcj.so.14.* | sed s~/lib/~/lib64/~` 64/libgcj.so +ln -sf ../`echo ../../../../lib/libgcj-tools.so.14.* | sed s~/lib/~/lib64/~` 64/libgcj-tools.so +ln -sf ../`echo ../../../../lib/libgij.so.14.* | 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 @@ -1421,6 +1565,14 @@ ln -sf ../lib64/libquadmath.a 64/libquadmath.a ln -sf lib32/libitm.a libitm.a ln -sf ../lib64/libitm.a 64/libitm.a %endif +%if %{build_libatomic} +ln -sf lib32/libatomic.a libatomic.a +ln -sf ../lib64/libatomic.a 64/libatomic.a +%endif +%if %{build_libasan} +ln -sf lib32/libasan.a libasan.a +ln -sf ../lib64/libasan.a 64/libasan.a +%endif %if %{build_go} ln -sf lib32/libgo.a libgo.a ln -sf ../lib64/libgo.a 64/libgo.a @@ -1447,8 +1599,8 @@ echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libmudflap.so.0.* | sed 's echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libmudflapth.so.0.* | sed 's,^.*libm,libm,'`' )' > 32/libmudflapth.so %if %{build_go} rm -f libgo.so -echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgo.so.0.* | sed 's,^.*libg,libg,'`' )' > libgo.so -echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgo.so.0.* | sed 's,^.*libg,libg,'`' )' > 32/libgo.so +echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgo.so.3.* | sed 's,^.*libg,libg,'`' )' > libgo.so +echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgo.so.3.* | sed 's,^.*libg,libg,'`' )' > 32/libgo.so %endif %if %{build_libquadmath} rm -f libquadmath.so @@ -1460,10 +1612,20 @@ 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_libatomic} +rm -f libatomic.so +echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libatomic.so.1.* | sed 's,^.*liba,liba,'`' )' > libatomic.so +echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libatomic.so.1.* | sed 's,^.*liba,liba,'`' )' > 32/libatomic.so +%endif +%if %{build_libasan} +rm -f libasan.so +echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libasan.so.0.* | sed 's,^.*liba,liba,'`' )' > libasan.so +echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libasan.so.0.* | sed 's,^.*liba,liba,'`' )' > 32/libasan.so +%endif %if %{build_java} -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 +ln -sf ../`echo ../../../../lib64/libgcj.so.14.* | sed s~/../lib64/~/~` 32/libgcj.so +ln -sf ../`echo ../../../../lib64/libgcj-tools.so.14.* | sed s~/../lib64/~/~` 32/libgcj-tools.so +ln -sf ../`echo ../../../../lib64/libgij.so.14.* | sed s~/../lib64/~/~` 32/libgij.so %endif mv -f %{buildroot}%{_prefix}/lib/libobjc.*a 32/ mv -f %{buildroot}%{_prefix}/lib/libgomp.*a 32/ @@ -1487,6 +1649,14 @@ ln -sf lib64/libquadmath.a libquadmath.a ln -sf ../lib32/libitm.a 32/libitm.a ln -sf lib64/libitm.a libitm.a %endif +%if %{build_libatomic} +ln -sf ../lib32/libatomic.a 32/libatomic.a +ln -sf lib64/libatomic.a libatomic.a +%endif +%if %{build_libasan} +ln -sf ../lib32/libasan.a 32/libasan.a +ln -sf lib64/libasan.a libasan.a +%endif %if %{build_go} ln -sf ../lib32/libgo.a 32/libgo.a ln -sf lib64/libgo.a libgo.a @@ -1516,6 +1686,12 @@ ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libq %if %{build_libitm} ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libitm.a 32/libitm.a %endif +%if %{build_libatomic} +ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libatomic.a 32/libatomic.a +%endif +%if %{build_libasan} +ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libasan.a 32/libasan.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 @@ -1534,7 +1710,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 libitm.a -o -name libgo.a -o -name libcaf\*.a \) \ + -o -name libitm.a -o -name libgo.a -o -name libcaf\*.a \ + -o -name libatomic.a -o -name libasan.a -o -name libtsan.a \) \ -a -type f` popd chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgfortran.so.3.* @@ -1546,8 +1723,17 @@ chmod 755 %{buildroot}%{_prefix}/%{_lib}/libquadmath.so.0.* %if %{build_libitm} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libitm.so.1.* %endif +%if %{build_libatomic} +chmod 755 %{buildroot}%{_prefix}/%{_lib}/libatomic.so.1.* +%endif +%if %{build_libasan} +chmod 755 %{buildroot}%{_prefix}/%{_lib}/libasan.so.0.* +%endif +%if %{build_libtsan} +chmod 755 %{buildroot}%{_prefix}/%{_lib}/libtsan.so.0.* +%endif %if %{build_go} -chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgo.so.0.* +chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgo.so.3.* %endif chmod 755 %{buildroot}%{_prefix}/%{_lib}/libobjc.so.4.* @@ -1615,6 +1801,7 @@ rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gcc-ranlib || : # Remove libraries for the other arch on multilib arches rm -f %{buildroot}%{_prefix}/lib/lib*.so* rm -f %{buildroot}%{_prefix}/lib/lib*.a +rm -f %{buildroot}/lib/libgcc_s*.so* %if %{build_go} rm -rf %{buildroot}%{_prefix}/lib/go/%{gcc_version}/%{gcc_target_platform} %ifnarch sparc64 ppc64 @@ -1625,6 +1812,7 @@ ln -sf %{multilib_32_arch}-%{_vendor}-%{_target_os} %{buildroot}%{_prefix}/lib/g %ifarch sparcv9 ppc rm -f %{buildroot}%{_prefix}/lib64/lib*.so* rm -f %{buildroot}%{_prefix}/lib64/lib*.a +rm -f %{buildroot}/lib64/libgcc_s*.so* %if %{build_go} rm -rf %{buildroot}%{_prefix}/lib64/go/%{gcc_version}/%{gcc_target_platform} %endif @@ -1846,6 +2034,18 @@ fi %postun -n libitm -p /sbin/ldconfig +%post -n libatomic -p /sbin/ldconfig + +%postun -n libatomic -p /sbin/ldconfig + +%post -n libasan -p /sbin/ldconfig + +%postun -n libasan -p /sbin/ldconfig + +%post -n libtsan -p /sbin/ldconfig + +%postun -n libtsan -p /sbin/ldconfig + %post -n libgo -p /sbin/ldconfig %postun -n libgo -p /sbin/ldconfig @@ -1930,6 +2130,9 @@ fi %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/adxintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/prfchwintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/rdseedintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/fxsrintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/xsaveintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/xsaveoptintrin.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 @@ -1968,6 +2171,9 @@ fi %if %{build_libitm} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libitm.spec %endif +%if %{build_cloog} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libcloog-isl.so.* +%endif %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/crt*.o @@ -1989,6 +2195,14 @@ fi %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libitm.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libitm.so %endif +%if %{build_libatomic} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libatomic.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libatomic.so +%endif +%if %{build_libasan} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libasan.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libasan.so +%endif %endif %ifarch %{multilib_64_archs} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32 @@ -2011,6 +2225,14 @@ fi %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libitm.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libitm.so %endif +%if %{build_libatomic} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libatomic.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libatomic.so +%endif +%if %{build_libasan} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libasan.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libasan.so +%endif %endif %ifarch sparcv9 sparc64 ppc ppc64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflap.a @@ -2025,6 +2247,28 @@ fi %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libitm.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libitm.so %endif +%if %{build_libatomic} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libatomic.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libatomic.so +%endif +%if %{build_libasan} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libasan.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libasan.so +%endif +%if %{build_libtsan} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libtsan.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libtsan.so +%endif +%else +%if %{build_libatomic} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libatomic.so +%endif +%if %{build_libasan} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libasan.so +%endif +%if %{build_libtsan} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libtsan.so +%endif %endif %dir %{_prefix}/libexec/getconf %{_prefix}/libexec/getconf/default @@ -2573,6 +2817,68 @@ fi %endif %endif +%if %{build_libatomic} +%files -n libatomic +%defattr(-,root,root,-) +%{_prefix}/%{_lib}/libatomic.so.1* + +%files -n libatomic-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/libatomic.a +%endif +%ifarch sparc64 ppc64 +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64/libatomic.a +%endif +%ifnarch sparcv9 sparc64 ppc ppc64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libatomic.a +%endif +%doc rpm.doc/changelogs/libatomic/ChangeLog* +%endif + +%if %{build_libasan} +%files -n libasan +%defattr(-,root,root,-) +%{_prefix}/%{_lib}/libasan.so.0* + +%files -n libasan-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/libasan.a +%endif +%ifarch sparc64 ppc64 +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64/libasan.a +%endif +%ifnarch sparcv9 sparc64 ppc ppc64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libasan.a +%endif +%doc rpm.doc/changelogs/libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT +%endif + +%if %{build_libtsan} +%files -n libtsan +%defattr(-,root,root,-) +%{_prefix}/%{_lib}/libtsan.so.0* + +%files -n libtsan-static +%defattr(-,root,root,-) +%dir %{_prefix}/lib/gcc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libtsan.a +%doc rpm.doc/changelogs/libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT +%endif + %if %{build_go} %files go %defattr(-,root,root,-) @@ -2608,7 +2914,7 @@ fi %files -n libgo %defattr(-,root,root,-) -%{_prefix}/%{_lib}/libgo.so.0* +%{_prefix}/%{_lib}/libgo.so.3* %doc rpm.doc/libgo/* %files -n libgo-devel @@ -2669,450 +2975,5 @@ fi %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin %changelog -* Fri Nov 30 2012 Tom Callaway 4.7.2-9 -- rebuild for new ppl/cloog -- pass --disable-ppl-version-check (for ppl 1.0) - -* Fri Nov 9 2012 Jakub Jelinek 4.7.2-8 -- update from the 4.7 branch - - PRs fortran/54917, libstdc++/28811, libstdc++/54482, libstdc++/55028, - libstdc++/55215, middle-end/55219, target/55204, - tree-optimization/54986 -- further debug info quality improvements -- fix reassociation (PR c++/55137) -- fix range test optimization with -fwrapv (PR tree-optimization/55236) -- add BuildRequires hostname (#875001) -- __cxa_vec_new[23] overflow checking (#875009) - -* Mon Nov 5 2012 Jakub Jelinek 4.7.2-7 -- update from the 4.7 branch - - PRs c++/54984, c++/54988, debug/54828, libstdc++/55047, libstdc++/55123, - libstdc++/55169, middle-end/54945, rtl-optimization/53701, - rtl-optimization/54870, target/53975, target/54892, target/55019, - target/55175, tree-optimization/53708, tree-optimization/54146, - tree-optimization/54877, tree-optimization/54902, - tree-optimization/54920, tree-optimization/54985 -- backported s390{,x} zEC12 enablement (#805114) -- backport of selected debug info quality improvements - - PRs debug/54402, debug/54693, debug/54953, debug/54970, debug/54971 -- optimize away overflow checking for new char[n]; and similar cases - where n is multiplied by 1 - -* Mon Oct 15 2012 Jon Ciesla 4.7.2-6 -- Provides: bundled(libiberty) - -* Mon Oct 15 2012 Jakub Jelinek 4.7.2-5 -- update from the 4.7 branch - - PRs fortran/54784, libfortran/54736, libstdc++/54861 - -* Tue Oct 9 2012 Jakub Jelinek 4.7.2-4 -- update from the 4.7 branch - - PRs c++/54777, c++/54858, debug/53135, target/54741, target/54785, - target/54854 -- backport of selected debug info quality improvements (#851467) - - PRs debug/48866, debug/52983, debug/53740, debug/53923, debug/54519, - debug/54551 - -* Mon Oct 1 2012 Jakub Jelinek 4.7.2-3 -- update from the 4.7 branch - - PRs target/54083, target/54703, target/54746, testsuite/54007 -- backport operator new[] overflow checking (#850911, PR c++/19351) - -* Fri Sep 21 2012 Jakub Jelinek 4.7.2-2 -- update from the 4.7 branch - - PRs c/54103, c/54552, libstdc++/54102, middle-end/54638, other/43620 - -* Thu Sep 20 2012 Jakub Jelinek 4.7.2-1 -- update from the 4.7 branch - - GCC 4.7.2 release - - PRs c++/53661, lto/54312, tree-optimization/54563 - -* Thu Sep 13 2012 Jakub Jelinek 4.7.1-8 -- update from the 4.7 branch - - PRs c++/53836, c++/53839, c++/54086, c++/54197, c++/54253, c++/54341, - c++/54506, c++/54511, c/54363, c/54428, c/54559, debug/54534, - driver/54335, fortran/53306, fortran/54208, fortran/54225, - fortran/54435, fortran/54443, fortran/54556, gcov-profile/54487, - libstdc++/54172, libstdc++/54185, libstdc++/54297, libstdc++/54351, - libstdc++/54376, libstdc++/54388, lto/53572, middle-end/53667, - middle-end/53992, middle-end/54146, middle-end/54486, - middle-end/54515, rtl-optimization/54088, rtl-optimization/54369, - rtl-optimization/54455, target/45070, target/46254, target/54212, - target/54220, target/54252, target/54436, target/54461, - target/54476, target/54536, tree-opt/54494, - tree-optimization/53922, tree-optimization/54498 -- fix up _mm_f{,n}m{add,sub}_s{s,d} fma intrinsics (PR target/54564) - -* Mon Aug 13 2012 Jakub Jelinek 4.7.1-7 -- update from the 4.7 branch - - PR rtl-optimization/53942 -- backport -mrdseed, -mprfchw and -madx support - -* Fri Aug 10 2012 Jakub Jelinek 4.7.1-6 -- update from the 4.7 branch - - PRs libstdc++/54036, libstdc++/54075, rtl-optimization/54157, - target/33135, target/52530 - -* Fri Jul 20 2012 Jakub Jelinek 4.7.1-5 -- update from the 4.7 branch - - PRs c++/54026, middle-end/54017, rtl-optimization/52250, target/53877, - target/54029 - - fix endless hang of C++ compiler (#841814, PR c++/54038) - -* Wed Jul 18 2012 Jakub Jelinek 4.7.1-4 -- update from the 4.7 branch - - PRs c++/53549, c++/53989, c++/53995, libstdc++/53978 - -* Mon Jul 16 2012 Jakub Jelinek 4.7.1-3 -- update from the 4.7 branch - - C++11 ABI change - std::list and std::pair in C++11 ABI compatible again - with C++03, but ABI incompatible with C++11 in GCC 4.7.[01] - - PRs bootstrap/52947, c++/53733, c++/53816, c++/53821, c++/53826, - c++/53882, c++/53953, fortran/53732, libstdc++/49561, - libstdc++/53578, libstdc++/53657, libstdc++/53830, libstdc++/53872, - middle-end/38474, middle-end/50708, middle-end/52621, - middle-end/52786, middle-end/53433, rtl-optimization/53908, - target/53110, target/53811, target/53853, target/53961, - testsuite/20771, tree-optimization/53693 -- backport -mrtm and -mhle support (PRs target/53194, target/53201, - target/53315) -- fix up ppc32 *movdi_internal32 pattern (#837630) -- apply ld.so arm hfp patch on all arm arches -- enable go support on arm - -* Fri Jul 13 2012 Jakub Jelinek 4.7.1-2 -- change ld.so pathname for arm hfp for F18+ - -* Fri Jun 29 2012 Jakub Jelinek 4.7.1-1 -- update from the 4.7 branch - - GCC 4.7.1 release - - PRs ada/53592, c++/51214, c++/52637, c++/52841, c++/52988, c++/53202, - c++/53305, c++/53498, c++/53524, c++/53594, c++/53599, c++/53602, - c++/53616, c++/53651, c++/53752, debug/53682, fortran/50619, - fortran/53597, fortran/53685, fortran/53691, gcov-profile/53744, - libgomp/52993, libstdc++/53270, libstdc++/53678, middle-end/53470, - middle-end/53580, middle-end/53790, preprocessor/37215, - rtl-optimization/53589, rtl-optimization/53700, target/52908, - target/53559, target/53595, target/53621, target/53759, - tree-optimization/52558 - -* Mon Jun 4 2012 Jakub Jelinek 4.7.0-7 -- update from the 4.7 branch - - PRs ada/53517, c++/52725, c++/52905, c++/52973, c++/53137, c++/53220, - c++/53356, c++/53484, c++/53491, c++/53500, c++/53503, - fortran/53521, libstdc++/52007, middle-end/47530, middle-end/48124, - middle-end/48493, middle-end/52080, middle-end/52097, - middle-end/52979, middle-end/53008, middle-end/53471, - middle-end/53501, rtl-optimization/52528, rtl-optimization/53519, - target/46261, target/52642, target/52667, tree-optimization/53438, - tree-optimization/53505, tree-optimization/53516, - tree-optimization/53550 - -* Fri May 25 2012 Jakub Jelinek 4.7.0-6 -- update from the 4.7 branch - - PRs ada/52362, ada/52494, bootstrap/53183, c++/53209, c++/53301, - c/53418, debug/52727, fortran/53310, fortran/53389, libstdc++/52700, - middle-end/51071, middle-end/52584, middle-end/53460, - rtl-optimization/52804, target/46098, target/53256, target/53272, - target/53358, target/53385, target/53416, target/53435, target/53448, - tree-optimization/53364, tree-optimization/53366, - tree-optimization/53408, tree-optimization/53409, - tree-optimization/53410, tree-optimization/53436, - tree-optimization/53465 - -* Mon May 7 2012 Jakub Jelinek 4.7.0-5 -- update from the 4.7 branch - - PRs fortran/53111, fortran/53255, target/48496, target/52999, - target/53228, tree-optimization/52633, tree-optimization/52870, - tree-optimization/53195, tree-optimization/53239 - -* Fri May 4 2012 Jakub Jelinek 4.7.0-4 -- update from the 4.7 branch - - PRs c++/53186, fortran/52864, libstdc++/53193, lto/52605, - target/52684, target/53199, tree-optimization/53144 - - fix up gcc-ar, gcc-nm and gcc-ranlib (#818311, PR plugins/53126) - -* Wed May 2 2012 Jakub Jelinek 4.7.0-3 -- update from the 4.7 branch - - PRs bootstrap/52840, c++/38543, c++/50303, c++/50830, c++/53003, - c/51527, c/52880, c/53060, fortran/53148, libstdc++/52689, - libstdc++/52839, libstdc++/53027, libstdc++/53067, libstdc++/53115, - middle-end/52939, middle-end/52999, middle-end/53084, - middle-end/53136, rtl-optimization/53160, target/52932, - target/53020, target/53033, target/53065, target/53120, - target/53138, testsuite/52641, testsuite/53046, - tree-optimization/53085, tree-optimization/53163, - tree-optimizations/52891 -- fix ARM SELECT_CC_MODE ICE (#817086, PR target/53187) -- fix predictive commoning debug info ICE (PR debug/53174) - -* Mon Apr 16 2012 Jakub Jelinek 4.7.0-2 -- update from the 4.7 branch - - PRs c++/52292, c++/52380, c++/52465, c++/52487, c++/52596, c++/52671, - c++/52672, c++/52685, c++/52718, c++/52743, c++/52746, c++/52759, - c++/52796, c++/52824, c++/52906, c/52682, c/52862, fortran/52452, - fortran/52668, fortran/52893, libgfortran/52758, libitm/52854, - libstdc++/52433, libstdc++/52476, libstdc++/52540, libstdc++/52591, - libstdc++/52699, libstdc++/52799, libstdc++/52822, libstdc++/52924, - libstdc++/52942, middle-end/51893, middle-end/52493, - middle-end/52547, middle-end/52580, middle-end/52640, - middle-end/52691, middle-end/52693, middle-end/52720, - middle-end/52750, middle-end/52894, other/52545, - rtl-optimization/52543, target/48596, target/48806, target/50310, - target/52461, target/52484, target/52488, target/52496, target/52499, - target/52505, target/52506, target/52507, target/52508, target/52610, - target/52692, target/52698, target/52717, target/52736, target/52737, - target/52775, tree-optimization/52406, tree-optimization/52678, - tree-optimization/52701, tree-optimization/52754, - tree-optimization/52835, tree-optimization/52943, - tree-optimization/52969 -- avoid duplicate pointers in C++ debug info due to injected class name - (PR debug/45088) -- libjava locale fixes (#712013) - -* Thu Mar 22 2012 Jakub Jelinek 4.7.0-1 -- update from the 4.7 branch - - GCC 25th Anniversary 4.7.0 release - - fix up new auto mangling - -* Thu Mar 15 2012 Jakub Jelinek 4.7.0-0.20 -- update from the 4.7 branch - - PRs fortran/52469, libitm/52526, libstdc++/52456, target/52450 - - fix __builtin_ir{ound,int}{,f,l} expansion (#803689, PR middle-end/52592) - - fix up devirtualization (#802731, PR c++/52582) -- fix up user defined literal operator"" lookup (PR c++/52521) -- avoid false positive -Wunused-but-set-* warnings with __builtin_shuffle - (PR c/52577) - -* Thu Mar 8 2012 Jakub Jelinek 4.7.0-0.19 -- update from trunk and the 4.7 branch - - PRs libstdc++/51785, middle-end/52419, middle-end/52443, - middle-end/52463, rtl-optimization/52417, target/49939, - target/51417, target/52408, target/52437, target/52481, - testsuite/52297, tree-opt/52242, tree-optimization/52424, - tree-optimization/52429, tree-optimization/52445 - - fix up mangling of operator"" (PR c++/52521) -- decrease size of .debug_ranges by ~ 20% (PR debug/51902) -- add support for demangling operator"" -- package %{_prefix}/bin/gcc-{ar,nm,ranlib} binaries for LTO - -* Wed Feb 29 2012 Jakub Jelinek 4.7.0-0.18 -- update from trunk - - PRs boehm-gc/48299, bootstrap/52397, bootstrap/52414, fortran/52386, - libstdc++/52191, lto/52400, middle-end/51752, target/49448, - target/51534, target/52148, target/52407, tree-optimization/52395, - tree-optimization/52402, tree-optimization/53207 - - fix bootstrap on ppc*/arm/s390* - -* Mon Feb 27 2012 Jakub Jelinek 4.7.0-0.17 -- update from trunk - - PRs boehm-gc/52179, libffi/52223, libstdc++/52188, middle-end/52355, - middle-end/52361, target/49263, target/49461, target/50580, - target/52352, target/52375, target/52390, testsuite/52201, - tree-optimization/52376 - -* Fri Feb 24 2012 Jakub Jelinek 4.7.0-0.16 -- update from trunk - - fix vtable for std::num_get > > and vtable for std::num_get > > - ABI breakage - - PR bootstrap/52287 - -* Thu Feb 23 2012 Jakub Jelinek 4.7.0-0.15 -- update from trunk - - PRs c/52290, fortran/52335, go/52349, libstdc++/50349, lto/50616, - middle-end/52329, rtl-optimization/50063, target/18145, target/52330, - tree-optimization/52019 -- disable go on arm again, still not ready there - -* Tue Feb 21 2012 Jakub Jelinek 4.7.0-0.14 -- update from trunk - - PRs c++/51415, c++/52126, c++/52248, c++/52312, fortran/52295, - libstdc++/47058, libstdc++/52189, libstdc++/52241, libstdc++/52300, - libstdc++/52309, libstdc++/52317, middle-end/52141, middle-end/52314, - rtl-optimization/52208, target/50166, target/51753, target/52137, - target/52238, target/52294, testsuite/52229, translation/52232, - translation/52234, translation/52245, translation/52246, - translation/52262, translation/52273, tree-optimization/52285, - tree-optimization/52286, tree-optimization/52298, - tree-optimization/52318, tree-optimization/52324 - -* Thu Feb 16 2012 Jakub Jelinek 4.7.0-0.13 -- update from trunk - - PRs boehm-gc/48514, bootstrap/52172, c++/39055, c++/51910, c++/52215, - c/52181, c/52190, debug/52165, debug/52260, driver/48524, - fortran/32380, fortran/52151, go/48411, go/51874, libffi/52221, - libitm/52042, libitm/52220, libstdc++/51368, lto/52178, - middle-end/48600, middle-end/51867, middle-end/51929, - middle-end/52140, middle-end/52142, middle-end/52177, - middle-end/52209, middle-end/52214, middle-end/52230, - rtl-optimization/52175, target/51921, target/52146, target/52199, - target/52205, target/52261, testsuite/50076, translation/52193, - translation/52211, translation/52264, tree-optimization/50031, - tree-optimization/50561, tree-optimization/52210, - tree-optimization/52244, tree-optimization/52255 - - fix asm goto handling in templates (#790221, PR c++/52247) -- reenable go on ppc/ppc64/s390/s390x/arm - -* Wed Feb 8 2012 Jakub Jelinek 4.7.0-0.12 -- update from trunk - - PRs c++/52035, fortran/51514, gcov-profile/52150, libstdc++/51296, - libstdc++/51906, middle-end/24306, middle-end/51994, - middle-end/52074, rtl-optimization/52139, rtl-optimization/52170, - target/40068, target/52152, target/52154, target/52155, - tree-optimization/46886 - - fix up build on ppc* - - don't look for lto plugin/lto-wrapper if -E/-S/-c or in cpp -- move liblto_plugin.so* back into gcc subpackage - -* Mon Feb 6 2012 Jakub Jelinek 4.7.0-0.11 -- update from trunk - - PRs bootstrap/52039, bootstrap/52041, bootstrap/52058, c++/48680, - c++/51327, c++/51370, c++/51852, c++/52043, c++/52088, c/52118, - debug/52001, debug/52027, debug/52048, fortran/32373, fortran/41587, - fortran/41600, fortran/46356, fortran/48705, fortran/48847, - fortran/51754, fortran/51808, fortran/51870, fortran/51943, - fortran/51946, fortran/51953, fortran/51958, fortran/51970, - fortran/51972, fortran/51977, fortran/52012, fortran/52013, - fortran/52016, fortran/52022, fortran/52024, fortran/52029, - fortran/52038, fortran/52093, fortran/52102, go/47656, go/48501, - libitm/51822, libjava/48512, libstdc++/49445, libstdc++/51649, - libstdc++/51795, libstdc++/51798, libstdc++/51811, libstdc++/51956, - libstdc++/52068, libstdc++/52104, libstdc++/52119, libstdc++/52128, - middle-end/43967, middle-end/47982, middle-end/48071, - middle-end/51389, middle-end/51959, middle-end/51998, - middle-end/52047, rtl-optimization/49800, rtl-optimization/51374, - rtl-optimization/51978, rtl-optimization/52092, - rtl-optimization/52095, rtl-optimization/52113, target/51500, - target/51835, target/51871, target/51920, target/51974, target/52079, - target/52107, target/52125, target/52129, testsuite/51875, - testsuite/52011, tree-optimization/48794, tree-optimization/50444, - tree-optimization/50955, tree-optimization/50969, - tree-optimization/51528, tree-optimization/51990, - tree-optimization/52020, tree-optimization/52028, - tree-optimization/52045, tree-optimization/52046, - tree-optimization/52073, tree-optimization/52091, - tree-optimization/52115 - - fix i?86 mem += reg; mem cmp 0 8-bit peephole2 (#786570, PR target/52086) - - fix fortran ICE on elemental call (#785433, PR fortran/52059) -- fix up /lib/cpp symlink for UsrMove (#787460) -- move LTO plugin into cpp subpackage (#787345) -- fix debug ICE with i387 reg-stack (#787518, PR debug/52132) -- fix ARM combine bug (PR rtl-optimization/52060) -- fix a DWARF4 .debug_types DIE cloning bug (PR debug/51950) - -* Thu Jan 26 2012 Jakub Jelinek 4.7.0-0.10 -- update from trunk - - PRs bootstrap/51985, c++/51223, c++/51812, c++/51917, c++/51928, - c++/51930, c++/51973, c++/51992, driver/47249, fortran/51966, - fortran/51995, libstdc++/49829, lto/51698, middle-end/45678, - middle-end/51986, rtl-optimization/48308, rtl-optimization/48374 - - fix data-ref handling of non-volatile inline asms (#784242, - PR tree-optimization/51987) -- fix ARM ICE with invalid peephole (#784748, PR target/52006) - -* Mon Jan 23 2012 Jakub Jelinek 4.7.0-0.9 -- update from trunk - - PRs ada/46192, c++/51344, c++/51398, c++/51402, c++/51832, c++/51919, - c++/51922, debug/45682, fortran/50556, fortran/51056, fortran/51904, - fortran/51913, fortran/51948, libgcj/23182, libgfortran/51899, - libitm/51830, libstdc++/50982, lto/51916, middle-end/45416, - rtl-optimization/40761, rtl-optimization/51924, target/47096, - target/49868, target/50313, target/50887, target/51106, target/51819, - target/51900, target/51915, target/51931, target/51934, - testsuite/51941, tree-optimization/51895, tree-optimization/51903, - tree-optimization/51914, tree-optimization/51949 - - fix REE pass (#783481, PR rtl-optimization/51933) - - further overload fixes with using decls (#783586, PR c++/51925) -- fix ICE during expansion with BLKmode MEM_REF (#782868, PR middle-end/51895) -- fix ppc64 profiledbootstrap (PR target/51957) -- revert broken stack layout change (PR tree-optimization/46590) -- fix ARM ICE on neon insn splitting (PR target/51968) - -* Thu Jan 19 2012 Jakub Jelinek 4.7.0-0.8 -- update from trunk - - PRs bootstrap/50237, c++/51225, c++/51889, fortran/48426, fortran/51634, - go/50656, libmudflap/40778, libstdc++/51845, libstdc++/51866, - lto/51280, middle-end/51192, rtl-optimization/48496, - rtl-optimization/51505, tree-optimization/37997, - tree-optimization/46590 -- fix a reload bug on s390 (#773565, PR rtl-optimization/51856) - -* Tue Jan 17 2012 Jakub Jelinek 4.7.0-0.7 -- update from trunk - - PRs bootstrap/51860, c++/14179, c++/20681, c++/50012, c++/51403, - c++/51620, c++/51633, c++/51714, c++/51777, c++/51813, c++/51827, - c++/51854, c++/51868, c/12245, fortran/36755, fortran/48351, - fortran/51800, fortran/51809, fortran/51816, fortran/51842, - fortran/51869, libitm/51173, libitm/51855, middle-end/51782, - middle-end/8081, other/51165, rtl-optimization/51821, target/47852, - target/50925, target/51756, tree-optimization/51865 - - fix up ppc64 bootstrap with -mminimal-toc (#773040, PR bootstrap/51872) - - fix up -ftree-tail-merge (#782231, PR tree-optimization/51877) -- package up arm and sparc specific headers (#781765) -- enable libitm and disable go on ppc/ppc64 -- fix up big-endian libstdc++ miscompilation (PR middle-end/50325) -- fix up arm neon vectorization ICEs (PR target/51876) - -* Thu Jan 12 2012 Jakub Jelinek 4.7.0-0.6 -- update from trunk - - PRs ada/41929, bootstrap/51705, bootstrap/51796, c++/47450, - c++/48051, c++/50855, c++/51322, c++/51433, c++/51565, - c++/51613, c++/51614, c++/51818, c++/6057, debug/51471, - fortran/51057, fortran/51578, fortran/51616, fortran/51652, - fortran/51758, fortran/51791, fortran/51792, gcov-profile/50127, - gcov-profile/51715, gcov-profile/51717, libstdc++/51673, - middle-end/51516, middle-end/51806, preprocessor/33919, - preprocessor/51776, rtl-optimization/51271, target/47333, - rarget/49868, testsuite/51655, tree-optimization/49642, - tree-optimization/50913, tree-optimization/51600, - tree-optimization/51680, tree-optimization/51694, - tree-optimization/51759, tree-optimization/51775, - tree-optimization/51799, tree-optimization/51801 - -* Fri Jan 6 2012 Jakub Jelinek 4.7.0-0.5 -- update from trunk - - PRs c++/51541, fortran/48946, libstdc++/51504, lto/51774, - rtl-optimization/51771, target/51681, tree-optimization/51315 -- disable go on s390{,x} -- disable profiledbootstrap on arm and sparc* for now - -* Thu Jan 5 2012 Jakub Jelinek 4.7.0-0.4 -- update from trunk - - PRs bootstrap/51072, bootstrap/51648, debug/51746, debug/51762, - lto/41576, lto/50490, middle-end/44777, middle-end/49710, - middle-end/51472, middle-end/51761, middle-end/51764, - middle-end/51768, other/51171, rtl-optimization/51767, - tree-optimization/51624, tree-optimization/51760 -- disable go on arm (#771482) -- enable profiledbootstrap - -* Wed Jan 4 2012 Jakub Jelinek 4.7.0-0.3 -- update from trunk - - PRs bootstrap/51006, bootstrap/51734, c++/29273, c++/51064, c++/51738, - debug/51695, fortran/49693, fortran/50981, middle-end/51696, - middle-end/51750, other/51163, other/51164, tree-optimization/49651 -- fix up libitm.so.1 - -* Tue Jan 3 2012 Jakub Jelinek 4.7.0-0.2 -- update from trunk - - 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 4.7.0-0.1 +* Sun Jan 6 2013 Jakub Jelinek 4.8.0-0.3 - new package diff --git a/gcc47-arm-hfp-ldso.patch b/gcc47-arm-hfp-ldso.patch deleted file mode 100644 index 2f0b8c4..0000000 --- a/gcc47-arm-hfp-ldso.patch +++ /dev/null @@ -1,52 +0,0 @@ -2012-05-01 Richard Earnshaw - - * arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_DEFAULT): Avoid ifdef - comparing enumeration values. Update comments. - -2012-04-26 Michael Hope - Richard Earnshaw - - * config/arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_SOFT_FLOAT): Define. - (GLIBC_DYNAMIC_LINKER_HARD_FLOAT): Define. - (GLIBC_DYNAMIC_LINKER_DEFAULT): Define. - (GLIBC_DYNAMIC_LINKER): Redefine to use the hard float path. - ---- gcc/config/arm/linux-eabi.h (revision 186858) -+++ gcc/config/arm/linux-eabi.h (revision 187012) -@@ -32,7 +32,8 @@ - while (false) - - /* We default to a soft-float ABI so that binaries can run on all -- target hardware. */ -+ target hardware. If you override this to use the hard-float ABI then -+ change the setting of GLIBC_DYNAMIC_LINKER_DEFAULT as well. */ - #undef TARGET_DEFAULT_FLOAT_ABI - #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT - -@@ -59,10 +60,23 @@ - #undef SUBTARGET_EXTRA_LINK_SPEC - #define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION - --/* Use ld-linux.so.3 so that it will be possible to run "classic" -- GNU/Linux binaries on an EABI system. */ -+/* GNU/Linux on ARM currently supports three dynamic linkers: -+ - ld-linux.so.2 - for the legacy ABI -+ - ld-linux.so.3 - for the EABI-derived soft-float ABI -+ - ld-linux-armhf.so.3 - for the EABI-derived hard-float ABI. -+ All the dynamic linkers live in /lib. -+ We default to soft-float, but this can be overridden by changing both -+ GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI. */ -+ - #undef GLIBC_DYNAMIC_LINKER --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.3" -+#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "/lib/ld-linux.so.3" -+#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-linux-armhf.so.3" -+#define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT -+ -+#define GLIBC_DYNAMIC_LINKER \ -+ "%{mfloat-abi=hard:" GLIBC_DYNAMIC_LINKER_HARD_FLOAT "} \ -+ %{mfloat-abi=soft*:" GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "} \ -+ %{!mfloat-abi=*:" GLIBC_DYNAMIC_LINKER_DEFAULT "}" - - /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to - use the GNU/Linux version, not the generic BPABI version. */ diff --git a/gcc47-c++-builtin-redecl.patch b/gcc47-c++-builtin-redecl.patch deleted file mode 100644 index fa30745..0000000 --- a/gcc47-c++-builtin-redecl.patch +++ /dev/null @@ -1,134 +0,0 @@ -2007-10-02 Jakub Jelinek - - * 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 deleted file mode 100644 index 1ed7165..0000000 --- a/gcc47-cloog-dl.patch +++ /dev/null @@ -1,472 +0,0 @@ -2011-01-04 Jakub Jelinek - - * 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 . 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) - - # - # 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 -+#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-libitm-fno-exceptions.patch b/gcc47-libitm-fno-exceptions.patch deleted file mode 100644 index 8b9d590..0000000 --- a/gcc47-libitm-fno-exceptions.patch +++ /dev/null @@ -1,28 +0,0 @@ -2011-12-22 Jakub Jelinek - - * 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,8 @@ endif - if ARCH_X86_AVX - x86_avx.lo : XCFLAGS += -mavx - endif -+beginend.lo : CXXCOMPILE += -fno-exceptions -+beginend.lo : LTCXXCOMPILE += -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,8 @@ 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 : CXXCOMPILE += -fno-exceptions -+beginend.lo : LTCXXCOMPILE += -fno-exceptions - - all-local: $(STAMP_GENINSRC) - diff --git a/gcc47-libjava-prims-ctype.patch b/gcc47-libjava-prims-ctype.patch deleted file mode 100644 index 027e1e7..0000000 --- a/gcc47-libjava-prims-ctype.patch +++ /dev/null @@ -1,22 +0,0 @@ -2011-10-27 Jakub Jelinek - - * 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 - #include - #define PROCESS_GCJ_PROPERTIES process_gcj_properties() diff --git a/gcc47-ppl-0.10.patch b/gcc47-ppl-0.10.patch deleted file mode 100644 index 45b07f4..0000000 --- a/gcc47-ppl-0.10.patch +++ /dev/null @@ -1,121 +0,0 @@ -2011-01-28 Jakub Jelinek - - Revert: - 2011-01-25 Sebastian Pop - - * 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) -@@ -362,7 +362,7 @@ installed but it is not in your default - @option{--with-mpc} configure option should be used. See also - @option{--with-mpc-lib} and @option{--with-mpc-include}. - --@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-pr55137.patch b/gcc47-pr55137.patch deleted file mode 100644 index 0595ac5..0000000 --- a/gcc47-pr55137.patch +++ /dev/null @@ -1,180 +0,0 @@ -2012-11-07 Jakub Jelinek - - PR c++/55137 - * fold-const.c (fold_binary_loc) : Don't introduce - TREE_OVERFLOW through reassociation. If type doesn't have defined - overflow, but one or both of the operands do, use the wrapping type - for reassociation and only convert to type at the end. - - * g++.dg/opt/pr55137.C: New test. - * gcc.c-torture/execute/pr55137.c: New test. - ---- gcc/fold-const.c.jj 2012-11-07 09:16:41.929494183 +0100 -+++ gcc/fold-const.c 2012-11-07 09:47:12.227710542 +0100 -@@ -10309,6 +10309,7 @@ fold_binary_loc (location_t loc, - { - tree var0, con0, lit0, minus_lit0; - tree var1, con1, lit1, minus_lit1; -+ tree atype = type; - bool ok = true; - - /* Split both trees into variables, constants, and literals. Then -@@ -10324,11 +10325,25 @@ fold_binary_loc (location_t loc, - if (code == MINUS_EXPR) - code = PLUS_EXPR; - -- /* With undefined overflow we can only associate constants with one -- variable, and constants whose association doesn't overflow. */ -+ /* With undefined overflow prefer doing association in a type -+ which wraps on overflow, if that is one of the operand types. */ - if ((POINTER_TYPE_P (type) && POINTER_TYPE_OVERFLOW_UNDEFINED) - || (INTEGRAL_TYPE_P (type) && !TYPE_OVERFLOW_WRAPS (type))) - { -+ if (INTEGRAL_TYPE_P (TREE_TYPE (arg0)) -+ && TYPE_OVERFLOW_WRAPS (TREE_TYPE (arg0))) -+ atype = TREE_TYPE (arg0); -+ else if (INTEGRAL_TYPE_P (TREE_TYPE (arg1)) -+ && TYPE_OVERFLOW_WRAPS (TREE_TYPE (arg1))) -+ atype = TREE_TYPE (arg1); -+ gcc_assert (TYPE_PRECISION (atype) == TYPE_PRECISION (type)); -+ } -+ -+ /* With undefined overflow we can only associate constants with one -+ variable, and constants whose association doesn't overflow. */ -+ if ((POINTER_TYPE_P (atype) && POINTER_TYPE_OVERFLOW_UNDEFINED) -+ || (INTEGRAL_TYPE_P (atype) && !TYPE_OVERFLOW_WRAPS (atype))) -+ { - if (var0 && var1) - { - tree tmp0 = var0; -@@ -10343,16 +10358,6 @@ fold_binary_loc (location_t loc, - if (!operand_equal_p (tmp0, tmp1, 0)) - ok = false; - } -- -- if (ok && lit0 && lit1) -- { -- tree tmp0 = fold_convert (type, lit0); -- tree tmp1 = fold_convert (type, lit1); -- -- if (!TREE_OVERFLOW (tmp0) && !TREE_OVERFLOW (tmp1) -- && TREE_OVERFLOW (fold_build2 (code, type, tmp0, tmp1))) -- ok = false; -- } - } - - /* Only do something if we found more than two objects. Otherwise, -@@ -10363,10 +10368,16 @@ fold_binary_loc (location_t loc, - + (lit0 != 0) + (lit1 != 0) - + (minus_lit0 != 0) + (minus_lit1 != 0)))) - { -- var0 = associate_trees (loc, var0, var1, code, type); -- con0 = associate_trees (loc, con0, con1, code, type); -- lit0 = associate_trees (loc, lit0, lit1, code, type); -- minus_lit0 = associate_trees (loc, minus_lit0, minus_lit1, code, type); -+ bool any_overflows = false; -+ if (lit0) any_overflows |= TREE_OVERFLOW (lit0); -+ if (lit1) any_overflows |= TREE_OVERFLOW (lit1); -+ if (minus_lit0) any_overflows |= TREE_OVERFLOW (minus_lit0); -+ if (minus_lit1) any_overflows |= TREE_OVERFLOW (minus_lit1); -+ var0 = associate_trees (loc, var0, var1, code, atype); -+ con0 = associate_trees (loc, con0, con1, code, atype); -+ lit0 = associate_trees (loc, lit0, lit1, code, atype); -+ minus_lit0 = associate_trees (loc, minus_lit0, minus_lit1, -+ code, atype); - - /* Preserve the MINUS_EXPR if the negative part of the literal is - greater than the positive part. Otherwise, the multiplicative -@@ -10380,38 +10391,45 @@ fold_binary_loc (location_t loc, - && tree_int_cst_lt (lit0, minus_lit0)) - { - minus_lit0 = associate_trees (loc, minus_lit0, lit0, -- MINUS_EXPR, type); -+ MINUS_EXPR, atype); - lit0 = 0; - } - else - { - lit0 = associate_trees (loc, lit0, minus_lit0, -- MINUS_EXPR, type); -+ MINUS_EXPR, atype); - minus_lit0 = 0; - } - } -+ -+ /* Don't introduce overflows through reassociation. */ -+ if (!any_overflows -+ && ((lit0 && TREE_OVERFLOW (lit0)) -+ || (minus_lit0 && TREE_OVERFLOW (minus_lit0)))) -+ return NULL_TREE; -+ - if (minus_lit0) - { - if (con0 == 0) - return - fold_convert_loc (loc, type, - associate_trees (loc, var0, minus_lit0, -- MINUS_EXPR, type)); -+ MINUS_EXPR, atype)); - else - { - con0 = associate_trees (loc, con0, minus_lit0, -- MINUS_EXPR, type); -+ MINUS_EXPR, atype); - return - fold_convert_loc (loc, type, - associate_trees (loc, var0, con0, -- PLUS_EXPR, type)); -+ PLUS_EXPR, atype)); - } - } - -- con0 = associate_trees (loc, con0, lit0, code, type); -+ con0 = associate_trees (loc, con0, lit0, code, atype); - return - fold_convert_loc (loc, type, associate_trees (loc, var0, con0, -- code, type)); -+ code, atype)); - } - } - ---- gcc/testsuite/g++.dg/opt/pr55137.C.jj 2012-11-07 09:31:45.027160654 +0100 -+++ gcc/testsuite/g++.dg/opt/pr55137.C 2012-11-07 09:31:45.028160649 +0100 -@@ -0,0 +1,4 @@ -+// PR c++/55137 -+// { dg-do compile } -+ -+enum E { F = -1 + (int) (sizeof (int) - 1) }; ---- gcc/testsuite/gcc.c-torture/execute/pr55137.c.jj 2012-11-07 09:44:11.226768063 +0100 -+++ gcc/testsuite/gcc.c-torture/execute/pr55137.c 2012-11-07 09:44:24.380691303 +0100 -@@ -0,0 +1,30 @@ -+/* PR c++/55137 */ -+ -+extern void abort (void); -+ -+int -+foo (unsigned int x) -+{ -+ return ((int) (x + 1U) + 1) < (int) x; -+} -+ -+int -+bar (unsigned int x) -+{ -+ return (int) (x + 1U) + 1; -+} -+ -+int -+baz (unsigned int x) -+{ -+ return x + 1U; -+} -+ -+int -+main () -+{ -+ if (foo (__INT_MAX__) != (bar (__INT_MAX__) < __INT_MAX__) -+ || foo (__INT_MAX__) != ((int) baz (__INT_MAX__) + 1 < __INT_MAX__)) -+ abort (); -+ return 0; -+} diff --git a/gcc47-pr55236.patch b/gcc47-pr55236.patch deleted file mode 100644 index e661544..0000000 --- a/gcc47-pr55236.patch +++ /dev/null @@ -1,62 +0,0 @@ -2012-11-08 Jakub Jelinek - - PR tree-optimization/55236 - * fold-const.c (make_range_step) : For -fwrapv - and signed ARG0_TYPE, force low and high to be non-NULL. - - * gcc.dg/pr55236.c: New test. - ---- gcc/fold-const.c.jj 2012-11-07 11:24:34.000000000 +0100 -+++ gcc/fold-const.c 2012-11-08 16:54:38.978339040 +0100 -@@ -3880,6 +3880,17 @@ make_range_step (location_t loc, enum tr - return arg0; - - case NEGATE_EXPR: -+ /* If flag_wrapv and ARG0_TYPE is signed, make sure -+ low and high are non-NULL, then normalize will DTRT. */ -+ if (!TYPE_UNSIGNED (arg0_type) -+ && !TYPE_OVERFLOW_UNDEFINED (arg0_type)) -+ { -+ if (low == NULL_TREE) -+ low = TYPE_MIN_VALUE (arg0_type); -+ if (high == NULL_TREE) -+ high = TYPE_MAX_VALUE (arg0_type); -+ } -+ - /* (-x) IN [a,b] -> x in [-b, -a] */ - n_low = range_binop (MINUS_EXPR, exp_type, - build_int_cst (exp_type, 0), ---- gcc/testsuite/gcc.dg/pr55236.c.jj 2012-11-08 16:40:49.171781137 +0100 -+++ gcc/testsuite/gcc.dg/pr55236.c 2012-11-08 16:41:20.044578919 +0100 -@@ -0,0 +1,31 @@ -+/* PR tree-optimization/55236 */ -+/* { dg-do run } */ -+/* { dg-options "-O2 -fwrapv" } */ -+ -+extern void abort (); -+ -+__attribute__((noinline, noclone)) void -+foo (int i) -+{ -+ if (i > 0) -+ abort (); -+ i = -i; -+ if (i < 0) -+ return; -+ abort (); -+} -+ -+__attribute__((noinline, noclone)) void -+bar (int i) -+{ -+ if (i > 0 || (-i) >= 0) -+ abort (); -+} -+ -+int -+main () -+{ -+ foo (-__INT_MAX__ - 1); -+ bar (-__INT_MAX__ - 1); -+ return 0; -+} diff --git a/gcc47-rh837630.patch b/gcc47-rh837630.patch deleted file mode 100644 index d7d1e94..0000000 --- a/gcc47-rh837630.patch +++ /dev/null @@ -1,16 +0,0 @@ -2012-07-16 Alan Modra - - * config/rs6000/rs6000.md (*movdi_internal32): Use m constraint instead - of o<>. - ---- gcc/config/rs6000/rs6000.md 2012-07-16 10:14:43.198085150 +0200 -+++ gcc/config/rs6000/rs6000.md 2012-07-16 10:33:31.856023210 +0200 -@@ -10145,7 +10145,7 @@ - ; List r->r after r->"o<>", otherwise reload will try to reload a - ; non-offsettable address by using r->r which won't make progress. - (define_insn "*movdi_internal32" -- [(set (match_operand:DI 0 "rs6000_nonimmediate_operand" "=o<>,r,r,*d,*d,m,r,?wa") -+ [(set (match_operand:DI 0 "rs6000_nonimmediate_operand" "=m,r,r,*d,*d,m,r,?wa") - (match_operand:DI 1 "input_operand" "r,r,m,d,m,d,IJKnGHF,O"))] - "! TARGET_POWERPC64 - && (gpc_reg_operand (operands[0], DImode) diff --git a/gcc48-asan-ppc.patch b/gcc48-asan-ppc.patch new file mode 100644 index 0000000..30ab38f --- /dev/null +++ b/gcc48-asan-ppc.patch @@ -0,0 +1,145 @@ +2012-12-21 Jakub Jelinek + + * varasm.c (output_constant_def_contents): For asan_protect_global + protected strings, adjust DECL_ALIGN if needed, before testing for + anchored symbols. + (place_block_symbol): Adjust size for asan protected STRING_CSTs if + TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected + normal decls. + (output_object_block): For asan protected decls, emit asan padding + after their contents. + * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here. + (asan_finish_file): Test it here instead. + +--- gcc/varasm.c.jj 2012-12-20 19:10:19.856526720 +0100 ++++ gcc/varasm.c 2012-12-21 10:37:44.481999545 +0100 +@@ -3252,6 +3252,7 @@ output_constant_def_contents (rtx symbol + tree decl = SYMBOL_REF_DECL (symbol); + tree exp = DECL_INITIAL (decl); + unsigned int align; ++ bool asan_protected = false; + + /* Make sure any other constants whose addresses appear in EXP + are assigned label numbers. */ +@@ -3260,6 +3261,14 @@ output_constant_def_contents (rtx symbol + /* We are no longer deferring this constant. */ + TREE_ASM_WRITTEN (decl) = TREE_ASM_WRITTEN (exp) = 1; + ++ if (flag_asan && TREE_CODE (exp) == STRING_CST ++ && asan_protect_global (exp)) ++ { ++ asan_protected = true; ++ DECL_ALIGN (decl) = MAX (DECL_ALIGN (decl), ++ ASAN_RED_ZONE_SIZE * BITS_PER_UNIT); ++ } ++ + /* If the constant is part of an object block, make sure that the + decl has been positioned within its block, but do not write out + its definition yet. output_object_blocks will do that later. */ +@@ -3267,15 +3276,8 @@ output_constant_def_contents (rtx symbol + place_block_symbol (symbol); + else + { +- bool asan_protected = false; + align = DECL_ALIGN (decl); + switch_to_section (get_constant_section (exp, align)); +- if (flag_asan && TREE_CODE (exp) == STRING_CST +- && asan_protect_global (exp)) +- { +- asan_protected = true; +- align = MAX (align, ASAN_RED_ZONE_SIZE * BITS_PER_UNIT); +- } + if (align > BITS_PER_UNIT) + ASM_OUTPUT_ALIGN (asm_out_file, floor_log2 (align / BITS_PER_UNIT)); + assemble_constant_contents (exp, XSTR (symbol, 0), align); +@@ -6968,6 +6970,10 @@ place_block_symbol (rtx symbol) + decl = SYMBOL_REF_DECL (symbol); + alignment = DECL_ALIGN (decl); + size = get_constant_size (DECL_INITIAL (decl)); ++ if (flag_asan ++ && TREE_CODE (DECL_INITIAL (decl)) == STRING_CST ++ && asan_protect_global (DECL_INITIAL (decl))) ++ size += asan_red_zone_size (size); + } + else + { +@@ -6975,7 +6981,11 @@ place_block_symbol (rtx symbol) + alignment = DECL_ALIGN (decl); + size = tree_low_cst (DECL_SIZE_UNIT (decl), 1); + if (flag_asan && asan_protect_global (decl)) +- size += asan_red_zone_size (size); ++ { ++ size += asan_red_zone_size (size); ++ alignment = MAX (alignment, ++ ASAN_RED_ZONE_SIZE * BITS_PER_UNIT); ++ } + } + + /* Calculate the object's offset from the start of the block. */ +@@ -7114,16 +7124,34 @@ output_object_block (struct object_block + } + else if (TREE_CONSTANT_POOL_ADDRESS_P (symbol)) + { ++ HOST_WIDE_INT size; + decl = SYMBOL_REF_DECL (symbol); + assemble_constant_contents (DECL_INITIAL (decl), XSTR (symbol, 0), + DECL_ALIGN (decl)); +- offset += get_constant_size (DECL_INITIAL (decl)); ++ size = get_constant_size (DECL_INITIAL (decl)); ++ offset += size; ++ if (flag_asan ++ && TREE_CODE (DECL_INITIAL (decl)) == STRING_CST ++ && asan_protect_global (DECL_INITIAL (decl))) ++ { ++ size = asan_red_zone_size (size); ++ assemble_zeros (size); ++ offset += size; ++ } + } + else + { ++ HOST_WIDE_INT size; + decl = SYMBOL_REF_DECL (symbol); + assemble_variable_contents (decl, XSTR (symbol, 0), false); +- offset += tree_low_cst (DECL_SIZE_UNIT (decl), 1); ++ size = tree_low_cst (DECL_SIZE_UNIT (decl), 1); ++ offset += size; ++ if (flag_asan && asan_protect_global (decl)) ++ { ++ size = asan_red_zone_size (size); ++ assemble_zeros (size); ++ offset += size; ++ } + } + } + } +--- gcc/asan.c.jj 2012-12-20 11:38:14.000000000 +0100 ++++ gcc/asan.c 2012-12-21 10:49:45.364823759 +0100 +@@ -463,7 +463,6 @@ asan_protect_global (tree decl) + || DECL_THREAD_LOCAL_P (decl) + /* Externs will be protected elsewhere. */ + || DECL_EXTERNAL (decl) +- || !TREE_ASM_WRITTEN (decl) + || !DECL_RTL_SET_P (decl) + /* Comdat vars pose an ABI problem, we can't know if + the var that is selected by the linker will have +@@ -1699,7 +1698,8 @@ asan_finish_file (void) + tree fn = builtin_decl_implicit (BUILT_IN_ASAN_INIT); + append_to_statement_list (build_call_expr (fn, 0), &asan_ctor_statements); + FOR_EACH_DEFINED_VARIABLE (vnode) +- if (asan_protect_global (vnode->symbol.decl)) ++ if (TREE_ASM_WRITTEN (vnode->symbol.decl) ++ && asan_protect_global (vnode->symbol.decl)) + ++gcount; + htab_t const_desc_htab = constant_pool_htab (); + htab_traverse (const_desc_htab, count_string_csts, &gcount); +@@ -1721,7 +1721,8 @@ asan_finish_file (void) + DECL_IGNORED_P (var) = 1; + vec_alloc (v, gcount); + FOR_EACH_DEFINED_VARIABLE (vnode) +- if (asan_protect_global (vnode->symbol.decl)) ++ if (TREE_ASM_WRITTEN (vnode->symbol.decl) ++ && asan_protect_global (vnode->symbol.decl)) + asan_add_global (vnode->symbol.decl, TREE_TYPE (type), v); + struct asan_add_string_csts_data aascd; + aascd.type = TREE_TYPE (type); diff --git a/gcc48-cloog-dl.patch b/gcc48-cloog-dl.patch new file mode 100644 index 0000000..344bf6d --- /dev/null +++ b/gcc48-cloog-dl.patch @@ -0,0 +1,474 @@ +--- gcc/Makefile.in.jj 2012-12-13 17:09:20.000000000 +0100 ++++ gcc/Makefile.in 2012-12-14 11:45:22.585670055 +0100 +@@ -1022,7 +1022,7 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY) + # and the system's installed libraries. + LIBS = @LIBS@ libcommon.a $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBBACKTRACE) \ + $(LIBIBERTY) $(LIBDECNUMBER) $(HOST_LIBS) +-BACKENDLIBS = $(CLOOGLIBS) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \ ++BACKENDLIBS = $(if $(CLOOGLIBS),-ldl) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \ + $(ZLIB) + # Any system libraries needed just for GNAT. + SYSLIBS = @GNAT_LIBEXC@ +@@ -3442,6 +3442,15 @@ $(common_out_object_file): $(common_out_ + $(DIAGNOSTIC_CORE_H) $(FLAGS_H) $(OPTS_H) $(TM_H) $(TM_P_H) $(MACHMODE_H) + $(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)) + # + # Generate header and source files from the machine description, + # and compile them. +--- gcc/graphite-poly.h.jj 2012-12-13 11:31:27.000000000 +0100 ++++ gcc/graphite-poly.h 2012-12-14 13:41:41.970800726 +0100 +@@ -22,6 +22,369 @@ along with GCC; see the file COPYING3. + #ifndef GCC_GRAPHITE_POLY_H + #define GCC_GRAPHITE_POLY_H + ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#define DYNSYMS \ ++ DYNSYM (clast_pprint); \ ++ DYNSYM (cloog_clast_create_from_input); \ ++ DYNSYM (cloog_clast_free); \ ++ DYNSYM (cloog_domain_from_isl_set); \ ++ DYNSYM (cloog_input_alloc); \ ++ DYNSYM (cloog_isl_state_malloc); \ ++ DYNSYM (cloog_options_free); \ ++ DYNSYM (cloog_options_malloc); \ ++ DYNSYM (cloog_scattering_from_isl_map); \ ++ DYNSYM (cloog_state_free); \ ++ DYNSYM (cloog_union_domain_add_domain); \ ++ DYNSYM (cloog_union_domain_alloc); \ ++ DYNSYM (cloog_union_domain_set_name); \ ++ DYNSYM (isl_aff_add_coefficient_si); \ ++ DYNSYM (isl_aff_add_constant); \ ++ DYNSYM (isl_aff_free); \ ++ DYNSYM (isl_aff_get_coefficient); \ ++ DYNSYM (isl_aff_get_space); \ ++ DYNSYM (isl_aff_mod); \ ++ DYNSYM (isl_aff_set_coefficient_si); \ ++ DYNSYM (isl_aff_set_constant_si); \ ++ DYNSYM (isl_aff_zero_on_domain); \ ++ DYNSYM (isl_band_free); \ ++ DYNSYM (isl_band_get_children); \ ++ DYNSYM (isl_band_get_partial_schedule); \ ++ DYNSYM (isl_band_has_children); \ ++ DYNSYM (isl_band_list_free); \ ++ DYNSYM (isl_band_list_get_band); \ ++ DYNSYM (isl_band_list_get_ctx); \ ++ DYNSYM (isl_band_list_n_band); \ ++ DYNSYM (isl_band_member_is_zero_distance); \ ++ DYNSYM (isl_band_n_member); \ ++ DYNSYM (isl_basic_map_add_constraint); \ ++ DYNSYM (isl_basic_map_project_out); \ ++ DYNSYM (isl_basic_map_universe); \ ++ DYNSYM (isl_constraint_set_coefficient); \ ++ DYNSYM (isl_constraint_set_coefficient_si); \ ++ DYNSYM (isl_constraint_set_constant); \ ++ DYNSYM (isl_constraint_set_constant_si); \ ++ DYNSYM (isl_ctx_alloc); \ ++ DYNSYM (isl_ctx_free); \ ++ DYNSYM (isl_equality_alloc); \ ++ DYNSYM (isl_id_alloc); \ ++ DYNSYM (isl_id_copy); \ ++ DYNSYM (isl_id_free); \ ++ DYNSYM (isl_inequality_alloc); \ ++ DYNSYM (isl_local_space_copy); \ ++ DYNSYM (isl_local_space_free); \ ++ DYNSYM (isl_local_space_from_space); \ ++ DYNSYM (isl_local_space_range); \ ++ DYNSYM (isl_map_add_constraint); \ ++ DYNSYM (isl_map_add_dims); \ ++ DYNSYM (isl_map_align_params); \ ++ DYNSYM (isl_map_apply_range); \ ++ DYNSYM (isl_map_copy); \ ++ DYNSYM (isl_map_dim); \ ++ DYNSYM (isl_map_dump); \ ++ DYNSYM (isl_map_equate); \ ++ DYNSYM (isl_map_fix_si); \ ++ DYNSYM (isl_map_flat_product); \ ++ DYNSYM (isl_map_flat_range_product); \ ++ DYNSYM (isl_map_free); \ ++ DYNSYM (isl_map_from_basic_map); \ ++ DYNSYM (isl_map_from_pw_aff); \ ++ DYNSYM (isl_map_from_union_map); \ ++ DYNSYM (isl_map_get_ctx); \ ++ DYNSYM (isl_map_get_space); \ ++ DYNSYM (isl_map_get_tuple_id); \ ++ DYNSYM (isl_map_insert_dims); \ ++ DYNSYM (isl_map_intersect); \ ++ DYNSYM (isl_map_intersect_domain); \ ++ DYNSYM (isl_map_intersect_range); \ ++ DYNSYM (isl_map_is_empty); \ ++ DYNSYM (isl_map_lex_ge); \ ++ DYNSYM (isl_map_lex_le); \ ++ DYNSYM (isl_map_n_out); \ ++ DYNSYM (isl_map_range); \ ++ DYNSYM (isl_map_set_tuple_id); \ ++ DYNSYM (isl_map_universe); \ ++ DYNSYM (isl_options_set_on_error); \ ++ DYNSYM (isl_options_set_schedule_fuse); \ ++ DYNSYM (isl_options_set_schedule_max_constant_term); \ ++ DYNSYM (isl_options_set_schedule_maximize_band_depth); \ ++ DYNSYM (isl_printer_free); \ ++ DYNSYM (isl_printer_print_aff); \ ++ DYNSYM (isl_printer_print_constraint); \ ++ DYNSYM (isl_printer_print_map); \ ++ DYNSYM (isl_printer_print_set); \ ++ DYNSYM (isl_printer_to_file); \ ++ DYNSYM (isl_pw_aff_add); \ ++ DYNSYM (isl_pw_aff_alloc); \ ++ DYNSYM (isl_pw_aff_copy); \ ++ DYNSYM (isl_pw_aff_eq_set); \ ++ DYNSYM (isl_pw_aff_free); \ ++ DYNSYM (isl_pw_aff_from_aff); \ ++ DYNSYM (isl_pw_aff_ge_set); \ ++ DYNSYM (isl_pw_aff_gt_set); \ ++ DYNSYM (isl_pw_aff_is_cst); \ ++ DYNSYM (isl_pw_aff_le_set); \ ++ DYNSYM (isl_pw_aff_lt_set); \ ++ DYNSYM (isl_pw_aff_mod); \ ++ DYNSYM (isl_pw_aff_mul); \ ++ DYNSYM (isl_pw_aff_ne_set); \ ++ DYNSYM (isl_pw_aff_nonneg_set); \ ++ DYNSYM (isl_pw_aff_set_tuple_id); \ ++ DYNSYM (isl_pw_aff_sub); \ ++ DYNSYM (isl_pw_aff_zero_set); \ ++ DYNSYM (isl_schedule_free); \ ++ DYNSYM (isl_schedule_get_band_forest); \ ++ DYNSYM (isl_set_add_constraint); \ ++ DYNSYM (isl_set_add_dims); \ ++ DYNSYM (isl_set_apply); \ ++ DYNSYM (isl_set_coalesce); \ ++ DYNSYM (isl_set_copy); \ ++ DYNSYM (isl_set_dim); \ ++ DYNSYM (isl_set_fix_si); \ ++ DYNSYM (isl_set_free); \ ++ DYNSYM (isl_set_from_cloog_domain); \ ++ DYNSYM (isl_set_get_space); \ ++ DYNSYM (isl_set_get_tuple_id); \ ++ DYNSYM (isl_set_intersect); \ ++ DYNSYM (isl_set_is_empty); \ ++ DYNSYM (isl_set_max); \ ++ DYNSYM (isl_set_min); \ ++ DYNSYM (isl_set_nat_universe); \ ++ DYNSYM (isl_set_project_out); \ ++ DYNSYM (isl_set_set_tuple_id); \ ++ DYNSYM (isl_set_universe); \ ++ DYNSYM (isl_space_add_dims); \ ++ DYNSYM (isl_space_alloc); \ ++ DYNSYM (isl_space_copy); \ ++ DYNSYM (isl_space_dim); \ ++ DYNSYM (isl_space_domain); \ ++ DYNSYM (isl_space_find_dim_by_id); \ ++ DYNSYM (isl_space_free); \ ++ DYNSYM (isl_space_from_domain); \ ++ DYNSYM (isl_space_get_tuple_id); \ ++ DYNSYM (isl_space_params_alloc); \ ++ DYNSYM (isl_space_range); \ ++ DYNSYM (isl_space_set_alloc); \ ++ DYNSYM (isl_space_set_dim_id); \ ++ DYNSYM (isl_space_set_tuple_id); \ ++ DYNSYM (isl_union_map_add_map); \ ++ DYNSYM (isl_union_map_align_params); \ ++ DYNSYM (isl_union_map_apply_domain); \ ++ DYNSYM (isl_union_map_apply_range); \ ++ DYNSYM (isl_union_map_compute_flow); \ ++ DYNSYM (isl_union_map_copy); \ ++ DYNSYM (isl_union_map_empty); \ ++ DYNSYM (isl_union_map_flat_range_product); \ ++ DYNSYM (isl_union_map_foreach_map); \ ++ DYNSYM (isl_union_map_free); \ ++ DYNSYM (isl_union_map_from_map); \ ++ DYNSYM (isl_union_map_get_ctx); \ ++ DYNSYM (isl_union_map_get_space); \ ++ DYNSYM (isl_union_map_gist_domain); \ ++ DYNSYM (isl_union_map_gist_range); \ ++ DYNSYM (isl_union_map_intersect_domain); \ ++ DYNSYM (isl_union_map_is_empty); \ ++ DYNSYM (isl_union_map_subtract); \ ++ DYNSYM (isl_union_map_union); \ ++ DYNSYM (isl_union_set_add_set); \ ++ DYNSYM (isl_union_set_compute_schedule); \ ++ DYNSYM (isl_union_set_copy); \ ++ DYNSYM (isl_union_set_empty); \ ++ DYNSYM (isl_union_set_from_set); \ ++ DYNSYM (stmt_ass); \ ++ DYNSYM (stmt_block); \ ++ DYNSYM (stmt_for); \ ++ DYNSYM (stmt_guard); \ ++ DYNSYM (stmt_root); \ ++ DYNSYM (stmt_user); ++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 clast_pprint (*cloog_pointers__.p_clast_pprint) ++#define cloog_clast_create_from_input (*cloog_pointers__.p_cloog_clast_create_from_input) ++#define cloog_clast_free (*cloog_pointers__.p_cloog_clast_free) ++#define cloog_domain_from_isl_set (*cloog_pointers__.p_cloog_domain_from_isl_set) ++#define cloog_input_alloc (*cloog_pointers__.p_cloog_input_alloc) ++#define cloog_isl_state_malloc (*cloog_pointers__.p_cloog_isl_state_malloc) ++#define cloog_options_free (*cloog_pointers__.p_cloog_options_free) ++#define cloog_options_malloc (*cloog_pointers__.p_cloog_options_malloc) ++#define cloog_scattering_from_isl_map (*cloog_pointers__.p_cloog_scattering_from_isl_map) ++#define cloog_state_free (*cloog_pointers__.p_cloog_state_free) ++#define cloog_union_domain_add_domain (*cloog_pointers__.p_cloog_union_domain_add_domain) ++#define cloog_union_domain_alloc (*cloog_pointers__.p_cloog_union_domain_alloc) ++#define cloog_union_domain_set_name (*cloog_pointers__.p_cloog_union_domain_set_name) ++#define isl_aff_add_coefficient_si (*cloog_pointers__.p_isl_aff_add_coefficient_si) ++#define isl_aff_add_constant (*cloog_pointers__.p_isl_aff_add_constant) ++#define isl_aff_free (*cloog_pointers__.p_isl_aff_free) ++#define isl_aff_get_coefficient (*cloog_pointers__.p_isl_aff_get_coefficient) ++#define isl_aff_get_space (*cloog_pointers__.p_isl_aff_get_space) ++#define isl_aff_mod (*cloog_pointers__.p_isl_aff_mod) ++#define isl_aff_set_coefficient_si (*cloog_pointers__.p_isl_aff_set_coefficient_si) ++#define isl_aff_set_constant_si (*cloog_pointers__.p_isl_aff_set_constant_si) ++#define isl_aff_zero_on_domain (*cloog_pointers__.p_isl_aff_zero_on_domain) ++#define isl_band_free (*cloog_pointers__.p_isl_band_free) ++#define isl_band_get_children (*cloog_pointers__.p_isl_band_get_children) ++#define isl_band_get_partial_schedule (*cloog_pointers__.p_isl_band_get_partial_schedule) ++#define isl_band_has_children (*cloog_pointers__.p_isl_band_has_children) ++#define isl_band_list_free (*cloog_pointers__.p_isl_band_list_free) ++#define isl_band_list_get_band (*cloog_pointers__.p_isl_band_list_get_band) ++#define isl_band_list_get_ctx (*cloog_pointers__.p_isl_band_list_get_ctx) ++#define isl_band_list_n_band (*cloog_pointers__.p_isl_band_list_n_band) ++#define isl_band_member_is_zero_distance (*cloog_pointers__.p_isl_band_member_is_zero_distance) ++#define isl_band_n_member (*cloog_pointers__.p_isl_band_n_member) ++#define isl_basic_map_add_constraint (*cloog_pointers__.p_isl_basic_map_add_constraint) ++#define isl_basic_map_project_out (*cloog_pointers__.p_isl_basic_map_project_out) ++#define isl_basic_map_universe (*cloog_pointers__.p_isl_basic_map_universe) ++#define isl_constraint_set_coefficient (*cloog_pointers__.p_isl_constraint_set_coefficient) ++#define isl_constraint_set_coefficient_si (*cloog_pointers__.p_isl_constraint_set_coefficient_si) ++#define isl_constraint_set_constant (*cloog_pointers__.p_isl_constraint_set_constant) ++#define isl_constraint_set_constant_si (*cloog_pointers__.p_isl_constraint_set_constant_si) ++#define isl_ctx_alloc (*cloog_pointers__.p_isl_ctx_alloc) ++#define isl_ctx_free (*cloog_pointers__.p_isl_ctx_free) ++#define isl_equality_alloc (*cloog_pointers__.p_isl_equality_alloc) ++#define isl_id_alloc (*cloog_pointers__.p_isl_id_alloc) ++#define isl_id_copy (*cloog_pointers__.p_isl_id_copy) ++#define isl_id_free (*cloog_pointers__.p_isl_id_free) ++#define isl_inequality_alloc (*cloog_pointers__.p_isl_inequality_alloc) ++#define isl_local_space_copy (*cloog_pointers__.p_isl_local_space_copy) ++#define isl_local_space_free (*cloog_pointers__.p_isl_local_space_free) ++#define isl_local_space_from_space (*cloog_pointers__.p_isl_local_space_from_space) ++#define isl_local_space_range (*cloog_pointers__.p_isl_local_space_range) ++#define isl_map_add_constraint (*cloog_pointers__.p_isl_map_add_constraint) ++#define isl_map_add_dims (*cloog_pointers__.p_isl_map_add_dims) ++#define isl_map_align_params (*cloog_pointers__.p_isl_map_align_params) ++#define isl_map_apply_range (*cloog_pointers__.p_isl_map_apply_range) ++#define isl_map_copy (*cloog_pointers__.p_isl_map_copy) ++#define isl_map_dim (*cloog_pointers__.p_isl_map_dim) ++#define isl_map_dump (*cloog_pointers__.p_isl_map_dump) ++#define isl_map_equate (*cloog_pointers__.p_isl_map_equate) ++#define isl_map_fix_si (*cloog_pointers__.p_isl_map_fix_si) ++#define isl_map_flat_product (*cloog_pointers__.p_isl_map_flat_product) ++#define isl_map_flat_range_product (*cloog_pointers__.p_isl_map_flat_range_product) ++#define isl_map_free (*cloog_pointers__.p_isl_map_free) ++#define isl_map_from_basic_map (*cloog_pointers__.p_isl_map_from_basic_map) ++#define isl_map_from_pw_aff (*cloog_pointers__.p_isl_map_from_pw_aff) ++#define isl_map_from_union_map (*cloog_pointers__.p_isl_map_from_union_map) ++#define isl_map_get_ctx (*cloog_pointers__.p_isl_map_get_ctx) ++#define isl_map_get_space (*cloog_pointers__.p_isl_map_get_space) ++#define isl_map_get_tuple_id (*cloog_pointers__.p_isl_map_get_tuple_id) ++#define isl_map_insert_dims (*cloog_pointers__.p_isl_map_insert_dims) ++#define isl_map_intersect (*cloog_pointers__.p_isl_map_intersect) ++#define isl_map_intersect_domain (*cloog_pointers__.p_isl_map_intersect_domain) ++#define isl_map_intersect_range (*cloog_pointers__.p_isl_map_intersect_range) ++#define isl_map_is_empty (*cloog_pointers__.p_isl_map_is_empty) ++#define isl_map_lex_ge (*cloog_pointers__.p_isl_map_lex_ge) ++#define isl_map_lex_le (*cloog_pointers__.p_isl_map_lex_le) ++#define isl_map_n_out (*cloog_pointers__.p_isl_map_n_out) ++#define isl_map_range (*cloog_pointers__.p_isl_map_range) ++#define isl_map_set_tuple_id (*cloog_pointers__.p_isl_map_set_tuple_id) ++#define isl_map_universe (*cloog_pointers__.p_isl_map_universe) ++#define isl_options_set_on_error (*cloog_pointers__.p_isl_options_set_on_error) ++#define isl_options_set_schedule_fuse (*cloog_pointers__.p_isl_options_set_schedule_fuse) ++#define isl_options_set_schedule_max_constant_term (*cloog_pointers__.p_isl_options_set_schedule_max_constant_term) ++#define isl_options_set_schedule_maximize_band_depth (*cloog_pointers__.p_isl_options_set_schedule_maximize_band_depth) ++#define isl_printer_free (*cloog_pointers__.p_isl_printer_free) ++#define isl_printer_print_aff (*cloog_pointers__.p_isl_printer_print_aff) ++#define isl_printer_print_constraint (*cloog_pointers__.p_isl_printer_print_constraint) ++#define isl_printer_print_map (*cloog_pointers__.p_isl_printer_print_map) ++#define isl_printer_print_set (*cloog_pointers__.p_isl_printer_print_set) ++#define isl_printer_to_file (*cloog_pointers__.p_isl_printer_to_file) ++#define isl_pw_aff_add (*cloog_pointers__.p_isl_pw_aff_add) ++#define isl_pw_aff_alloc (*cloog_pointers__.p_isl_pw_aff_alloc) ++#define isl_pw_aff_copy (*cloog_pointers__.p_isl_pw_aff_copy) ++#define isl_pw_aff_eq_set (*cloog_pointers__.p_isl_pw_aff_eq_set) ++#define isl_pw_aff_free (*cloog_pointers__.p_isl_pw_aff_free) ++#define isl_pw_aff_from_aff (*cloog_pointers__.p_isl_pw_aff_from_aff) ++#define isl_pw_aff_ge_set (*cloog_pointers__.p_isl_pw_aff_ge_set) ++#define isl_pw_aff_gt_set (*cloog_pointers__.p_isl_pw_aff_gt_set) ++#define isl_pw_aff_is_cst (*cloog_pointers__.p_isl_pw_aff_is_cst) ++#define isl_pw_aff_le_set (*cloog_pointers__.p_isl_pw_aff_le_set) ++#define isl_pw_aff_lt_set (*cloog_pointers__.p_isl_pw_aff_lt_set) ++#define isl_pw_aff_mod (*cloog_pointers__.p_isl_pw_aff_mod) ++#define isl_pw_aff_mul (*cloog_pointers__.p_isl_pw_aff_mul) ++#define isl_pw_aff_ne_set (*cloog_pointers__.p_isl_pw_aff_ne_set) ++#define isl_pw_aff_nonneg_set (*cloog_pointers__.p_isl_pw_aff_nonneg_set) ++#define isl_pw_aff_set_tuple_id (*cloog_pointers__.p_isl_pw_aff_set_tuple_id) ++#define isl_pw_aff_sub (*cloog_pointers__.p_isl_pw_aff_sub) ++#define isl_pw_aff_zero_set (*cloog_pointers__.p_isl_pw_aff_zero_set) ++#define isl_schedule_free (*cloog_pointers__.p_isl_schedule_free) ++#define isl_schedule_get_band_forest (*cloog_pointers__.p_isl_schedule_get_band_forest) ++#define isl_set_add_constraint (*cloog_pointers__.p_isl_set_add_constraint) ++#define isl_set_add_dims (*cloog_pointers__.p_isl_set_add_dims) ++#define isl_set_apply (*cloog_pointers__.p_isl_set_apply) ++#define isl_set_coalesce (*cloog_pointers__.p_isl_set_coalesce) ++#define isl_set_copy (*cloog_pointers__.p_isl_set_copy) ++#define isl_set_dim (*cloog_pointers__.p_isl_set_dim) ++#define isl_set_fix_si (*cloog_pointers__.p_isl_set_fix_si) ++#define isl_set_free (*cloog_pointers__.p_isl_set_free) ++#define isl_set_from_cloog_domain (*cloog_pointers__.p_isl_set_from_cloog_domain) ++#define isl_set_get_space (*cloog_pointers__.p_isl_set_get_space) ++#define isl_set_get_tuple_id (*cloog_pointers__.p_isl_set_get_tuple_id) ++#define isl_set_intersect (*cloog_pointers__.p_isl_set_intersect) ++#define isl_set_is_empty (*cloog_pointers__.p_isl_set_is_empty) ++#define isl_set_max (*cloog_pointers__.p_isl_set_max) ++#define isl_set_min (*cloog_pointers__.p_isl_set_min) ++#define isl_set_nat_universe (*cloog_pointers__.p_isl_set_nat_universe) ++#define isl_set_project_out (*cloog_pointers__.p_isl_set_project_out) ++#define isl_set_set_tuple_id (*cloog_pointers__.p_isl_set_set_tuple_id) ++#define isl_set_universe (*cloog_pointers__.p_isl_set_universe) ++#define isl_space_add_dims (*cloog_pointers__.p_isl_space_add_dims) ++#define isl_space_alloc (*cloog_pointers__.p_isl_space_alloc) ++#define isl_space_copy (*cloog_pointers__.p_isl_space_copy) ++#define isl_space_dim (*cloog_pointers__.p_isl_space_dim) ++#define isl_space_domain (*cloog_pointers__.p_isl_space_domain) ++#define isl_space_find_dim_by_id (*cloog_pointers__.p_isl_space_find_dim_by_id) ++#define isl_space_free (*cloog_pointers__.p_isl_space_free) ++#define isl_space_from_domain (*cloog_pointers__.p_isl_space_from_domain) ++#define isl_space_get_tuple_id (*cloog_pointers__.p_isl_space_get_tuple_id) ++#define isl_space_params_alloc (*cloog_pointers__.p_isl_space_params_alloc) ++#define isl_space_range (*cloog_pointers__.p_isl_space_range) ++#define isl_space_set_alloc (*cloog_pointers__.p_isl_space_set_alloc) ++#define isl_space_set_dim_id (*cloog_pointers__.p_isl_space_set_dim_id) ++#define isl_space_set_tuple_id (*cloog_pointers__.p_isl_space_set_tuple_id) ++#define isl_union_map_add_map (*cloog_pointers__.p_isl_union_map_add_map) ++#define isl_union_map_align_params (*cloog_pointers__.p_isl_union_map_align_params) ++#define isl_union_map_apply_domain (*cloog_pointers__.p_isl_union_map_apply_domain) ++#define isl_union_map_apply_range (*cloog_pointers__.p_isl_union_map_apply_range) ++#define isl_union_map_compute_flow (*cloog_pointers__.p_isl_union_map_compute_flow) ++#define isl_union_map_copy (*cloog_pointers__.p_isl_union_map_copy) ++#define isl_union_map_empty (*cloog_pointers__.p_isl_union_map_empty) ++#define isl_union_map_flat_range_product (*cloog_pointers__.p_isl_union_map_flat_range_product) ++#define isl_union_map_foreach_map (*cloog_pointers__.p_isl_union_map_foreach_map) ++#define isl_union_map_free (*cloog_pointers__.p_isl_union_map_free) ++#define isl_union_map_from_map (*cloog_pointers__.p_isl_union_map_from_map) ++#define isl_union_map_get_ctx (*cloog_pointers__.p_isl_union_map_get_ctx) ++#define isl_union_map_get_space (*cloog_pointers__.p_isl_union_map_get_space) ++#define isl_union_map_gist_domain (*cloog_pointers__.p_isl_union_map_gist_domain) ++#define isl_union_map_gist_range (*cloog_pointers__.p_isl_union_map_gist_range) ++#define isl_union_map_intersect_domain (*cloog_pointers__.p_isl_union_map_intersect_domain) ++#define isl_union_map_is_empty (*cloog_pointers__.p_isl_union_map_is_empty) ++#define isl_union_map_subtract (*cloog_pointers__.p_isl_union_map_subtract) ++#define isl_union_map_union (*cloog_pointers__.p_isl_union_map_union) ++#define isl_union_set_add_set (*cloog_pointers__.p_isl_union_set_add_set) ++#define isl_union_set_compute_schedule (*cloog_pointers__.p_isl_union_set_compute_schedule) ++#define isl_union_set_copy (*cloog_pointers__.p_isl_union_set_copy) ++#define isl_union_set_empty (*cloog_pointers__.p_isl_union_set_empty) ++#define isl_union_set_from_set (*cloog_pointers__.p_isl_union_set_from_set) ++#define stmt_ass (*cloog_pointers__.p_stmt_ass) ++#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) ++ + typedef struct poly_dr *poly_dr_p; + + typedef struct poly_bb *poly_bb_p; +--- gcc/graphite.c.jj 2012-12-13 11:31:00.000000000 +0100 ++++ gcc/graphite.c 2012-12-14 13:40:44.155136961 +0100 +@@ -66,6 +66,34 @@ 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-isl.so.3", 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 +@@ -264,6 +292,15 @@ graphite_transform_loops (void) + if (parallelized_function_p (cfun->decl)) + return; + ++ if (number_of_loops () <= 1) ++ return; ++ ++ if (!init_cloog_pointers ()) ++ { ++ sorry ("Graphite loop optimizations cannot be used"); ++ return; ++ } ++ + ctx = isl_ctx_alloc (); + isl_options_set_on_error(ctx, ISL_ON_ERROR_ABORT); + if (!graphite_initialize (ctx)) +--- gcc/graphite-clast-to-gimple.c.jj 2012-12-13 11:31:27.000000000 +0100 ++++ gcc/graphite-clast-to-gimple.c 2012-12-14 13:27:47.196519858 +0100 +@@ -910,7 +910,7 @@ compute_bounds_for_loop (struct clast_fo + 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; +@@ -918,8 +918,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); diff --git a/gcc48-cloog-dl2.patch b/gcc48-cloog-dl2.patch new file mode 100644 index 0000000..77ffb89 --- /dev/null +++ b/gcc48-cloog-dl2.patch @@ -0,0 +1,74 @@ +2011-04-04 Jakub Jelinek + + * toplev.c (toplev_main_argv): New variable. + (toplev_main): Initialize it. + * graphite.c (init_cloog_pointers): Load libcloog-isl.so.3 from gcc's private + directory. + +--- gcc/toplev.c.jj 2008-12-09 23:59:10.000000000 +0100 ++++ gcc/toplev.c 2009-01-27 14:33:52.000000000 +0100 +@@ -107,6 +107,8 @@ static bool no_backend; + /* Length of line when printing switch values. */ + #define MAX_LINE 75 + ++const char **toplev_main_argv; ++ + /* Decoded options, and number of such options. */ + struct cl_decoded_option *save_decoded_options; + unsigned int save_decoded_options_count; +@@ -1909,6 +1911,8 @@ toplev_main (int argc, char **argv) + + expandargv (&argc, &argv); + ++ toplev_main_argv = CONST_CAST2 (const char **, char **, argv); ++ + /* Initialization of GCC's environment, and diagnostics. */ + general_init (argv[0]); + +--- gcc/graphite.c.jj 2010-12-01 10:24:32.000000000 -0500 ++++ gcc/graphite.c 2010-12-01 11:46:07.832118193 -0500 +@@ -72,11 +72,39 @@ __typeof (cloog_pointers__) cloog_pointe + static bool + init_cloog_pointers (void) + { +- void *h; +- +- if (cloog_pointers__.inited) +- return cloog_pointers__.h != NULL; +- h = dlopen ("libcloog-isl.so.3", RTLD_LAZY); ++ void *h = NULL; ++ extern const char **toplev_main_argv; ++ char *buf, *p; ++ size_t len; ++ ++ if (cloog_pointers__.inited) ++ return cloog_pointers__.h != NULL; ++ len = progname - toplev_main_argv[0]; ++ buf = XALLOCAVAR (char, len + sizeof "libcloog-isl.so.3"); ++ memcpy (buf, toplev_main_argv[0], len); ++ strcpy (buf + len, "libcloog-isl.so.3"); ++ len += sizeof "libcloog-isl.so.3"; ++ p = strstr (buf, "/libexec/"); ++ if (p != NULL) ++ { ++ while (1) ++ { ++ char *q = strstr (p + 8, "/libexec/"); ++ if (q == NULL) ++ break; ++ p = q; ++ } ++ memmove (p + 4, p + 8, len - (p + 8 - buf)); ++ h = dlopen (buf, RTLD_LAZY); ++ if (h == NULL) ++ { ++ len = progname - toplev_main_argv[0]; ++ memcpy (buf, toplev_main_argv[0], len); ++ strcpy (buf + len, "libcloog-isl.so.3"); ++ } ++ } ++ if (h == NULL) ++ h = dlopen (buf, RTLD_LAZY); + cloog_pointers__.h = h; + if (h == NULL) + return false; diff --git a/gcc47-hack.patch b/gcc48-hack.patch similarity index 100% rename from gcc47-hack.patch rename to gcc48-hack.patch diff --git a/gcc47-i386-libgomp.patch b/gcc48-i386-libgomp.patch similarity index 61% rename from gcc47-i386-libgomp.patch rename to gcc48-i386-libgomp.patch index f6a6b91..45883a6 100644 --- a/gcc47-i386-libgomp.patch +++ b/gcc48-i386-libgomp.patch @@ -1,14 +1,6 @@ --- 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 "*) +@@ -67,7 +67,7 @@ if test $enable_linux_futex = yes; then ;; *) if test -z "$with_arch"; then @@ -17,7 +9,7 @@ fi esac ;; -@@ -63,7 +63,7 @@ if test $enable_linux_futex = yes; then +@@ -79,7 +79,7 @@ if test $enable_linux_futex = yes; then config_path="linux/x86 linux posix" case " ${CC} ${CFLAGS} " in *" -m32 "*) diff --git a/gcc47-java-nomulti.patch b/gcc48-java-nomulti.patch similarity index 100% rename from gcc47-java-nomulti.patch rename to gcc48-java-nomulti.patch diff --git a/gcc47-libgomp-omp_h-multilib.patch b/gcc48-libgomp-omp_h-multilib.patch similarity index 100% rename from gcc47-libgomp-omp_h-multilib.patch rename to gcc48-libgomp-omp_h-multilib.patch diff --git a/gcc47-libstdc++-docs.patch b/gcc48-libstdc++-docs.patch similarity index 96% rename from gcc47-libstdc++-docs.patch rename to gcc48-libstdc++-docs.patch index f65091f..fa0d081 100644 --- a/gcc47-libstdc++-docs.patch +++ b/gcc48-libstdc++-docs.patch @@ -4,7 +4,7 @@ FSF

-+ Release 4.7.2 ++ Release 4.8.0 +

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation @@ -18,7 +18,7 @@ - The API documentation, rendered into HTML, can be viewed online: + The API documentation, rendered into HTML, can be viewed here: