-
Notifications
You must be signed in to change notification settings - Fork 1.5k
libs: Add support for latest LLVM LIBCXX and LIBCXXABI version 21.1.8 #17826
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Barto22
wants to merge
16
commits into
apache:master
Choose a base branch
from
Barto22:feature/add-support-for-latest-libcxx-and-libcxxabi
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
libs: Add support for latest LLVM LIBCXX and LIBCXXABI version 21.1.8 #17826
Barto22
wants to merge
16
commits into
apache:master
from
Barto22:feature/add-support-for-latest-libcxx-and-libcxxabi
+767
−60
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This commit adds support for LLVM libcxx and libcxxabi version 21.1.8, including necessary patches and CMake configuration for building with NuttX. Signed-off-by: Bartosz <[email protected]>
Fix exception handling issues in libcxx and libcxxabi to work properly with NuttX's exception model. Signed-off-by: Bartosz <[email protected]>
Add necessary changes to support ESP32 RISC-V initialization with proper C++ constructor handling including code style fixes. Signed-off-by: Bartosz <[email protected]>
6522e0c to
0b3dd30
Compare
This commit adds support for threads using pthread support. Signed-off-by: Bartosz <[email protected]>
jerpelea
previously approved these changes
Jan 12, 2026
Remove flag for long-calls for arm architecture. Signed-off-by: Bartosz <[email protected]>
boards/sim/: Change gcc to clang This commit will update Docker file to latest Ubuntu LTS with update of GCC for ARM and RISCV. Also SIM boards with LIBCXX are build with clang because GCC < 15 have lack of some builtin features. Signed-off-by: Bartosz <[email protected]>
Fix cmake formatting. Signed-off-by: Bartosz <[email protected]>
Change mcmodel to large and update bloaty to latest version Signed-off-by: Bartosz <[email protected]>
Fix patches includes in libcxx. Signed-off-by: Bartosz <[email protected]>
Update Clang to version 21. Signed-off-by: Bartosz <[email protected]>
acassis
previously approved these changes
Jan 12, 2026
Fix version of Clang-21 for Ubuntu jammy Signed-off-by: Bartosz <[email protected]>
This was referenced Jan 12, 2026
Contributor
|
@Barto22 please move Docker related change to new pr, so we can merge it first and then verify whether this pr can pass ci. |
This was referenced Jan 13, 2026
This commit will revert changes for SIM boards, there are in separate PR. Signed-off-by: Bartosz <[email protected]>
Revert SIM TFLM config. Signed-off-by: Bartosz <[email protected]>
This commit will change _einit section for esp32 mcu's for proper cxx initialization. Signed-off-by: Bartosz <[email protected]>
Fix formatting. Signed-off-by: Bartosz <[email protected]>
Style fix. Signed-off-by: Bartosz <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Area: OS Components
OS Components issues
Board: arm
Board: risc-v
Board: xtensa
Size: L
The size of the change in this PR is large
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Before merging and running this PR, this two must be merged: #17849 and #17850
Summary
This PR updates the build environment to use the latest Ubuntu 24.04 LTS base image and upgrades the GNU toolchains to:
All SIM board configurations that enable LIBCXX are now built with clang, as GCC < 15 lacks required builtin features for C++23 and libc++.
This continues the integration effort for LLVM libc++ and libc++abi (v21.1.8) in NuttX, enabling modern C++23-compatible standard library components including new language features and exception handling.
Impact
Current status:
makeandcmakeNo impact to existing boards or applications unless enabling libc++.
Testing
Host environment:
Boards / Configurations tested:
stm32f4discovery:testlibcxxesp32c3-devkit:testlibcxxToolchains:
Procedure:
makeandcmakeStatus:
Logs and additional validation data are available on request.