From 1877bc9d8f2be143fbe530347a945850d0ecd234 Mon Sep 17 00:00:00 2001 From: Steven Barth Date: Mon, 22 Jun 2015 10:31:07 +0000 Subject: gcc/musl: rework SSP-support Make musl provide libssp_nonshared.a and make GCC link it unconditionally if musl is used. This should be a no-op if SSP is disabled and seems to be the only reliable way of dealing with SSP over all packages due to the mess that is linkerflags handling in packages. Signed-off-by: Steven Barth SVN-Revision: 46108 --- toolchain/gcc/Config.in | 3 ++- .../patches/4.8-linaro/030-always-link-ssp-noshared.patch | 11 ----------- toolchain/gcc/patches/4.8-linaro/230-musl_libssp.patch | 13 +++++++++++++ 3 files changed, 15 insertions(+), 12 deletions(-) delete mode 100644 toolchain/gcc/patches/4.8-linaro/030-always-link-ssp-noshared.patch create mode 100644 toolchain/gcc/patches/4.8-linaro/230-musl_libssp.patch (limited to 'toolchain/gcc') diff --git a/toolchain/gcc/Config.in b/toolchain/gcc/Config.in index 5cb4d23e16..025ea2453d 100644 --- a/toolchain/gcc/Config.in +++ b/toolchain/gcc/Config.in @@ -42,7 +42,8 @@ config EXTRA_GCC_CONFIG_OPTIONS config SSP_SUPPORT bool prompt "Enable Stack-Smashing Protection support" if TOOLCHAINOPTS - default y + depends on !USE_MUSL + default y if !USE_MUSL help Enable Stack-Smashing Protection support diff --git a/toolchain/gcc/patches/4.8-linaro/030-always-link-ssp-noshared.patch b/toolchain/gcc/patches/4.8-linaro/030-always-link-ssp-noshared.patch deleted file mode 100644 index 1208e73029..0000000000 --- a/toolchain/gcc/patches/4.8-linaro/030-always-link-ssp-noshared.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- gcc-4.7.4.org/gcc/gcc.c -+++ gcc-4.7.4/gcc/gcc.c -@@ -603,7 +603,7 @@ - - #ifndef LINK_SSP_SPEC - #ifdef TARGET_LIBC_PROVIDES_SSP --#define LINK_SSP_SPEC "%{fstack-protector:}" -+#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all:-lssp_nonshared}" - #else - #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all:-lssp_nonshared -lssp}" - #endif diff --git a/toolchain/gcc/patches/4.8-linaro/230-musl_libssp.patch b/toolchain/gcc/patches/4.8-linaro/230-musl_libssp.patch new file mode 100644 index 0000000000..22176934af --- /dev/null +++ b/toolchain/gcc/patches/4.8-linaro/230-musl_libssp.patch @@ -0,0 +1,13 @@ +--- gcc-4.8.1/gcc/gcc.c.orig 2013-09-24 06:27:32.133894539 +0000 ++++ gcc-4.8.1/gcc/gcc.c 2013-09-24 06:29:35.790562854 +0000 +@@ -656,7 +656,9 @@ + #endif + + #ifndef LINK_SSP_SPEC +-#ifdef TARGET_LIBC_PROVIDES_SSP ++#if DEFAULT_LIBC == LIBC_MUSL ++#define LINK_SSP_SPEC "-lssp_nonshared" ++#elif defined(TARGET_LIBC_PROVIDES_SSP) + #define LINK_SSP_SPEC "%{fstack-protector:}" + #else + #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all:-lssp_nonshared -lssp}" -- cgit v1.2.3