diff --git a/libs/libxx/Kconfig b/libs/libxx/Kconfig index 62618e15bb603..bc6b868f5c6eb 100644 --- a/libs/libxx/Kconfig +++ b/libs/libxx/Kconfig @@ -29,7 +29,6 @@ choice config LIBCXXTOOLCHAIN bool "Toolchain C++ support" select HAVE_CXXINITIALIZE - select LIBC_LOCALE ---help--- Use Standard C++ library from toolchain. @@ -119,10 +118,22 @@ config CXX_RTTI config CXX_WCHAR bool "Enable Wide Character Support" +choice + prompt "C++ Locale and Stream select" + default CXX_NO_LOCALIZATION + +config CXX_NO_LOCALIZATION + bool "No Locale and Stream Support" + +config CXX_MINI_LOCALIZATION + bool "Enable mini Locale and Stream Support" + config CXX_LOCALIZATION bool "Enable Locale and Stream Support" depends on LIBC_LOCALE +endchoice + if UCLIBCXX config UCLIBCXX_BUFSIZE diff --git a/libs/libxx/__config_site b/libs/libxx/__config_site index e7d5116ceb0ce..7e1477746cdd5 100644 --- a/libs/libxx/__config_site +++ b/libs/libxx/__config_site @@ -27,8 +27,10 @@ /* #undef _LIBCPP_TYPEINFO_COMPARISON_IMPLEMENTATION */ /* #undef _LIBCPP_HAS_NO_FILESYSTEM */ /* #undef _LIBCPP_HAS_NO_RANDOM_DEVICE */ -#ifndef CONFIG_CXX_LOCALIZATION +#if defined(CONFIG_CXX_NO_LOCALIZATION) # define _LIBCPP_HAS_NO_LOCALIZATION +#elif defined(CONFIG_CXX_MINI_LOCALIZATION) +# define _LIBCPP_HAS_MINI_LOCALIZATION #endif #ifndef CONFIG_CXX_WCHAR # define _LIBCPP_HAS_NO_WIDE_CHARACTERS diff --git a/libs/libxx/libcxx/CMakeLists.txt b/libs/libxx/libcxx/CMakeLists.txt index 664600337647f..c36bb62fb5307 100644 --- a/libs/libxx/libcxx/CMakeLists.txt +++ b/libs/libxx/libcxx/CMakeLists.txt @@ -98,7 +98,7 @@ if(CONFIG_LIBCXX) file(GLOB SRCSTMP ${CMAKE_CURRENT_LIST_DIR}/libcxx/src/ryu/*.cpp) list(APPEND SRCS ${SRCSTMP}) - if(NOT CONFIG_CXX_LOCALIZATION) + if(CONFIG_CXX_NO_LOCALIZATION) file( GLOB SRCSTMP diff --git a/libs/libxx/libcxx/Make.defs b/libs/libxx/libcxx/Make.defs index e5cc01af997b0..7c15f70eb2156 100644 --- a/libs/libxx/libcxx/Make.defs +++ b/libs/libxx/libcxx/Make.defs @@ -76,7 +76,7 @@ CPPSRCS += $(wildcard libcxx/libcxx/src/experimental/*.cpp) CPPSRCS += $(wildcard libcxx/libcxx/src/filesystem/*.cpp) CPPSRCS += $(wildcard libcxx/libcxx/src/ryu/*.cpp) -ifeq ($(CONFIG_CXX_LOCALIZATION),) +ifeq ($(CONFIG_CXX_NO_LOCALIZATION),y) LOCALE_CPPSRCS := libcxx/libcxx/src/ios.cpp LOCALE_CPPSRCS += libcxx/libcxx/src/ios.instantiations.cpp LOCALE_CPPSRCS += libcxx/libcxx/src/iostream.cpp