You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2022/03/30 03:19:48 UTC

[incubator-nuttx] 08/08: arch/arm: Make CXX exception and RTTI depend on Kconfig options

This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git

commit e1f28c19c2f5a0a12622e8b2d334e946a75c1bf3
Author: Gustavo Henrique Nihei <gu...@espressif.com>
AuthorDate: Tue Mar 29 11:19:16 2022 -0300

    arch/arm: Make CXX exception and RTTI depend on Kconfig options
    
    Signed-off-by: Gustavo Henrique Nihei <gu...@espressif.com>
---
 arch/arm/src/arm/Toolchain.defs                               | 11 +++++++++++
 arch/arm/src/armv6-m/Toolchain.defs                           | 11 +++++++++++
 arch/arm/src/armv7-a/Toolchain.defs                           | 11 +++++++++++
 arch/arm/src/armv7-m/Toolchain.defs                           | 11 +++++++++++
 arch/arm/src/armv7-r/Toolchain.defs                           | 11 +++++++++++
 arch/arm/src/armv8-m/Toolchain.defs                           | 11 +++++++++++
 boards/arm/a1x/pcduino-a10/scripts/Make.defs                  |  4 ++--
 boards/arm/am335x/beaglebone-black/scripts/Make.defs          |  4 ++--
 boards/arm/c5471/c5471evm/scripts/Make.defs                   |  4 ++--
 boards/arm/cxd56xx/spresense/scripts/Make.defs                |  4 ++--
 boards/arm/dm320/ntosd-dm320/scripts/Make.defs                |  4 ++--
 boards/arm/efm32/efm32-g8xx-stk/scripts/Make.defs             |  4 ++--
 boards/arm/efm32/efm32gg-stk3700/scripts/Make.defs            |  4 ++--
 boards/arm/efm32/olimex-efm32g880f128-stk/scripts/Make.defs   |  4 ++--
 boards/arm/eoss3/quickfeather/scripts/Make.defs               |  6 +++---
 boards/arm/imx6/sabre-6quad/scripts/Make.defs                 |  4 ++--
 boards/arm/imxrt/imxrt1020-evk/scripts/Make.defs              |  4 ++--
 boards/arm/imxrt/imxrt1050-evk/configs/knsh/Make.defs         |  4 ++--
 boards/arm/imxrt/imxrt1050-evk/scripts/Make.defs              |  8 ++------
 boards/arm/imxrt/imxrt1060-evk/configs/knsh/Make.defs         |  4 ++--
 boards/arm/imxrt/imxrt1060-evk/scripts/Make.defs              |  8 ++------
 boards/arm/imxrt/imxrt1064-evk/configs/knsh/Make.defs         |  4 ++--
 boards/arm/imxrt/imxrt1064-evk/scripts/Make.defs              |  8 ++------
 boards/arm/imxrt/teensy-4.x/scripts/Make.defs                 |  4 ++--
 boards/arm/kinetis/freedom-k28f/scripts/Make.defs             |  4 ++--
 boards/arm/kinetis/freedom-k64f/scripts/Make.defs             |  4 ++--
 boards/arm/kinetis/freedom-k66f/scripts/Make.defs             |  4 ++--
 boards/arm/kinetis/kwikstik-k40/scripts/Make.defs             |  4 ++--
 boards/arm/kinetis/teensy-3.x/scripts/Make.defs               |  4 ++--
 boards/arm/kinetis/twr-k60n512/scripts/Make.defs              |  4 ++--
 boards/arm/kinetis/twr-k64f120m/scripts/Make.defs             |  4 ++--
 boards/arm/kl/freedom-kl25z/scripts/Make.defs                 |  4 ++--
 boards/arm/kl/freedom-kl26z/scripts/Make.defs                 |  4 ++--
 boards/arm/kl/teensy-lc/scripts/Make.defs                     |  4 ++--
 boards/arm/lc823450/lc823450-xgevk/scripts/Make.defs          |  4 ++--
 boards/arm/lpc17xx_40xx/lincoln60/scripts/Make.defs           |  4 ++--
 boards/arm/lpc17xx_40xx/lpc4088-devkit/configs/knsh/Make.defs |  4 ++--
 boards/arm/lpc17xx_40xx/lpc4088-devkit/scripts/Make.defs      |  4 ++--
 .../lpc17xx_40xx/lpc4088-quickstart/configs/knsh/Make.defs    |  4 ++--
 boards/arm/lpc17xx_40xx/lpc4088-quickstart/scripts/Make.defs  |  4 ++--
 .../lpc17xx_40xx/lpcxpresso-lpc1768/configs/thttpd/Make.defs  |  4 ++--
 boards/arm/lpc17xx_40xx/lpcxpresso-lpc1768/scripts/Make.defs  |  4 ++--
 boards/arm/lpc17xx_40xx/lx_cpu/scripts/Make.defs              |  4 ++--
 boards/arm/lpc17xx_40xx/mbed/scripts/Make.defs                |  4 ++--
 boards/arm/lpc17xx_40xx/mcb1700/scripts/Make.defs             |  4 ++--
 .../olimex-lpc1766stk/configs/thttpd-binfs/Make.defs          |  4 ++--
 .../olimex-lpc1766stk/configs/thttpd-nxflat/Make.defs         |  4 ++--
 boards/arm/lpc17xx_40xx/olimex-lpc1766stk/scripts/Make.defs   |  4 ++--
 boards/arm/lpc17xx_40xx/open1788/configs/knsh/Make.defs       |  4 ++--
 boards/arm/lpc17xx_40xx/open1788/configs/knxterm/Make.defs    |  4 ++--
 boards/arm/lpc17xx_40xx/open1788/scripts/Make.defs            |  4 ++--
 boards/arm/lpc17xx_40xx/pnev5180b/configs/knsh/Make.defs      |  4 ++--
 boards/arm/lpc17xx_40xx/pnev5180b/scripts/Make.defs           |  4 ++--
 boards/arm/lpc17xx_40xx/u-blox-c027/scripts/Make.defs         |  4 ++--
 boards/arm/lpc17xx_40xx/zkit-arm-1769/scripts/Make.defs       |  4 ++--
 boards/arm/lpc214x/mcu123-lpc214x/scripts/Make.defs           |  4 ++--
 boards/arm/lpc214x/zp214xpa/scripts/Make.defs                 |  4 ++--
 boards/arm/lpc2378/olimex-lpc2378/scripts/Make.defs           |  4 ++--
 boards/arm/lpc31xx/ea3131/configs/pgnsh/Make.defs             |  4 ++--
 boards/arm/lpc31xx/ea3131/scripts/Make.defs                   |  4 ++--
 boards/arm/lpc31xx/ea3152/scripts/Make.defs                   |  4 ++--
 boards/arm/lpc31xx/olimex-lpc-h3131/scripts/Make.defs         |  4 ++--
 boards/arm/lpc43xx/bambino-200e/scripts/Make.defs             |  4 ++--
 boards/arm/lpc43xx/lpc4330-xplorer/scripts/Make.defs          |  4 ++--
 boards/arm/lpc43xx/lpc4337-ws/scripts/Make.defs               |  4 ++--
 boards/arm/lpc43xx/lpc4357-evb/scripts/Make.defs              |  4 ++--
 boards/arm/lpc43xx/lpc4370-link2/scripts/Make.defs            |  4 ++--
 boards/arm/lpc54xx/lpcxpresso-lpc54628/scripts/Make.defs      |  4 ++--
 boards/arm/max326xx/max32660-evsys/scripts/Make.defs          |  4 ++--
 boards/arm/moxart/moxa/scripts/Make.defs                      |  4 ++--
 boards/arm/nrf52/nrf52-feather/scripts/Make.defs              |  4 ++--
 boards/arm/nrf52/nrf52832-dk/scripts/Make.defs                |  4 ++--
 boards/arm/nrf52/nrf52832-mdk/scripts/Make.defs               |  4 ++--
 boards/arm/nrf52/nrf52832-sparkfun/scripts/Make.defs          |  4 ++--
 boards/arm/nrf52/nrf52840-dk/scripts/Make.defs                |  4 ++--
 boards/arm/nrf52/nrf52840-dongle/scripts/Make.defs            |  4 ++--
 boards/arm/nuc1xx/nutiny-nuc120/scripts/Make.defs             |  4 ++--
 boards/arm/phy62xx/phy6222/scripts/Make.defs                  |  4 ++--
 boards/arm/rp2040/pimoroni-tiny2040/scripts/Make.defs         |  4 ++--
 boards/arm/rp2040/raspberrypi-pico/scripts/Make.defs          |  4 ++--
 boards/arm/s32k1xx/s32k118evb/scripts/Make.defs               |  4 ++--
 boards/arm/s32k1xx/s32k144evb/scripts/Make.defs               |  4 ++--
 boards/arm/s32k1xx/s32k146evb/scripts/Make.defs               |  4 ++--
 boards/arm/s32k1xx/s32k148evb/scripts/Make.defs               |  4 ++--
 boards/arm/s32k1xx/ucans32k146/scripts/Make.defs              |  4 ++--
 boards/arm/sam34/arduino-due/scripts/Make.defs                |  4 ++--
 boards/arm/sam34/flipnclick-sam3x/scripts/Make.defs           |  4 ++--
 boards/arm/sam34/sam3u-ek/configs/knsh/Make.defs              |  4 ++--
 boards/arm/sam34/sam3u-ek/scripts/Make.defs                   |  4 ++--
 boards/arm/sam34/sam4cmp-db/scripts/Make.defs                 |  4 ++--
 boards/arm/sam34/sam4e-ek/scripts/Make.defs                   |  4 ++--
 boards/arm/sam34/sam4l-xplained/scripts/Make.defs             |  4 ++--
 boards/arm/sam34/sam4s-xplained-pro/scripts/Make.defs         |  4 ++--
 boards/arm/sam34/sam4s-xplained/scripts/Make.defs             |  4 ++--
 boards/arm/sama5/giant-board/scripts/Make.defs                |  4 ++--
 boards/arm/sama5/sama5d2-xult/scripts/Make.defs               |  4 ++--
 boards/arm/sama5/sama5d3-xplained/scripts/Make.defs           |  4 ++--
 boards/arm/sama5/sama5d3x-ek/scripts/Make.defs                |  4 ++--
 boards/arm/sama5/sama5d4-ek/configs/knsh/Make.defs            |  4 ++--
 boards/arm/sama5/sama5d4-ek/scripts/Make.defs                 |  4 ++--
 boards/arm/samd2l2/arduino-m0/scripts/Make.defs               |  4 ++--
 boards/arm/samd2l2/circuit-express/scripts/Make.defs          |  4 ++--
 boards/arm/samd2l2/samd20-xplained/scripts/Make.defs          |  4 ++--
 boards/arm/samd2l2/samd21-xplained/scripts/Make.defs          |  4 ++--
 boards/arm/samd2l2/saml21-xplained/scripts/Make.defs          |  4 ++--
 boards/arm/samd5e5/metro-m4/scripts/Make.defs                 |  4 ++--
 boards/arm/samd5e5/same54-xplained-pro/scripts/Make.defs      |  4 ++--
 boards/arm/samv7/same70-qmtech/scripts/Make.defs              |  4 ++--
 boards/arm/samv7/same70-xplained/scripts/Make.defs            |  4 ++--
 boards/arm/samv7/samv71-xult/configs/knsh/Make.defs           |  4 ++--
 boards/arm/samv7/samv71-xult/scripts/Make.defs                |  4 ++--
 boards/arm/stm32/axoloti/scripts/Make.defs                    |  4 ++--
 boards/arm/stm32/b-g431b-esc1/scripts/Make.defs               |  4 ++--
 boards/arm/stm32/b-g474e-dpow1/scripts/Make.defs              |  4 ++--
 boards/arm/stm32/clicker2-stm32/scripts/Make.defs             |  4 ++--
 boards/arm/stm32/cloudctrl/scripts/Make.defs                  |  4 ++--
 boards/arm/stm32/emw3162/scripts/Make.defs                    |  4 ++--
 boards/arm/stm32/et-stm32-stamp/scripts/Make.defs             |  4 ++--
 boards/arm/stm32/fire-stm32v2/scripts/Make.defs               |  4 ++--
 boards/arm/stm32/hymini-stm32v/scripts/Make.defs              |  4 ++--
 boards/arm/stm32/maple/scripts/Make.defs                      |  4 ++--
 boards/arm/stm32/mikroe-stm32f4/scripts/Make.defs             |  4 ++--
 boards/arm/stm32/nucleo-f103rb/scripts/Make.defs              |  4 ++--
 boards/arm/stm32/nucleo-f207zg/scripts/Make.defs              |  4 ++--
 boards/arm/stm32/nucleo-f302r8/scripts/Make.defs              |  4 ++--
 boards/arm/stm32/nucleo-f303re/scripts/Make.defs              |  4 ++--
 boards/arm/stm32/nucleo-f303ze/scripts/Make.defs              |  4 ++--
 boards/arm/stm32/nucleo-f334r8/scripts/Make.defs              |  4 ++--
 boards/arm/stm32/nucleo-f410rb/scripts/Make.defs              |  4 ++--
 boards/arm/stm32/nucleo-f412zg/scripts/Make.defs              |  4 ++--
 boards/arm/stm32/nucleo-f429zi/scripts/Make.defs              |  4 ++--
 boards/arm/stm32/nucleo-f446re/scripts/Make.defs              |  6 ++----
 boards/arm/stm32/nucleo-f4x1re/scripts/Make.defs              |  6 ++----
 boards/arm/stm32/nucleo-g431kb/scripts/Make.defs              |  4 ++--
 boards/arm/stm32/nucleo-g431rb/scripts/Make.defs              |  4 ++--
 boards/arm/stm32/nucleo-l152re/scripts/Make.defs              |  4 ++--
 boards/arm/stm32/olimex-stm32-e407/scripts/Make.defs          |  4 ++--
 boards/arm/stm32/olimex-stm32-h405/scripts/Make.defs          |  4 ++--
 boards/arm/stm32/olimex-stm32-h407/scripts/Make.defs          |  4 ++--
 boards/arm/stm32/olimex-stm32-p107/scripts/Make.defs          |  4 ++--
 boards/arm/stm32/olimex-stm32-p207/scripts/Make.defs          |  4 ++--
 boards/arm/stm32/olimex-stm32-p407/configs/kelf/Make.defs     |  4 ++--
 boards/arm/stm32/olimex-stm32-p407/configs/kmodule/Make.defs  |  4 ++--
 boards/arm/stm32/olimex-stm32-p407/configs/knsh/Make.defs     |  4 ++--
 boards/arm/stm32/olimex-stm32-p407/scripts/Make.defs          |  4 ++--
 boards/arm/stm32/olimexino-stm32/scripts/Make.defs            |  4 ++--
 boards/arm/stm32/omnibusf4/scripts/Make.defs                  |  4 ++--
 boards/arm/stm32/photon/scripts/Make.defs                     |  4 ++--
 boards/arm/stm32/shenzhou/scripts/Make.defs                   |  4 ++--
 boards/arm/stm32/stm3210e-eval/scripts/Make.defs              |  4 ++--
 boards/arm/stm32/stm3220g-eval/scripts/Make.defs              |  4 ++--
 boards/arm/stm32/stm3240g-eval/configs/knxwm/Make.defs        |  4 ++--
 boards/arm/stm32/stm3240g-eval/scripts/Make.defs              |  4 ++--
 boards/arm/stm32/stm32_tiny/scripts/Make.defs                 |  4 ++--
 boards/arm/stm32/stm32butterfly2/scripts/Make.defs            |  4 ++--
 boards/arm/stm32/stm32f103-minimum/scripts/Make.defs          |  4 ++--
 boards/arm/stm32/stm32f334-disco/scripts/Make.defs            |  4 ++--
 boards/arm/stm32/stm32f3discovery/scripts/Make.defs           |  4 ++--
 boards/arm/stm32/stm32f411-minimum/scripts/Make.defs          |  4 ++--
 boards/arm/stm32/stm32f411e-disco/scripts/Make.defs           |  4 ++--
 boards/arm/stm32/stm32f429i-disco/scripts/Make.defs           |  4 ++--
 boards/arm/stm32/stm32f4discovery/scripts/Make.defs           |  9 +++------
 boards/arm/stm32/stm32ldiscovery/scripts/Make.defs            |  4 ++--
 boards/arm/stm32/stm32vldiscovery/scripts/Make.defs           |  4 ++--
 boards/arm/stm32/viewtool-stm32f107/scripts/Make.defs         |  4 ++--
 boards/arm/stm32f0l0g0/b-l072z-lrwan1/scripts/Make.defs       |  4 ++--
 boards/arm/stm32f0l0g0/nucleo-f072rb/scripts/Make.defs        |  4 ++--
 boards/arm/stm32f0l0g0/nucleo-f091rc/scripts/Make.defs        |  4 ++--
 boards/arm/stm32f0l0g0/nucleo-g070rb/scripts/Make.defs        |  4 ++--
 boards/arm/stm32f0l0g0/nucleo-g071rb/scripts/Make.defs        |  4 ++--
 boards/arm/stm32f0l0g0/nucleo-l073rz/scripts/Make.defs        |  4 ++--
 boards/arm/stm32f0l0g0/stm32f051-discovery/scripts/Make.defs  |  4 ++--
 boards/arm/stm32f0l0g0/stm32f072-discovery/scripts/Make.defs  |  4 ++--
 boards/arm/stm32f7/nucleo-144/configs/f722-nsh/Make.defs      |  4 ++--
 boards/arm/stm32f7/nucleo-144/configs/f746-evalos/Make.defs   |  4 ++--
 boards/arm/stm32f7/nucleo-144/configs/f746-nsh/Make.defs      |  4 ++--
 boards/arm/stm32f7/nucleo-144/configs/f746-pysim/Make.defs    |  4 ++--
 boards/arm/stm32f7/nucleo-144/configs/f767-evalos/Make.defs   |  4 ++--
 boards/arm/stm32f7/nucleo-144/configs/f767-netnsh/Make.defs   |  4 ++--
 boards/arm/stm32f7/nucleo-144/configs/f767-nsh/Make.defs      |  4 ++--
 boards/arm/stm32f7/stm32f746-ws/scripts/Make.defs             |  4 ++--
 boards/arm/stm32f7/stm32f746g-disco/scripts/Make.defs         |  6 ++----
 boards/arm/stm32f7/stm32f769i-disco/scripts/Make.defs         |  4 ++--
 boards/arm/stm32h7/nucleo-h743zi/scripts/Make.defs            |  4 ++--
 boards/arm/stm32h7/nucleo-h743zi2/scripts/Make.defs           |  4 ++--
 boards/arm/stm32h7/stm32h747i-disco/scripts/Make.defs         |  4 ++--
 boards/arm/stm32l4/b-l475e-iot01a/scripts/Make.defs           |  4 ++--
 boards/arm/stm32l4/nucleo-l432kc/scripts/Make.defs            |  4 ++--
 boards/arm/stm32l4/nucleo-l452re/scripts/Make.defs            |  4 ++--
 boards/arm/stm32l4/nucleo-l476rg/scripts/Make.defs            |  6 +++---
 boards/arm/stm32l4/nucleo-l496zg/scripts/Make.defs            |  4 ++--
 boards/arm/stm32l4/stm32l476-mdk/scripts/Make.defs            |  4 ++--
 boards/arm/stm32l4/stm32l476vg-disco/configs/knsh/Make.defs   |  4 ++--
 boards/arm/stm32l4/stm32l476vg-disco/scripts/Make.defs        |  4 ++--
 boards/arm/stm32l4/stm32l4r9ai-disco/configs/knsh/Make.defs   |  4 ++--
 boards/arm/stm32l4/stm32l4r9ai-disco/scripts/Make.defs        |  4 ++--
 boards/arm/stm32l5/nucleo-l552ze/scripts/Make.defs            |  4 ++--
 boards/arm/stm32l5/stm32l562e-dk/scripts/Make.defs            |  4 ++--
 boards/arm/stm32u5/b-u585i-iot02a/scripts/Make.defs           |  4 ++--
 boards/arm/str71x/olimex-strp711/scripts/Make.defs            |  4 ++--
 boards/arm/tiva/dk-tm4c129x/scripts/Make.defs                 |  4 ++--
 boards/arm/tiva/eagle100/scripts/Make.defs                    |  4 ++--
 boards/arm/tiva/ekk-lm3s9b96/scripts/Make.defs                |  4 ++--
 boards/arm/tiva/launchxl-cc1310/scripts/Make.defs             |  4 ++--
 boards/arm/tiva/launchxl-cc1312r1/scripts/Make.defs           |  4 ++--
 boards/arm/tiva/lm3s6432-s2e/scripts/Make.defs                |  4 ++--
 boards/arm/tiva/lm3s6965-ek/scripts/Make.defs                 |  4 ++--
 boards/arm/tiva/lm3s8962-ek/scripts/Make.defs                 |  4 ++--
 boards/arm/tiva/lm4f120-launchpad/scripts/Make.defs           |  4 ++--
 boards/arm/tiva/tm4c123g-launchpad/scripts/Make.defs          |  4 ++--
 boards/arm/tiva/tm4c1294-launchpad/scripts/Make.defs          |  4 ++--
 boards/arm/tms570/launchxl-tms57004/scripts/Make.defs         |  4 ++--
 boards/arm/tms570/tms570ls31x-usb-kit/scripts/Make.defs       |  4 ++--
 boards/arm/xmc4/xmc4500-relax/scripts/Make.defs               |  4 ++--
 boards/arm/xmc4/xmc4700-relax/scripts/Make.defs               |  4 ++--
 215 files changed, 487 insertions(+), 442 deletions(-)

