openvinotoolkit / openvino

OpenVINO™ is an open-source toolkit for optimizing and deploying AI inference
https://docs.openvino.ai
Apache License 2.0
7.17k stars 2.24k forks source link

[Bug] Failed to build against system protobuf??? #13412

Closed jiapei100 closed 2 years ago

jiapei100 commented 2 years ago
System information (version)
Detailed description

Failed to build OpenVINO with system protobuf.

[ 88%] Linking CXX shared library ../../../../../bin/armv7l/Release/libopenvino_onnx_frontend.so
cd ....../openvino/build/src/frontends/onnx/frontend && /usr/bin/cmake -E cmake_link_script CMakeFiles/openvino_onnx_frontend.dir/link.txt --verbose=1
/usr/bin/c++ -fPIC -Wsuggest-override  -fsigned-char -ffunction-sections -fdata-sections -fdiagnostics-show-option -Wundef -Wreturn-type -Wunused-variable -Wuninitialized -Winit-self -Wmaybe-uninitialized -O3 -DNDEBUG  -Wformat -Wformat-security -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fno-delete-null-pointer-checks -fwrapv -fstack-protector-strong -s -Wno-error=maybe-uninitialized -Wno-maybe-uninitialized  -Wl,--gc-sections -Wl,--exclude-libs,ALL   -z noexecstack -z relro -z now -shared -Wl,-soname,libopenvino_onnx_frontend.so.2230 -o ../../../../../bin/armv7l/Release/libopenvino_onnx_frontend.so.2022.3.0 CMakeFiles/openvino_onnx_frontend.dir/src/core/attribute.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/core/graph.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/core/graph_cache.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/core/model.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/core/node.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/core/null_node.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/core/tensor.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/core/transform.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/detail/subgraph_extraction.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/edge_mapper.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/editor.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/exceptions.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/frontend.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/input_model.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/node_context.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/onnx.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/onnx_framework_node.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/add.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/affine.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/argmax.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/argmin.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/aten.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/average_pool.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/batch_norm.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/bitshift.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/cast.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/cast_like.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/clip.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/com.microsoft/attention.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/com.microsoft/bias_gelu.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/com.microsoft/embed_layer_normalization.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/com.microsoft/fusedgemm.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/com.microsoft/skip_layer_normalization.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/compress.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/concat.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/constant.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/constant_fill.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/constant_of_shape.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/conv.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/conv_integer.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/conv_transpose.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/cos.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/cosh.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/crop.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/cum_sum.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/depth_to_space.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/dequantize_linear.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/dropout.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/dynamic_quantize_linear.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/einsum.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/elu.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/expand.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/eye_like.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/flatten.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/gather_nd.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/gemm.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/global_average_pool.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/global_max_pool.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/grid_sample.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/gru.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/hard_sigmoid.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/hardmax.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/if.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/image_scaler.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/instance_norm.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/leaky_relu.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/log.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/log_softmax.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/loop.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/lp_norm.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/lp_pool.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/lrn.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/lstm.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/matmul_integer.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/max_pool.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/mean.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/mean_variance_normalization.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/mod.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/non_max_suppression.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/non_zero.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/onehot.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/org.openvinotoolkit/deformable_conv_2d.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/org.openvinotoolkit/detection_output.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/org.openvinotoolkit/experimental_detectron/detection_output.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/org.openvinotoolkit/experimental_detectron/generate_proposals_single_image.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/org.openvinotoolkit/experimental_detectron/prior_grid_generator.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/org.openvinotoolkit/experimental_detectron/roi_feature_extractor.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/org.openvinotoolkit/experimental_detectron/topk_rios.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/org.openvinotoolkit/fake_quantize.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/org.openvinotoolkit/generate_proposals.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/org.openvinotoolkit/group_norm.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/org.openvinotoolkit/normalize.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/org.openvinotoolkit/prior_box.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/org.openvinotoolkit/swish.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/pad.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/pow.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/prelu.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/qlinear_conv.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/qlinear_matmul.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/quant_conv.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/quantize_linear.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/random_normal.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/random_normal_like.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/random_uniform.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/random_uniform_like.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/range.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/reciprocal.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/reduce.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/reshape.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/resize.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/reverse_sequence.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/rnn.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/roi_align.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/round.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/scan.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/scatter_elements.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/scatter_nd.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/selu.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/shape.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/shrink.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/size.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/slice.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/softmax.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/softplus.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/softsign.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/space_to_depth.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/split.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/squeeze.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/thresholded_relu.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/tile.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/topk.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/transpose.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/trilu.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/unsqueeze.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/op/upsample.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/ops_bridge.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/place.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/utils/arg_min_max_factory.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/utils/common.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/utils/conv_factory.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/utils/convpool.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/utils/onnx_internal.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/utils/pooling_factory.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/utils/random_normal.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/utils/recurrent.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/utils/reshape.cpp.o CMakeFiles/openvino_onnx_frontend.dir/src/utils/tensor_external_data.cpp.o  -Wl,-rpath,....../openvino/bin/armv7l/Release: ../../../../../bin/armv7l/Release/libngraph_builders.a ../../../../../bin/armv7l/Release/libutil.a ../../../../../bin/armv7l/Release/libonnx_common.a ../../../../../bin/armv7l/Release/libonnx.a ../../../../../bin/armv7l/Release/libonnx_proto.a /usr/local/lib/arm-linux-gnueabihf/libprotobuf-lite.a ../../../../../bin/armv7l/Release/libopenvino.so.2022.3.0 ../../../../../bin/armv7l/Release/libitt.a ../../../../../bin/armv7l/Release/libutil.a -ldl /usr/lib/arm-linux-gnueabihf/libtbb.so.2 -pthread 
/usr/bin/ld: /usr/local/lib/arm-linux-gnueabihf/libprotobuf-lite.a(arena.cc.o)(.text+0x75c): R_ARM_TLS_LE32 relocation not permitted in shared object
/usr/local/lib/arm-linux-gnueabihf/libprotobuf-lite.a(arena.cc.o): in function `google::protobuf::internal::ThreadSafeArena::ThreadSafeArena()':
arena.cc:(.text+0x75c): dangerous relocation: unsupported relocation
/usr/bin/ld: /usr/local/lib/arm-linux-gnueabihf/libprotobuf-lite.a(arena.cc.o)(.text+0x7e8): R_ARM_TLS_LE32 relocation not permitted in shared object
/usr/local/lib/arm-linux-gnueabihf/libprotobuf-lite.a(arena.cc.o): in function `google::protobuf::internal::ThreadSafeArena::ThreadSafeArena(google::protobuf::internal::MessageOwned)':
arena.cc:(.text+0x7e8): dangerous relocation: unsupported relocation
/usr/bin/ld: /usr/local/lib/arm-linux-gnueabihf/libprotobuf-lite.a(arena.cc.o)(.text+0x98c): R_ARM_TLS_LE32 relocation not permitted in shared object
/usr/local/lib/arm-linux-gnueabihf/libprotobuf-lite.a(arena.cc.o): in function `google::protobuf::internal::ThreadSafeArena::GetNextLifeCycleId()':
arena.cc:(.text+0x98c): dangerous relocation: unsupported relocation
/usr/bin/ld: /usr/local/lib/arm-linux-gnueabihf/libprotobuf-lite.a(arena.cc.o)(.text+0xc3c): R_ARM_TLS_LE32 relocation not permitted in shared object
/usr/local/lib/arm-linux-gnueabihf/libprotobuf-lite.a(arena.cc.o): in function `google::protobuf::internal::ThreadSafeArena::Init()':
arena.cc:(.text+0xc3c): dangerous relocation: unsupported relocation
/usr/bin/ld: /usr/local/lib/arm-linux-gnueabihf/libprotobuf-lite.a(arena.cc.o)(.text+0x161c): R_ARM_TLS_LE32 relocation not permitted in shared object
/usr/local/lib/arm-linux-gnueabihf/libprotobuf-lite.a(arena.cc.o): in function `google::protobuf::internal::ThreadSafeArena::GetSerialArenaFallback()':
arena.cc:(.text+0x161c): dangerous relocation: unsupported relocation
/usr/bin/ld: /usr/local/lib/arm-linux-gnueabihf/libprotobuf-lite.a(arena.cc.o)(.text+0x16d8): R_ARM_TLS_LE32 relocation not permitted in shared object
/usr/local/lib/arm-linux-gnueabihf/libprotobuf-lite.a(arena.cc.o): in function `google::protobuf::internal::ThreadSafeArena::AddCleanup(void*, void (*)(void*))':
arena.cc:(.text+0x16d8): dangerous relocation: unsupported relocation
/usr/bin/ld: /usr/local/lib/arm-linux-gnueabihf/libprotobuf-lite.a(arena.cc.o)(.text+0x1890): R_ARM_TLS_LE32 relocation not permitted in shared object
/usr/local/lib/arm-linux-gnueabihf/libprotobuf-lite.a(arena.cc.o): in function `google::protobuf::internal::ThreadSafeArena::AllocateAlignedWithCleanup(unsigned int, unsigned int, void (*)(void*))':
arena.cc:(.text+0x1890): dangerous relocation: unsupported relocation
/usr/bin/ld: /usr/local/lib/arm-linux-gnueabihf/libprotobuf-lite.a(arena.cc.o)(.text+0x1904): R_ARM_TLS_LE32 relocation not permitted in shared object
/usr/local/lib/arm-linux-gnueabihf/libprotobuf-lite.a(arena.cc.o): in function `google::protobuf::Arena::Allocate(unsigned int)':
arena.cc:(.text+0x1904): dangerous relocation: unsupported relocation
/usr/bin/ld: /usr/local/lib/arm-linux-gnueabihf/libprotobuf-lite.a(arena.cc.o)(.text+0x19bc): R_ARM_TLS_LE32 relocation not permitted in shared object
/usr/local/lib/arm-linux-gnueabihf/libprotobuf-lite.a(arena.cc.o): in function `google::protobuf::Arena::AllocateForArray(unsigned int)':
arena.cc:(.text+0x19bc): dangerous relocation: unsupported relocation
/usr/bin/ld: /usr/local/lib/arm-linux-gnueabihf/libprotobuf-lite.a(arena.cc.o)(.text+0x1ab8): R_ARM_TLS_LE32 relocation not permitted in shared object
/usr/local/lib/arm-linux-gnueabihf/libprotobuf-lite.a(arena.cc.o): in function `google::protobuf::Arena::AllocateAlignedWithCleanup(unsigned int, unsigned int, void (*)(void*))':
arena.cc:(.text+0x1ab8): dangerous relocation: unsupported relocation
collect2: error: ld returned 1 exit status
make[2]: *** [src/frontends/onnx/frontend/CMakeFiles/openvino_onnx_frontend.dir/build.make:2306: ../bin/armv7l/Release/libopenvino_onnx_frontend.so.2022.3.0] Error 1
make[2]: Leaving directory '....../openvino/build'
make[1]: *** [CMakeFiles/Makefile2:4120: src/frontends/onnx/frontend/CMakeFiles/openvino_onnx_frontend.dir/all] Error 2
make[1]: Leaving directory '....../openvino/build'
make: *** [Makefile:185: all] Error 2
Iffa-Intel commented 2 years ago

@jiapei100 could you provide the details of the installation steps and the commands you used?

ilya-lavrenov commented 2 years ago

@jiapei100 the system protobuf must be compiled with -fPIC, see https://github.com/protocolbuffers/protobuf/issues/1919

jiapei100 commented 2 years ago

@ilya-lavrenov Great... I'm rebulding protobuf. Oh, BTW, I happened to realize: I can ONLY successfully build static library, BUT failed to build dynamic library.

ilya-lavrenov commented 2 years ago

@ilya-lavrenov Great... I'm rebulding protobuf. Oh, BTW, I happened to realize: I can ONLY successfully build static library, BUT failed to build dynamic library.

FPIC is required to build dynamic libraries, for static ones it's not required

Iffa-Intel commented 2 years ago

Closing issue, feel free to re-open or start a new issue if additional assistance is needed.