diff --git a/.gitignore b/.gitignore index 6a8bb3e..f78dd62 100644 --- a/.gitignore +++ b/.gitignore @@ -66,3 +66,4 @@ /gcc-12.0.1-20220214.tar.xz /gcc-12.0.1-20220222.tar.xz /gcc-12.0.1-20220306.tar.xz +/gcc-12.0.1-20220308.tar.xz diff --git a/gcc.spec b/gcc.spec index 4fd6156..f690086 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,5 +1,5 @@ -%global DATE 20220306 -%global gitrev 9a60f4c27d4317f91488c0c90d943a3638af9d1d +%global DATE 20220308 +%global gitrev a525ce3ad147ce96a7c5fad4099fe2155af45324 %global gcc_version 12.0.1 %global gcc_major 12 # Note, gcc_release must be integer, if you want to add suffixes to @@ -120,7 +120,7 @@ Summary: Various compilers (C, C++, Objective-C, ...) Name: gcc Version: %{gcc_version} -Release: %{gcc_release}.10%{?dist} +Release: %{gcc_release}.11%{?dist} # libgcc, libgfortran, libgomp, libstdc++ and crtstuff have # GCC Runtime Exception. License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD @@ -270,7 +270,7 @@ Patch8: gcc12-no-add-needed.patch Patch9: gcc12-Wno-format-security.patch Patch10: gcc12-rh1574936.patch Patch11: gcc12-d-shared-libphobos.patch -Patch12: gcc12-pr104775.patch +Patch12: gcc12-pr104781.patch Patch100: gcc12-fortran-fdec-duplicates.patch Patch101: gcc12-fortran-flogical-as-integer.patch @@ -792,7 +792,7 @@ to NVidia PTX capable devices if available. %patch10 -p0 -b .rh1574936~ %endif %patch11 -p0 -b .d-shared-libphobos~ -%patch12 -p0 -b .pr104775~ +%patch12 -p0 -b .pr104781~ %if 0%{?rhel} >= 9 %patch100 -p1 -b .fortran-fdec-duplicates~ @@ -3166,6 +3166,15 @@ end %endif %changelog +* Tue Mar 8 2022 Jakub Jelinek 12.0.1-0.11 +- update from trunk + - PRs analyzer/101983, fortran/99585, fortran/104430, libstdc++/104807, + middle-end/104381, target/99297, target/104779, target/104794, + target/104797, translation/90148, translation/104552, + tree-optimization/104782, tree-optimization/104825 +- fix build on i686 where gnat1 was hanging (PR target/104838, + PR target/104781) + * Sun Mar 6 2022 Jakub Jelinek 12.0.1-0.10 - update from trunk - PRs analyzer/103521, analyzer/104434, c++/70077, c++/79493, c++/103443, diff --git a/gcc12-pr104775.patch b/gcc12-pr104775.patch deleted file mode 100644 index 6f57d66..0000000 --- a/gcc12-pr104775.patch +++ /dev/null @@ -1,36 +0,0 @@ -2022-03-04 Jakub Jelinek - - PR target/104775 - * config/s390/s390.md (*cmp_and_trap_unsigned_int): Use - S constraint instead of T in the last alternative. - - * gcc.target/s390/pr104775.c: New test. - ---- gcc/config/s390/s390.md.jj 2022-02-08 20:08:13.873404137 +0100 -+++ gcc/config/s390/s390.md 2022-03-04 14:38:23.252988476 +0100 -@@ -9578,7 +9578,7 @@ (define_insn "*cmp_and_trap_signed_int" - [(trap_if (match_operator 0 "s390_unsigned_integer_comparison" - [(match_operand:GPR 1 "register_operand" "d,d,d") -- (match_operand:GPR 2 "general_operand" "d,D,T")]) -+ (match_operand:GPR 2 "general_operand" "d,D,S")]) - (const_int 0))] - "TARGET_Z10" - "@ ---- gcc/testsuite/gcc.target/s390/pr104775.c.jj 2022-03-04 14:49:58.190134898 +0100 -+++ gcc/testsuite/gcc.target/s390/pr104775.c 2022-03-04 14:49:42.845352647 +0100 -@@ -0,0 +1,14 @@ -+/* PR target/104775 */ -+/* { dg-do assemble { target s390_zEC12_hw } } */ -+/* { dg-options "-O2 -march=zEC12" } */ -+ -+long a[64]; -+void bar (void); -+ -+void -+foo (int x, int y) -+{ -+ if (x != a[y]) -+ bar (); -+ __builtin_trap (); -+} diff --git a/gcc12-pr104781.patch b/gcc12-pr104781.patch new file mode 100644 index 0000000..a4e7310 --- /dev/null +++ b/gcc12-pr104781.patch @@ -0,0 +1,80 @@ +Since eh_return doesn't work with stack realignment, disable SSE on +unwind-c.c and unwind-dw2.c to avoid stack realignment with the 4-byte +incoming stack to avoid SSE usage which is caused by + +commit 609e8c492d62d92465460eae3d43dfc4b2c68288 +Author: H.J. Lu +Date: Sat Feb 26 14:17:23 2022 -0800 + + x86: Always return pseudo register in ix86_gen_scratch_sse_rtx + +when pseudo vector registers are used to expand memset. + +gcc/ + + PR target/104781 + * config/i386/i386.cc (ix86_expand_epilogue): Sorry if there is + stack realignment with eh_return or regparm nested function. + * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Define. + +gcc/testsuite/ + + PR target/104781 + * gcc.target/i386/eh_return-1.c: Add -mincoming-stack-boundary=4. + * gcc.target/i386/eh_return-2.c: Likewise. + +--- gcc/config/i386/i386.cc ++++ gcc/config/i386/i386.cc +@@ -9444,12 +9444,15 @@ ix86_expand_epilogue (int style) + rtx sa = EH_RETURN_STACKADJ_RTX; + rtx_insn *insn; + +- /* %ecx can't be used for both DRAP register and eh_return. */ +- if (crtl->drap_reg) +- gcc_assert (REGNO (crtl->drap_reg) != CX_REG); ++ /* Stack realignment doesn't work with eh_return. */ ++ if (crtl->stack_realign_needed) ++ sorry ("Stack realignment not supported with " ++ "%<__builtin_eh_return%>"); + + /* regparm nested functions don't work with eh_return. */ +- gcc_assert (!ix86_static_chain_on_stack); ++ if (ix86_static_chain_on_stack) ++ sorry ("regparm nested function not supported with " ++ "%<__builtin_eh_return%>"); + + if (frame_pointer_needed) + { +--- gcc/config/i386/i386.h.jj 2022-02-25 12:06:45.535493490 +0100 ++++ gcc/config/i386/i386.h 2022-03-08 11:20:43.207043370 +0100 +@@ -2848,6 +2848,11 @@ extern enum attr_cpu ix86_schedule; + #define NUM_X86_64_MS_CLOBBERED_REGS 12 + #endif + ++/* __builtin_eh_return can't handle stack realignment, so disable SSE in ++ libgcc functions that call it. */ ++#define LIBGCC2_UNWIND_ATTRIBUTE __attribute__((target ("no-sse"))) ++ ++ + /* + Local variables: + version-control: t +--- gcc/testsuite/gcc.target/i386/eh_return-1.c ++++ gcc/testsuite/gcc.target/i386/eh_return-1.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-O2 -march=haswell -mno-avx512f -mtune-ctrl=avx256_move_by_pieces" } */ ++/* { dg-options "-O2 -mincoming-stack-boundary=4 -march=haswell -mno-avx512f -mtune-ctrl=avx256_move_by_pieces" } */ + + struct _Unwind_Context + { +--- gcc/testsuite/gcc.target/i386/eh_return-2.c ++++ gcc/testsuite/gcc.target/i386/eh_return-2.c +@@ -1,6 +1,6 @@ + /* PR target/101772 */ + /* { dg-do compile } */ +-/* { dg-additional-options "-O0 -march=x86-64 -mstackrealign" } */ ++/* { dg-additional-options "-O0 -mincoming-stack-boundary=4 -march=x86-64 -mstackrealign" } */ + + struct _Unwind_Context _Unwind_Resume_or_Rethrow_this_context; + diff --git a/sources b/sources index 501c814..2736944 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -SHA512 (gcc-12.0.1-20220306.tar.xz) = ee74476de920124527f4df9ec95de0bf9fc74aab9e7ae1784c0fae0bf8f4b60367f241fbba2742a610e483516eaa63985d995771ae572509a95e326fa57d1b9e +SHA512 (gcc-12.0.1-20220308.tar.xz) = 4c714250c056d680ab5135317185e89e28ed9f6a70a5943eab3c610c38907b9696d07b141cda8d703a1fd1b93cf2407c0f92ab452c9f797c3da472748aed8844 SHA512 (isl-0.18.tar.bz2) = 85d0b40f4dbf14cb99d17aa07048cdcab2dc3eb527d2fbb1e84c41b2de5f351025370e57448b63b2b8a8cf8a0843a089c3263f9baee1542d5c2e1cb37ed39d94 SHA512 (newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz) = 002a48a7b689a81abbf16161bcaec001a842e67dfbe372e9e109092703bfc666675f16198f60ca429370e8850d564547dc505df81bc3aaca4ce6defbc014ad6c SHA512 (nvptx-tools-5f6f343a302d620b0868edab376c00b15741e39e.tar.xz) = f6d10db94fa1570ae0f94df073fa3c73c8e5ee16d59070b53d94f7db0de8a031bc44d7f3f1852533da04b625ce758e022263855ed43cfc6867e0708d001e53c7