[libcxx-commits] [libcxx] [libc++] Check for _newlib_version.h instead of picolibc.h (PR #152766)

via libcxx-commits libcxx-commits at lists.llvm.org
Mon Aug 11 00:19:13 PDT 2025


https://github.com/inglorion updated https://github.com/llvm/llvm-project/pull/152766

>From db2e0e7b10ac0a9931d1e0a43820bb349c96fd25 Mon Sep 17 00:00:00 2001
From: Bob Haarman <llvm at inglorion.net>
Date: Fri, 8 Aug 2025 17:19:21 +0000
Subject: [PATCH] [libc++] Check for _newlib_version.h in addition to
 picolibc.h

Fixes #152763.

https://github.com/llvm/llvm-project/pull/131921 added some code to
pull in a definition of _NEWLIB_VERSION if it exists. It does this
by checking __has_include(<picolibc.h>) and including it if so.
However, this does not work for systems that have newlib rather
than picolibc. With this change, we check for either picolibc.h
or _newlib_version.h, which works for both newlib and picolibc.
---
 libcxx/include/__configuration/platform.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/libcxx/include/__configuration/platform.h b/libcxx/include/__configuration/platform.h
index f3c199dee172b..25e2cf4d3edd2 100644
--- a/libcxx/include/__configuration/platform.h
+++ b/libcxx/include/__configuration/platform.h
@@ -45,7 +45,9 @@
 // This is required in order for _NEWLIB_VERSION to be defined in places where we use it.
 // TODO: We shouldn't be including arbitrarily-named headers from libc++ since this can break valid
 //       user code. Move code paths that need _NEWLIB_VERSION to another customization mechanism.
-#if __has_include(<picolibc.h>)
+#if __has_include(<_newlib_version.h>)
+#  include <_newlib_version.h>
+#elif __has_include(<picolibc.h>)
 #  include <picolibc.h>
 #endif
 



More information about the libcxx-commits mailing list