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

Reply via email to