This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
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
The C++ library for tiarmclang does not support any features, such as std::unique_lock or std::atomic, that are related to threads or concurrency.
Is there a list somewhere of other std:: functionalities that are not available in tiarmclang?
Unfortunately, no. I filed the issue EXT_EP-10813 to have the documentation updated. You are welcome to follow it with that link.
Thanks and regards,
-George
Hello George,
Thank you for the reply.
May I ask if there are plans to implement these features in the future? Also can you please elaborate why tiarmclang does not support this at the moment?
Best regards,
Mathias
May I ask if there are plans to implement these features in the future?
It is on the roadmap. But there are no specific plans to announce at this time.
please elaborate why tiarmclang does not support this at the moment?
Implementing these features requires coordination with the teams that supply the RTOS and SDK software.
Thanks and regards,
-George