diff --git a/lib/cpp/Kconfig b/lib/cpp/Kconfig index b7bfbf24b1a..131415b87aa 100644 --- a/lib/cpp/Kconfig +++ b/lib/cpp/Kconfig @@ -85,7 +85,7 @@ config MINIMAL_LIBCPP config GLIBCXX_LIBCPP bool "GNU C++ Standard Library" depends on !NATIVE_APPLICATION - depends on NEWLIB_LIBC || (PICOLIBC && !PICOLIBC_USE_MODULE) + depends on NEWLIB_LIBC || PICOLIBC help Build with GNU C++ Standard Library (libstdc++) provided by the GNU Compiler Collection (GCC)-based toolchain. diff --git a/lib/libc/Kconfig b/lib/libc/Kconfig index 697a6ee9943..9e8b618975f 100644 --- a/lib/libc/Kconfig +++ b/lib/libc/Kconfig @@ -15,10 +15,12 @@ config SUPPORT_MINIMAL_LIBC bool default y +# Picolibc with C++ support in Zephyr SDK is handled by Zephyr SDK's own Kconfig. config PICOLIBC_SUPPORTED bool depends on ARC || ARM || ARM64 || MIPS || RISCV depends on "$(ZEPHYR_TOOLCHAIN_VARIANT)" != "arcmwdt" + depends on !(CPP && "$(ZEPHYR_TOOLCHAIN_VARIANT)" = "zephyr") default y help Selected when the target has support for picolibc. @@ -42,6 +44,7 @@ config PICOLIBC select THREAD_LOCAL_STORAGE if ARCH_HAS_THREAD_LOCAL_STORAGE && TOOLCHAIN_SUPPORTS_THREAD_LOCAL_STORAGE select LIBC_ERRNO if THREAD_LOCAL_STORAGE depends on !NATIVE_APPLICATION + depends on PICOLIBC_SUPPORTED help Build with picolibc library. The picolibc library is built as a module if PICOLIBC_MODULE is set, otherwise picolibc is diff --git a/lib/libc/picolibc/Kconfig b/lib/libc/picolibc/Kconfig index 492a02a87f0..b52301fff71 100644 --- a/lib/libc/picolibc/Kconfig +++ b/lib/libc/picolibc/Kconfig @@ -4,9 +4,10 @@ if PICOLIBC config PICOLIBC_USE_MODULE - bool "Use picolibc module" + bool "Picolibc as module" default y - select PICOLIBC_MODULE + depends on ZEPHYR_PICOLIBC_MODULE + depends on !GLIBCXX_LIBCPP help Use picolibc module instead of picolibc included with toolchain