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]

Reply via email to