From f10822d151085bcbfecd0ecf2542ac5f5623fd9d Mon Sep 17 00:00:00 2001 From: Matt Weber Date: Mon, 17 Sep 2018 16:21:50 -0500 Subject: [PATCH] toolchain/toolchain-wrapper: add BR2_SSP_* support Migrate the stack protection flag management into the wrapper. Signed-off-by: Matthew Weber Signed-off-by: Peter Korsgaard --- package/Makefile.in | 8 -------- toolchain/toolchain-wrapper.c | 9 +++++++++ toolchain/toolchain-wrapper.mk | 8 ++++++++ 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/package/Makefile.in b/package/Makefile.in index cd2148270a..dc0eecf1d5 100644 --- a/package/Makefile.in +++ b/package/Makefile.in @@ -143,14 +143,6 @@ endif TARGET_LDFLAGS = $(call qstrip,$(BR2_TARGET_LDFLAGS)) -ifeq ($(BR2_SSP_REGULAR),y) -TARGET_HARDENED += -fstack-protector -else ifeq ($(BR2_SSP_STRONG),y) -TARGET_HARDENED += -fstack-protector-strong -else ifeq ($(BR2_SSP_ALL),y) -TARGET_HARDENED += -fstack-protector-all -endif - ifeq ($(BR2_FORTIFY_SOURCE_1),y) TARGET_HARDENED += -D_FORTIFY_SOURCE=1 else ifeq ($(BR2_FORTIFY_SOURCE_2),y) diff --git a/toolchain/toolchain-wrapper.c b/toolchain/toolchain-wrapper.c index c73a0cc079..e9c5cd9d32 100644 --- a/toolchain/toolchain-wrapper.c +++ b/toolchain/toolchain-wrapper.c @@ -98,6 +98,15 @@ static char *predef_args[] = { #if defined(BR_MIPS_TARGET_BIG_ENDIAN) || defined(BR_ARC_TARGET_BIG_ENDIAN) "-EB", #endif +#ifdef BR_SSP_REGULAR + "-fstack-protector", +#endif +#ifdef BR_SSP_STRONG + "-fstack-protector-strong", +#endif +#ifdef BR_SSP_ALL + "-fstack-protector-all", +#endif #ifdef BR_ADDITIONAL_CFLAGS BR_ADDITIONAL_CFLAGS #endif diff --git a/toolchain/toolchain-wrapper.mk b/toolchain/toolchain-wrapper.mk index 99d303975c..613f5f6c56 100644 --- a/toolchain/toolchain-wrapper.mk +++ b/toolchain/toolchain-wrapper.mk @@ -51,6 +51,14 @@ else ifeq ($(BR2_RELRO_FULL),y) TOOLCHAIN_WRAPPER_ARGS += -DBR2_RELRO_FULL endif +ifeq ($(BR2_SSP_REGULAR),y) +TOOLCHAIN_WRAPPER_ARGS += -DBR_SSP_REGULAR +else ifeq ($(BR2_SSP_STRONG),y) +TOOLCHAIN_WRAPPER_ARGS += -DBR_SSP_STRONG +else ifeq ($(BR2_SSP_ALL),y) +TOOLCHAIN_WRAPPER_ARGS += -DBR_SSP_ALL +endif + define TOOLCHAIN_WRAPPER_BUILD $(HOSTCC) $(HOST_CFLAGS) $(TOOLCHAIN_WRAPPER_ARGS) \ -s -Wl,--hash-style=$(TOOLCHAIN_WRAPPER_HASH_STYLE) \ -- 2.30.2