diff --git a/arch/arm/src/arm/Toolchain.defs b/arch/arm/src/arm/Toolchain.defs
index 07127dc..39bd95a 100644
--- a/arch/arm/src/arm/Toolchain.defs
+++ b/arch/arm/src/arm/Toolchain.defs
@@ -93,6 +93,17 @@ ifeq ($(CONFIG_ARM_TOOLCHAIN),GNU_EABI)
   CROSSDEV ?= arm-none-eabi-
 endif
 
+ARCHCFLAGS =
+ARCHCXXFLAGS =
+
+ifneq ($(CONFIG_CXX_EXCEPTION),y)
+  ARCHCXXFLAGS += -fno-exceptions -fcheck-new
+endif
+
+ifneq ($(CONFIG_CXX_RTTI),y)
+  ARCHCXXFLAGS += -fno-rtti
+endif
+
 # Default toolchain
 
 CC = $(CROSSDEV)gcc
diff --git a/arch/arm/src/armv6-m/Toolchain.defs b/arch/arm/src/armv6-m/Toolchain.defs
index c08d23e..1f2e8e1 100644
--- a/arch/arm/src/armv6-m/Toolchain.defs
+++ b/arch/arm/src/armv6-m/Toolchain.defs
@@ -85,6 +85,17 @@ ifeq ($(CONFIG_MM_KASAN),y)
   ARCHCPUFLAGS += -fsanitize=kernel-address
 endif
 
+ARCHCFLAGS =
+ARCHCXXFLAGS =
+
+ifneq ($(CONFIG_CXX_EXCEPTION),y)
+  ARCHCXXFLAGS += -fno-exceptions -fcheck-new
+endif
+
+ifneq ($(CONFIG_CXX_RTTI),y)
+  ARCHCXXFLAGS += -fno-rtti
+endif
+
 # Default toolchain
 
 CC = $(CROSSDEV)gcc
diff --git a/arch/arm/src/armv7-a/Toolchain.defs b/arch/arm/src/armv7-a/Toolchain.defs
index 50dee48..d940b39 100644
--- a/arch/arm/src/armv7-a/Toolchain.defs
+++ b/arch/arm/src/armv7-a/Toolchain.defs
@@ -124,6 +124,17 @@ else
   TARGET_ARCH := arm
 endif
 
+ARCHCFLAGS =
+ARCHCXXFLAGS =
+
+ifneq ($(CONFIG_CXX_EXCEPTION),y)
+  ARCHCXXFLAGS += -fno-exceptions -fcheck-new
+endif
+
+ifneq ($(CONFIG_CXX_RTTI),y)
+  ARCHCXXFLAGS += -fno-rtti
+endif
+
 # NuttX buildroot under Linux or Cygwin
 
 ifeq ($(CONFIG_ARMV7A_TOOLCHAIN),BUILDROOT)
diff --git a/arch/arm/src/armv7-m/Toolchain.defs b/arch/arm/src/armv7-m/Toolchain.defs
index c6f9639..5aed01a 100644
--- a/arch/arm/src/armv7-m/Toolchain.defs
+++ b/arch/arm/src/armv7-m/Toolchain.defs
@@ -141,6 +141,17 @@ ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),GNU_EABI)
   ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) -mthumb $(TOOLCHAIN_MFLOAT)
 endif
 
+ARCHCFLAGS =
+ARCHCXXFLAGS =
+
+ifneq ($(CONFIG_CXX_EXCEPTION),y)
+  ARCHCXXFLAGS += -fno-exceptions -fcheck-new
+endif
+
+ifneq ($(CONFIG_CXX_RTTI),y)
+  ARCHCXXFLAGS += -fno-rtti
+endif
+
 # Clang toolchain
 
 ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),CLANG)
diff --git a/arch/arm/src/armv7-r/Toolchain.defs b/arch/arm/src/armv7-r/Toolchain.defs
index 43860d4..f819f3b 100644
--- a/arch/arm/src/armv7-r/Toolchain.defs
+++ b/arch/arm/src/armv7-r/Toolchain.defs
@@ -116,6 +116,17 @@ ifeq ($(CONFIG_ARMV7R_TOOLCHAIN),GNU_EABI)
   CROSSDEV ?= $(TARGET_ARCH)-none-eabi-
 endif
 
+ARCHCFLAGS =
+ARCHCXXFLAGS =
+
+ifneq ($(CONFIG_CXX_EXCEPTION),y)
+  ARCHCXXFLAGS += -fno-exceptions -fcheck-new
+endif
+
+ifneq ($(CONFIG_CXX_RTTI),y)
+  ARCHCXXFLAGS += -fno-rtti
+endif
+
 # Default toolchain
 
 CC = $(CROSSDEV)gcc
diff --git a/arch/arm/src/armv8-m/Toolchain.defs b/arch/arm/src/armv8-m/Toolchain.defs
index eee0ba5..cfa14bf 100644
--- a/arch/arm/src/armv8-m/Toolchain.defs
+++ b/arch/arm/src/armv8-m/Toolchain.defs
@@ -150,6 +150,17 @@ ifeq ($(CONFIG_ARMV8M_TOOLCHAIN),CLANG)
   ARCHCPUFLAGS = $(TOOLCHAIN_MARCH) $(TOOLCHAIN_MTUNE) -mthumb $(TOOLCHAIN_MFLOAT)
 endif
 
+ARCHCFLAGS =
+ARCHCXXFLAGS =
+
+ifneq ($(CONFIG_CXX_EXCEPTION),y)
+  ARCHCXXFLAGS += -fno-exceptions -fcheck-new
+endif
+
+ifneq ($(CONFIG_CXX_RTTI),y)
+  ARCHCXXFLAGS += -fno-rtti
+endif
+
 # Default toolchain
 
 CC = $(CROSSDEV)gcc
