On Thu, Apr 06, 2023 at 05:03:22PM +0530, Yash Shinde via Gcc-patches wrote: > When -fstack-protector options are enabled we need to > link with ssp_shared on musl since it does not provide > the __stack_chk_fail_local() so essentially it provides > libssp but not libssp_nonshared something like > TARGET_LIBC_PROVIDES_SSP_BUT_NOT_SSP_NONSHARED > where-as for glibc the needed symbols > are already present in libc_nonshared library therefore > we do not need any library helper on glibc based systems > but musl needs the libssp_noshared from gcc > > diff --git a/gcc/config/linux.h b/gcc/config/linux.h > index e3aca79cccc..33f9265bb93 100644 > --- a/gcc/config/linux.h > +++ b/gcc/config/linux.h > @@ -189,6 +189,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. > If not, see > } > #endif > > +#ifdef TARGET_LIBC_PROVIDES_SSP > +#undef LINK_SSP_SPEC > +#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ > + "|fstack-protector-strong|fstack-protector-explicit" \ > + ":-lssp_nonshared}" > +#endif
This links with -lssp_nonshared even for glibc, that certainly shouldn't be done. Jakub