From dfe7c1573608deb1fd9674e2c1cdf2e967d4d7a5 Mon Sep 17 00:00:00 2001 From: Adrian Gielniewski Date: Thu, 27 Feb 2025 10:15:39 +0100 Subject: [PATCH] picolibc: Disable exceptions for picolibc libstdc++ Add `CT_LIBC_PICOLIBC_GCC_LIBSTDCXX_TARGET_CXXFLAGS` config option and set it by default to '-fno-exceptions'. Signed-off-by: Adrian Gielniewski --- config/comp_libs/picolibc.in | 8 ++++++++ scripts/build/companion_libs/340-picolibc.sh | 3 +++ 2 files changed, 11 insertions(+) diff --git a/config/comp_libs/picolibc.in b/config/comp_libs/picolibc.in index 99f0e45203..f974d32d69 100644 --- a/config/comp_libs/picolibc.in +++ b/config/comp_libs/picolibc.in @@ -20,6 +20,14 @@ config LIBC_PICOLIBC_GCC_LIBSTDCXX picolibc. This version is linked when "--specs=picolibcpp.specs" is specified. +config LIBC_PICOLIBC_GCC_LIBSTDCXX_TARGET_CXXFLAGS + string + prompt "Target CXXFLAGS for libstdc++ picolibc variant" + default "-fno-exceptions" + help + Used to add extra CXXFLAGS when compiling the target libstdc++ + picolibc library (e.g. -fno-exceptions). + config LIBC_PICOLIBC_CXA_ATEXIT def_bool y select LIBC_PROVIDES_CXA_ATEXIT diff --git a/scripts/build/companion_libs/340-picolibc.sh b/scripts/build/companion_libs/340-picolibc.sh index 44b7b46579..83399e024a 100644 --- a/scripts/build/companion_libs/340-picolibc.sh +++ b/scripts/build/companion_libs/340-picolibc.sh @@ -44,6 +44,9 @@ do_cc_libstdcxx_picolibc() if [ "${CT_LIBC_PICOLIBC_ENABLE_TARGET_OPTSPACE}" = "y" ]; then final_opts+=( "enable_optspace=yes" ) fi + if [ -n "${CT_LIBC_PICOLIBC_GCC_LIBSTDCXX_TARGET_CXXFLAGS}" ]; then + final_opts+=( "extra_cxxflags_for_target=${CT_LIBC_PICOLIBC_GCC_LIBSTDCXX_TARGET_CXXFLAGS}" ) + fi if [ "${CT_BARE_METAL}" = "y" ]; then final_opts+=( "mode=baremetal" )