diff --git a/boards/arm/a1x/pcduino-a10/scripts/Make.defs b/boards/arm/a1x/pcduino-a10/scripts/Make.defs
index b0d996e..bd54025 100644
--- a/boards/arm/a1x/pcduino-a10/scripts/Make.defs
+++ b/boards/arm/a1x/pcduino-a10/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/am335x/beaglebone-black/scripts/Make.defs b/boards/arm/am335x/beaglebone-black/scripts/Make.defs
index 0fa21af..de2180a 100644
--- a/boards/arm/am335x/beaglebone-black/scripts/Make.defs
+++ b/boards/arm/am335x/beaglebone-black/scripts/Make.defs
@@ -36,8 +36,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/c5471/c5471evm/scripts/Make.defs b/boards/arm/c5471/c5471evm/scripts/Make.defs
index 94a3c16..c8dbc16 100644
--- a/boards/arm/c5471/c5471evm/scripts/Make.defs
+++ b/boards/arm/c5471/c5471evm/scripts/Make.defs
@@ -55,8 +55,8 @@ else
   ARCHCPUFLAGS = -mapcs-32 -mcpu=arm7tdmi -msoft-float
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
diff --git a/boards/arm/cxd56xx/spresense/scripts/Make.defs b/boards/arm/cxd56xx/spresense/scripts/Make.defs
index 48b963c..ad457ed 100644
--- a/boards/arm/cxd56xx/spresense/scripts/Make.defs
+++ b/boards/arm/cxd56xx/spresense/scripts/Make.defs
@@ -44,8 +44,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common -mabi=aapcs -ffunction-sections -fdata-sections
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fno-rtti -std=c++11
+ARCHCFLAGS += -fno-common -mabi=aapcs -ffunction-sections -fdata-sections
+ARCHCXXFLAGS += -fno-common -std=c++11
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/dm320/ntosd-dm320/scripts/Make.defs b/boards/arm/dm320/ntosd-dm320/scripts/Make.defs
index 2d1802d..5d9f1ca 100644
--- a/boards/arm/dm320/ntosd-dm320/scripts/Make.defs
+++ b/boards/arm/dm320/ntosd-dm320/scripts/Make.defs
@@ -52,8 +52,8 @@ else
   ARCHCPUFLAGS = -mapcs-32 -mtune=arm9tdmi -march=armv5te -msoft-float
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
diff --git a/boards/arm/efm32/efm32-g8xx-stk/scripts/Make.defs b/boards/arm/efm32/efm32-g8xx-stk/scripts/Make.defs
index b33c4a2..78e0162 100644
--- a/boards/arm/efm32/efm32-g8xx-stk/scripts/Make.defs
+++ b/boards/arm/efm32/efm32-g8xx-stk/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/efm32/efm32gg-stk3700/scripts/Make.defs b/boards/arm/efm32/efm32gg-stk3700/scripts/Make.defs
index 25f1556..1680440 100644
--- a/boards/arm/efm32/efm32gg-stk3700/scripts/Make.defs
+++ b/boards/arm/efm32/efm32gg-stk3700/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/efm32/olimex-efm32g880f128-stk/scripts/Make.defs b/boards/arm/efm32/olimex-efm32g880f128-stk/scripts/Make.defs
index 0fa7eda..75cdbab 100644
--- a/boards/arm/efm32/olimex-efm32g880f128-stk/scripts/Make.defs
+++ b/boards/arm/efm32/olimex-efm32g880f128-stk/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/eoss3/quickfeather/scripts/Make.defs b/boards/arm/eoss3/quickfeather/scripts/Make.defs
index 60dace6..be77181 100644
--- a/boards/arm/eoss3/quickfeather/scripts/Make.defs
+++ b/boards/arm/eoss3/quickfeather/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
@@ -45,7 +45,7 @@ ifeq ($(CONFIG_ARMV7M_TOOLCHAIN_CLANGL),y)
   ARCHCXXFLAGS += -nostdlib -ffreestanding
 else
   ARCHCFLAGS += -funwind-tables
-  ARCHCXXFLAGS += -fno-rtti -funwind-tables
+  ARCHCXXFLAGS += -funwind-tables
 
 endif
 
diff --git a/boards/arm/imx6/sabre-6quad/scripts/Make.defs b/boards/arm/imx6/sabre-6quad/scripts/Make.defs
index 66bf770..532764d 100644
--- a/boards/arm/imx6/sabre-6quad/scripts/Make.defs
+++ b/boards/arm/imx6/sabre-6quad/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common -ffunction-sections -fdata-sections
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common -ffunction-sections -fdata-sections
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/imxrt/imxrt1020-evk/scripts/Make.defs b/boards/arm/imxrt/imxrt1020-evk/scripts/Make.defs
index 927dfcd..1e0793c 100644
--- a/boards/arm/imxrt/imxrt1020-evk/scripts/Make.defs
+++ b/boards/arm/imxrt/imxrt1020-evk/scripts/Make.defs
@@ -38,8 +38,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION)
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -fno-strict-aliasing
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/imxrt/imxrt1050-evk/configs/knsh/Make.defs b/boards/arm/imxrt/imxrt1050-evk/configs/knsh/Make.defs
index 0e28b92..8c022e9 100644
--- a/boards/arm/imxrt/imxrt1050-evk/configs/knsh/Make.defs
+++ b/boards/arm/imxrt/imxrt1050-evk/configs/knsh/Make.defs
@@ -36,8 +36,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION)
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -fno-strict-aliasing
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/imxrt/imxrt1050-evk/scripts/Make.defs b/boards/arm/imxrt/imxrt1050-evk/scripts/Make.defs
index 7a91126..f6e5f90 100644
--- a/boards/arm/imxrt/imxrt1050-evk/scripts/Make.defs
+++ b/boards/arm/imxrt/imxrt1050-evk/scripts/Make.defs
@@ -38,12 +38,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION)
 endif
 
-ARCHCFLAGS = -fno-common
-ifeq ($(CONFIG_CXX_EXCEPTION),y)
-  ARCHCXXFLAGS = -fno-common
-else
-  ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
-endif
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -fno-strict-aliasing
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
diff --git a/boards/arm/imxrt/imxrt1060-evk/configs/knsh/Make.defs b/boards/arm/imxrt/imxrt1060-evk/configs/knsh/Make.defs
index 02b8d1d..9f33ab2 100644
--- a/boards/arm/imxrt/imxrt1060-evk/configs/knsh/Make.defs
+++ b/boards/arm/imxrt/imxrt1060-evk/configs/knsh/Make.defs
@@ -36,8 +36,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION)
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -fno-strict-aliasing
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/imxrt/imxrt1060-evk/scripts/Make.defs b/boards/arm/imxrt/imxrt1060-evk/scripts/Make.defs
index fb550ad..34dfff7 100644
--- a/boards/arm/imxrt/imxrt1060-evk/scripts/Make.defs
+++ b/boards/arm/imxrt/imxrt1060-evk/scripts/Make.defs
@@ -38,12 +38,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION)
 endif
 
-ARCHCFLAGS = -fno-common
-ifeq ($(CONFIG_CXX_EXCEPTION),y)
-  ARCHCXXFLAGS = -fno-common
-else
-  ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
-endif
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -fno-strict-aliasing
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
diff --git a/boards/arm/imxrt/imxrt1064-evk/configs/knsh/Make.defs b/boards/arm/imxrt/imxrt1064-evk/configs/knsh/Make.defs
index 02b8d1d..9f33ab2 100644
--- a/boards/arm/imxrt/imxrt1064-evk/configs/knsh/Make.defs
+++ b/boards/arm/imxrt/imxrt1064-evk/configs/knsh/Make.defs
@@ -36,8 +36,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION)
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -fno-strict-aliasing
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/imxrt/imxrt1064-evk/scripts/Make.defs b/boards/arm/imxrt/imxrt1064-evk/scripts/Make.defs
index ad07a96..507f579 100644
--- a/boards/arm/imxrt/imxrt1064-evk/scripts/Make.defs
+++ b/boards/arm/imxrt/imxrt1064-evk/scripts/Make.defs
@@ -38,12 +38,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION)
 endif
 
