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/nuttx.git
The following commit(s) were added to refs/heads/master by this push:
new 6ce6af9004b libcxx: supports CXX_MINI_LOCALIZATION
6ce6af9004b is described below
commit 6ce6af9004b98252e1b5a41f52f6ffca7cfdbbda
Author: v-zhangxiaomeng5 <[email protected]>
AuthorDate: Mon Jan 12 23:02:58 2026 +0800
libcxx: supports CXX_MINI_LOCALIZATION
This commit contains changes:
1) define new C++ locale macros CXX_MINI_LOCALIZATION & CXX_NO_LOCALIZATION
2) define a new C++ macro _LIBCPP_HAS_MINI_LOCALIZATION for
CXX_MINI_LOCALIZATION
3) update libxx/libcxx/CMakeLists.txt & Make.defs
Signed-off-by: v-zhangxiaomeng5 <[email protected]>
---
libs/libxx/Kconfig | 13 ++++++++++++-
libs/libxx/__config_site | 4 +++-
libs/libxx/libcxx/CMakeLists.txt | 2 +-
libs/libxx/libcxx/Make.defs | 2 +-
4 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/libs/libxx/Kconfig b/libs/libxx/Kconfig
index 49206a4e6dd..e7709d5793e 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.
@@ -120,10 +119,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 e7d5116ceb0..7e1477746cd 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 8f4b408c1b8..020c1ad05db 100644
--- a/libs/libxx/libcxx/CMakeLists.txt
+++ b/libs/libxx/libcxx/CMakeLists.txt
@@ -119,7 +119,7 @@ if(CONFIG_LIBCXX)
list(REMOVE_ITEM SRCS ${SRCSTMP})
endif()
- 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 0382d6ba61c..fcbdd9dd854 100644
--- a/libs/libxx/libcxx/Make.defs
+++ b/libs/libxx/libcxx/Make.defs
@@ -89,7 +89,7 @@ ifeq ($(shell [ $(CPP_STD_VER) -le 14 ] && echo true),true)
CPPSRCS := $(filter-out $(EXCLUDE_FILES), $(CPPSRCS))
endif
-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