diff --git a/.gitignore b/.gitignore index 1f381d0..c8df42e 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ /gcc-4.6.1-20110731.tar.bz2 /gcc-4.6.1-20110802.tar.bz2 /gcc-4.6.1-20110804.tar.bz2 +/gcc-4.6.1-20110824.tar.bz2 diff --git a/gcc.spec b/gcc.spec index 00cf3d8..fb843e4 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,9 +1,9 @@ -%global DATE 20110804 -%global SVNREV 177406 +%global DATE 20110824 +%global SVNREV 178027 %global gcc_version 4.6.1 # 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 7 +%global gcc_release 8 %global _unpackaged_files_terminate_build 0 %global multilib_64_archs sparc64 ppc64 s390x x86_64 %ifarch %{ix86} x86_64 ia64 ppc ppc64 alpha @@ -169,6 +169,8 @@ Patch15: gcc46-libstdc++-docs.patch Patch17: gcc46-no-add-needed.patch Patch18: gcc46-ppl-0.10.patch Patch19: gcc46-pr47858.patch +Patch20: gcc46-pr48722.patch +Patch21: gcc46-rh713800.patch Patch1000: fastjar-0.97-segfault.patch Patch1001: fastjar-0.97-len1.patch @@ -640,6 +642,8 @@ package or when debugging this package. %patch18 -p0 -b .ppl-0.10~ %endif %patch19 -p0 -b .pr47858~ +%patch20 -p0 -b .pr48722~ +%patch21 -p0 -b .rh713800~ %if 0%{?_enable_debug_packages} cat > split-debuginfo.sh <<\EOF @@ -2450,6 +2454,20 @@ fi %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin %changelog +* Wed Aug 24 2011 Jakub Jelinek 4.6.1-8 +- update from the 4.6 branch + - PRs c++/46862, c++/48993, c++/49669, c++/49921, c++/49988, c++/50024, + c++/50054, c++/50086, fortran/49792, fortran/50050, fortran/50109, + fortran/50129, fortran/50130, middle-end/49923, target/50001, + target/50092, tree-optimization/48739 +- build EH_SPEC_BLOCK with the same location as current function + to help gcov (#732802, PR c++/50055) +- support used attribute on template class methods and static data + members for forced instantiation (#722587) +- fix up location copying in the vectorizer (PR tree-optimization/50133) +- unshare CALL_INSN_FUNCTION_USAGE (PR middle-end/48722) +- fix up gthr*.h for -E -C (#713800) + * Thu Aug 4 2011 Jakub Jelinek 4.6.1-7 - update from the 4.6 branch - PRs c++/43886, c++/49593, c++/49803, fortran/49885, diff --git a/gcc46-pr48722.patch b/gcc46-pr48722.patch new file mode 100644 index 0000000..b349972 --- /dev/null +++ b/gcc46-pr48722.patch @@ -0,0 +1,76 @@ +2011-08-22 Jakub Jelinek + + PR middle-end/48722 + * emit-rtl.c (unshare_all_rtl_again): For CALL_INSNs, + reset_used_flags also in CALL_INSN_FUNCTION_USAGE. + (verify_rtl_sharing): Likewise and verify_rtx_sharing + in there too. + (unshare_all_rtl_in_chain): For CALL_INSNs + copy_rtx_if_shared also CALL_INSN_FUNCTION_USAGE. + + * gcc.target/i386/pr48722.c: New test. + +--- gcc/emit-rtl.c.jj 2011-08-18 08:36:00.000000000 +0200 ++++ gcc/emit-rtl.c 2011-08-22 08:48:27.000000000 +0200 +@@ -2444,6 +2444,8 @@ unshare_all_rtl_again (rtx insn) + { + reset_used_flags (PATTERN (p)); + reset_used_flags (REG_NOTES (p)); ++ if (CALL_P (p)) ++ reset_used_flags (CALL_INSN_FUNCTION_USAGE (p)); + } + + /* Make sure that virtual stack slots are not shared. */ +@@ -2610,6 +2612,8 @@ verify_rtl_sharing (void) + { + reset_used_flags (PATTERN (p)); + reset_used_flags (REG_NOTES (p)); ++ if (CALL_P (p)) ++ reset_used_flags (CALL_INSN_FUNCTION_USAGE (p)); + if (GET_CODE (PATTERN (p)) == SEQUENCE) + { + int i; +@@ -2621,6 +2625,8 @@ verify_rtl_sharing (void) + gcc_assert (INSN_P (q)); + reset_used_flags (PATTERN (q)); + reset_used_flags (REG_NOTES (q)); ++ if (CALL_P (q)) ++ reset_used_flags (CALL_INSN_FUNCTION_USAGE (q)); + } + } + } +@@ -2630,6 +2636,8 @@ verify_rtl_sharing (void) + { + verify_rtx_sharing (PATTERN (p), p); + verify_rtx_sharing (REG_NOTES (p), p); ++ if (CALL_P (p)) ++ verify_rtx_sharing (CALL_INSN_FUNCTION_USAGE (p), p); + } + + timevar_pop (TV_VERIFY_RTL_SHARING); +@@ -2646,6 +2654,9 @@ unshare_all_rtl_in_chain (rtx insn) + { + PATTERN (insn) = copy_rtx_if_shared (PATTERN (insn)); + REG_NOTES (insn) = copy_rtx_if_shared (REG_NOTES (insn)); ++ if (CALL_P (insn)) ++ CALL_INSN_FUNCTION_USAGE (insn) ++ = copy_rtx_if_shared (CALL_INSN_FUNCTION_USAGE (insn)); + } + } + +--- gcc/testsuite/gcc.target/i386/pr48722.c.jj 2011-08-22 08:53:10.000000000 +0200 ++++ gcc/testsuite/gcc.target/i386/pr48722.c 2011-08-22 08:52:37.000000000 +0200 +@@ -0,0 +1,13 @@ ++/* PR middle-end/48722 */ ++/* { dg-do compile } */ ++/* { dg-options "-Os -mno-push-args" } */ ++ ++extern long long a; ++extern int b; ++void bar (int, long long); ++ ++void ++foo (void) ++{ ++ bar (a > 0x85, b); ++} diff --git a/gcc46-rh713800.patch b/gcc46-rh713800.patch new file mode 100644 index 0000000..979d9c8 --- /dev/null +++ b/gcc46-rh713800.patch @@ -0,0 +1,28 @@ +2011-08-04 Jakub Jelinek + + * gthr-posix.h (__gthread_active_p): Do not use preprocessor + conditionals and comments inside macro arguments. + +--- gcc/gthr-posix.h.jj 2011-07-18 13:17:56.000000000 +0200 ++++ gcc/gthr-posix.h 2011-08-04 11:22:40.000000000 +0200 +@@ -244,16 +244,15 @@ __gthread_active_p (void) + static inline int + __gthread_active_p (void) + { +- static void *const __gthread_active_ptr +- = __extension__ (void *) &__gthrw_( + /* Android's C library does not provide pthread_cancel, check for + `pthread_create' instead. */ + #ifndef __BIONIC__ +- pthread_cancel ++ static void *const __gthread_active_ptr ++ = __extension__ (void *) &__gthrw_(pthread_cancel); + #else +- pthread_create ++ static void *const __gthread_active_ptr ++ = __extension__ (void *) &__gthrw_(pthread_create); + #endif +- ); + return __gthread_active_ptr != 0; + } + diff --git a/sources b/sources index 3f66259..3e3fb58 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ 2659f09c2e43ef8b7d4406321753f1b2 fastjar-0.97.tar.gz -b05f1e0faccddda5f95e1544b7e88ec9 gcc-4.6.1-20110804.tar.bz2 +bb9c5e409658f09ff4cd6679c637bb08 gcc-4.6.1-20110824.tar.bz2