-ARCHCFLAGS = -fno-common
-ifeq ($(CONFIG_CXX_EXCEPTION),y)
-  ARCHCXXFLAGS = -fno-common
-else
-  ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
-endif
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -fno-strict-aliasing
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
diff --git a/boards/arm/imxrt/teensy-4.x/scripts/Make.defs b/boards/arm/imxrt/teensy-4.x/scripts/Make.defs
index dfe8cb9..22443ef 100644
--- a/boards/arm/imxrt/teensy-4.x/scripts/Make.defs
+++ b/boards/arm/imxrt/teensy-4.x/scripts/Make.defs
@@ -51,8 +51,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION)
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -fno-strict-aliasing
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/kinetis/freedom-k28f/scripts/Make.defs b/boards/arm/kinetis/freedom-k28f/scripts/Make.defs
index f7f6a19..9deb0ad 100644
--- a/boards/arm/kinetis/freedom-k28f/scripts/Make.defs
+++ b/boards/arm/kinetis/freedom-k28f/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/kinetis/freedom-k64f/scripts/Make.defs b/boards/arm/kinetis/freedom-k64f/scripts/Make.defs
index 945fcc1..19350d1 100644
--- a/boards/arm/kinetis/freedom-k64f/scripts/Make.defs
+++ b/boards/arm/kinetis/freedom-k64f/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/kinetis/freedom-k66f/scripts/Make.defs b/boards/arm/kinetis/freedom-k66f/scripts/Make.defs
index d41c9c8..65aa6c1 100644
--- a/boards/arm/kinetis/freedom-k66f/scripts/Make.defs
+++ b/boards/arm/kinetis/freedom-k66f/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/kinetis/kwikstik-k40/scripts/Make.defs b/boards/arm/kinetis/kwikstik-k40/scripts/Make.defs
index daefa6e..1fc0fb5 100644
--- a/boards/arm/kinetis/kwikstik-k40/scripts/Make.defs
+++ b/boards/arm/kinetis/kwikstik-k40/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/kinetis/teensy-3.x/scripts/Make.defs b/boards/arm/kinetis/teensy-3.x/scripts/Make.defs
index 6a34b21..8d44717 100644
--- a/boards/arm/kinetis/teensy-3.x/scripts/Make.defs
+++ b/boards/arm/kinetis/teensy-3.x/scripts/Make.defs
@@ -38,8 +38,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/kinetis/twr-k60n512/scripts/Make.defs b/boards/arm/kinetis/twr-k60n512/scripts/Make.defs
index dc02603..36fc341 100644
--- a/boards/arm/kinetis/twr-k60n512/scripts/Make.defs
+++ b/boards/arm/kinetis/twr-k60n512/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/kinetis/twr-k64f120m/scripts/Make.defs b/boards/arm/kinetis/twr-k64f120m/scripts/Make.defs
index fa2a83e..59ac7ad 100644
--- a/boards/arm/kinetis/twr-k64f120m/scripts/Make.defs
+++ b/boards/arm/kinetis/twr-k64f120m/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/kl/freedom-kl25z/scripts/Make.defs b/boards/arm/kl/freedom-kl25z/scripts/Make.defs
index 59c8a58..ca849cf 100644
--- a/boards/arm/kl/freedom-kl25z/scripts/Make.defs
+++ b/boards/arm/kl/freedom-kl25z/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/kl/freedom-kl26z/scripts/Make.defs b/boards/arm/kl/freedom-kl26z/scripts/Make.defs
index a50f872..79dbafd 100644
--- a/boards/arm/kl/freedom-kl26z/scripts/Make.defs
+++ b/boards/arm/kl/freedom-kl26z/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/kl/teensy-lc/scripts/Make.defs b/boards/arm/kl/teensy-lc/scripts/Make.defs
index a231fad..fb9eb69 100644
--- a/boards/arm/kl/teensy-lc/scripts/Make.defs
+++ b/boards/arm/kl/teensy-lc/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lc823450/lc823450-xgevk/scripts/Make.defs b/boards/arm/lc823450/lc823450-xgevk/scripts/Make.defs
index 58043f6..400e472 100644
--- a/boards/arm/lc823450/lc823450-xgevk/scripts/Make.defs
+++ b/boards/arm/lc823450/lc823450-xgevk/scripts/Make.defs
@@ -42,8 +42,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common -ffunction-sections -fdata-sections
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti -nostdinc++
+ARCHCFLAGS += -fno-common -ffunction-sections -fdata-sections
+ARCHCXXFLAGS += -fno-common -nostdinc++
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc17xx_40xx/lincoln60/scripts/Make.defs b/boards/arm/lpc17xx_40xx/lincoln60/scripts/Make.defs
index 8cb99d3..20384de 100644
--- a/boards/arm/lpc17xx_40xx/lincoln60/scripts/Make.defs
+++ b/boards/arm/lpc17xx_40xx/lincoln60/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc17xx_40xx/lpc4088-devkit/configs/knsh/Make.defs b/boards/arm/lpc17xx_40xx/lpc4088-devkit/configs/knsh/Make.defs
index ff86a6e..5db4ae7 100644
--- a/boards/arm/lpc17xx_40xx/lpc4088-devkit/configs/knsh/Make.defs
+++ b/boards/arm/lpc17xx_40xx/lpc4088-devkit/configs/knsh/Make.defs
@@ -33,8 +33,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc17xx_40xx/lpc4088-devkit/scripts/Make.defs b/boards/arm/lpc17xx_40xx/lpc4088-devkit/scripts/Make.defs
index 6463557..d2f8bd7 100644
--- a/boards/arm/lpc17xx_40xx/lpc4088-devkit/scripts/Make.defs
+++ b/boards/arm/lpc17xx_40xx/lpc4088-devkit/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc17xx_40xx/lpc4088-quickstart/configs/knsh/Make.defs b/boards/arm/lpc17xx_40xx/lpc4088-quickstart/configs/knsh/Make.defs
index 2e44409..8141aea 100644
--- a/boards/arm/lpc17xx_40xx/lpc4088-quickstart/configs/knsh/Make.defs
+++ b/boards/arm/lpc17xx_40xx/lpc4088-quickstart/configs/knsh/Make.defs
@@ -33,8 +33,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc17xx_40xx/lpc4088-quickstart/scripts/Make.defs b/boards/arm/lpc17xx_40xx/lpc4088-quickstart/scripts/Make.defs
index 55d3ca9..db8c1eb 100644
--- a/boards/arm/lpc17xx_40xx/lpc4088-quickstart/scripts/Make.defs
+++ b/boards/arm/lpc17xx_40xx/lpc4088-quickstart/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc17xx_40xx/lpcxpresso-lpc1768/configs/thttpd/Make.defs b/boards/arm/lpc17xx_40xx/lpcxpresso-lpc1768/configs/thttpd/Make.defs
index 6b11783..9179a21 100644
--- a/boards/arm/lpc17xx_40xx/lpcxpresso-lpc1768/configs/thttpd/Make.defs
+++ b/boards/arm/lpc17xx_40xx/lpcxpresso-lpc1768/configs/thttpd/Make.defs
@@ -36,8 +36,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc17xx_40xx/lpcxpresso-lpc1768/scripts/Make.defs b/boards/arm/lpc17xx_40xx/lpcxpresso-lpc1768/scripts/Make.defs
index 88392bd..95f0ca5 100644
--- a/boards/arm/lpc17xx_40xx/lpcxpresso-lpc1768/scripts/Make.defs
+++ b/boards/arm/lpc17xx_40xx/lpcxpresso-lpc1768/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc17xx_40xx/lx_cpu/scripts/Make.defs b/boards/arm/lpc17xx_40xx/lx_cpu/scripts/Make.defs
index 8a46c73..55a6e67 100644
--- a/boards/arm/lpc17xx_40xx/lx_cpu/scripts/Make.defs
+++ b/boards/arm/lpc17xx_40xx/lx_cpu/scripts/Make.defs
@@ -44,8 +44,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fno-rtti -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc17xx_40xx/mbed/scripts/Make.defs b/boards/arm/lpc17xx_40xx/mbed/scripts/Make.defs
index 224143e..0e8bbe5 100644
--- a/boards/arm/lpc17xx_40xx/mbed/scripts/Make.defs
+++ b/boards/arm/lpc17xx_40xx/mbed/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc17xx_40xx/mcb1700/scripts/Make.defs b/boards/arm/lpc17xx_40xx/mcb1700/scripts/Make.defs
index ca4e4dc..f19f141 100644
--- a/boards/arm/lpc17xx_40xx/mcb1700/scripts/Make.defs
+++ b/boards/arm/lpc17xx_40xx/mcb1700/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/thttpd-binfs/Make.defs b/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/thttpd-binfs/Make.defs
index b4422f5..b931bf5 100644
--- a/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/thttpd-binfs/Make.defs
+++ b/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/thttpd-binfs/Make.defs
@@ -35,8 +35,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/thttpd-nxflat/Make.defs b/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/thttpd-nxflat/Make.defs
index 7e55171..d026b9e 100644
--- a/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/thttpd-nxflat/Make.defs
+++ b/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/configs/thttpd-nxflat/Make.defs
@@ -35,8 +35,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/scripts/Make.defs b/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/scripts/Make.defs
index 1a3653f..323d51f 100644
--- a/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/scripts/Make.defs
+++ b/boards/arm/lpc17xx_40xx/olimex-lpc1766stk/scripts/Make.defs
@@ -35,8 +35,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc17xx_40xx/open1788/configs/knsh/Make.defs b/boards/arm/lpc17xx_40xx/open1788/configs/knsh/Make.defs
index ed526bf..14194d4 100644
--- a/boards/arm/lpc17xx_40xx/open1788/configs/knsh/Make.defs
+++ b/boards/arm/lpc17xx_40xx/open1788/configs/knsh/Make.defs
@@ -33,8 +33,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc17xx_40xx/open1788/configs/knxterm/Make.defs b/boards/arm/lpc17xx_40xx/open1788/configs/knxterm/Make.defs
index 8859dec..6f5413a 100644
--- a/boards/arm/lpc17xx_40xx/open1788/configs/knxterm/Make.defs
+++ b/boards/arm/lpc17xx_40xx/open1788/configs/knxterm/Make.defs
@@ -33,8 +33,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc17xx_40xx/open1788/scripts/Make.defs b/boards/arm/lpc17xx_40xx/open1788/scripts/Make.defs
index 49b6443..fc912d9 100644
--- a/boards/arm/lpc17xx_40xx/open1788/scripts/Make.defs
+++ b/boards/arm/lpc17xx_40xx/open1788/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc17xx_40xx/pnev5180b/configs/knsh/Make.defs b/boards/arm/lpc17xx_40xx/pnev5180b/configs/knsh/Make.defs
index d6ecc2d..a393d3e 100644
--- a/boards/arm/lpc17xx_40xx/pnev5180b/configs/knsh/Make.defs
+++ b/boards/arm/lpc17xx_40xx/pnev5180b/configs/knsh/Make.defs
@@ -38,8 +38,8 @@ ifeq ($(CONFIG_ARMV7M_STACKCHECK),y)
   INSTRUMENTATIONDEFINES = -finstrument-functions -ffixed-r10
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc17xx_40xx/pnev5180b/scripts/Make.defs b/boards/arm/lpc17xx_40xx/pnev5180b/scripts/Make.defs
index d14d8c1..a0becd2 100644
--- a/boards/arm/lpc17xx_40xx/pnev5180b/scripts/Make.defs
+++ b/boards/arm/lpc17xx_40xx/pnev5180b/scripts/Make.defs
@@ -37,8 +37,8 @@ ifeq ($(CONFIG_ARMV7M_STACKCHECK),y)
   INSTRUMENTATIONDEFINES = -finstrument-functions -ffixed-r10
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc17xx_40xx/u-blox-c027/scripts/Make.defs b/boards/arm/lpc17xx_40xx/u-blox-c027/scripts/Make.defs
index cd06c70..780361a 100644
--- a/boards/arm/lpc17xx_40xx/u-blox-c027/scripts/Make.defs
+++ b/boards/arm/lpc17xx_40xx/u-blox-c027/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc17xx_40xx/zkit-arm-1769/scripts/Make.defs b/boards/arm/lpc17xx_40xx/zkit-arm-1769/scripts/Make.defs
index 044deb8..43f544a 100644
--- a/boards/arm/lpc17xx_40xx/zkit-arm-1769/scripts/Make.defs
+++ b/boards/arm/lpc17xx_40xx/zkit-arm-1769/scripts/Make.defs
@@ -36,8 +36,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc214x/mcu123-lpc214x/scripts/Make.defs b/boards/arm/lpc214x/mcu123-lpc214x/scripts/Make.defs
index 299ed33..ff17737 100644
--- a/boards/arm/lpc214x/mcu123-lpc214x/scripts/Make.defs
+++ b/boards/arm/lpc214x/mcu123-lpc214x/scripts/Make.defs
@@ -55,8 +55,8 @@ else
   ARCHCPUFLAGS = -mapcs-32 -mcpu=arm7tdmi -msoft-float
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
diff --git a/boards/arm/lpc214x/zp214xpa/scripts/Make.defs b/boards/arm/lpc214x/zp214xpa/scripts/Make.defs
index b7baeff..41a72b5 100644
--- a/boards/arm/lpc214x/zp214xpa/scripts/Make.defs
+++ b/boards/arm/lpc214x/zp214xpa/scripts/Make.defs
@@ -55,8 +55,8 @@ else
   ARCHCPUFLAGS = -mapcs-32 -mcpu=arm7tdmi -msoft-float
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
diff --git a/boards/arm/lpc2378/olimex-lpc2378/scripts/Make.defs b/boards/arm/lpc2378/olimex-lpc2378/scripts/Make.defs
index af5f3ad..efb6035 100644
--- a/boards/arm/lpc2378/olimex-lpc2378/scripts/Make.defs
+++ b/boards/arm/lpc2378/olimex-lpc2378/scripts/Make.defs
@@ -55,8 +55,8 @@ else
   ARCHCPUFLAGS = -mapcs-32 -mcpu=arm7tdmi -msoft-float
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
diff --git a/boards/arm/lpc31xx/ea3131/configs/pgnsh/Make.defs b/boards/arm/lpc31xx/ea3131/configs/pgnsh/Make.defs
index 4d62681..72af917 100644
--- a/boards/arm/lpc31xx/ea3131/configs/pgnsh/Make.defs
+++ b/boards/arm/lpc31xx/ea3131/configs/pgnsh/Make.defs
@@ -49,8 +49,8 @@ else
   ARCHCPUFLAGS = -mapcs-32 -mtune=arm9tdmi -march=armv5te -msoft-float
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc31xx/ea3131/scripts/Make.defs b/boards/arm/lpc31xx/ea3131/scripts/Make.defs
index 670a561..7c40409 100644
--- a/boards/arm/lpc31xx/ea3131/scripts/Make.defs
+++ b/boards/arm/lpc31xx/ea3131/scripts/Make.defs
@@ -49,8 +49,8 @@ else
   ARCHCPUFLAGS = -mapcs-32 -mtune=arm9tdmi -march=armv5te -msoft-float
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc31xx/ea3152/scripts/Make.defs b/boards/arm/lpc31xx/ea3152/scripts/Make.defs
index 9ecec21..ff0fe6c 100644
--- a/boards/arm/lpc31xx/ea3152/scripts/Make.defs
+++ b/boards/arm/lpc31xx/ea3152/scripts/Make.defs
@@ -49,8 +49,8 @@ else
   ARCHCPUFLAGS = -mapcs-32 -mtune=arm9tdmi -march=armv5te -msoft-float
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc31xx/olimex-lpc-h3131/scripts/Make.defs b/boards/arm/lpc31xx/olimex-lpc-h3131/scripts/Make.defs
index a0d25f9..6259f0f 100644
--- a/boards/arm/lpc31xx/olimex-lpc-h3131/scripts/Make.defs
+++ b/boards/arm/lpc31xx/olimex-lpc-h3131/scripts/Make.defs
@@ -49,8 +49,8 @@ else
   ARCHCPUFLAGS = -mapcs-32 -mtune=arm9tdmi -march=armv5te -msoft-float
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc43xx/bambino-200e/scripts/Make.defs b/boards/arm/lpc43xx/bambino-200e/scripts/Make.defs
index b25f7f9..44e4263 100644
--- a/boards/arm/lpc43xx/bambino-200e/scripts/Make.defs
+++ b/boards/arm/lpc43xx/bambino-200e/scripts/Make.defs
@@ -50,8 +50,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc43xx/lpc4330-xplorer/scripts/Make.defs b/boards/arm/lpc43xx/lpc4330-xplorer/scripts/Make.defs
index 878daec..9974b30 100644
--- a/boards/arm/lpc43xx/lpc4330-xplorer/scripts/Make.defs
+++ b/boards/arm/lpc43xx/lpc4330-xplorer/scripts/Make.defs
@@ -50,8 +50,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc43xx/lpc4337-ws/scripts/Make.defs b/boards/arm/lpc43xx/lpc4337-ws/scripts/Make.defs
index 9fd2d5b..973ccc9 100644
--- a/boards/arm/lpc43xx/lpc4337-ws/scripts/Make.defs
+++ b/boards/arm/lpc43xx/lpc4337-ws/scripts/Make.defs
@@ -50,8 +50,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc43xx/lpc4357-evb/scripts/Make.defs b/boards/arm/lpc43xx/lpc4357-evb/scripts/Make.defs
index 4bb6b49..79eb730 100644
--- a/boards/arm/lpc43xx/lpc4357-evb/scripts/Make.defs
+++ b/boards/arm/lpc43xx/lpc4357-evb/scripts/Make.defs
@@ -50,8 +50,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc43xx/lpc4370-link2/scripts/Make.defs b/boards/arm/lpc43xx/lpc4370-link2/scripts/Make.defs
index 27992a9..9176e30 100644
--- a/boards/arm/lpc43xx/lpc4370-link2/scripts/Make.defs
+++ b/boards/arm/lpc43xx/lpc4370-link2/scripts/Make.defs
@@ -50,8 +50,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/lpc54xx/lpcxpresso-lpc54628/scripts/Make.defs b/boards/arm/lpc54xx/lpcxpresso-lpc54628/scripts/Make.defs
index cdb029f..f48679f 100644
--- a/boards/arm/lpc54xx/lpcxpresso-lpc54628/scripts/Make.defs
+++ b/boards/arm/lpc54xx/lpcxpresso-lpc54628/scripts/Make.defs
@@ -36,8 +36,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/max326xx/max32660-evsys/scripts/Make.defs b/boards/arm/max326xx/max32660-evsys/scripts/Make.defs
index a0b7ffa..cfd4ed5 100644
--- a/boards/arm/max326xx/max32660-evsys/scripts/Make.defs
+++ b/boards/arm/max326xx/max32660-evsys/scripts/Make.defs
@@ -38,8 +38,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION)
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -fno-strict-aliasing
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/moxart/moxa/scripts/Make.defs b/boards/arm/moxart/moxa/scripts/Make.defs
index 8e4e280..a305f79 100644
--- a/boards/arm/moxart/moxa/scripts/Make.defs
+++ b/boards/arm/moxart/moxa/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common -mno-thumb-interwork -march=armv4 -Uarm
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -mno-thumb-interwork -march=armv4 -Uarm
+ARCHCFLAGS += -fno-common -mno-thumb-interwork -march=armv4 -Uarm
+ARCHCXXFLAGS += -fno-common -mno-thumb-interwork -march=armv4 -Uarm
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/nrf52/nrf52-feather/scripts/Make.defs b/boards/arm/nrf52/nrf52-feather/scripts/Make.defs
index 46c70d0..a297689 100644
--- a/boards/arm/nrf52/nrf52-feather/scripts/Make.defs
+++ b/boards/arm/nrf52/nrf52-feather/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/nrf52/nrf52832-dk/scripts/Make.defs b/boards/arm/nrf52/nrf52832-dk/scripts/Make.defs
index d5496d6..0f244be 100644
--- a/boards/arm/nrf52/nrf52832-dk/scripts/Make.defs
+++ b/boards/arm/nrf52/nrf52832-dk/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/nrf52/nrf52832-mdk/scripts/Make.defs b/boards/arm/nrf52/nrf52832-mdk/scripts/Make.defs
index cc92c6e..7307032 100644
--- a/boards/arm/nrf52/nrf52832-mdk/scripts/Make.defs
+++ b/boards/arm/nrf52/nrf52832-mdk/scripts/Make.defs
@@ -47,8 +47,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/nrf52/nrf52832-sparkfun/scripts/Make.defs b/boards/arm/nrf52/nrf52832-sparkfun/scripts/Make.defs
index fa8be1f..e6ba220 100644
--- a/boards/arm/nrf52/nrf52832-sparkfun/scripts/Make.defs
+++ b/boards/arm/nrf52/nrf52832-sparkfun/scripts/Make.defs
@@ -47,8 +47,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/nrf52/nrf52840-dk/scripts/Make.defs b/boards/arm/nrf52/nrf52840-dk/scripts/Make.defs
index 0647814..76fc0bd 100644
--- a/boards/arm/nrf52/nrf52840-dk/scripts/Make.defs
+++ b/boards/arm/nrf52/nrf52840-dk/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/nrf52/nrf52840-dongle/scripts/Make.defs b/boards/arm/nrf52/nrf52840-dongle/scripts/Make.defs
index f12730d..e3fbb93 100644
--- a/boards/arm/nrf52/nrf52840-dongle/scripts/Make.defs
+++ b/boards/arm/nrf52/nrf52840-dongle/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/nuc1xx/nutiny-nuc120/scripts/Make.defs b/boards/arm/nuc1xx/nutiny-nuc120/scripts/Make.defs
index ce4fffb..bc22810 100644
--- a/boards/arm/nuc1xx/nutiny-nuc120/scripts/Make.defs
+++ b/boards/arm/nuc1xx/nutiny-nuc120/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/phy62xx/phy6222/scripts/Make.defs b/boards/arm/phy62xx/phy6222/scripts/Make.defs
index 47798d5..629b3b6 100644
--- a/boards/arm/phy62xx/phy6222/scripts/Make.defs
+++ b/boards/arm/phy62xx/phy6222/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/rp2040/pimoroni-tiny2040/scripts/Make.defs b/boards/arm/rp2040/pimoroni-tiny2040/scripts/Make.defs
index 46ac0e8..d50a1cd 100644
--- a/boards/arm/rp2040/pimoroni-tiny2040/scripts/Make.defs
+++ b/boards/arm/rp2040/pimoroni-tiny2040/scripts/Make.defs
@@ -39,8 +39,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/rp2040/raspberrypi-pico/scripts/Make.defs b/boards/arm/rp2040/raspberrypi-pico/scripts/Make.defs
index 485d5c0..eeffe15 100644
--- a/boards/arm/rp2040/raspberrypi-pico/scripts/Make.defs
+++ b/boards/arm/rp2040/raspberrypi-pico/scripts/Make.defs
@@ -39,8 +39,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/s32k1xx/s32k118evb/scripts/Make.defs b/boards/arm/s32k1xx/s32k118evb/scripts/Make.defs
index bbbadeb..24cb93d 100644
--- a/boards/arm/s32k1xx/s32k118evb/scripts/Make.defs
+++ b/boards/arm/s32k1xx/s32k118evb/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/s32k1xx/s32k144evb/scripts/Make.defs b/boards/arm/s32k1xx/s32k144evb/scripts/Make.defs
index a282079..1aa1a87 100644
--- a/boards/arm/s32k1xx/s32k144evb/scripts/Make.defs
+++ b/boards/arm/s32k1xx/s32k144evb/scripts/Make.defs
@@ -41,8 +41,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/s32k1xx/s32k146evb/scripts/Make.defs b/boards/arm/s32k1xx/s32k146evb/scripts/Make.defs
index 602b4a5..94a771f 100644
--- a/boards/arm/s32k1xx/s32k146evb/scripts/Make.defs
+++ b/boards/arm/s32k1xx/s32k146evb/scripts/Make.defs
@@ -41,8 +41,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/s32k1xx/s32k148evb/scripts/Make.defs b/boards/arm/s32k1xx/s32k148evb/scripts/Make.defs
index e59bb77..cf2649a 100644
--- a/boards/arm/s32k1xx/s32k148evb/scripts/Make.defs
+++ b/boards/arm/s32k1xx/s32k148evb/scripts/Make.defs
@@ -41,8 +41,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/s32k1xx/ucans32k146/scripts/Make.defs b/boards/arm/s32k1xx/ucans32k146/scripts/Make.defs
index 985f351..cfbd034 100644
--- a/boards/arm/s32k1xx/ucans32k146/scripts/Make.defs
+++ b/boards/arm/s32k1xx/ucans32k146/scripts/Make.defs
@@ -41,8 +41,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/sam34/arduino-due/scripts/Make.defs b/boards/arm/sam34/arduino-due/scripts/Make.defs
index 1aef298..3ceaf6d 100644
--- a/boards/arm/sam34/arduino-due/scripts/Make.defs
+++ b/boards/arm/sam34/arduino-due/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/sam34/flipnclick-sam3x/scripts/Make.defs b/boards/arm/sam34/flipnclick-sam3x/scripts/Make.defs
index 622d7d4..7323dd8 100644
--- a/boards/arm/sam34/flipnclick-sam3x/scripts/Make.defs
+++ b/boards/arm/sam34/flipnclick-sam3x/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/sam34/sam3u-ek/configs/knsh/Make.defs b/boards/arm/sam34/sam3u-ek/configs/knsh/Make.defs
index e1e5be1..8d23334 100644
--- a/boards/arm/sam34/sam3u-ek/configs/knsh/Make.defs
+++ b/boards/arm/sam34/sam3u-ek/configs/knsh/Make.defs
@@ -33,8 +33,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/sam34/sam3u-ek/scripts/Make.defs b/boards/arm/sam34/sam3u-ek/scripts/Make.defs
index 44135f6..c690a72 100644
--- a/boards/arm/sam34/sam3u-ek/scripts/Make.defs
+++ b/boards/arm/sam34/sam3u-ek/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/sam34/sam4cmp-db/scripts/Make.defs b/boards/arm/sam34/sam4cmp-db/scripts/Make.defs
index bec03fa..4f6ae0d 100644
--- a/boards/arm/sam34/sam4cmp-db/scripts/Make.defs
+++ b/boards/arm/sam34/sam4cmp-db/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/sam34/sam4e-ek/scripts/Make.defs b/boards/arm/sam34/sam4e-ek/scripts/Make.defs
index aab2a56..8b9e227 100644
--- a/boards/arm/sam34/sam4e-ek/scripts/Make.defs
+++ b/boards/arm/sam34/sam4e-ek/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -fno-strict-aliasing
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/sam34/sam4l-xplained/scripts/Make.defs b/boards/arm/sam34/sam4l-xplained/scripts/Make.defs
index aa0883c..3cdcba7 100644
--- a/boards/arm/sam34/sam4l-xplained/scripts/Make.defs
+++ b/boards/arm/sam34/sam4l-xplained/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/sam34/sam4s-xplained-pro/scripts/Make.defs b/boards/arm/sam34/sam4s-xplained-pro/scripts/Make.defs
index 0478b80..0ef0b0e 100644
--- a/boards/arm/sam34/sam4s-xplained-pro/scripts/Make.defs
+++ b/boards/arm/sam34/sam4s-xplained-pro/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/sam34/sam4s-xplained/scripts/Make.defs b/boards/arm/sam34/sam4s-xplained/scripts/Make.defs
index 695a0b2..164ac8d 100644
--- a/boards/arm/sam34/sam4s-xplained/scripts/Make.defs
+++ b/boards/arm/sam34/sam4s-xplained/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/sama5/giant-board/scripts/Make.defs b/boards/arm/sama5/giant-board/scripts/Make.defs
index 82a21da..a10cb1f 100644
--- a/boards/arm/sama5/giant-board/scripts/Make.defs
+++ b/boards/arm/sama5/giant-board/scripts/Make.defs
@@ -44,8 +44,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/sama5/sama5d2-xult/scripts/Make.defs b/boards/arm/sama5/sama5d2-xult/scripts/Make.defs
index 785bca5..82f4ef3 100644
--- a/boards/arm/sama5/sama5d2-xult/scripts/Make.defs
+++ b/boards/arm/sama5/sama5d2-xult/scripts/Make.defs
@@ -44,8 +44,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/sama5/sama5d3-xplained/scripts/Make.defs b/boards/arm/sama5/sama5d3-xplained/scripts/Make.defs
index 02a79520..9eac54e 100644
--- a/boards/arm/sama5/sama5d3-xplained/scripts/Make.defs
+++ b/boards/arm/sama5/sama5d3-xplained/scripts/Make.defs
@@ -40,8 +40,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/sama5/sama5d3x-ek/scripts/Make.defs b/boards/arm/sama5/sama5d3x-ek/scripts/Make.defs
index 39c7b68..26a0dfd 100644
--- a/boards/arm/sama5/sama5d3x-ek/scripts/Make.defs
+++ b/boards/arm/sama5/sama5d3x-ek/scripts/Make.defs
@@ -60,8 +60,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/sama5/sama5d4-ek/configs/knsh/Make.defs b/boards/arm/sama5/sama5d4-ek/configs/knsh/Make.defs
index e30d9d8..5e3f618 100644
--- a/boards/arm/sama5/sama5d4-ek/configs/knsh/Make.defs
+++ b/boards/arm/sama5/sama5d4-ek/configs/knsh/Make.defs
@@ -44,8 +44,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/sama5/sama5d4-ek/scripts/Make.defs b/boards/arm/sama5/sama5d4-ek/scripts/Make.defs
index c2f2553..a5fda87 100644
--- a/boards/arm/sama5/sama5d4-ek/scripts/Make.defs
+++ b/boards/arm/sama5/sama5d4-ek/scripts/Make.defs
@@ -44,8 +44,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/samd2l2/arduino-m0/scripts/Make.defs b/boards/arm/samd2l2/arduino-m0/scripts/Make.defs
index 0b24d37..618231d 100644
--- a/boards/arm/samd2l2/arduino-m0/scripts/Make.defs
+++ b/boards/arm/samd2l2/arduino-m0/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/samd2l2/circuit-express/scripts/Make.defs b/boards/arm/samd2l2/circuit-express/scripts/Make.defs
index b089d13..aac28b0 100644
--- a/boards/arm/samd2l2/circuit-express/scripts/Make.defs
+++ b/boards/arm/samd2l2/circuit-express/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/samd2l2/samd20-xplained/scripts/Make.defs b/boards/arm/samd2l2/samd20-xplained/scripts/Make.defs
index 4664134..bfd7eb0 100644
--- a/boards/arm/samd2l2/samd20-xplained/scripts/Make.defs
+++ b/boards/arm/samd2l2/samd20-xplained/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/samd2l2/samd21-xplained/scripts/Make.defs b/boards/arm/samd2l2/samd21-xplained/scripts/Make.defs
index df127ba..e948088 100644
--- a/boards/arm/samd2l2/samd21-xplained/scripts/Make.defs
+++ b/boards/arm/samd2l2/samd21-xplained/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/samd2l2/saml21-xplained/scripts/Make.defs b/boards/arm/samd2l2/saml21-xplained/scripts/Make.defs
index 2b1a7d0..d7b40d6 100644
--- a/boards/arm/samd2l2/saml21-xplained/scripts/Make.defs
+++ b/boards/arm/samd2l2/saml21-xplained/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/samd5e5/metro-m4/scripts/Make.defs b/boards/arm/samd5e5/metro-m4/scripts/Make.defs
index 07bca2b..4dcd225 100644
--- a/boards/arm/samd5e5/metro-m4/scripts/Make.defs
+++ b/boards/arm/samd5e5/metro-m4/scripts/Make.defs
@@ -38,8 +38,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/samd5e5/same54-xplained-pro/scripts/Make.defs b/boards/arm/samd5e5/same54-xplained-pro/scripts/Make.defs
index 4ceaa8e..33fda85 100644
--- a/boards/arm/samd5e5/same54-xplained-pro/scripts/Make.defs
+++ b/boards/arm/samd5e5/same54-xplained-pro/scripts/Make.defs
@@ -38,8 +38,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/samv7/same70-qmtech/scripts/Make.defs b/boards/arm/samv7/same70-qmtech/scripts/Make.defs
index 6ad0090..5f24af2 100644
--- a/boards/arm/samv7/same70-qmtech/scripts/Make.defs
+++ b/boards/arm/samv7/same70-qmtech/scripts/Make.defs
@@ -43,8 +43,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION)
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -fno-strict-aliasing
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/samv7/same70-xplained/scripts/Make.defs b/boards/arm/samv7/same70-xplained/scripts/Make.defs
index 72768d7..c7fd7eb 100644
--- a/boards/arm/samv7/same70-xplained/scripts/Make.defs
+++ b/boards/arm/samv7/same70-xplained/scripts/Make.defs
@@ -43,8 +43,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION)
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -fno-strict-aliasing
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/samv7/samv71-xult/configs/knsh/Make.defs b/boards/arm/samv7/samv71-xult/configs/knsh/Make.defs
index 1a0ab92..d5089c8 100644
--- a/boards/arm/samv7/samv71-xult/configs/knsh/Make.defs
+++ b/boards/arm/samv7/samv71-xult/configs/knsh/Make.defs
@@ -49,8 +49,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION)
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -fno-strict-aliasing
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/samv7/samv71-xult/scripts/Make.defs b/boards/arm/samv7/samv71-xult/scripts/Make.defs
index b3afb20..5c513d1 100644
--- a/boards/arm/samv7/samv71-xult/scripts/Make.defs
+++ b/boards/arm/samv7/samv71-xult/scripts/Make.defs
@@ -43,8 +43,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION)
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -fno-strict-aliasing
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/axoloti/scripts/Make.defs b/boards/arm/stm32/axoloti/scripts/Make.defs
index 60120ea..d39a0de 100644
--- a/boards/arm/stm32/axoloti/scripts/Make.defs
+++ b/boards/arm/stm32/axoloti/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/b-g431b-esc1/scripts/Make.defs b/boards/arm/stm32/b-g431b-esc1/scripts/Make.defs
index c805749..6d53b77 100644
--- a/boards/arm/stm32/b-g431b-esc1/scripts/Make.defs
+++ b/boards/arm/stm32/b-g431b-esc1/scripts/Make.defs
@@ -38,8 +38,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common -funwind-tables
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -funwind-tables
+ARCHCFLAGS += -fno-common -funwind-tables
+ARCHCXXFLAGS += -fno-common -funwind-tables
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/b-g474e-dpow1/scripts/Make.defs b/boards/arm/stm32/b-g474e-dpow1/scripts/Make.defs
index 16c279d..c774504 100644
--- a/boards/arm/stm32/b-g474e-dpow1/scripts/Make.defs
+++ b/boards/arm/stm32/b-g474e-dpow1/scripts/Make.defs
@@ -38,8 +38,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common -funwind-tables
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -funwind-tables
+ARCHCFLAGS += -fno-common -funwind-tables
+ARCHCXXFLAGS += -fno-common -funwind-tables
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/clicker2-stm32/scripts/Make.defs b/boards/arm/stm32/clicker2-stm32/scripts/Make.defs
index 1d30f89..53865b6 100644
--- a/boards/arm/stm32/clicker2-stm32/scripts/Make.defs
+++ b/boards/arm/stm32/clicker2-stm32/scripts/Make.defs
@@ -39,8 +39,8 @@ ifeq ($(CONFIG_ARMV7M_STACKCHECK),y)
   INSTRUMENTATIONDEFINES = -finstrument-functions -ffixed-r10
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/cloudctrl/scripts/Make.defs b/boards/arm/stm32/cloudctrl/scripts/Make.defs
index 6e64d20..ffa0623 100644
--- a/boards/arm/stm32/cloudctrl/scripts/Make.defs
+++ b/boards/arm/stm32/cloudctrl/scripts/Make.defs
@@ -40,8 +40,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/emw3162/scripts/Make.defs b/boards/arm/stm32/emw3162/scripts/Make.defs
index 8f15831..3224d7a 100644
--- a/boards/arm/stm32/emw3162/scripts/Make.defs
+++ b/boards/arm/stm32/emw3162/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/et-stm32-stamp/scripts/Make.defs b/boards/arm/stm32/et-stm32-stamp/scripts/Make.defs
index 5b5ef20..a420d3a 100644
--- a/boards/arm/stm32/et-stm32-stamp/scripts/Make.defs
+++ b/boards/arm/stm32/et-stm32-stamp/scripts/Make.defs
@@ -34,8 +34,8 @@ ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
   ARCHOPTIMIZATION += -g
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/fire-stm32v2/scripts/Make.defs b/boards/arm/stm32/fire-stm32v2/scripts/Make.defs
index 1aa170a..d765aff 100644
--- a/boards/arm/stm32/fire-stm32v2/scripts/Make.defs
+++ b/boards/arm/stm32/fire-stm32v2/scripts/Make.defs
@@ -40,8 +40,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/hymini-stm32v/scripts/Make.defs b/boards/arm/stm32/hymini-stm32v/scripts/Make.defs
index dc6285e..b29ee82 100644
--- a/boards/arm/stm32/hymini-stm32v/scripts/Make.defs
+++ b/boards/arm/stm32/hymini-stm32v/scripts/Make.defs
@@ -38,8 +38,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/maple/scripts/Make.defs b/boards/arm/stm32/maple/scripts/Make.defs
index 092b393..2b5cbb0 100644
--- a/boards/arm/stm32/maple/scripts/Make.defs
+++ b/boards/arm/stm32/maple/scripts/Make.defs
@@ -38,8 +38,8 @@ ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
   ARCHOPTIMIZATION += -g
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/mikroe-stm32f4/scripts/Make.defs b/boards/arm/stm32/mikroe-stm32f4/scripts/Make.defs
index eda89a2..2c99f7b 100644
--- a/boards/arm/stm32/mikroe-stm32f4/scripts/Make.defs
+++ b/boards/arm/stm32/mikroe-stm32f4/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/nucleo-f103rb/scripts/Make.defs b/boards/arm/stm32/nucleo-f103rb/scripts/Make.defs
index 0fbb668..a1e1951 100644
--- a/boards/arm/stm32/nucleo-f103rb/scripts/Make.defs
+++ b/boards/arm/stm32/nucleo-f103rb/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/nucleo-f207zg/scripts/Make.defs b/boards/arm/stm32/nucleo-f207zg/scripts/Make.defs
index 28279b3..e72b350 100644
--- a/boards/arm/stm32/nucleo-f207zg/scripts/Make.defs
+++ b/boards/arm/stm32/nucleo-f207zg/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/nucleo-f302r8/scripts/Make.defs b/boards/arm/stm32/nucleo-f302r8/scripts/Make.defs
index 16b8673..cfcadc3 100644
--- a/boards/arm/stm32/nucleo-f302r8/scripts/Make.defs
+++ b/boards/arm/stm32/nucleo-f302r8/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/nucleo-f303re/scripts/Make.defs b/boards/arm/stm32/nucleo-f303re/scripts/Make.defs
index eda7a7c..eb4d549 100644
--- a/boards/arm/stm32/nucleo-f303re/scripts/Make.defs
+++ b/boards/arm/stm32/nucleo-f303re/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/nucleo-f303ze/scripts/Make.defs b/boards/arm/stm32/nucleo-f303ze/scripts/Make.defs
index f4b1ae4..a99c18a 100644
--- a/boards/arm/stm32/nucleo-f303ze/scripts/Make.defs
+++ b/boards/arm/stm32/nucleo-f303ze/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/nucleo-f334r8/scripts/Make.defs b/boards/arm/stm32/nucleo-f334r8/scripts/Make.defs
index b841316..3ce0345 100644
--- a/boards/arm/stm32/nucleo-f334r8/scripts/Make.defs
+++ b/boards/arm/stm32/nucleo-f334r8/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/nucleo-f410rb/scripts/Make.defs b/boards/arm/stm32/nucleo-f410rb/scripts/Make.defs
index f482db4..3265ba0 100644
--- a/boards/arm/stm32/nucleo-f410rb/scripts/Make.defs
+++ b/boards/arm/stm32/nucleo-f410rb/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/nucleo-f412zg/scripts/Make.defs b/boards/arm/stm32/nucleo-f412zg/scripts/Make.defs
index d7f38fc..7743870 100644
--- a/boards/arm/stm32/nucleo-f412zg/scripts/Make.defs
+++ b/boards/arm/stm32/nucleo-f412zg/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHDEFINES =
diff --git a/boards/arm/stm32/nucleo-f429zi/scripts/Make.defs b/boards/arm/stm32/nucleo-f429zi/scripts/Make.defs
index 3495eef..1ed3b27 100644
--- a/boards/arm/stm32/nucleo-f429zi/scripts/Make.defs
+++ b/boards/arm/stm32/nucleo-f429zi/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/nucleo-f446re/scripts/Make.defs b/boards/arm/stm32/nucleo-f446re/scripts/Make.defs
index c7eac4f..32a9174 100644
--- a/boards/arm/stm32/nucleo-f446re/scripts/Make.defs
+++ b/boards/arm/stm32/nucleo-f446re/scripts/Make.defs
@@ -35,14 +35,12 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 
 ifeq ($(CONFIG_ARMV7M_TOOLCHAIN_CLANGL),y)
   ARCHCFLAGS += -nostdlib -ffreestanding
   ARCHCXXFLAGS += -nostdlib -ffreestanding
