diff --git a/.gitignore b/.gitignore index 58aeb5e..d9d821a 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,10 @@ /gcc-4.7.0-20120525.tar.bz2 /gcc-4.7.0-20120604.tar.bz2 /gcc-4.7.1-20120629.tar.bz2 +/gcc-4.7.1-20120716.tar.bz2 +/gcc-4.7.1-20120718.tar.bz2 +/gcc-4.7.1-20120720.tar.bz2 +/gcc-4.7.1-20120810.tar.bz2 +/gcc-4.7.1-20120813.tar.bz2 +/gcc-4.7.1-20120913.tar.bz2 +/gcc-4.7.2-20120920.tar.bz2 diff --git a/gcc.spec b/gcc.spec index d73020a..25681b7 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,6 +1,6 @@ -%global DATE 20120629 -%global SVNREV 189066 -%global gcc_version 4.7.1 +%global DATE 20120920 +%global SVNREV 191572 +%global gcc_version 4.7.2 # Note, gcc_release must be integer, if you want to add suffixes to # %{release}, append them after %{gcc_release} on Release: line. %global gcc_release 1 @@ -12,7 +12,7 @@ %global build_ada 0 %endif %global build_java 1 -%ifarch %{ix86} x86_64 ppc ppc64 s390 s390x +%ifarch %{ix86} x86_64 ppc ppc64 s390 s390x %{arm} %global build_go 1 %else %global build_go 0 @@ -27,7 +27,11 @@ %else %global build_libitm 0 %endif +%if 0%{?rhel} >= 7 +%global build_cloog 0 +%else %global build_cloog 1 +%endif %global build_libstdcxx_docs 1 # If you don't have already a usable gcc-java and libgcj for your arch, # do on some arch which has it rpmbuild -bc --with java_tar gcc.spec @@ -145,6 +149,11 @@ Requires: glibc-devel >= 2.2.90-12 # Make sure glibc supports TFmode long double Requires: glibc >= 2.3.90-35 %endif +%if 0%{?fedora} >= 18 || 0%{?rhel} >= 7 +%ifarch %{arm} +Requires: glibc >= 2.16 +%endif +%endif Requires: libgcc >= %{version}-%{release} Requires: libgomp = %{version}-%{release} %if !%{build_ada} @@ -174,6 +183,8 @@ 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 Patch1000: fastjar-0.97-segfault.patch Patch1001: fastjar-0.97-len1.patch @@ -675,6 +686,10 @@ package or when debugging this package. %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 %if 0%{?_enable_debug_packages} cat > split-debuginfo.sh <<\EOF @@ -738,7 +753,7 @@ tar xzf %{SOURCE4} tar xjf %{SOURCE10} %endif -sed -i -e 's/4\.7\.2/4.7.1/' gcc/BASE-VER +sed -i -e 's/4\.7\.3/4.7.2/' gcc/BASE-VER echo 'Red Hat %{version}-%{gcc_release}' > gcc/DEV-PHASE %if 0%{?fedora} >= 16 || 0%{?rhel} >= 7 @@ -904,6 +919,8 @@ CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`" %endif %if %{build_cloog} --with-ppl --with-cloog \ +%else + --without-ppl --without-cloog \ %endif %ifarch %{arm} --disable-sjlj-exceptions \ @@ -1902,6 +1919,11 @@ fi %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/f16cintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/fmaintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/lzcntintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/rtmintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/xtestintrin.h +%{_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/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 @@ -2641,6 +2663,67 @@ fi %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin %changelog +* 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 diff --git a/gcc47-arm-hfp-ldso.patch b/gcc47-arm-hfp-ldso.patch new file mode 100644 index 0000000..2f0b8c4 --- /dev/null +++ b/gcc47-arm-hfp-ldso.patch @@ -0,0 +1,52 @@ +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-rh837630.patch b/gcc47-rh837630.patch new file mode 100644 index 0000000..d7d1e94 --- /dev/null +++ b/gcc47-rh837630.patch @@ -0,0 +1,16 @@ +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/sources b/sources index b8d0789..af8b2fd 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ 2659f09c2e43ef8b7d4406321753f1b2 fastjar-0.97.tar.gz -b8a5e8e7ec11d199d72e38e8055459fa gcc-4.7.1-20120629.tar.bz2 +24e41bf33cf28647ad8f1cdf3df6301c gcc-4.7.2-20120920.tar.bz2