Barto22 opened a new pull request, #17850: URL: https://github.com/apache/nuttx/pull/17850
This commit switches SIM board builds from GCC to Clang and migrates the C++ runtime to LLVM's libc++ and libc++abi. This PR is related to: https://github.com/apache/nuttx/pull/17826 ## Summary Recent C++ code additions require features provided by modern C++ runtimes and standard libraries. The GNU toolchain versions currently available in CI and common Linux distributions (GCC < 15) lack several required C++ standard library capabilities needed by the latest libc++/libc++abi. To ensure continued progress on C++ support in NuttX, this change: - Switches SIM builds to Clang as the primary compiler - Adopts LLVM's libc++ and libc++abi as the default runtime/standard library - Updates related flags and linker options for compatibility This brings the SIM toolchain in line with modern C++ requirements and avoids blocking future features on GCC version availability. ## Impact - SIM board builds now default to Clang + libc++/libc++abi - Improved support for modern C++20/C++23 features - No impact on embedded architectures/toolchains (limited to SIM boards) - No ABI impact for non-SIM boards - CI builds gain broader warning coverage and better diagnostics - No documentation updates required at this time, but users building SIM locally may need Clang + libc++ installed ## Testing Test matrix executed across Linux CI: - SIM builds validated with Clang + libc++/libc++abi - Full build completed without regressions - `ostest` executed successfully under the SIM target - Additional C++ examples confirmed to compile and run correctly Host: GitHub Actions CI (Ubuntu Linux) Compiler: Clang `<version>` (LLVM libc++ `<version>`) Prior GCC versions tested (< 15) confirmed incompatibility with modern libc++ No regressions observed in SIM functionality. **_PRs without testing information will not be accepted. Test logs available from CI artifacts._** -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