-else
-  ARCHCXXFLAGS += -fno-rtti
 endif
 
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
diff --git a/boards/arm/stm32/nucleo-f4x1re/scripts/Make.defs b/boards/arm/stm32/nucleo-f4x1re/scripts/Make.defs
index 733b70e..e5bb62e 100644
--- a/boards/arm/stm32/nucleo-f4x1re/scripts/Make.defs
+++ b/boards/arm/stm32/nucleo-f4x1re/scripts/Make.defs
@@ -41,14 +41,12 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 
 ifeq ($(CONFIG_ARMV7M_TOOLCHAIN_CLANGL),y)
   ARCHCFLAGS += -nostdlib -ffreestanding
   ARCHCXXFLAGS += -nostdlib -ffreestanding
-else
-  ARCHCXXFLAGS += -fno-rtti
 endif
 
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
diff --git a/boards/arm/stm32/nucleo-g431kb/scripts/Make.defs b/boards/arm/stm32/nucleo-g431kb/scripts/Make.defs
index 5d62f53..5233f43 100755
--- a/boards/arm/stm32/nucleo-g431kb/scripts/Make.defs
+++ b/boards/arm/stm32/nucleo-g431kb/scripts/Make.defs
@@ -38,8 +38,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common -funwind-tables
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -funwind-tables
+ARCHCFLAGS += -fno-common -funwind-tables
+ARCHCXXFLAGS += -fno-common -funwind-tables
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/nucleo-g431rb/scripts/Make.defs b/boards/arm/stm32/nucleo-g431rb/scripts/Make.defs
index 82ca2d4..13f822b 100644
--- a/boards/arm/stm32/nucleo-g431rb/scripts/Make.defs
+++ b/boards/arm/stm32/nucleo-g431rb/scripts/Make.defs
@@ -38,8 +38,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common -funwind-tables
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -funwind-tables
+ARCHCFLAGS += -fno-common -funwind-tables
+ARCHCXXFLAGS += -fno-common -funwind-tables
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/nucleo-l152re/scripts/Make.defs b/boards/arm/stm32/nucleo-l152re/scripts/Make.defs
index 4182429..feba687 100644
--- a/boards/arm/stm32/nucleo-l152re/scripts/Make.defs
+++ b/boards/arm/stm32/nucleo-l152re/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/olimex-stm32-e407/scripts/Make.defs b/boards/arm/stm32/olimex-stm32-e407/scripts/Make.defs
index ed7d2f9..37d778e 100644
--- a/boards/arm/stm32/olimex-stm32-e407/scripts/Make.defs
+++ b/boards/arm/stm32/olimex-stm32-e407/scripts/Make.defs
@@ -40,8 +40,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/olimex-stm32-h405/scripts/Make.defs b/boards/arm/stm32/olimex-stm32-h405/scripts/Make.defs
index 1861e84..8a21503 100644
--- a/boards/arm/stm32/olimex-stm32-h405/scripts/Make.defs
+++ b/boards/arm/stm32/olimex-stm32-h405/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/olimex-stm32-h407/scripts/Make.defs b/boards/arm/stm32/olimex-stm32-h407/scripts/Make.defs
index 3073daf..2332a1c 100644
--- a/boards/arm/stm32/olimex-stm32-h407/scripts/Make.defs
+++ b/boards/arm/stm32/olimex-stm32-h407/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/olimex-stm32-p107/scripts/Make.defs b/boards/arm/stm32/olimex-stm32-p107/scripts/Make.defs
index b9785c9..ba49708 100644
--- a/boards/arm/stm32/olimex-stm32-p107/scripts/Make.defs
+++ b/boards/arm/stm32/olimex-stm32-p107/scripts/Make.defs
@@ -38,8 +38,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/olimex-stm32-p207/scripts/Make.defs b/boards/arm/stm32/olimex-stm32-p207/scripts/Make.defs
index 0fa6942..c679dfd 100644
--- a/boards/arm/stm32/olimex-stm32-p207/scripts/Make.defs
+++ b/boards/arm/stm32/olimex-stm32-p207/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/olimex-stm32-p407/configs/kelf/Make.defs b/boards/arm/stm32/olimex-stm32-p407/configs/kelf/Make.defs
index 18a0977..90a2e25 100644
--- a/boards/arm/stm32/olimex-stm32-p407/configs/kelf/Make.defs
+++ b/boards/arm/stm32/olimex-stm32-p407/configs/kelf/Make.defs
@@ -33,8 +33,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/olimex-stm32-p407/configs/kmodule/Make.defs b/boards/arm/stm32/olimex-stm32-p407/configs/kmodule/Make.defs
index 69eea2c..085f7c7 100644
--- a/boards/arm/stm32/olimex-stm32-p407/configs/kmodule/Make.defs
+++ b/boards/arm/stm32/olimex-stm32-p407/configs/kmodule/Make.defs
@@ -33,8 +33,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/olimex-stm32-p407/configs/knsh/Make.defs b/boards/arm/stm32/olimex-stm32-p407/configs/knsh/Make.defs
index 461f3a9..621e7c2 100644
--- a/boards/arm/stm32/olimex-stm32-p407/configs/knsh/Make.defs
+++ b/boards/arm/stm32/olimex-stm32-p407/configs/knsh/Make.defs
@@ -36,8 +36,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/olimex-stm32-p407/scripts/Make.defs b/boards/arm/stm32/olimex-stm32-p407/scripts/Make.defs
index a3416a0..8c53e8b 100644
--- a/boards/arm/stm32/olimex-stm32-p407/scripts/Make.defs
+++ b/boards/arm/stm32/olimex-stm32-p407/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/olimexino-stm32/scripts/Make.defs b/boards/arm/stm32/olimexino-stm32/scripts/Make.defs
index 872295e..30b2580 100644
--- a/boards/arm/stm32/olimexino-stm32/scripts/Make.defs
+++ b/boards/arm/stm32/olimexino-stm32/scripts/Make.defs
@@ -38,8 +38,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/omnibusf4/scripts/Make.defs b/boards/arm/stm32/omnibusf4/scripts/Make.defs
index 5abd583..2051322 100644
--- a/boards/arm/stm32/omnibusf4/scripts/Make.defs
+++ b/boards/arm/stm32/omnibusf4/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/photon/scripts/Make.defs b/boards/arm/stm32/photon/scripts/Make.defs
index c5d9fc7..c99f415 100644
--- a/boards/arm/stm32/photon/scripts/Make.defs
+++ b/boards/arm/stm32/photon/scripts/Make.defs
@@ -43,8 +43,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common -ffunction-sections -fdata-sections
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti -ffunction-sections -fdata-sections
+ARCHCFLAGS += -fno-common -ffunction-sections -fdata-sections
+ARCHCXXFLAGS += -fno-common -ffunction-sections -fdata-sections
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/shenzhou/scripts/Make.defs b/boards/arm/stm32/shenzhou/scripts/Make.defs
index 66588df..7f0a8f3 100644
--- a/boards/arm/stm32/shenzhou/scripts/Make.defs
+++ b/boards/arm/stm32/shenzhou/scripts/Make.defs
@@ -43,8 +43,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/stm3210e-eval/scripts/Make.defs b/boards/arm/stm32/stm3210e-eval/scripts/Make.defs
index 78b01bb..a746450 100644
--- a/boards/arm/stm32/stm3210e-eval/scripts/Make.defs
+++ b/boards/arm/stm32/stm3210e-eval/scripts/Make.defs
@@ -38,8 +38,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/stm3220g-eval/scripts/Make.defs b/boards/arm/stm32/stm3220g-eval/scripts/Make.defs
index 121a750..7e2c3a9 100644
--- a/boards/arm/stm32/stm3220g-eval/scripts/Make.defs
+++ b/boards/arm/stm32/stm3220g-eval/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/stm3240g-eval/configs/knxwm/Make.defs b/boards/arm/stm32/stm3240g-eval/configs/knxwm/Make.defs
index ed76156..af347e4 100644
--- a/boards/arm/stm32/stm3240g-eval/configs/knxwm/Make.defs
+++ b/boards/arm/stm32/stm3240g-eval/configs/knxwm/Make.defs
@@ -33,8 +33,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti -fpermissive
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common -fpermissive
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/stm3240g-eval/scripts/Make.defs b/boards/arm/stm32/stm3240g-eval/scripts/Make.defs
index e9a9df1..f373246 100644
--- a/boards/arm/stm32/stm3240g-eval/scripts/Make.defs
+++ b/boards/arm/stm32/stm3240g-eval/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/stm32_tiny/scripts/Make.defs b/boards/arm/stm32/stm32_tiny/scripts/Make.defs
index 06155ba..ddb02ed 100644
--- a/boards/arm/stm32/stm32_tiny/scripts/Make.defs
+++ b/boards/arm/stm32/stm32_tiny/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/stm32butterfly2/scripts/Make.defs b/boards/arm/stm32/stm32butterfly2/scripts/Make.defs
index a5414f9..5d2d6ed 100644
--- a/boards/arm/stm32/stm32butterfly2/scripts/Make.defs
+++ b/boards/arm/stm32/stm32butterfly2/scripts/Make.defs
@@ -38,8 +38,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/stm32f103-minimum/scripts/Make.defs b/boards/arm/stm32/stm32f103-minimum/scripts/Make.defs
index 4bb4400..def2af9 100644
--- a/boards/arm/stm32/stm32f103-minimum/scripts/Make.defs
+++ b/boards/arm/stm32/stm32f103-minimum/scripts/Make.defs
@@ -38,8 +38,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/stm32f334-disco/scripts/Make.defs b/boards/arm/stm32/stm32f334-disco/scripts/Make.defs
index 41efe8d..fa14a8a 100644
--- a/boards/arm/stm32/stm32f334-disco/scripts/Make.defs
+++ b/boards/arm/stm32/stm32f334-disco/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/stm32f3discovery/scripts/Make.defs b/boards/arm/stm32/stm32f3discovery/scripts/Make.defs
index 0c68a56..87db832 100644
--- a/boards/arm/stm32/stm32f3discovery/scripts/Make.defs
+++ b/boards/arm/stm32/stm32f3discovery/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/stm32f411-minimum/scripts/Make.defs b/boards/arm/stm32/stm32f411-minimum/scripts/Make.defs
index f2dea21..eb06c02 100644
--- a/boards/arm/stm32/stm32f411-minimum/scripts/Make.defs
+++ b/boards/arm/stm32/stm32f411-minimum/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/stm32f411e-disco/scripts/Make.defs b/boards/arm/stm32/stm32f411e-disco/scripts/Make.defs
index 1d3be4e..e58f50f 100644
--- a/boards/arm/stm32/stm32f411e-disco/scripts/Make.defs
+++ b/boards/arm/stm32/stm32f411e-disco/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/stm32f429i-disco/scripts/Make.defs b/boards/arm/stm32/stm32f429i-disco/scripts/Make.defs
index 83892ed..8d6952a 100644
--- a/boards/arm/stm32/stm32f429i-disco/scripts/Make.defs
+++ b/boards/arm/stm32/stm32f429i-disco/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/stm32f4discovery/scripts/Make.defs b/boards/arm/stm32/stm32f4discovery/scripts/Make.defs
index 8bfc318..f62f45e 100644
--- a/boards/arm/stm32/stm32f4discovery/scripts/Make.defs
+++ b/boards/arm/stm32/stm32f4discovery/scripts/Make.defs
@@ -34,11 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common -ffunction-sections -fdata-sections
-ARCHCXXFLAGS = -fno-common -ffunction-sections -fdata-sections
-ifneq ($(CONFIG_CXX_EXCEPTION),y)
-  ARCHCXXFLAGS = -fno-exceptions -fcheck-new
-endif
+ARCHCFLAGS += -fno-common -ffunction-sections -fdata-sections
+ARCHCXXFLAGS += -fno-common -ffunction-sections -fdata-sections
 
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
@@ -49,7 +46,7 @@ ifeq ($(CONFIG_ARMV7M_TOOLCHAIN_CLANGL),y)
   ARCHCXXFLAGS += -nostdlib -ffreestanding
 else
   ARCHCFLAGS += -funwind-tables
