We are having problems to execute some C++ features in the hexagon aDSP v60 (S820A (MSM8996AU) - 2nd Gen Automotive Development Platform) that are difficulting porting our algorithms/framework (which are in C++) to the aDSP with following environment:
1. MSM8996AU 2.0 (820A) running HLOS -
Operating System: Automotive Grade Linux 4.99.2 (eel)
Kernel: Linux 4.4.140
Architecture: arm64
2. aDSP v60 working with SDK 3.4.3 compiler, linker and aDSP image, we have been able to compile and run in the aDSP simple capi_v2_gain programs. Flow of execution is like this:
- Elite Audio Static Image -> Capiv2 "C" shared library -> Custom Audio Framework (in C++)-> Gain Audio Algorithm(in c++);
- Elite Audio Static Image -> Capiv2 "C" shared library -> Gain Audio Algorithm(in c++);
However, when we add C++ based framework having audio algorithms code into capiv2, compilation runs well and in the simulator everything seems to execute fine, but when executing in the target aDSP the runtime gives different undefined symbol errors messages, dlopen failed, etc being unable to execute.
minidm log messages:
------------------------------------
minidm log messages:
------------------------------------
[08500/03] 51:53.678 d5:undefined symbol #10 _ZTVN10__cxxabiv120__si_class_type_infoE in capi_v2_gain.so 0354 symbol.c
[08500/03] 51:53.678 d5:dlopen failed, capi_v2_gain.so 0727 rtld.c
[08500/03] 51:53.678 adsp amdb: failed to open capi_v2_gain.so, undefined symbol #10 _ZTVN10__cxxabiv120__si_class_type_infoE in capi_v2_gain.so 0389 adsp_amdb.cpp
[08500/03] 51:53.678 adsp amdb: Encountered error while loading dynamic module capi_v2_gain.so 1971 adsp_amdb.cpp
[08500/03] 51:53.680 d8:Undefined symbol "shared_lib_build_property" 0849 rtld.c
-------------------------------------
The main question is can we have a dynamic shared object library with C++ code supported by the hexagon compiler/linker/runtime on MSM8996AU? In case of being supported, which are the compiler and linker configurations to support them, and which aDSP image is needed to be able to execute them.
Any help would be appreciated.
Regards
Nithin