https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101476
--- Comment #16 from Stas Sergeev <stsp at users dot sourceforge.net> --- I think I'll propose to apply something like this to linux kernel: diff --git a/kernel/signal.c b/kernel/signal.c index 6f3476dc7873..0549212a8dd6 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -4153,6 +4153,7 @@ do_sigaltstack (const stack_t *ss, stack_t *oss, unsigned long sp, if (ss_mode == SS_DISABLE) { ss_size = 0; ss_sp = NULL; + ss_flags = SS_DISABLE; } else { if (unlikely(ss_size < min_ss_size)) ret = -ENOMEM;