-  ARCHCXXFLAGS += -fno-rtti -funwind-tables
+  ARCHCXXFLAGS += -funwind-tables
 
 endif
 
diff --git a/boards/arm/stm32/stm32ldiscovery/scripts/Make.defs b/boards/arm/stm32/stm32ldiscovery/scripts/Make.defs
index 15ffeb8..cdce0a6 100644
--- a/boards/arm/stm32/stm32ldiscovery/scripts/Make.defs
+++ b/boards/arm/stm32/stm32ldiscovery/scripts/Make.defs
@@ -38,8 +38,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/stm32vldiscovery/scripts/Make.defs b/boards/arm/stm32/stm32vldiscovery/scripts/Make.defs
index ba04474..3d61b6b 100644
--- a/boards/arm/stm32/stm32vldiscovery/scripts/Make.defs
+++ b/boards/arm/stm32/stm32vldiscovery/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32/viewtool-stm32f107/scripts/Make.defs b/boards/arm/stm32/viewtool-stm32f107/scripts/Make.defs
index 22f263a..0094a01 100644
--- a/boards/arm/stm32/viewtool-stm32f107/scripts/Make.defs
+++ b/boards/arm/stm32/viewtool-stm32f107/scripts/Make.defs
@@ -38,8 +38,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32f0l0g0/b-l072z-lrwan1/scripts/Make.defs b/boards/arm/stm32f0l0g0/b-l072z-lrwan1/scripts/Make.defs
index f6a2b7b..2d545e4 100644
--- a/boards/arm/stm32f0l0g0/b-l072z-lrwan1/scripts/Make.defs
+++ b/boards/arm/stm32f0l0g0/b-l072z-lrwan1/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32f0l0g0/nucleo-f072rb/scripts/Make.defs b/boards/arm/stm32f0l0g0/nucleo-f072rb/scripts/Make.defs
index 25a191a..2131f6f 100644
--- a/boards/arm/stm32f0l0g0/nucleo-f072rb/scripts/Make.defs
+++ b/boards/arm/stm32f0l0g0/nucleo-f072rb/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32f0l0g0/nucleo-f091rc/scripts/Make.defs b/boards/arm/stm32f0l0g0/nucleo-f091rc/scripts/Make.defs
index 747b1b9..5c32bf2 100644
--- a/boards/arm/stm32f0l0g0/nucleo-f091rc/scripts/Make.defs
+++ b/boards/arm/stm32f0l0g0/nucleo-f091rc/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32f0l0g0/nucleo-g070rb/scripts/Make.defs b/boards/arm/stm32f0l0g0/nucleo-g070rb/scripts/Make.defs
index bb6126f..2c055fd 100644
--- a/boards/arm/stm32f0l0g0/nucleo-g070rb/scripts/Make.defs
+++ b/boards/arm/stm32f0l0g0/nucleo-g070rb/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32f0l0g0/nucleo-g071rb/scripts/Make.defs b/boards/arm/stm32f0l0g0/nucleo-g071rb/scripts/Make.defs
index f028064..5308a4e 100644
--- a/boards/arm/stm32f0l0g0/nucleo-g071rb/scripts/Make.defs
+++ b/boards/arm/stm32f0l0g0/nucleo-g071rb/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32f0l0g0/nucleo-l073rz/scripts/Make.defs b/boards/arm/stm32f0l0g0/nucleo-l073rz/scripts/Make.defs
index b5fda61..54b32da 100644
--- a/boards/arm/stm32f0l0g0/nucleo-l073rz/scripts/Make.defs
+++ b/boards/arm/stm32f0l0g0/nucleo-l073rz/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32f0l0g0/stm32f051-discovery/scripts/Make.defs b/boards/arm/stm32f0l0g0/stm32f051-discovery/scripts/Make.defs
index faa3bda..798516d 100644
--- a/boards/arm/stm32f0l0g0/stm32f051-discovery/scripts/Make.defs
+++ b/boards/arm/stm32f0l0g0/stm32f051-discovery/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32f0l0g0/stm32f072-discovery/scripts/Make.defs b/boards/arm/stm32f0l0g0/stm32f072-discovery/scripts/Make.defs
index 3b8c625..72c3b45 100644
--- a/boards/arm/stm32f0l0g0/stm32f072-discovery/scripts/Make.defs
+++ b/boards/arm/stm32f0l0g0/stm32f072-discovery/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32f7/nucleo-144/configs/f722-nsh/Make.defs b/boards/arm/stm32f7/nucleo-144/configs/f722-nsh/Make.defs
index 7ac3d47..066ac23 100644
--- a/boards/arm/stm32f7/nucleo-144/configs/f722-nsh/Make.defs
+++ b/boards/arm/stm32f7/nucleo-144/configs/f722-nsh/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32f7/nucleo-144/configs/f746-evalos/Make.defs b/boards/arm/stm32f7/nucleo-144/configs/f746-evalos/Make.defs
index ec2ed3a..bd0058f 100644
--- a/boards/arm/stm32f7/nucleo-144/configs/f746-evalos/Make.defs
+++ b/boards/arm/stm32f7/nucleo-144/configs/f746-evalos/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32f7/nucleo-144/configs/f746-nsh/Make.defs b/boards/arm/stm32f7/nucleo-144/configs/f746-nsh/Make.defs
index db0be45..df2d3ed 100644
--- a/boards/arm/stm32f7/nucleo-144/configs/f746-nsh/Make.defs
+++ b/boards/arm/stm32f7/nucleo-144/configs/f746-nsh/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32f7/nucleo-144/configs/f746-pysim/Make.defs b/boards/arm/stm32f7/nucleo-144/configs/f746-pysim/Make.defs
index ddf2c1a..24fe6f8 100644
--- a/boards/arm/stm32f7/nucleo-144/configs/f746-pysim/Make.defs
+++ b/boards/arm/stm32f7/nucleo-144/configs/f746-pysim/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32f7/nucleo-144/configs/f767-evalos/Make.defs b/boards/arm/stm32f7/nucleo-144/configs/f767-evalos/Make.defs
index 42ab0d8..1733415 100644
--- a/boards/arm/stm32f7/nucleo-144/configs/f767-evalos/Make.defs
+++ b/boards/arm/stm32f7/nucleo-144/configs/f767-evalos/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32f7/nucleo-144/configs/f767-netnsh/Make.defs b/boards/arm/stm32f7/nucleo-144/configs/f767-netnsh/Make.defs
index 7a8e623..b12b23e 100644
--- a/boards/arm/stm32f7/nucleo-144/configs/f767-netnsh/Make.defs
+++ b/boards/arm/stm32f7/nucleo-144/configs/f767-netnsh/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32f7/nucleo-144/configs/f767-nsh/Make.defs b/boards/arm/stm32f7/nucleo-144/configs/f767-nsh/Make.defs
index 6ce7f76..f2d6f96 100644
--- a/boards/arm/stm32f7/nucleo-144/configs/f767-nsh/Make.defs
+++ b/boards/arm/stm32f7/nucleo-144/configs/f767-nsh/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32f7/stm32f746-ws/scripts/Make.defs b/boards/arm/stm32f7/stm32f746-ws/scripts/Make.defs
index 26f4b85..0b45e09 100644
--- a/boards/arm/stm32f7/stm32f746-ws/scripts/Make.defs
+++ b/boards/arm/stm32f7/stm32f746-ws/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32f7/stm32f746g-disco/scripts/Make.defs b/boards/arm/stm32f7/stm32f746g-disco/scripts/Make.defs
index 90d73bd..86ad92c 100644
--- a/boards/arm/stm32f7/stm32f746g-disco/scripts/Make.defs
+++ b/boards/arm/stm32f7/stm32f746g-disco/scripts/Make.defs
@@ -30,14 +30,12 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 
 ifeq ($(CONFIG_ARMV7M_TOOLCHAIN_CLANGL),y)
   ARCHCFLAGS += -nostdlib -ffreestanding
   ARCHCXXFLAGS += -nostdlib -ffreestanding
