Forums - Executing CapiV2 Dynamic Shared Object (having code written in C++)

1 post / 0 new
Executing CapiV2 Dynamic Shared Object (having code written in C++)
nithinkrishnan....
Join Date: 4 Sep 19
Posts: 1
Posted: Wed, 2019-12-04 02:22
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:
  1. Elite Audio Static Image -> Capiv2 "C" shared library ->  Custom Audio Framework (in C++)-> Gain Audio Algorithm(in c++); 
  2. 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:
------------------------------------
[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
 
  • Up0
  • Down0

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries (“Qualcomm”). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.