diff --git a/libcxx/CMakeLists.txt b/libcxx/CMakeLists.txt index 1423b6713fd35..fabfb126d06f3 100644 --- a/libcxx/CMakeLists.txt +++ b/libcxx/CMakeLists.txt @@ -298,6 +298,7 @@ endif() # Feature options ------------------------------------------------------------- option(LIBCXX_HAS_MUSL_LIBC "Build libc++ with support for the Musl C library" OFF) +option(LIBCXX_HAS_NEWLIB_LIBC "Build libc++ with support for the Newlib C library" OFF) option(LIBCXX_HAS_PTHREAD_API "Ignore auto-detection and force use of pthread API" OFF) option(LIBCXX_HAS_WIN32_THREAD_API "Ignore auto-detection and force use of win32 thread API" OFF) option(LIBCXX_HAS_EXTERNAL_THREAD_API @@ -754,6 +755,7 @@ config_define(${LIBCXX_HAS_PTHREAD_API} _LIBCPP_HAS_THREAD_API_PTHREAD) config_define(${LIBCXX_HAS_EXTERNAL_THREAD_API} _LIBCPP_HAS_THREAD_API_EXTERNAL) config_define(${LIBCXX_HAS_WIN32_THREAD_API} _LIBCPP_HAS_THREAD_API_WIN32) config_define(${LIBCXX_HAS_MUSL_LIBC} _LIBCPP_HAS_MUSL_LIBC) +config_define(${LIBCXX_HAS_NEWLIB_LIBC} _LIBCPP_HAS_NEWLIB_LIBC) config_define_if(LIBCXX_NO_VCRUNTIME _LIBCPP_NO_VCRUNTIME) config_define(${LIBCXX_ENABLE_FILESYSTEM} _LIBCPP_HAS_FILESYSTEM) config_define(${LIBCXX_ENABLE_RANDOM_DEVICE} _LIBCPP_HAS_RANDOM_DEVICE) diff --git a/libcxx/include/__config_site.in b/libcxx/include/__config_site.in index 6dcca1849a96c..6521cf7c51c96 100644 --- a/libcxx/include/__config_site.in +++ b/libcxx/include/__config_site.in @@ -17,6 +17,7 @@ #cmakedefine01 _LIBCPP_HAS_MONOTONIC_CLOCK #cmakedefine01 _LIBCPP_HAS_TERMINAL #cmakedefine01 _LIBCPP_HAS_MUSL_LIBC +#cmakedefine01 _LIBCPP_HAS_NEWLIB_LIBC #cmakedefine01 _LIBCPP_HAS_THREAD_API_PTHREAD #cmakedefine01 _LIBCPP_HAS_THREAD_API_EXTERNAL #cmakedefine01 _LIBCPP_HAS_THREAD_API_WIN32 diff --git a/libcxx/include/__fwd/ios.h b/libcxx/include/__fwd/ios.h index 831624f4b1c57..96505e615693c 100644 --- a/libcxx/include/__fwd/ios.h +++ b/libcxx/include/__fwd/ios.h @@ -31,7 +31,7 @@ using wios = basic_ios; template class _LIBCPP_PREFERRED_NAME(ios) _LIBCPP_IF_WIDE_CHARACTERS(_LIBCPP_PREFERRED_NAME(wios)) basic_ios; -#if defined(_NEWLIB_VERSION) +#if _LIBCPP_HAS_NEWLIB_LIBC // On newlib, off_t is 'long int' using streamoff = long int; // for char_traits in #else diff --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot index 7442361627104..b04e3eed203f1 100755 --- a/libcxx/utils/ci/run-buildbot +++ b/libcxx/utils/ci/run-buildbot @@ -205,6 +205,7 @@ function test-armv7m-picolibc() { -DLIBUNWIND_TEST_CONFIG="armv7m-picolibc-libunwind.cfg.in" \ -DCMAKE_C_FLAGS="${flags}" \ -DCMAKE_CXX_FLAGS="${flags}" \ + -DLIBCXX_HAS_NEWLIB_LIBC=ON \ "${@}" step "Installing compiler-rt"