[libcxx-commits] [libcxx] [libcxx][libc] Remove last LLVM-libc carveout (PR #230294)

Michael Jones via libcxx-commits libcxx-commits at lists.llvm.org
Mon Oct 12 16:50:44 PDT 2026


https://github.com/michaelrj-google updated https://github.com/llvm/llvm-project/pull/230294

>From 6a1ad28481994d718911225cb9b9b4cf7cfaa236 Mon Sep 17 00:00:00 2001
From: Michael Jones <michaelrj at google.com>
Date: Thu, 8 Oct 2026 21:33:29 +0000
Subject: [PATCH 1/3] [libcxx][libc] Remove last LLVM-libc carveout

This PR removes the FILESYSTEM carveout, which was the last one that was
blocking LLVM-libc. It also enables the unwinder and RTTI.
---
 libcxx/cmake/caches/Generic-llvm-libc.cmake | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/libcxx/cmake/caches/Generic-llvm-libc.cmake b/libcxx/cmake/caches/Generic-llvm-libc.cmake
index 864cf8989aec1..0ffa80a1b59bf 100644
--- a/libcxx/cmake/caches/Generic-llvm-libc.cmake
+++ b/libcxx/cmake/caches/Generic-llvm-libc.cmake
@@ -23,23 +23,20 @@ set(COMPILER_RT_DEBUG OFF CACHE BOOL "")
 set(COMPILER_RT_CRT_USE_EH_FRAME_REGISTRY ON CACHE BOOL "")
 
 set(LIBCXXABI_USE_COMPILER_RT ON CACHE BOOL "")
-set(LIBCXXABI_USE_LLVM_UNWINDER OFF CACHE BOOL "")
+set(LIBCXXABI_USE_LLVM_UNWINDER ON CACHE BOOL "")
+set(LIBCXXABI_ENABLE_STATIC_UNWINDER ON CACHE BOOL "")
 set(LIBCXX_ENABLE_SHARED OFF CACHE BOOL "")
 set(LIBCXX_USE_COMPILER_RT ON CACHE BOOL "")
 set(LIBCXX_INCLUDE_BENCHMARKS OFF CACHE BOOL "")
 
 set(LIBCXX_ENABLE_STATIC ON CACHE BOOL "")
+set(LIBCXX_ENABLE_STATIC_ABI_LIBRARY ON CACHE BOOL "")
 set(LIBCXX_INSTALL_LIBRARY ON CACHE BOOL "")
 set(LIBCXX_CXX_ABI libcxxabi CACHE STRING "")
 
-# Still missing some components.
-set(LIBCXX_ENABLE_FILESYSTEM OFF CACHE BOOL "")
-
-
 set(LIBCXX_ENABLE_UNICODE ON CACHE BOOL "")
 set(LIBCXX_ENABLE_EXCEPTIONS OFF CACHE BOOL "")
 set(LIBCXXABI_ENABLE_EXCEPTIONS OFF CACHE BOOL "")
-set(LIBCXX_ENABLE_RTTI OFF CACHE BOOL "")
 set(RUNTIMES_USE_LIBC "llvm-libc" CACHE STRING "")
 
 set(CMAKE_BUILD_TYPE "Release" CACHE STRING "")

>From aad34cccbbb1c6a974ddfe7691dce3c2f1456e3d Mon Sep 17 00:00:00 2001
From: Michael Jones <michaelrj at google.com>
Date: Thu, 8 Oct 2026 21:51:11 +0000
Subject: [PATCH 2/3] XFAIL the test with no outstanding PR

---
 .../time.zone.members/sys_info.zdump.pass.cpp                  | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/sys_info.zdump.pass.cpp b/libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/sys_info.zdump.pass.cpp
index b474fe50083b1..8d49288a798e0 100644
--- a/libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/sys_info.zdump.pass.cpp
+++ b/libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/sys_info.zdump.pass.cpp
@@ -13,6 +13,9 @@
 // XFAIL: libcpp-has-no-experimental-tzdb
 // XFAIL: availability-tzdb-missing
 
+// tzdata mismatch on Africa/Casablanca in 2099
+// XFAIL: LLVM-LIBC-FIXME
+
 #include <chrono>
 #include <format>
 #include <fstream>

>From 4c0aa58ad2d6ded254d69b62f51809a232e11b4d Mon Sep 17 00:00:00 2001
From: Michael Jones <michaelrj at google.com>
Date: Mon, 12 Oct 2026 23:50:14 +0000
Subject: [PATCH 3/3] fixed XFAILs

---
 libcxx/test/selftest/dsl/dsl.sh.py                             | 3 ---
 .../test/std/input.output/file.streams/c.files/cstdio.pass.cpp | 3 +++
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/libcxx/test/selftest/dsl/dsl.sh.py b/libcxx/test/selftest/dsl/dsl.sh.py
index f93ccc747d661..cd2674c650b35 100644
--- a/libcxx/test/selftest/dsl/dsl.sh.py
+++ b/libcxx/test/selftest/dsl/dsl.sh.py
@@ -10,9 +10,6 @@
 # because stdout & stderr are treated as the same.
 # XFAIL: LIBCXX-PICOLIBC-FIXME
 
-# Investigate why this is failing with LLVM libc.
-# XFAIL: LLVM-LIBC-FIXME
-
 # Note: We prepend arguments with 'x' to avoid thinking there are too few
 #       arguments in case an argument is an empty string.
 # RUN: %{python} %s x%S x%{temp} x%{substitutions}
diff --git a/libcxx/test/std/input.output/file.streams/c.files/cstdio.pass.cpp b/libcxx/test/std/input.output/file.streams/c.files/cstdio.pass.cpp
index 66ab56f0958a2..6730d0eab9e40 100644
--- a/libcxx/test/std/input.output/file.streams/c.files/cstdio.pass.cpp
+++ b/libcxx/test/std/input.output/file.streams/c.files/cstdio.pass.cpp
@@ -6,6 +6,9 @@
 //
 //===----------------------------------------------------------------------===//
 
+// missing fpos_t, fixed by #221349
+// XFAIL: LLVM-LIBC-FIXME
+
 // test <cstdio>
 
 #include <cstdio>



More information about the libcxx-commits mailing list