diff --git a/arch/arm/src/arm/Toolchain.defs b/arch/arm/src/arm/Toolchain.defs index 5dffaefc2c5..64eca4bb0d9 100644 --- a/arch/arm/src/arm/Toolchain.defs +++ b/arch/arm/src/arm/Toolchain.defs @@ -71,6 +71,10 @@ else ARCHOPTIMIZATION += -fomit-frame-pointer endif +ifeq ($(CONFIG_STACK_CANARIES),y) + ARCHOPTIMIZATION += -fstack-protector-all +endif + ifeq ($(CONFIG_MM_KASAN),y) ARCHCPUFLAGS += -fsanitize=kernel-address endif diff --git a/arch/arm/src/armv6-m/Toolchain.defs b/arch/arm/src/armv6-m/Toolchain.defs index 800026062c3..bb184aac861 100644 --- a/arch/arm/src/armv6-m/Toolchain.defs +++ b/arch/arm/src/armv6-m/Toolchain.defs @@ -75,6 +75,10 @@ else ARCHOPTIMIZATION += -fomit-frame-pointer endif +ifeq ($(CONFIG_STACK_CANARIES),y) + ARCHOPTIMIZATION += -fstack-protector-all +endif + # Parametrization for ARCHCPUFLAGS TOOLCHAIN_MTUNE := -mcpu=cortex-m0 -mthumb diff --git a/arch/arm/src/armv7-a/Toolchain.defs b/arch/arm/src/armv7-a/Toolchain.defs index 87ca00b8108..57ba38ed59c 100644 --- a/arch/arm/src/armv7-a/Toolchain.defs +++ b/arch/arm/src/armv7-a/Toolchain.defs @@ -116,6 +116,10 @@ else ARCHOPTIMIZATION += -fomit-frame-pointer endif +ifeq ($(CONFIG_STACK_CANARIES),y) + ARCHOPTIMIZATION += -fstack-protector-all +endif + ifeq ($(CONFIG_ENDIAN_BIG),y) TARGET_ARCH := armeb else diff --git a/arch/arm/src/armv7-m/Toolchain.defs b/arch/arm/src/armv7-m/Toolchain.defs index d80ed4f74e4..1a2a3fbe7b8 100644 --- a/arch/arm/src/armv7-m/Toolchain.defs +++ b/arch/arm/src/armv7-m/Toolchain.defs @@ -77,6 +77,10 @@ else ARCHOPTIMIZATION += -fomit-frame-pointer endif +ifeq ($(CONFIG_STACK_CANARIES),y) + ARCHOPTIMIZATION += -fstack-protector-all +endif + # Parametrization for ARCHCPUFLAGS ifeq ($(CONFIG_ARCH_CORTEXM4),y) diff --git a/arch/arm/src/armv7-r/Toolchain.defs b/arch/arm/src/armv7-r/Toolchain.defs index 05289d6b956..d9c9427c544 100644 --- a/arch/arm/src/armv7-r/Toolchain.defs +++ b/arch/arm/src/armv7-r/Toolchain.defs @@ -65,6 +65,10 @@ else ARCHOPTIMIZATION += -fomit-frame-pointer endif +ifeq ($(CONFIG_STACK_CANARIES),y) + ARCHOPTIMIZATION += -fstack-protector-all +endif + ifeq ($(CONFIG_ARCH_CORTEXR4),y) ARCHCPUFLAGS += -mcpu=cortex-r4 else ifeq ($(CONFIG_ARCH_CORTEXR5),y) diff --git a/arch/arm/src/armv8-m/Toolchain.defs b/arch/arm/src/armv8-m/Toolchain.defs index 94ef2823a54..058b6ccc03f 100644 --- a/arch/arm/src/armv8-m/Toolchain.defs +++ b/arch/arm/src/armv8-m/Toolchain.defs @@ -77,6 +77,10 @@ else ARCHOPTIMIZATION += -fomit-frame-pointer endif +ifeq ($(CONFIG_STACK_CANARIES),y) + ARCHOPTIMIZATION += -fstack-protector-all +endif + # Parametrization for ARCHCPUFLAGS ifeq ($(CONFIG_ARCH_CORTEXM23),y) diff --git a/arch/risc-v/src/common/Toolchain.defs b/arch/risc-v/src/common/Toolchain.defs index 8930469173f..174a20d44b5 100644 --- a/arch/risc-v/src/common/Toolchain.defs +++ b/arch/risc-v/src/common/Toolchain.defs @@ -59,6 +59,10 @@ else ARCHOPTIMIZATION += -fomit-frame-pointer endif +ifeq ($(CONFIG_STACK_CANARIES),y) + ARCHOPTIMIZATION += -fstack-protector-all +endif + ARCHCFLAGS += -fno-common ARCHCXXFLAGS += -fno-common -nostdinc++ diff --git a/arch/xtensa/src/lx6/Toolchain.defs b/arch/xtensa/src/lx6/Toolchain.defs index 3f72c925df4..5312e15056e 100644 --- a/arch/xtensa/src/lx6/Toolchain.defs +++ b/arch/xtensa/src/lx6/Toolchain.defs @@ -63,6 +63,10 @@ else ARCHOPTIMIZATION += -fomit-frame-pointer endif +ifeq ($(CONFIG_STACK_CANARIES),y) + ARCHOPTIMIZATION += -fstack-protector-all +endif + ARCHCFLAGS += -fno-common ARCHCXXFLAGS += -fno-common -nostdinc++ diff --git a/arch/xtensa/src/lx7/Toolchain.defs b/arch/xtensa/src/lx7/Toolchain.defs index 0483c8073b1..da9fb6f1d30 100644 --- a/arch/xtensa/src/lx7/Toolchain.defs +++ b/arch/xtensa/src/lx7/Toolchain.defs @@ -63,6 +63,10 @@ else ARCHOPTIMIZATION += -fomit-frame-pointer endif +ifeq ($(CONFIG_STACK_CANARIES),y) + ARCHOPTIMIZATION += -fstack-protector-all +endif + ARCHCFLAGS += -fno-common ARCHCXXFLAGS += -fno-common -nostdinc++ diff --git a/boards/sim/sim/sim/scripts/Make.defs b/boards/sim/sim/sim/scripts/Make.defs index f51d30e3b58..1ff305e5679 100644 --- a/boards/sim/sim/sim/scripts/Make.defs +++ b/boards/sim/sim/sim/scripts/Make.defs @@ -57,6 +57,12 @@ else ARCHOPTIMIZATIONRUST += -C opt-level=0 endif +ifeq ($(CONFIG_FRAME_POINTER),y) + ARCHOPTIMIZATION += -fno-omit-frame-pointer -fno-optimize-sibling-calls +else + ARCHOPTIMIZATION += -fomit-frame-pointer +endif + ifeq ($(CONFIG_STACK_CANARIES),y) ARCHOPTIMIZATION += -fstack-protector-all endif @@ -148,14 +154,6 @@ ifeq ($(CONFIG_SIM_UBSAN),y) CXXFLAGS += -fsanitize=undefined endif -ifeq ($(CONFIG_FRAME_POINTER),y) - CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls - CXXFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls -else - CFLAGS += -fomit-frame-pointer - CXXFLAGS += -fomit-frame-pointer -endif - # Loadable module definitions CMODULEFLAGS = $(CFLAGS) diff --git a/boards/xtensa/esp32/esp32-devkitc/scripts/Make.defs b/boards/xtensa/esp32/esp32-devkitc/scripts/Make.defs index 2a81c3924f0..a0e33e781de 100644 --- a/boards/xtensa/esp32/esp32-devkitc/scripts/Make.defs +++ b/boards/xtensa/esp32/esp32-devkitc/scripts/Make.defs @@ -53,10 +53,6 @@ else LDSCRIPT_TEMPLATE = $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32.template.ld endif -ifeq ($(CONFIG_STACK_CANARIES),y) - ARCHOPTIMIZATION += -fstack-protector-all -endif - ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef ARCHWARNINGSXX = -Wall -Wshadow -Wundef ARCHPICFLAGS = -fpic diff --git a/boards/xtensa/esp32/esp32-ethernet-kit/scripts/Make.defs b/boards/xtensa/esp32/esp32-ethernet-kit/scripts/Make.defs index a5e40bc600d..fb6b793fd51 100644 --- a/boards/xtensa/esp32/esp32-ethernet-kit/scripts/Make.defs +++ b/boards/xtensa/esp32/esp32-ethernet-kit/scripts/Make.defs @@ -53,10 +53,6 @@ else LDSCRIPT_TEMPLATE = $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32.template.ld endif -ifeq ($(CONFIG_STACK_CANARIES),y) - ARCHOPTIMIZATION += -fstack-protector-all -endif - ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef ARCHWARNINGSXX = -Wall -Wshadow -Wundef ARCHPICFLAGS = -fpic diff --git a/boards/xtensa/esp32/esp32-wrover-kit/scripts/Make.defs b/boards/xtensa/esp32/esp32-wrover-kit/scripts/Make.defs index 9392e6fa9fd..564067a1bf9 100644 --- a/boards/xtensa/esp32/esp32-wrover-kit/scripts/Make.defs +++ b/boards/xtensa/esp32/esp32-wrover-kit/scripts/Make.defs @@ -53,10 +53,6 @@ else LDSCRIPT_TEMPLATE = $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32.template.ld endif -ifeq ($(CONFIG_STACK_CANARIES),y) - ARCHOPTIMIZATION += -fstack-protector-all -endif - ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef ARCHWARNINGSXX = -Wall -Wshadow -Wundef ARCHPICFLAGS = -fpic diff --git a/boards/xtensa/esp32/ttgo_lora_esp32/scripts/Make.defs b/boards/xtensa/esp32/ttgo_lora_esp32/scripts/Make.defs index f0dd050f92b..5a250bece1e 100644 --- a/boards/xtensa/esp32/ttgo_lora_esp32/scripts/Make.defs +++ b/boards/xtensa/esp32/ttgo_lora_esp32/scripts/Make.defs @@ -53,10 +53,6 @@ else LDSCRIPT_TEMPLATE = $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32.template.ld endif -ifeq ($(CONFIG_STACK_CANARIES),y) - ARCHOPTIMIZATION += -fstack-protector-all -endif - ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef ARCHWARNINGSXX = -Wall -Wshadow -Wundef ARCHPICFLAGS = -fpic