Custom libc++ for C++20 coroutines on bare metal embedded Arm

Hello,

Excuse me if I do not follow all the discourse conventions, this is my first post in the LLVM community.

My question is more focused on the libc++ library: we are a startup that would like to use C++20 coroutines on a bare metal Arm platform, but I was not to sure how to go about adapting the coroutines implementation in libc++ to make it bare metal friendly. I assume I have to compile libc++ without exceptions and without thread implementations, and I see these are options when compiling libc++, but how would I go about removing any dynamic memory allocation from this part of libc++?

Also, would there be any further modifications of libc++ typically necessary to adapt a portion of the libc++ library for use on bare metal platforms? Any help would be appreciated, I am pretty familiar with C++, decently familiar with using LLVM for a toolchain, but am not a compiler engineer, nor am I very familiar with baremetal C++ for ARM platforms.

Best,

Wyatt

Hi Wyatt,

You can have a look here how are building the C++ library for embedded ARM.

What is the use case for the coroutines and why do you want to remove dynamic allocation from the library?