-
Notifications
You must be signed in to change notification settings - Fork 19
Comparing changes
Open a pull request
base repository: embeddedartistry/libcpp
base: master
head repository: embeddedartistry/libcpp
compare: claude/setup-libcxx-sync-5kWRI
- 8 commits
- 10,748 files changed
- 1 contributor
Commits on Mar 14, 2026
-
Replace libcxx/libcxxabi submodules with vendored copy from LLVM mono…
…repo The llvm-mirror GitHub repositories have stopped updating. This replaces the defunct submodule references with vendored copies extracted directly from the official LLVM monorepo at tag llvmorg-19.1.7. Changes: - Remove libcxx and libcxxabi git submodules - Add scripts/sync-llvm.sh for extracting libcxx/libcxxabi from LLVM monorepo tarballs at any tag - Vendor libcxx and libcxxabi from llvmorg-19.1.7 - Add LLVM_VERSION file tracking the synced tag and date https://claude.ai/code/session_01HSFVgYuUbCkLuHFNziuJpb
Configuration menu - View commit details
-
Copy full SHA for 90535f2 - Browse repository at this point
Copy the full SHA 90535f2View commit details -
Update build system and overlay files for LLVM 19 compatibility
Major changes to support the LLVM 19.1.7 vendored libcxx/libcxxabi: meson.build: - Remove references to deleted source files (utility.cpp, debug.cpp, cxa_unexpected.cpp, experimental/memory_resource.cpp) - Add libcxx/include and libcxxabi/include to system include paths so LLVM 19's reorganized subdirectory headers are accessible - Remove obsolete _LIBCPP_DEBUG=0 and _LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS flags include/c++/meson.build: - Switch from custom __config.in concatenation to using upstream __config directly, generating only __config_site for build configuration - Generate __assertion_handler from LLVM's vendor template - Remove references to headers deleted in LLVM 19 (__debug, __functional_03, __threading_support, __mutex_base, etc.) - Update experimental headers list to match LLVM 19 Overlay files: - Fix __threading_support -> __thread/support.h (cxa_guard.cpp) - Fix sysetm_error typo (framework_thread.cpp) - Replace __debug include with __assert (system_error.cpp) - Add __libcpp_compat.h include to files using removed macros New files: - include/c++/__libcpp_compat.h: compatibility shims for macros removed between LLVM 10 and 19 (_VSTD, _LIBCPP_FUNC_VIS, etc.) Other: - Update __libcxx_config_site.in to match upstream __config_site format - Fix newlib xlocale.h reference (removed upstream, use baremetal fallback) https://claude.ai/code/session_01HSFVgYuUbCkLuHFNziuJpb
Configuration menu - View commit details
-
Copy full SHA for b19ee97 - Browse repository at this point
Copy the full SHA b19ee97View commit details -
Add _LIBCPP_HARDENING_MODE_DEFAULT to config site template
LLVM 19 requires this define in __config_site or compilation fails with a hard error. Set to _LIBCPP_HARDENING_MODE_NONE for embedded/baremetal use (disables all runtime hardening checks, zero overhead). https://claude.ai/code/session_01HSFVgYuUbCkLuHFNziuJpb
Configuration menu - View commit details
-
Copy full SHA for 85e78b0 - Browse repository at this point
Copy the full SHA 85e78b0View commit details -
Fix atomic_support.h include paths and Meson configure_file handling
- Add libcxx/src to include directories for both libcxx and libcxxabi targets, matching upstream CMake (libcxxabi/src/CMakeLists.txt:60) - Fix broken relative path in src/c++abi/cxa_handlers.cpp that referenced non-existent libcxxabi/src/include/atomic_support.h - Normalize relative paths in locale.cpp and new_terminate_badalloc.cpp to use the new include directory instead of fragile ../../ paths - Fix Meson declare_dependency to avoid configure_file outputs being treated as compilable source files https://claude.ai/code/session_01HSFVgYuUbCkLuHFNziuJpb
Configuration menu - View commit details
-
Copy full SHA for 9cae389 - Browse repository at this point
Copy the full SHA 9cae389View commit details -
Add concerns and next steps document for LLVM 19 sync
Documents completed fixes, remaining concerns (fragile include paths, dead code, GCC version requirements), and recommended next steps. https://claude.ai/code/session_01HSFVgYuUbCkLuHFNziuJpb
Configuration menu - View commit details
-
Copy full SHA for de83fa3 - Browse repository at this point
Copy the full SHA de83fa3View commit details
Commits on Apr 12, 2026
-
Add replay script for LLVM 19 sync migration
Generates patches from this branch's fix commits and applies them to a target libcpp checkout, with optional --prefix for monorepo subdirectory layouts and --squash for collapsing into a single commit. https://claude.ai/code/session_01HSFVgYuUbCkLuHFNziuJpb
Configuration menu - View commit details
-
Copy full SHA for 5e01d62 - Browse repository at this point
Copy the full SHA 5e01d62View commit details -
Add full migration script from pre-sync state to LLVM 19 vendored state
Reproduces the complete sequence: remove defunct libcxx/libcxxabi submodules, vendor LLVM 19.1.7 from the monorepo tarball, write LLVM_VERSION and scripts/sync-llvm.sh, commit the vendoring, then apply the three build-system fix patches. https://claude.ai/code/session_01HSFVgYuUbCkLuHFNziuJpb
Configuration menu - View commit details
-
Copy full SHA for 8462849 - Browse repository at this point
Copy the full SHA 8462849View commit details -
Add --prefix support to migrate-to-llvm19.sh for monorepo subdirectories
Handles monorepos where libcpp lives at a subdirectory with libcxx and libcxxabi registered as real submodules at that subdirectory. Finds submodule names by scanning .gitmodules entries rather than assuming the name matches the basename, preserves other submodule entries in .gitmodules, extracts the tarball into the prefix directory, and uses git am --directory for patch application. https://claude.ai/code/session_01HSFVgYuUbCkLuHFNziuJpb
Configuration menu - View commit details
-
Copy full SHA for a60dd75 - Browse repository at this point
Copy the full SHA a60dd75View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff master...claude/setup-libcxx-sync-5kWRI