1
0
Files
gcc-14/debian/patches/musl-ssp.diff
Konstantin Demin c2c1923c7b initial import from Debian
version: 14.3.0-5
commit: bee30ab0fff2fd6af94c62376c8aa4221bb831e0
2025-08-11 15:00:09 +03:00

22 lines
905 B
Diff

See https://git.alpinelinux.org/aports/commit/?id=d307f133de1f8a9993ab0d6fd51176b9373df4c3
and https://www.openwall.com/lists/musl/2014/11/05/3
--- a/src/gcc/gcc.cc
+++ b/src/gcc/gcc.cc
@@ -1102,8 +1102,15 @@ proper position among the other output f
#ifndef LINK_SSP_SPEC
#ifdef TARGET_LIBC_PROVIDES_SSP
+#if DEFAULT_LIBC == LIBC_MUSL
+/* When linking without -fstack-protector-something but including objects that
+ were built with -fstack-protector-something, calls to __stack_chk_fail_local
+ can be emitted. Thus -lssp_nonshared must be linked unconditionally. */
+#define LINK_SSP_SPEC "-lssp_nonshared"
+#else
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
"|fstack-protector-strong|fstack-protector-explicit:}"
+#endif
#else
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
"|fstack-protector-strong|fstack-protector-explicit" \