On Fri, Jan 21, 2022 at 08:16:11PM +0100, soeren--- via Gcc-patches wrote: > gcc/ChangeLog: > > * common/config/s390/s390-common.c (s390_supports_split_stack): > Only support split-stack on glibc targets. > * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN): Ditto. > * config/i386/gnu.h (defined): Ditto.
Besides breaking bootstrap, this doesn't do what it talks about: > --- a/gcc/config/i386/gnu.h > +++ b/gcc/config/i386/gnu.h > @@ -35,7 +35,10 @@ along with GCC. If not, see > <http://www.gnu.org/licenses/>. > crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}" > #endif > > -#ifdef TARGET_LIBC_PROVIDES_SSP > +/* -fsplit-stack uses a field in the TCB at a fixed offset. This > + field is only available for glibc. Disable -fsplit-stack for > + other libc implementations to avoid silent TCB corruptions. */ > +#if defined (TARGET_LIBC_PROVIDES_SSP) && OPTION_GLIBC > > /* i386 glibc provides __stack_chk_guard in %gs:0x14. */ > #define TARGET_THREAD_SSP_OFFSET 0x14 Because this doesn't disable just -fsplit-stack support, but also -fstack-protector*. Does that one work on musl? I think common/config/i386/i386-common.c (ix86_supports_split_stack) should have been changed instead of the config/i386/gnu*.h headers. Jakub