v-zhangxiaomeng5 opened a new pull request, #20087: URL: https://github.com/apache/nuttx/pull/20087
## Summary Building libcxx with GCC for ARM fails on the `operator""s` string literal operators: `basic_string` is treated as a non-literal type because its constexpr destructor is rejected by the ARM GCC toolchain. include/libcxx/string:4410:24: error: invalid return type 'std::__1::basic_string<char>' of 'constexpr' function ... note: 'std::__1::basic_string<char>' does not have 'constexpr' destructor The same error is reported for the `wchar_t` / `char8_t` / `char16_t` overloads of `operator""s`. This looks like an ARM GCC toolchain issue. As a workaround, add a patch that drops the constexpr qualifier from `~basic_string()` for the `(__arm__ && !__clang__)` case, and wire it into both the Make.defs and CMakeLists.txt build flows. ## Impact libcxx compilation for ARM + GCC only. No functional or behavioral change for other architectures or the Clang toolchain. ## Testing CI (ARM + libcxx boards). Locally verified that the new patch applies cleanly on top of the existing libcxx 17.0.6 patch chain for both the Make (`patch -p0`) and CMake (`patch -p1`) build flows, and that the resulting `include/string` is byte-identical to the intended change. -- 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]
