compiling voxl-tflite-server
-
Hi,
I'm trying to compile/linkage the latest (master branch) voxl-tflite-server code on VOXL2.I'm working with SDK 0.9 .
But during my linkage of the project, i run into the following problems:Invoking: GCC C++ Linker g++ -L/usr/lib64 -Wl,-rpath-link,/usr/lib64/ -o "powtflite" ./inference_helper.o ./main.o ./resize.o -ltensorflow-lite -labsl_bad_any_cast_impl -labsl_bad_optional_access -labsl_bad_variant_access -labsl_base -labsl_city -labsl_civil_time -labsl_cord -labsl_debugging_internal -labsl_demangle_internal -labsl_exponential_biased -labsl_flags -labsl_flags_commandlineflag -labsl_flags_commandlineflag_internal -labsl_flags_config -labsl_flags_internal -labsl_flags_marshalling -labsl_flags_private_handle_accessor -labsl_flags_program_name -labsl_flags_reflection -labsl_graphcycles_internal -labsl_hash -labsl_hashtablez_sampler -labsl_int128 -labsl_log_severity -labsl_malloc_internal -labsl_raw_hash_set -labsl_raw_logging_internal -labsl_spinlock_wait -labsl_stacktrace -labsl_status -labsl_str_format_internal -labsl_strings -labsl_strings_internal -labsl_symbolize -labsl_synchronization -labsl_throw_delegate -labsl_time -labsl_time_zone -labsl_wyhash -labsl_bad_any_cast_impl -labsl_bad_optional_access -labsl_bad_variant_access -labsl_base -labsl_city -labsl_civil_time -labsl_cord -labsl_debugging_internal -labsl_demangle_internal -labsl_exponential_biased -labsl_flags -labsl_flags_commandlineflag -labsl_flags_commandlineflag_internal -labsl_flags_config -labsl_flags_internal -labsl_flags_marshalling -labsl_flags_private_handle_accessor -labsl_flags_program_name -labsl_flags_reflection -labsl_graphcycles_internal -labsl_hash -labsl_hashtablez_sampler -labsl_int128 -labsl_log_severity -labsl_malloc_internal -labsl_raw_hash_set -labsl_raw_logging_internal -labsl_spinlock_wait -labsl_stacktrace -labsl_status -labsl_str_format_internal -labsl_strings -labsl_strings_internal -labsl_symbolize -labsl_synchronization -labsl_throw_delegate -labsl_time -labsl_time_zone -labsl_wyhash -labsl_bad_any_cast_impl -labsl_bad_optional_access -labsl_bad_variant_access -labsl_base -labsl_city -labsl_civil_time -labsl_cord -labsl_debugging_internal -labsl_demangle_internal -labsl_exponential_biased -labsl_flags -labsl_flags_commandlineflag -labsl_flags_commandlineflag_internal -labsl_flags_config -labsl_flags_internal -labsl_flags_marshalling -labsl_flags_private_handle_accessor -labsl_flags_program_name -labsl_flags_reflection -labsl_graphcycles_internal -labsl_hash -labsl_hashtablez_sampler -labsl_int128 -labsl_log_severity -labsl_malloc_internal -labsl_raw_hash_set -labsl_raw_logging_internal -labsl_spinlock_wait -labsl_stacktrace -labsl_status -labsl_str_format_internal -labsl_strings -labsl_strings_internal -labsl_symbolize -labsl_synchronization -labsl_throw_delegate -labsl_time -labsl_time_zone -labsl_wyhash -lflatbuffers -lcpuinfo -lfarmhash -lclog -lfft2d_fftsg2d -lfft2d_fftsg -lruy_allocator -lruy_apply_multiplier -lruy_block_map -lruy_blocking_counter -lruy_context -lruy_context_get_ctx -lruy_cpuinfo -lruy_ctx -lruy_denormal -lruy_frontend -lruy_have_built_path_for_avx -lruy_have_built_path_for_avx2_fma -lruy_have_built_path_for_avx512 -lruy_kernel_arm -lruy_kernel_avx -lruy_kernel_avx2_fma -lruy_kernel_avx512 -lruy_pack_arm -lruy_pack_avx -lruy_pack_avx2_fma -lruy_pack_avx512 -lruy_prepacked_cache -lruy_prepare_packed_matrices -lruy_profiler_instrumentation -lruy_system_aligned_alloc -lruy_thread_pool -lruy_trmul -lruy_tune -lruy_wait -lglib-2.0 -ldl -lstdc++ -lpthread -lz -lcutils -llog -lsync -lgthread-2.0 -lpcre -lmodal_pipe -lmodal_json -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_imgcodecs -lgsl -lllvm-qcom -ladreno_utils -lOpenCL -lCB -lEGL_adreno -lGLESv2_adreno -lrt -lXNNPACK -lpthreadpool /usr/lib64/libtensorflow-lite.a(nnapi_delegate.cc.o): In function `tflite::delegate::nnapi::NNMemory::NNMemory(NnApi const*, char const*, unsigned long)': nnapi_delegate.cc:(.text+0xd58): warning: the use of `tmpnam' is dangerous, better use `mkstemp' makefile:56: recipe for target 'powtflite' failed /usr/lib64/libruy_cpuinfo.a(cpuinfo.cc.o): In function `ruy::CpuInfo::~CpuInfo()': cpuinfo.cc:(.text+0x10): undefined reference to `cpuinfo_deinitialize' /usr/lib64/libruy_cpuinfo.a(cpuinfo.cc.o): In function `ruy::CpuInfo::Initialize()': cpuinfo.cc:(.text+0x44): undefined reference to `cpuinfo_initialize' cpuinfo.cc:(.text+0x58): undefined reference to `cpuinfo_get_processors_count' cpuinfo.cc:(.text+0x8c): undefined reference to `cpuinfo_get_processor' cpuinfo.cc:(.text+0xb8): undefined reference to `cpuinfo_get_processor' cpuinfo.cc:(.text+0xcc): undefined reference to `cpuinfo_get_processor' /usr/lib64/libruy_cpuinfo.a(cpuinfo.cc.o): In function `ruy::CpuInfo::NeonDotprod()': cpuinfo.cc:(.text+0x21c): undefined reference to `cpuinfo_isa' cpuinfo.cc:(.text+0x220): undefined reference to `cpuinfo_isa' /usr/lib64/libruy_cpuinfo.a(cpuinfo.cc.o): In function `ruy::CpuInfo::CurrentCpuIsA55ish()': cpuinfo.cc:(.text+0x2c0): undefined reference to `cpuinfo_get_current_uarch_index' cpuinfo.cc:(.text+0x2c4): undefined reference to `cpuinfo_get_uarch' /usr/lib64/libruy_cpuinfo.a(cpuinfo.cc.o): In function `ruy::CpuInfo::CurrentCpuIsX1()': cpuinfo.cc:(.text+0x304): undefined reference to `cpuinfo_get_current_uarch_index' cpuinfo.cc:(.text+0x308): undefined reference to `cpuinfo_get_uarch' /usr/lib64/libruy_thread_pool.a(thread_pool.cc.o): In function `ruy::ThreadPool::CreateThreads(int)': thread_pool.cc:(.text+0x1b4): undefined reference to `ruy::BlockingCounter::Reset(int)' thread_pool.cc:(.text+0x308): undefined reference to `ruy::BlockingCounter::Wait(std::chrono::duration<long, std::ratio<1l, 1000000000l> >)' /usr/lib64/libruy_thread_pool.a(thread_pool.cc.o): In function `ruy::ThreadPool::ExecuteImpl(int, int, ruy::Task*)': thread_pool.cc:(.text+0x3dc): undefined reference to `ruy::BlockingCounter::Reset(int)' thread_pool.cc:(.text+0x494): undefined reference to `ruy::BlockingCounter::Wait(std::chrono::duration<long, std::ratio<1l, 1000000000l> >)' /usr/lib64/libruy_thread_pool.a(thread_pool.cc.o): In function `ruy::Thread::ThreadFunc(ruy::Thread*)': thread_pool.cc:(.text._ZN3ruy6Thread10ThreadFuncEPS0_[_ZN3ruy6Thread10ThreadFuncEPS0_]+0xb4): undefined reference to `ruy::BlockingCounter::DecrementCount()' thread_pool.cc:(.text._ZN3ruy6Thread10ThreadFuncEPS0_[_ZN3ruy6Thread10ThreadFuncEPS0_]+0x1ac): undefined reference to `ruy::BlockingCounter::DecrementCount()' /usr/lib64/libruy_trmul.a(trmul.cc.o): In function `ruy::(anonymous namespace)::TrMulTask::Run()': trmul.cc:(.text+0xdc): undefined reference to `ruy::GetBlockByIndex(ruy::BlockMap const&, int, ruy::SidePair<int>*)' trmul.cc:(.text+0xf0): undefined reference to `ruy::GetBlockMatrixCoords(ruy::BlockMap const&, ruy::SidePair<int> const&, ruy::SidePair<int>*, ruy::SidePair<int>*)' trmul.cc:(.text+0x21c): undefined reference to `ruy::GetBlockMatrixCoords(ruy::Side, ruy::BlockMap const&, int, int*, int*)' /usr/lib64/libruy_trmul.a(trmul.cc.o): In function `ruy::TrMul(ruy::Ctx*, ruy::TrMulParams*)': trmul.cc:(.text+0x5a4): undefined reference to `ruy::MakeBlockMap(int, int, int, int, int, int, int, int, ruy::CpuCacheParams const&, ruy::BlockMap*)' trmul.cc:(.text+0x768): undefined reference to `ruy::IsObviouslyLinearTraversal(int, int, int, int, int, ruy::CpuCacheParams const&)' /usr/lib64/libXNNPACK.a(init.c.o): In function `init': init.c:(.text+0x2c): undefined reference to `cpuinfo_isa' init.c:(.text+0x4c): undefined reference to `cpuinfo_isa' init.c:(.text+0x6c): undefined reference to `cpuinfo_get_core' init.c:(.text+0x1a8): undefined reference to `cpuinfo_get_core' init.c:(.text+0x3d4): undefined reference to `cpuinfo_get_uarch' init.c:(.text+0x44c): undefined reference to `cpuinfo_isa' init.c:(.text+0x468): undefined reference to `cpuinfo_get_core' init.c:(.text+0x580): undefined reference to `cpuinfo_isa' init.c:(.text+0x6a0): undefined reference to `cpuinfo_get_core' init.c:(.text+0x8e0): undefined reference to `cpuinfo_get_uarch' init.c:(.text+0xa04): undefined reference to `cpuinfo_isa' init.c:(.text+0xa14): undefined reference to `cpuinfo_get_core' init.c:(.text+0xaec): undefined reference to `cpuinfo_get_uarch' init.c:(.text+0xc94): undefined reference to `cpuinfo_isa' init.c:(.text+0xcd8): undefined reference to `cpuinfo_get_core' init.c:(.text+0xdcc): undefined reference to `cpuinfo_isa' init.c:(.text+0xe40): undefined reference to `cpuinfo_get_core' init.c:(.text+0x10ac): undefined reference to `cpuinfo_isa' init.c:(.text+0x1148): undefined reference to `cpuinfo_get_uarch' init.c:(.text+0x131c): undefined reference to `cpuinfo_get_core' init.c:(.text+0x17cc): undefined reference to `cpuinfo_get_uarch' init.c:(.text+0x18a4): undefined reference to `cpuinfo_get_core' /usr/lib64/libXNNPACK.a(init.c.o): In function `xnn_initialize': init.c:(.text+0x1fdc): undefined reference to `cpuinfo_initialize' /usr/lib64/libXNNPACK.a(init.c.o): In function `xnn_deinitialize': init.c:(.text+0x2044): undefined reference to `cpuinfo_deinitialize' collect2: error: ld returned 1 exit status
Seems like the libcpuinfo.a doesn't include some functions. How it's possible? Thanks for any help.
-
What steps are you doing to compile the
voxl-tflite-server
code? It should be done within thevoxl-cross
Docker image. Also why SDK 0.9?Let me know how I can help.
Thomas
thomas.patton@modalai.com