Part Number: TMS570LS3137
Hello,
We have a project that uses a third-party precompiled library. The library has been compiled with TI ARM CGT toolchain with --no_stm and --wchar_t=16 options and used rtsv7R4_T_be_v3D16_eabi.lib as Runtime library.
Now We are testing migration from CGT to TI ARM Clang compiler (1.3.0 LTS). We enable -fshort-wchar option to provide cmpartibility with the third-party library, but then we observe the following issues:
- The linker cannot find no_stm_memcpy and no_stm_memset functions
- The linker provides a serios of warnings like
warning: object files have incompatible wchar_t types ("vector.cpp.obj in C:\ti\arm_clang_1_3_0_lts\lib\armv7reb-ti-none-eabihf/c++/libc++.a" = --wchar_t=32, ".\build/src/debug.o" = --wchar_t=16)
As a solution to the first problem I provided the old rtsv7R4_T_be_v3D16_eabi.lib as an additional library input to the linker. It found the missing functions, but I don't feel that it is the correct way to provide them.
So my questions are:
- Is there a workaround to enable no_stm option on CLANG compiler?
- Is there a way to tell the compiler to use the the RTS libraries with --wchar_t=16 instead of --wchar_t=32?
- As an option, how bad would it be to use rtsv7R4_T_be_v3D16_eabi.lib instead of standrad RTS libraries of the Clang compilers? If that is acceptable, how can we tell the linker not to use internal RTS libraries? Iэму tried
--disable_auto_rtsoption, but it does not change the Linker output (it still adds the intrinsic RTS libraries like below, as I can see with -v option)
-I<install directory>/lib --start-group -llibc++.a -llibc++abi.a -llibc.a -llibsys.a \ -llibsysbm.a -llibclang_rt.builtins.a \ -llibclang_rt.profile.a --end-group