-else
-  ARCHCXXFLAGS += -fno-rtti
 endif
 
 ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
diff --git a/boards/arm/stm32f7/stm32f769i-disco/scripts/Make.defs b/boards/arm/stm32f7/stm32f769i-disco/scripts/Make.defs
index 803683c..0c5afd2 100644
--- a/boards/arm/stm32f7/stm32f769i-disco/scripts/Make.defs
+++ b/boards/arm/stm32f7/stm32f769i-disco/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32h7/nucleo-h743zi/scripts/Make.defs b/boards/arm/stm32h7/nucleo-h743zi/scripts/Make.defs
index bbf5801..9eef66b 100644
--- a/boards/arm/stm32h7/nucleo-h743zi/scripts/Make.defs
+++ b/boards/arm/stm32h7/nucleo-h743zi/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32h7/nucleo-h743zi2/scripts/Make.defs b/boards/arm/stm32h7/nucleo-h743zi2/scripts/Make.defs
index 5d2b8d8..20e1eb3 100644
--- a/boards/arm/stm32h7/nucleo-h743zi2/scripts/Make.defs
+++ b/boards/arm/stm32h7/nucleo-h743zi2/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32h7/stm32h747i-disco/scripts/Make.defs b/boards/arm/stm32h7/stm32h747i-disco/scripts/Make.defs
index 12135d7..13e61e3 100644
--- a/boards/arm/stm32h7/stm32h747i-disco/scripts/Make.defs
+++ b/boards/arm/stm32h7/stm32h747i-disco/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32l4/b-l475e-iot01a/scripts/Make.defs b/boards/arm/stm32l4/b-l475e-iot01a/scripts/Make.defs
index de5b9b3..10373d7 100644
--- a/boards/arm/stm32l4/b-l475e-iot01a/scripts/Make.defs
+++ b/boards/arm/stm32l4/b-l475e-iot01a/scripts/Make.defs
@@ -37,8 +37,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32l4/nucleo-l432kc/scripts/Make.defs b/boards/arm/stm32l4/nucleo-l432kc/scripts/Make.defs
index 439607e..0a1d4e3 100644
--- a/boards/arm/stm32l4/nucleo-l432kc/scripts/Make.defs
+++ b/boards/arm/stm32l4/nucleo-l432kc/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32l4/nucleo-l452re/scripts/Make.defs b/boards/arm/stm32l4/nucleo-l452re/scripts/Make.defs
index a81f3c2..a664f6d 100644
--- a/boards/arm/stm32l4/nucleo-l452re/scripts/Make.defs
+++ b/boards/arm/stm32l4/nucleo-l452re/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32l4/nucleo-l476rg/scripts/Make.defs b/boards/arm/stm32l4/nucleo-l476rg/scripts/Make.defs
index f2de70c..253feb6 100644
--- a/boards/arm/stm32l4/nucleo-l476rg/scripts/Make.defs
+++ b/boards/arm/stm32l4/nucleo-l476rg/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
@@ -52,7 +52,7 @@ ifeq ($(CONFIG_LIBCXX),y)
     -D_DEBUG -D_LIBCPP_BUILD_STATIC -D_LIBCPP_STD_VER=14
 
   ifneq ($(CONFIG_CXX_EXCEPTION),y)
