diff --git a/libcxx/include/__config b/libcxx/include/__config --- a/libcxx/include/__config +++ b/libcxx/include/__config @@ -1124,6 +1124,7 @@ # if defined(__FreeBSD__) || \ defined(__wasi__) || \ defined(__NetBSD__) || \ + defined(__NuttX__) || \ defined(__linux__) || \ defined(__GNU__) || \ defined(__APPLE__) || \ diff --git a/libcxx/include/__locale b/libcxx/include/__locale --- a/libcxx/include/__locale +++ b/libcxx/include/__locale @@ -21,6 +21,8 @@ #if defined(_LIBCPP_MSVCRT_LIKE) # include # include +#elif defined(__NuttX__) +# include #elif defined(_AIX) # include #elif defined(__ANDROID__) diff --git a/libcxx/include/support/nuttx/xlocale.h b/libcxx/include/support/nuttx/xlocale.h new file mode 100644 --- /dev/null +++ b/libcxx/include/support/nuttx/xlocale.h @@ -0,0 +1,27 @@ +// -*- C++ -*- +//===-------------------- support/nuttx/xlocale.h -------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCPP_SUPPORT_NUTTX_XLOCALE_H +#define _LIBCPP_SUPPORT_NUTTX_XLOCALE_H + +#if defined(__NuttX__) +#include +#include + +#define _LIBCPP_PROVIDES_DEFAULT_RUNE_TABLE + +#undef __linux__ +#undef __unix__ +#undef __APPLE__ +#undef __GLIBC__ +#undef _NEWLIB_VERSION + +#endif // __NuttX__ + +#endif diff --git a/libcxx/src/include/config_elast.h b/libcxx/src/include/config_elast.h --- a/libcxx/src/include/config_elast.h +++ b/libcxx/src/include/config_elast.h @@ -19,7 +19,7 @@ #if defined(ELAST) #define _LIBCPP_ELAST ELAST -#elif defined(_NEWLIB_VERSION) +#elif defined(__NuttX__) || defined(_NEWLIB_VERSION) #define _LIBCPP_ELAST __ELASTERROR #elif defined(__Fuchsia__) // No _LIBCPP_ELAST needed on Fuchsia diff --git a/libcxx/src/locale.cpp b/libcxx/src/locale.cpp --- a/libcxx/src/locale.cpp +++ b/libcxx/src/locale.cpp @@ -30,7 +30,7 @@ #include "__sso_allocator" #if defined(_LIBCPP_MSVCRT) || defined(__MINGW32__) #include "support/win32/locale_win32.h" -#elif !defined(__BIONIC__) +#elif !defined(__BIONIC__) && !defined(__NuttX__) #include #endif #include