Hello,
I am currently porting an existing proprietary library from GCC to TI armclang 1.3.0 LTS. I am linking against the libc++ that came with the armclang complier. Our library makes heavy use of C++11 and features like std::unique_lock. Building fails because std::unique_lock is not found by the compiler even though we include <mutex>. The build worked fine with arm-none-eabi-g++ 9.
After some research I found out that the <mutex> header in <amrclang_dir>/include/c++/v1 has a definition of std::unique_lock in its synopsis comment (lines 126-164). However, this class is not actually implemented in <mutex>, even though at several other places in <mutex>, std::unique_lock is called by other functions. This seems very odd to me.
Therefor I have a few questions:
1. Why is std::unique_lock not implemented? Please advise on how to solve this issue.
2. We also cannot use std::atomic at the moment, because the libc++ that came with the compiler has _LIBCPP_HAS_NO_THREADS set. This leads to an error when including <atomic>. How can we solve this?
3. Is there a list somewhere of other std:: functionalities that are not available in tiarmclang? The user guide only seems to mention c++ exceptions as being not supported.
Thank you for your support.
Best regards,
Mathias Seyfert