-    CXXFLAGS += -fno-exceptions -fno-rtti -fcheck-new -D_LIBCPP_NO_EXCEPTIONS
+    CXXFLAGS += -D_LIBCPP_NO_EXCEPTIONS
   endif
 endif
 
diff --git a/boards/arm/stm32l4/nucleo-l496zg/scripts/Make.defs b/boards/arm/stm32l4/nucleo-l496zg/scripts/Make.defs
index b9e3e2d..56e149a 100644
--- a/boards/arm/stm32l4/nucleo-l496zg/scripts/Make.defs
+++ b/boards/arm/stm32l4/nucleo-l496zg/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32l4/stm32l476-mdk/scripts/Make.defs b/boards/arm/stm32l4/stm32l476-mdk/scripts/Make.defs
index dba1456..ca3a64c 100644
--- a/boards/arm/stm32l4/stm32l476-mdk/scripts/Make.defs
+++ b/boards/arm/stm32l4/stm32l476-mdk/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32l4/stm32l476vg-disco/configs/knsh/Make.defs b/boards/arm/stm32l4/stm32l476vg-disco/configs/knsh/Make.defs
index b1cab68..2f50025 100644
--- a/boards/arm/stm32l4/stm32l476vg-disco/configs/knsh/Make.defs
+++ b/boards/arm/stm32l4/stm32l476vg-disco/configs/knsh/Make.defs
@@ -36,8 +36,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32l4/stm32l476vg-disco/scripts/Make.defs b/boards/arm/stm32l4/stm32l476vg-disco/scripts/Make.defs
index 1ace1d3..9ccb9a8 100644
--- a/boards/arm/stm32l4/stm32l476vg-disco/scripts/Make.defs
+++ b/boards/arm/stm32l4/stm32l476vg-disco/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32l4/stm32l4r9ai-disco/configs/knsh/Make.defs b/boards/arm/stm32l4/stm32l4r9ai-disco/configs/knsh/Make.defs
index 6ceb65b..2949881 100644
--- a/boards/arm/stm32l4/stm32l4r9ai-disco/configs/knsh/Make.defs
+++ b/boards/arm/stm32l4/stm32l4r9ai-disco/configs/knsh/Make.defs
@@ -36,8 +36,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32l4/stm32l4r9ai-disco/scripts/Make.defs b/boards/arm/stm32l4/stm32l4r9ai-disco/scripts/Make.defs
index 0fbea74..6ffddc4 100644
--- a/boards/arm/stm32l4/stm32l4r9ai-disco/scripts/Make.defs
+++ b/boards/arm/stm32l4/stm32l4r9ai-disco/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32l5/nucleo-l552ze/scripts/Make.defs b/boards/arm/stm32l5/nucleo-l552ze/scripts/Make.defs
index d79d8a7..25bb713 100644
--- a/boards/arm/stm32l5/nucleo-l552ze/scripts/Make.defs
+++ b/boards/arm/stm32l5/nucleo-l552ze/scripts/Make.defs
@@ -37,8 +37,8 @@ ifeq ($(CONFIG_ARMV8M_STACKCHECK),y)
   INSTRUMENTATIONDEFINES = -finstrument-functions -ffixed-r10
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32l5/stm32l562e-dk/scripts/Make.defs b/boards/arm/stm32l5/stm32l562e-dk/scripts/Make.defs
index b348d04..ec3676e 100644
--- a/boards/arm/stm32l5/stm32l562e-dk/scripts/Make.defs
+++ b/boards/arm/stm32l5/stm32l562e-dk/scripts/Make.defs
@@ -37,8 +37,8 @@ ifeq ($(CONFIG_ARMV8M_STACKCHECK),y)
   INSTRUMENTATIONDEFINES = -finstrument-functions -ffixed-r10
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/stm32u5/b-u585i-iot02a/scripts/Make.defs b/boards/arm/stm32u5/b-u585i-iot02a/scripts/Make.defs
index 3d9e158..db632f9 100644
--- a/boards/arm/stm32u5/b-u585i-iot02a/scripts/Make.defs
+++ b/boards/arm/stm32u5/b-u585i-iot02a/scripts/Make.defs
@@ -37,8 +37,8 @@ ifeq ($(CONFIG_ARMV8M_STACKCHECK),y)
   INSTRUMENTATIONDEFINES = -finstrument-functions -ffixed-r10
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/str71x/olimex-strp711/scripts/Make.defs b/boards/arm/str71x/olimex-strp711/scripts/Make.defs
index 65bc6e5..f6f4434 100644
--- a/boards/arm/str71x/olimex-strp711/scripts/Make.defs
+++ b/boards/arm/str71x/olimex-strp711/scripts/Make.defs
@@ -55,8 +55,8 @@ else
   ARCHCPUFLAGS = -mapcs-32 -mcpu=arm7tdmi -msoft-float
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
diff --git a/boards/arm/tiva/dk-tm4c129x/scripts/Make.defs b/boards/arm/tiva/dk-tm4c129x/scripts/Make.defs
index 1315364..d904f72 100644
--- a/boards/arm/tiva/dk-tm4c129x/scripts/Make.defs
+++ b/boards/arm/tiva/dk-tm4c129x/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/tiva/eagle100/scripts/Make.defs b/boards/arm/tiva/eagle100/scripts/Make.defs
index de6c1e7..46711ea 100644
--- a/boards/arm/tiva/eagle100/scripts/Make.defs
+++ b/boards/arm/tiva/eagle100/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/tiva/ekk-lm3s9b96/scripts/Make.defs b/boards/arm/tiva/ekk-lm3s9b96/scripts/Make.defs
index 8e436d8..11b6382 100644
--- a/boards/arm/tiva/ekk-lm3s9b96/scripts/Make.defs
+++ b/boards/arm/tiva/ekk-lm3s9b96/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/tiva/launchxl-cc1310/scripts/Make.defs b/boards/arm/tiva/launchxl-cc1310/scripts/Make.defs
index 3c4aaa1..1d334b7 100644
--- a/boards/arm/tiva/launchxl-cc1310/scripts/Make.defs
+++ b/boards/arm/tiva/launchxl-cc1310/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION)
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -fno-strict-aliasing
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/tiva/launchxl-cc1312r1/scripts/Make.defs b/boards/arm/tiva/launchxl-cc1312r1/scripts/Make.defs
index dc87a4b..fb6b7e9 100644
--- a/boards/arm/tiva/launchxl-cc1312r1/scripts/Make.defs
+++ b/boards/arm/tiva/launchxl-cc1312r1/scripts/Make.defs
@@ -38,8 +38,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION)
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -fno-strict-aliasing
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/tiva/lm3s6432-s2e/scripts/Make.defs b/boards/arm/tiva/lm3s6432-s2e/scripts/Make.defs
index ce0af29..bb1ad10 100644
--- a/boards/arm/tiva/lm3s6432-s2e/scripts/Make.defs
+++ b/boards/arm/tiva/lm3s6432-s2e/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/tiva/lm3s6965-ek/scripts/Make.defs b/boards/arm/tiva/lm3s6965-ek/scripts/Make.defs
index ed34c1c..a69f692 100644
--- a/boards/arm/tiva/lm3s6965-ek/scripts/Make.defs
+++ b/boards/arm/tiva/lm3s6965-ek/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/tiva/lm3s8962-ek/scripts/Make.defs b/boards/arm/tiva/lm3s8962-ek/scripts/Make.defs
index 223d280..fd927d7 100644
--- a/boards/arm/tiva/lm3s8962-ek/scripts/Make.defs
+++ b/boards/arm/tiva/lm3s8962-ek/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/tiva/lm4f120-launchpad/scripts/Make.defs b/boards/arm/tiva/lm4f120-launchpad/scripts/Make.defs
index dc7af0a..c747fe3 100644
--- a/boards/arm/tiva/lm4f120-launchpad/scripts/Make.defs
+++ b/boards/arm/tiva/lm4f120-launchpad/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/tiva/tm4c123g-launchpad/scripts/Make.defs b/boards/arm/tiva/tm4c123g-launchpad/scripts/Make.defs
index 9a4ca24..520fdf4 100644
--- a/boards/arm/tiva/tm4c123g-launchpad/scripts/Make.defs
+++ b/boards/arm/tiva/tm4c123g-launchpad/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/tiva/tm4c1294-launchpad/scripts/Make.defs b/boards/arm/tiva/tm4c1294-launchpad/scripts/Make.defs
index 3babbfc..d6a82eb 100644
--- a/boards/arm/tiva/tm4c1294-launchpad/scripts/Make.defs
+++ b/boards/arm/tiva/tm4c1294-launchpad/scripts/Make.defs
@@ -32,8 +32,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/tms570/launchxl-tms57004/scripts/Make.defs b/boards/arm/tms570/launchxl-tms57004/scripts/Make.defs
index ff7b6d6..d849a47 100644
--- a/boards/arm/tms570/launchxl-tms57004/scripts/Make.defs
+++ b/boards/arm/tms570/launchxl-tms57004/scripts/Make.defs
@@ -35,8 +35,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
 endif
 
 ARCHCPUFLAGS = -mcpu=cortex-r4 -mbig-endian
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/tms570/tms570ls31x-usb-kit/scripts/Make.defs b/boards/arm/tms570/tms570ls31x-usb-kit/scripts/Make.defs
index 74f9262..98cdafe 100644
--- a/boards/arm/tms570/tms570ls31x-usb-kit/scripts/Make.defs
+++ b/boards/arm/tms570/tms570ls31x-usb-kit/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/xmc4/xmc4500-relax/scripts/Make.defs b/boards/arm/xmc4/xmc4500-relax/scripts/Make.defs
index 345d18e..e23cd06 100644
--- a/boards/arm/xmc4/xmc4500-relax/scripts/Make.defs
+++ b/boards/arm/xmc4/xmc4500-relax/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION)
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -fno-strict-aliasing
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
diff --git a/boards/arm/xmc4/xmc4700-relax/scripts/Make.defs b/boards/arm/xmc4/xmc4700-relax/scripts/Make.defs
index e8a2750..9a9e080 100644
--- a/boards/arm/xmc4/xmc4700-relax/scripts/Make.defs
+++ b/boards/arm/xmc4/xmc4700-relax/scripts/Make.defs
@@ -34,8 +34,8 @@ ifneq ($(CONFIG_DEBUG_NOOPT),y)
   ARCHOPTIMIZATION += $(MAXOPTIMIZATION)
 endif
 
-ARCHCFLAGS = -fno-common
-ARCHCXXFLAGS = -fno-common -fno-exceptions -fcheck-new -fno-rtti
+ARCHCFLAGS += -fno-common
+ARCHCXXFLAGS += -fno-common
 ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -fno-strict-aliasing
 ARCHWARNINGSXX = -Wall -Wshadow -Wundef
 ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10