From fefe33c9e81fb4205e79e7ed3d1c66d058b1835a Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Tue, 14 Oct 2025 12:31:03 -0400 Subject: [PATCH] 11.5.0-13 Fix testsuite failures when run with -fstack-protector* (PR testsuite/70230) Resolves: RHEL-116477 --- gcc.spec | 13 +- ...or-for-tests-relying-on-stack-offset.patch | 74 ++++++ gcc11-fix-failures-with-default-SSP.patch | 244 ++++++++++++++++++ 3 files changed, 330 insertions(+), 1 deletion(-) create mode 100644 gcc11-disable-stack-protector-for-tests-relying-on-stack-offset.patch create mode 100644 gcc11-fix-failures-with-default-SSP.patch diff --git a/gcc.spec b/gcc.spec index c2d1e1d..a3de399 100644 --- a/gcc.spec +++ b/gcc.spec @@ -5,7 +5,7 @@ %global gcc_major 11 # 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 12 +%global gcc_release 13 %global nvptx_tools_gitrev 5f6f343a302d620b0868edab376c00b15741e39e %global newlib_cygwin_gitrev 50e2a63b04bdd018484605fbb954fd1bd5147fa0 %global _unpackaged_files_terminate_build 0 @@ -348,6 +348,10 @@ Patch1000: gcc11-libstdc++-prettyprinter-update-15.patch Patch1001: gcc11-libstdc++-prettyprinter-update-15-tests.patch Patch1002: gcc11-libstdc++-prettyprinter-update-15-tests-48362.patch +# Backports +Patch2000: gcc11-fix-failures-with-default-SSP.patch +Patch2001: gcc11-disable-stack-protector-for-tests-relying-on-stack-offset.patch + # On ARM EABI systems, we do want -gnueabi to be part of the # target triple. %ifnarch %{arm} @@ -1067,6 +1071,9 @@ mark them as cross compiled. %patch1001 -p1 -b .libstdc++-prettyprinter-update-15-tests %patch1002 -p1 -b .libstdc++-prettyprinter-update-15-tests-48362 +%patch2000 -p1 -b .fix-failures-with-default-SSP +%patch2001 -p1 -b .disable-stack-protector-for-tests-relying-on-stack-offset + %ifarch %{arm} rm -f gcc/testsuite/go.test/test/fixedbugs/issue19182.go %endif @@ -3862,6 +3869,10 @@ end %endif %changelog +* Tue Oct 14 2025 David Malcolm - 11.5.0-13 +- Fix testsuite failures when run with -fstack-protector* (PR testsuite/70230, + RHEL-116477) + * Wed Sep 10 2025 Joseph Myers - 11.5.0-12 - Add cross compilers for ppc64le and s390x for non-production uses (RHEL-94764) diff --git a/gcc11-disable-stack-protector-for-tests-relying-on-stack-offset.patch b/gcc11-disable-stack-protector-for-tests-relying-on-stack-offset.patch new file mode 100644 index 0000000..97859f0 --- /dev/null +++ b/gcc11-disable-stack-protector-for-tests-relying-on-stack-offset.patch @@ -0,0 +1,74 @@ +From 59a72acbccf4c81a04b4d09760fc8b16992de106 Mon Sep 17 00:00:00 2001 +From: Xi Ruoyao +Date: Sat, 24 Sep 2022 15:16:57 +0800 +Subject: aarch64: testsuite: disable stack protector for tests relying on + stack offset + +Stack protector needs a guard value on the stack and change the stack +layout. So we need to disable it for those tests, to avoid test failure +with --enable-default-ssp. + +gcc/testsuite/ChangeLog: + + * gcc.target/aarch64/shrink_wrap_1.c (dg-options): Add + -fno-stack-protector. + * gcc.target/aarch64/stack-check-cfa-1.c (dg-options): Add + -fno-stack-protector. + * gcc.target/aarch64/stack-check-cfa-2.c (dg-options): Add + -fno-stack-protector. + * gcc.target/aarch64/test_frame_17.c (dg-options): Add + -fno-stack-protector. +--- + gcc/testsuite/gcc.target/aarch64/shrink_wrap_1.c | 2 +- + gcc/testsuite/gcc.target/aarch64/stack-check-cfa-1.c | 2 +- + gcc/testsuite/gcc.target/aarch64/stack-check-cfa-2.c | 2 +- + gcc/testsuite/gcc.target/aarch64/test_frame_17.c | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/gcc/testsuite/gcc.target/aarch64/shrink_wrap_1.c b/gcc/testsuite/gcc.target/aarch64/shrink_wrap_1.c +index ab7cd74ec3b4..067220c04a08 100644 +--- a/gcc/testsuite/gcc.target/aarch64/shrink_wrap_1.c ++++ b/gcc/testsuite/gcc.target/aarch64/shrink_wrap_1.c +@@ -1,5 +1,5 @@ + /* { dg-do compile { target { aarch64*-*-* } } } */ +-/* { dg-options "-O2" } */ ++/* { dg-options "-O2 -fno-stack-protector" } */ + /* { dg-final { check-function-bodies "**" "" } } */ + + /* +diff --git a/gcc/testsuite/gcc.target/aarch64/stack-check-cfa-1.c b/gcc/testsuite/gcc.target/aarch64/stack-check-cfa-1.c +index 6885894a97e0..412a9ed1aab0 100644 +--- a/gcc/testsuite/gcc.target/aarch64/stack-check-cfa-1.c ++++ b/gcc/testsuite/gcc.target/aarch64/stack-check-cfa-1.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16 -funwind-tables" } */ ++/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16 -funwind-tables -fno-stack-protector" } */ + /* { dg-require-effective-target supports_stack_clash_protection } */ + + #define SIZE 128*1024 +diff --git a/gcc/testsuite/gcc.target/aarch64/stack-check-cfa-2.c b/gcc/testsuite/gcc.target/aarch64/stack-check-cfa-2.c +index 5796a53be067..e440569a0785 100644 +--- a/gcc/testsuite/gcc.target/aarch64/stack-check-cfa-2.c ++++ b/gcc/testsuite/gcc.target/aarch64/stack-check-cfa-2.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16 -funwind-tables" } */ ++/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16 -funwind-tables -fno-stack-protector" } */ + /* { dg-require-effective-target supports_stack_clash_protection } */ + + #define SIZE 1280*1024 + 512 +diff --git a/gcc/testsuite/gcc.target/aarch64/test_frame_17.c b/gcc/testsuite/gcc.target/aarch64/test_frame_17.c +index 44f132911286..5d432ad0854e 100644 +--- a/gcc/testsuite/gcc.target/aarch64/test_frame_17.c ++++ b/gcc/testsuite/gcc.target/aarch64/test_frame_17.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-O2" } */ ++/* { dg-options "-O2 -fno-stack-protector" } */ + + /* Test reuse of stack adjustment temporaries. */ + +-- +cgit + diff --git a/gcc11-fix-failures-with-default-SSP.patch b/gcc11-fix-failures-with-default-SSP.patch new file mode 100644 index 0000000..ed984ae --- /dev/null +++ b/gcc11-fix-failures-with-default-SSP.patch @@ -0,0 +1,244 @@ +From 90c31ff339015ddd89ac519656fbd23a36ee6271 Mon Sep 17 00:00:00 2001 +From: Allan McRae +Date: Fri, 28 Jan 2022 12:44:08 -0500 +Subject: testsuite/70230 - fix failures with default SSP\ + +Configuring with --enable-default-ssp triggers various testsuite +failures. These contain asm statements that are not compatible with +-fstack-protector. Adding -fno-stack-protector to dg-options to +work around this issue. + +Tested on x86_64-linux. + + PR testsuite/70230 + * gcc.dg/asan/use-after-scope-4.c (dg-options): Add + -fno-stack-protector. + * gcc.dg/stack-usage-1.c: Likewise + * gcc.dg/superblock.c: Likewise + * gcc.target/i386/avx-vzeroupper-17.c: Likewise + * gcc.target/i386/cleanup-1.c: Likewise + * gcc.target/i386/cleanup-2.c: Likewise + * gcc.target/i386/interrupt-redzone-1.c: Likewise + * gcc.target/i386/interrupt-redzone-2.c: Likewise + * gcc.target/i386/pr79793-1.c: Likewise + * gcc.target/i386/pr79793-2.c: Likewise + * gcc.target/i386/shrink_wrap_1.c: Likewise + * gcc.target/i386/stack-check-11.c: Likewise + * gcc.target/i386/stack-check-18.c: Likewise + * gcc.target/i386/stack-check-19.c: Likewise + * gcc.target/i386/stackalign/pr88483-1.c: Likewise + * gcc.target/i386/stackalign/pr88483-2.c: Likewise + * gcc.target/i386/sw-1.c: Likewise + +Backported to gcc 11 by dmalcolm@redhat.com + This was r12-6922-g90c31ff339015d, modifying the change to sw-1.c + to avoid the change from r12-2671-gdadbb1a886af95. + +--- + gcc/testsuite/gcc.dg/asan/use-after-scope-4.c | 1 + + gcc/testsuite/gcc.dg/stack-usage-1.c | 2 +- + gcc/testsuite/gcc.dg/superblock.c | 2 +- + gcc/testsuite/gcc.target/i386/avx-vzeroupper-17.c | 2 +- + gcc/testsuite/gcc.target/i386/cleanup-1.c | 2 +- + gcc/testsuite/gcc.target/i386/cleanup-2.c | 2 +- + gcc/testsuite/gcc.target/i386/interrupt-redzone-1.c | 2 +- + gcc/testsuite/gcc.target/i386/interrupt-redzone-2.c | 2 +- + gcc/testsuite/gcc.target/i386/pr79793-1.c | 2 +- + gcc/testsuite/gcc.target/i386/pr79793-2.c | 2 +- + gcc/testsuite/gcc.target/i386/shrink_wrap_1.c | 2 +- + gcc/testsuite/gcc.target/i386/stack-check-11.c | 2 +- + gcc/testsuite/gcc.target/i386/stack-check-18.c | 2 +- + gcc/testsuite/gcc.target/i386/stack-check-19.c | 2 +- + gcc/testsuite/gcc.target/i386/stackalign/pr88483-1.c | 2 +- + gcc/testsuite/gcc.target/i386/stackalign/pr88483-2.c | 2 +- + gcc/testsuite/gcc.target/i386/sw-1.c | 2 +- + 17 files changed, 17 insertions(+), 16 deletions(-) + +diff --git a/gcc/testsuite/gcc.dg/asan/use-after-scope-4.c b/gcc/testsuite/gcc.dg/asan/use-after-scope-4.c +index 44dc79535d2a..e1486e75045f 100644 +--- a/gcc/testsuite/gcc.dg/asan/use-after-scope-4.c ++++ b/gcc/testsuite/gcc.dg/asan/use-after-scope-4.c +@@ -1,4 +1,5 @@ + // { dg-do run } ++/* { dg-options "-fno-stack-protector" } */ + + #define FN(NAME) \ + NAME (void) \ +diff --git a/gcc/testsuite/gcc.dg/stack-usage-1.c b/gcc/testsuite/gcc.dg/stack-usage-1.c +index 93cfe7c01639..1d7d1fee4351 100644 +--- a/gcc/testsuite/gcc.dg/stack-usage-1.c ++++ b/gcc/testsuite/gcc.dg/stack-usage-1.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-fstack-usage" } */ ++/* { dg-options "-fstack-usage -fno-stack-protector" } */ + /* nvptx doesn't have a reg allocator, and hence no stack usage data. */ + /* { dg-skip-if "" { nvptx-*-* } } */ + +diff --git a/gcc/testsuite/gcc.dg/superblock.c b/gcc/testsuite/gcc.dg/superblock.c +index 2b2fa9e154fb..6b4419adaf59 100644 +--- a/gcc/testsuite/gcc.dg/superblock.c ++++ b/gcc/testsuite/gcc.dg/superblock.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-O2 -fno-asynchronous-unwind-tables -fsched2-use-superblocks -fdump-rtl-sched2 -fdump-rtl-bbro" } */ ++/* { dg-options "-O2 -fno-asynchronous-unwind-tables -fsched2-use-superblocks -fdump-rtl-sched2 -fdump-rtl-bbro -fno-stack-protector" } */ + /* { dg-require-effective-target scheduling } */ + + typedef int aligned __attribute__ ((aligned (64))); +diff --git a/gcc/testsuite/gcc.target/i386/avx-vzeroupper-17.c b/gcc/testsuite/gcc.target/i386/avx-vzeroupper-17.c +index 6dc0dc053214..d677e6f10e01 100644 +--- a/gcc/testsuite/gcc.target/i386/avx-vzeroupper-17.c ++++ b/gcc/testsuite/gcc.target/i386/avx-vzeroupper-17.c +@@ -1,5 +1,5 @@ + /* { dg-do compile { target lp64 } } */ +-/* { dg-options "-O2 -mavx -mabi=ms -dp" } */ ++/* { dg-options "-O2 -mavx -mabi=ms -dp -fno-stack-protector" } */ + + typedef float __m256 __attribute__ ((__vector_size__ (32), __may_alias__)); + +diff --git a/gcc/testsuite/gcc.target/i386/cleanup-1.c b/gcc/testsuite/gcc.target/i386/cleanup-1.c +index dcfcc4edb5fa..6e7544c6b7ac 100644 +--- a/gcc/testsuite/gcc.target/i386/cleanup-1.c ++++ b/gcc/testsuite/gcc.target/i386/cleanup-1.c +@@ -1,5 +1,5 @@ + /* { dg-do run { target *-*-linux* *-*-gnu* } } */ +-/* { dg-options "-fexceptions -fnon-call-exceptions -fasynchronous-unwind-tables -O2" } */ ++/* { dg-options "-fexceptions -fnon-call-exceptions -fasynchronous-unwind-tables -O2 -fno-stack-protector" } */ + /* Test complex CFA value expressions. */ + + #include +diff --git a/gcc/testsuite/gcc.target/i386/cleanup-2.c b/gcc/testsuite/gcc.target/i386/cleanup-2.c +index 7e60323373b8..a24daba73da2 100644 +--- a/gcc/testsuite/gcc.target/i386/cleanup-2.c ++++ b/gcc/testsuite/gcc.target/i386/cleanup-2.c +@@ -1,5 +1,5 @@ + /* { dg-do run { target { *-*-linux* && { ! ia32 } } } } */ +-/* { dg-options "-fexceptions -fnon-call-exceptions -fasynchronous-unwind-tables -O2" } */ ++/* { dg-options "-fexceptions -fnon-call-exceptions -fasynchronous-unwind-tables -O2 -fno-stack-protector" } */ + /* Test complex CFA value expressions. */ + + #include +diff --git a/gcc/testsuite/gcc.target/i386/interrupt-redzone-1.c b/gcc/testsuite/gcc.target/i386/interrupt-redzone-1.c +index 10098848c506..0c412db427e3 100644 +--- a/gcc/testsuite/gcc.target/i386/interrupt-redzone-1.c ++++ b/gcc/testsuite/gcc.target/i386/interrupt-redzone-1.c +@@ -1,5 +1,5 @@ + /* { dg-do compile { target { ! ia32 } } } */ +-/* { dg-options "-O2 -mgeneral-regs-only -mno-cld -mred-zone" } */ ++/* { dg-options "-O2 -mgeneral-regs-only -mno-cld -mred-zone -fno-stack-protector" } */ + + void + __attribute__((interrupt)) +diff --git a/gcc/testsuite/gcc.target/i386/interrupt-redzone-2.c b/gcc/testsuite/gcc.target/i386/interrupt-redzone-2.c +index 2577f43c9168..caea99665f23 100644 +--- a/gcc/testsuite/gcc.target/i386/interrupt-redzone-2.c ++++ b/gcc/testsuite/gcc.target/i386/interrupt-redzone-2.c +@@ -1,5 +1,5 @@ + /* { dg-do compile { target { ! ia32 } } } */ +-/* { dg-options "-O2 -mgeneral-regs-only -mno-cld -mred-zone" } */ ++/* { dg-options "-O2 -mgeneral-regs-only -mno-cld -mred-zone -fno-stack-protector" } */ + + void + __attribute__((interrupt)) +diff --git a/gcc/testsuite/gcc.target/i386/pr79793-1.c b/gcc/testsuite/gcc.target/i386/pr79793-1.c +index 1cc67a83ba39..102d63afe8d9 100644 +--- a/gcc/testsuite/gcc.target/i386/pr79793-1.c ++++ b/gcc/testsuite/gcc.target/i386/pr79793-1.c +@@ -1,5 +1,5 @@ + /* { dg-do compile { target { *-*-linux* && { ! ia32 } } } } */ +-/* { dg-options "-O2 -mgeneral-regs-only -mtune=generic" } */ ++/* { dg-options "-O2 -mgeneral-regs-only -mtune=generic -fno-stack-protector" } */ + + void + __attribute__ ((interrupt)) +diff --git a/gcc/testsuite/gcc.target/i386/pr79793-2.c b/gcc/testsuite/gcc.target/i386/pr79793-2.c +index e1e6463e120a..30f22bea9884 100644 +--- a/gcc/testsuite/gcc.target/i386/pr79793-2.c ++++ b/gcc/testsuite/gcc.target/i386/pr79793-2.c +@@ -1,5 +1,5 @@ + /* { dg-do compile { target { *-*-linux* && { ! ia32 } } } } */ +-/* { dg-options "-O2 -mgeneral-regs-only -mtune=generic" } */ ++/* { dg-options "-O2 -mgeneral-regs-only -mtune=generic -fno-stack-protector" } */ + + typedef unsigned int uword_t __attribute__ ((mode (__word__))); + +diff --git a/gcc/testsuite/gcc.target/i386/shrink_wrap_1.c b/gcc/testsuite/gcc.target/i386/shrink_wrap_1.c +index 94dadd6cdbd8..4b286671e90b 100644 +--- a/gcc/testsuite/gcc.target/i386/shrink_wrap_1.c ++++ b/gcc/testsuite/gcc.target/i386/shrink_wrap_1.c +@@ -1,5 +1,5 @@ + /* { dg-do compile { target { ! ia32 } } } */ +-/* { dg-options "-O2 -fdump-rtl-pro_and_epilogue" } */ ++/* { dg-options "-O2 -fdump-rtl-pro_and_epilogue -fno-stack-protector" } */ + + enum machine_mode + { +diff --git a/gcc/testsuite/gcc.target/i386/stack-check-11.c b/gcc/testsuite/gcc.target/i386/stack-check-11.c +index 90ab6023b422..48341cedcd4b 100644 +--- a/gcc/testsuite/gcc.target/i386/stack-check-11.c ++++ b/gcc/testsuite/gcc.target/i386/stack-check-11.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-O2 -fstack-clash-protection -mtune=generic" } */ ++/* { dg-options "-O2 -fstack-clash-protection -mtune=generic -fno-stack-protector" } */ + /* { dg-require-effective-target supports_stack_clash_protection } */ + + #include +diff --git a/gcc/testsuite/gcc.target/i386/stack-check-18.c b/gcc/testsuite/gcc.target/i386/stack-check-18.c +index 1cf4bbcfafb5..a0aab4a98238 100644 +--- a/gcc/testsuite/gcc.target/i386/stack-check-18.c ++++ b/gcc/testsuite/gcc.target/i386/stack-check-18.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-O2 -fstack-clash-protection -mtune=generic -fdump-rtl-expand" } */ ++/* { dg-options "-O2 -fstack-clash-protection -mtune=generic -fdump-rtl-expand -fno-stack-protector" } */ + /* { dg-require-effective-target supports_stack_clash_protection } */ + /* { dg-skip-if "" { *-*-* } { "-fstack-protector*" } { "" } } */ + +diff --git a/gcc/testsuite/gcc.target/i386/stack-check-19.c b/gcc/testsuite/gcc.target/i386/stack-check-19.c +index bf6af5ffc3e9..94c75dcb47ce 100644 +--- a/gcc/testsuite/gcc.target/i386/stack-check-19.c ++++ b/gcc/testsuite/gcc.target/i386/stack-check-19.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-O2 -fstack-clash-protection -mtune=generic -fdump-rtl-expand" } */ ++/* { dg-options "-O2 -fstack-clash-protection -mtune=generic -fdump-rtl-expand -fno-stack-protector" } */ + /* { dg-require-effective-target supports_stack_clash_protection } */ + /* { dg-skip-if "" { *-*-* } { "-fstack-protector*" } { "" } } */ + +diff --git a/gcc/testsuite/gcc.target/i386/stackalign/pr88483-1.c b/gcc/testsuite/gcc.target/i386/stackalign/pr88483-1.c +index c8bb0832fe26..11ecdd52aa15 100644 +--- a/gcc/testsuite/gcc.target/i386/stackalign/pr88483-1.c ++++ b/gcc/testsuite/gcc.target/i386/stackalign/pr88483-1.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-O2 -mavx2" } */ ++/* { dg-options "-O2 -mavx2 -fno-stack-protector" } */ + + struct B + { +diff --git a/gcc/testsuite/gcc.target/i386/stackalign/pr88483-2.c b/gcc/testsuite/gcc.target/i386/stackalign/pr88483-2.c +index e94fa1d18fad..33174fa29dec 100644 +--- a/gcc/testsuite/gcc.target/i386/stackalign/pr88483-2.c ++++ b/gcc/testsuite/gcc.target/i386/stackalign/pr88483-2.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-O2 -mavx512f" } */ ++/* { dg-options "-O2 -mavx512f -fno-stack-protector" } */ + + struct B + { +diff --git a/gcc/testsuite/gcc.target/i386/sw-1.c b/gcc/testsuite/gcc.target/i386/sw-1.c +index a9c89fca4ec4..b0432279644a 100644 +--- a/gcc/testsuite/gcc.target/i386/sw-1.c ++++ b/gcc/testsuite/gcc.target/i386/sw-1.c +@@ -1,4 +1,4 @@ + /* { dg-do compile } */ +-/* { dg-options "-O2 -mtune=generic -fshrink-wrap -fdump-rtl-pro_and_epilogue" } */ ++/* { dg-options "-O2 -mtune=generic -fshrink-wrap -fdump-rtl-pro_and_epilogue -fno-stack-protector" } */ + /* { dg-skip-if "No shrink-wrapping preformed" { x86_64-*-mingw* } } */ + +-- +cgit +