From 7144b5f275f380941bffca9509ecb97542c8e5ea Mon Sep 17 00:00:00 2001 From: Stephanos Ioannidis Date: Mon, 7 Jun 2021 15:13:19 +0900 Subject: newlib: Add libstdc++ nano-specific CXXFLAGS This commit adds a new config that can be used to specify the target CXXFLAGS specific to the libstdc++ newlib-nano variant. By default, this config is set to specify the `-fno-exceptions` option, which disables C++ exception handling support and greatly reduces the compiled binary size. Signed-off-by: Stephanos Ioannidis diff --git a/config/comp_libs/newlib-nano.in b/config/comp_libs/newlib-nano.in index 0d80c89..5a81fde 100644 --- a/config/comp_libs/newlib-nano.in +++ b/config/comp_libs/newlib-nano.in @@ -18,6 +18,14 @@ config NEWLIB_NANO_GCC_LIBSTDCXX This option compiles an additional target libstdc++ for use with newlib-nano. +config NEWLIB_NANO_GCC_LIBSTDCXX_TARGET_CXXFLAGS + string + prompt "Target CXXFLAGS for libstdc++ newlib-nano variant" + default "-fno-exceptions" + help + Used to add extra CXXFLAGS when compiling the target libstdc++ + newlib-nano library (e.g. -fno-exceptions). + config NEWLIB_NANO_INSTALL_IN_TARGET bool prompt "Additionally install newlib-nano libs into TARGET dir" diff --git a/scripts/build/companion_libs/350-newlib_nano.sh b/scripts/build/companion_libs/350-newlib_nano.sh index d109070..2d9de1b 100644 --- a/scripts/build/companion_libs/350-newlib_nano.sh +++ b/scripts/build/companion_libs/350-newlib_nano.sh @@ -67,6 +67,9 @@ do_cc_libstdcxx_newlib_nano() if [ "${CT_LIBC_NEWLIB_NANO_ENABLE_TARGET_OPTSPACE}" = "y" ]; then final_opts+=( "enable_optspace=yes" ) fi + if [ -n "${CT_NEWLIB_NANO_GCC_LIBSTDCXX_TARGET_CXXFLAGS}" ]; then + final_opts+=( "extra_cxxflags_for_target=${CT_NEWLIB_NANO_GCC_LIBSTDCXX_TARGET_CXXFLAGS}" ) + fi if [ "${CT_BARE_METAL}" = "y" ]; then final_opts+=( "mode=baremetal" ) -- cgit v0.10.2-6-g49f6