leezu commented on pull request #17794:
URL: https://github.com/apache/incubator-mxnet/pull/17794#issuecomment-653990750


   @pengzhao-intel @TaoLv I investigated the CI failure, and there is a 
deterministic segfault in the mkl library when using dynamic linking. Do you 
have any suggestion how to proceed fixing it?
   
   See frame `#32` below:
   
   ```
   #0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
   #1  0x00007f4a9ba03801 in __GI_abort () at abort.c:79
   #2  0x00007f4a8fc2a957 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
   #3  0x00007f4a8fc30ae6 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
   #4  0x00007f4a8fc30b21 in std::terminate() () from 
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
   #5  0x00007f49dda599a1 in std::thread::~thread (this=0x417c720, 
__in_chrg=<optimized out>) at /usr/include/c++/7/thread:135
   #6  0x00007f49ddb03549 in std::_Destroy<std::thread> (__pointer=0x417c720) 
at /usr/include/c++/7/bits/stl_construct.h:98
   #7  0x00007f49ddaea19f in std::_Destroy_aux<false>::__destroy<std::thread*> 
(__first=0x417c720, __last=0x417c728) at 
/usr/include/c++/7/bits/stl_construct.h:108
   #8  0x00007f49ddac4066 in std::_Destroy<std::thread*> (__first=0x417c720, 
__last=0x417c728) at /usr/include/c++/7/bits/stl_construct.h:137
   #9  0x00007f49ddaa2545 in std::_Destroy<std::thread*, std::thread> 
(__first=0x417c720, __last=0x417c728) at 
/usr/include/c++/7/bits/stl_construct.h:206
   #10 0x00007f49dda78543 in std::vector<std::thread, 
std::allocator<std::thread> >::~vector (this=0x3a01aa0, __in_chrg=<optimized 
out>) at /usr/include/c++/7/bits/stl_vector.h:434
   #11 0x00007f49ddd25766 in mxnet::engine::ThreadPool::~ThreadPool 
(this=0x3a01aa0, __in_chrg=<optimized out>) at 
/work/mxnet/src/engine/./thread_pool.h:82
   #12 0x00007f49ddd2f070 in 
std::default_delete<mxnet::engine::ThreadPool>::operator() (this=0x3373108, 
__ptr=0x3a01aa0) at /usr/include/c++/7/bits/unique_ptr.h:78
   #13 0x00007f49ddd29837 in std::unique_ptr<mxnet::engine::ThreadPool, 
std::default_delete<mxnet::engine::ThreadPool> >::~unique_ptr (this=0x3373108, 
__in_chrg=<optimized out>)
       at /usr/include/c++/7/bits/unique_ptr.h:263
   #14 0x00007f49ddd39d81 in 
mxnet::engine::ThreadedEnginePerDevice::ThreadWorkerBlock<(dmlc::ConcurrentQueueType)0>::~ThreadWorkerBlock
 (this=0x3373040, __in_chrg=<optimized out>)
       at /work/mxnet/src/engine/threaded_engine_perdevice.cc:214
   #15 0x00007f49ddd3b526 in 
std::_Sp_counted_ptr<mxnet::engine::ThreadedEnginePerDevice::ThreadWorkerBlock<(dmlc::ConcurrentQueueType)0>*,
 (__gnu_cxx::_Lock_policy)2>::_M_dispose (
       this=0x38f13e0) at /usr/include/c++/7/bits/shared_ptr_base.h:376
   #16 0x00007f49dd90945f in 
std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x38f13e0) 
at /usr/include/c++/7/bits/shared_ptr_base.h:154
   #17 0x00007f49dd9090c1 in 
std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count 
(this=0x7f47b40003d8, __in_chrg=<optimized out>)
       at /usr/include/c++/7/bits/shared_ptr_base.h:684
   #18 0x00007f49ddd258b7 in 
std::__shared_ptr<mxnet::engine::ThreadedEnginePerDevice::ThreadWorkerBlock<(dmlc::ConcurrentQueueType)0>,
 (__gnu_cxx::_Lock_policy)2>::~__shared_ptr (
       this=0x7f47b40003d0, __in_chrg=<optimized out>) at 
/usr/include/c++/7/bits/shared_ptr_base.h:1123
   #19 0x00007f49ddd323dc in 
std::__shared_ptr<mxnet::engine::ThreadedEnginePerDevice::ThreadWorkerBlock<(dmlc::ConcurrentQueueType)0>,
 (__gnu_cxx::_Lock_policy)2>::operator= (
       this=0x7f47b4000470, __r=...) at 
/usr/include/c++/7/bits/shared_ptr_base.h:1213
   #20 0x00007f49ddd2e7f0 in 
std::shared_ptr<mxnet::engine::ThreadedEnginePerDevice::ThreadWorkerBlock<(dmlc::ConcurrentQueueType)0>
 >::operator= (this=0x7f47b4000470, __r=...)
       at /usr/include/c++/7/bits/shared_ptr.h:319
   #21 0x00007f49ddd28cce in 
mxnet::common::LazyAllocArray<mxnet::engine::ThreadedEnginePerDevice::ThreadWorkerBlock<(dmlc::ConcurrentQueueType)0>
 >::Clear (this=0x4189188)
       at /work/mxnet/src/engine/../common/lazy_alloc_array.h:149
   #22 0x00007f49ddd25f01 in mxnet::engine::ThreadedEnginePerDevice::StopNoWait 
(this=0x4189080) at /work/mxnet/src/engine/threaded_engine_perdevice.cc:67
   #23 0x00007f49ddd25c7e in 
mxnet::engine::ThreadedEnginePerDevice::~ThreadedEnginePerDevice 
(this=0x4189080, __in_chrg=<optimized out>)
       at /work/mxnet/src/engine/threaded_engine_perdevice.cc:59
   #24 0x00007f49ddd25e16 in 
mxnet::engine::ThreadedEnginePerDevice::~ThreadedEnginePerDevice 
(this=0x4189080, __in_chrg=<optimized out>)
       at /work/mxnet/src/engine/threaded_engine_perdevice.cc:60
   #25 0x00007f49ddd004b6 in std::_Sp_counted_ptr<mxnet::Engine*, 
(__gnu_cxx::_Lock_policy)2>::_M_dispose (this=0x3ea9440) at 
/usr/include/c++/7/bits/shared_ptr_base.h:376
   #26 0x00007f49dd90945f in 
std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x3ea9440) 
at /usr/include/c++/7/bits/shared_ptr_base.h:154
   #27 0x00007f49dd9090c1 in 
std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count 
(this=0x7f49f1628038 <mxnet::Engine::_GetSharedRef()::sptr+8>, 
__in_chrg=<optimized out>)
       at /usr/include/c++/7/bits/shared_ptr_base.h:684
   #28 0x00007f49dda55e5d in std::__shared_ptr<mxnet::Engine, 
(__gnu_cxx::_Lock_policy)2>::~__shared_ptr (this=0x7f49f1628030 
<mxnet::Engine::_GetSharedRef()::sptr>,
       __in_chrg=<optimized out>) at 
/usr/include/c++/7/bits/shared_ptr_base.h:1123
   #29 0x00007f49dda55e8b in std::shared_ptr<mxnet::Engine>::~shared_ptr 
(this=0x7f49f1628030 <mxnet::Engine::_GetSharedRef()::sptr>, 
__in_chrg=<optimized out>)
   ---Type <return> to continue, or q <return> to quit---
       at /usr/include/c++/7/bits/shared_ptr.h:93
   #30 0x00007f4a9ba06041 in __run_exit_handlers (status=2, 
listp=0x7f4a9bdae718 <__exit_funcs>, 
run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true)
       at exit.c:108
   #31 0x00007f4a9ba0613a in __GI_exit (status=<optimized out>) at exit.c:139
   #32 0x00007f49d0f3be78 in mkl_serv_exit () from 
/opt/intel/mkl/lib/intel64/libmkl_core.so
   #33 0x00007f49d0f4cdbb in mkl_blas_get_kernel_api_version () from 
/opt/intel/mkl/lib/intel64/libmkl_core.so
   #34 0x00007f49d5405962 in mkl_blas_sgemm () from 
/opt/intel/mkl/lib/intel64/libmkl_intel_thread.so
   #35 0x00007f4a9496de67 in sgemm_ () from 
/opt/intel/mkl/lib/intel64/libmkl_intel_lp64.so
   #36 0x00007f4a949d5da1 in cblas_sgemm () from 
/opt/intel/mkl/lib/intel64/libmkl_intel_lp64.so
   #37 0x00007f49de499496 in linalg_gemm<mshadow::cpu, float> (A=..., B=..., 
C=..., alpha=1, beta=0, tA=false, tB=true, s=0x0) at 
/work/mxnet/src/operator/contrib/./../linalg_impl.h:156
   #38 0x00007f49de4b6769 in linalg_gemm<mshadow::cpu, float> (A=..., B=..., 
C=..., tA=false, tB=true, s=0x0, req=mxnet::kWriteTo)
       at /work/mxnet/src/operator/contrib/./../linalg_impl.h:465
   #39 0x00007f49defcb0cf in mxnet::op::FCForward<mshadow::cpu, float> 
(ctx=..., param=..., in_data=std::vector of length 3, capacity 3 = {...},
       req=std::vector of length 1, capacity 1 = {...}, out_data=std::vector of 
length 1, capacity 1 = {...}) at 
/work/mxnet/src/operator/nn/./fully_connected-inl.h:209
   #40 0x00007f49defc8829 in mxnet::op::FullyConnectedCompute<mshadow::cpu> 
(attrs=..., ctx=..., inputs=std::vector of length 3, capacity 3 = {...},
       req=std::vector of length 1, capacity 1 = {...}, outputs=std::vector of 
length 1, capacity 1 = {...}) at 
/work/mxnet/src/operator/nn/./fully_connected-inl.h:420
   #41 0x00007f49defab615 in mxnet::op::FullyConnectedComputeExCPU (attrs=..., 
ctx=..., inputs=std::vector of length 3, capacity 3 = {...},
       req=std::vector of length 1, capacity 1 = {...}, outputs=std::vector of 
length 1, capacity 1 = {...}) at 
/work/mxnet/src/operator/nn/fully_connected.cc:138
   #42 0x00007f49de165579 in std::_Function_handler<void (nnvm::NodeAttrs 
const&, mxnet::OpContext const&, std::vector<mxnet::NDArray, 
std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::OpReqType, 
std::allocator<mxnet::OpReqType> > const&, std::vector<mxnet::NDArray, 
std::allocator<mxnet::NDArray> > const&), void (*)(nnvm::NodeAttrs const&, 
mxnet::OpContext const&, std::vector<mxnet::NDArray, 
std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::OpReqType, 
std::allocator<mxnet::OpReqType> > const&, std::vector<mxnet::NDArray, 
std::allocator<mxnet::NDArray> > const&)>::_M_invoke(std::_Any_data const&, 
nnvm::NodeAttrs const&, mxnet::OpContext const&, std::vector<mxnet::NDArray, 
std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::OpReqType, 
std::allocator<mxnet::OpReqType> > const&, std::vector<mxnet::NDArray, 
std::allocator<mxnet::NDArray> > const&) (__functor=..., __args#0=...,
       __args#1=..., __args#2=std::vector of length 3, capacity 3 = {...}, 
__args#3=std::vector of length 1, capacity 1 = {...}, __args#4=std::vector of 
length 1, capacity 1 = {...})
       at /usr/include/c++/7/bits/std_function.h:316
   #43 0x00007f49ddd46622 in std::function<void (nnvm::NodeAttrs const&, 
mxnet::OpContext const&, std::vector<mxnet::NDArray, 
std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::OpReqType, 
std::allocator<mxnet::OpReqType> > const&, std::vector<mxnet::NDArray, 
std::allocator<mxnet::NDArray> > const&)>::operator()(nnvm::NodeAttrs const&, 
mxnet::OpContext const&, std::vector<mxnet::NDArray, 
std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::OpReqType, 
std::allocator<mxnet::OpReqType> > const&, std::vector<mxnet::NDArray, 
std::allocator<mxnet::NDArray> > const&) const (this=0x3e46a20, __args#0=..., 
__args#1=..., __args#2=std::vector of length 3, capacity 3 = {...},
       __args#3=std::vector of length 1, capacity 1 = {...}, 
__args#4=std::vector of length 1, capacity 1 = {...}) at 
/usr/include/c++/7/bits/std_function.h:706
   #44 0x00007f49dddfe80e in 
mxnet::imperative::PushFComputeEx(std::function<void (nnvm::NodeAttrs const&, 
mxnet::OpContext const&, std::vector<mxnet::NDArray, 
std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::OpReqType, 
std::allocator<mxnet::OpReqType> > const&, std::vector<mxnet::NDArray, 
std::allocator<mxnet::NDArray> > const&)> const&, nnvm::Op const*, 
nnvm::NodeAttrs const&, mxnet::Context const&, std::vector<mxnet::engine::Var*, 
std::allocator<mxnet::engine::Var*> > const&, std::vector<mxnet::engine::Var*, 
std::allocator<mxnet::engine::Var*> > const&, std::vector<mxnet::Resource, 
std::allocator<mxnet::Resource> > const&, std::vector<mxnet::NDArray*, 
std::allocator<mxnet::NDArray*> > const&, std::vector<mxnet::NDArray*, 
std::allocator<mxnet::NDArray*> > const&, std::vector<mxnet::OpReqType, 
std::allocator<mxnet::OpReqType> > 
const&)::{lambda(mxnet::RunContext)#1}::operator()(mxnet::RunContext) const 
(__closure=0x3e46a00, rctx=...) at 
/work/mxnet/src/imperative/./imperative_utils.h:549
   #45 0x00007f49dde0a4a5 in std::_Function_handler<void (mxnet::RunContext), 
mxnet::imperative::PushFComputeEx(std::function<void (nnvm::NodeAttrs const&, 
mxnet::OpContext const&, std::vector<mxnet::NDArray, 
std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::OpReqType, 
std::allocator<mxnet::OpReqType> > const&, std::vector<mxnet::NDArray, 
std::allocator<mxnet::NDArray> > const&)> const&, nnvm::Op const*, 
nnvm::NodeAttrs const&, mxnet::Context const&, std::vector<mxnet::engine::Var*, 
std::allocator<mxnet::engine::Var*> > const&, std::vector<mxnet::engine::Var*, 
std::allocator<mxnet::engine::Var*> > const&, std::vector<mxnet::Resource, 
std::allocator<mxnet::Resource> > const&, std::vector<mxnet::NDArray*, 
std::allocator<mxnet::NDArray*> > const&, std::vector<mxnet::NDArray*, 
std::allocator<mxnet::NDArray*> > const&, std::vector<mxnet::OpReqType, 
std::allocator<mxnet::OpReqType> > 
const&)::{lambda(mxnet::RunContext)#1}>::_M_invoke(std::_Any_data const&, 
mxnet::RunContext&&) (__functor=..., __args#0=...) at 
/usr/include/c++/7/bits/std_function.h:316
   ---Type <return> to continue, or q <return> to quit---
   #46 0x00007f49ddd0445e in std::function<void 
(mxnet::RunContext)>::operator()(mxnet::RunContext) const (this=0x41e7980, 
__args#0=...) at /usr/include/c++/7/bits/std_function.h:706
   #47 0x00007f49ddd0d186 in 
mxnet::engine::ThreadedEngine::<lambda(mxnet::RunContext, 
mxnet::Engine::CallbackOnComplete)>::operator()(mxnet::RunContext, 
mxnet::Engine::CallbackOnComplete) const (__closure=0x41e7980, ctx=..., 
on_complete=...) at /work/mxnet/src/engine/threaded_engine.cc:354
   #48 0x00007f49ddd0f118 in std::_Function_handler<void(mxnet::RunContext, 
mxnet::engine::CallbackOnComplete), 
mxnet::engine::ThreadedEngine::PushSync(mxnet::Engine::SyncFn, mxnet::Context, 
const std::vector<mxnet::engine::Var*>&, const 
std::vector<mxnet::engine::Var*>&, mxnet::FnProperty, int, char 
const*)::<lambda(mxnet::RunContext, mxnet::Engine::CallbackOnComplete)> 
>::_M_invoke(const std::_Any_data &, mxnet::RunContext &&, 
mxnet::engine::CallbackOnComplete &&) (__functor=..., __args#0=..., 
__args#1=...)
       at /usr/include/c++/7/bits/std_function.h:316
   #49 0x00007f49ddd0585b in std::function<void (mxnet::RunContext, 
mxnet::engine::CallbackOnComplete)>::operator()(mxnet::RunContext, 
mxnet::engine::CallbackOnComplete) const (
       this=0x418ad80, __args#0=..., __args#1=...) at 
/usr/include/c++/7/bits/std_function.h:706
   #50 0x00007f49ddd2464f in mxnet::engine::ThreadedEngine::ExecuteOprBlock 
(this=0x4189080, run_ctx=..., opr_block=0x418c3c0) at 
/work/mxnet/src/engine/./threaded_engine.h:381
   #51 0x00007f49ddd29fe1 in 
mxnet::engine::ThreadedEnginePerDevice::CPUWorker<(dmlc::ConcurrentQueueType)0> 
(this=0x4189080, ctx=..., block=0x3373040,
       ready_event=std::shared_ptr<dmlc::ManualEvent> (use count 1, weak count 
0) = {...}) at /work/mxnet/src/engine/threaded_engine_perdevice.cc:302
   #52 0x00007f49ddd26671 in 
mxnet::engine::ThreadedEnginePerDevice::PushToExecute(mxnet::engine::OprBlock*, 
bool)::{lambda()#1}::operator()() 
const::{lambda(std::shared_ptr<dmlc::ManualEvent>)#1}::operator()(dmlc::ManualEvent)
 const (__closure=0x3e6b910, ready_event=std::shared_ptr<dmlc::ManualEvent> 
(use count 1, weak count 0) = {...})
       at /work/mxnet/src/engine/threaded_engine_perdevice.cc:118
   #53 0x00007f49ddd2fde7 in std::_Function_handler<void 
(std::shared_ptr<dmlc::ManualEvent>), 
mxnet::engine::ThreadedEnginePerDevice::PushToExecute(mxnet::engine::OprBlock*, 
bool)::{lambda()#1}::operator()() 
const::{lambda(std::shared_ptr<dmlc::ManualEvent>)#1}>::_M_invoke(std::_Any_data
 const&, std::shared_ptr<dmlc::ManualEvent>&&) (__functor=..., __args#0=...)
       at /usr/include/c++/7/bits/std_function.h:316
   #54 0x00007f49ddd31e23 in std::function<void 
(std::shared_ptr<dmlc::ManualEvent>)>::operator()(std::shared_ptr<dmlc::ManualEvent>)
 const (this=0x3e74298,
       __args#0=std::shared_ptr<dmlc::ManualEvent> (empty) = {...}) at 
/usr/include/c++/7/bits/std_function.h:706
   #55 0x00007f49ddd2e23a in std::__invoke_impl<void, std::function<void 
(std::shared_ptr<dmlc::ManualEvent>)>, std::shared_ptr<dmlc::ManualEvent> 
>(std::__invoke_other, std::function<void 
(std::shared_ptr<dmlc::ManualEvent>)>&&, std::shared_ptr<dmlc::ManualEvent>&&) 
(__f=...) at /usr/include/c++/7/bits/invoke.h:60
   #56 0x00007f49ddd2838a in std::__invoke<std::function<void 
(std::shared_ptr<dmlc::ManualEvent>)>, std::shared_ptr<dmlc::ManualEvent> 
>(std::function<void (std::shared_ptr<dmlc::ManualEvent>)>&&, 
std::shared_ptr<dmlc::ManualEvent>&&) (__fn=...) at 
/usr/include/c++/7/bits/invoke.h:95
   #57 0x00007f49ddd3b994 in 
std::thread::_Invoker<std::tuple<std::function<void 
(std::shared_ptr<dmlc::ManualEvent>)>, std::shared_ptr<dmlc::ManualEvent> > 
>::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) (this=0x3e74288) at 
/usr/include/c++/7/thread:234
   #58 0x00007f49ddd3b898 in 
std::thread::_Invoker<std::tuple<std::function<void 
(std::shared_ptr<dmlc::ManualEvent>)>, std::shared_ptr<dmlc::ManualEvent> > 
>::operator()() (
       this=0x3e74288) at /usr/include/c++/7/thread:243
   #59 0x00007f49ddd3b801 in 
std::thread::_State_impl<std::thread::_Invoker<std::tuple<std::function<void 
(std::shared_ptr<dmlc::ManualEvent>)>, std::shared_ptr<dmlc::ManualEvent> > > 
>::_M_run() (this=0x3e74280) at /usr/include/c++/7/thread:186
   #60 0x00007f4a8fc5b6df in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
   #61 0x00007f4a9b7ab6db in start_thread (arg=0x7f47b4002700) at 
pthread_create.c:463
   #62 0x00007f4a9bae488f in clone () at 
../sysdeps/unix/sysv/linux/x86_64/clone.S:95
   ```
   
   To reproduce, check out this branch and run
   
   ```
   git clean -fxd; python ci/build.py --no-pull --platform ubuntu_cpu 
/work/runtime_functions.sh build_ubuntu_cpu_mkl
   docker  run -it --rm -v  /home/ubuntu/src/mxnet-master:/work/mxnet 
mxnetci/build.ubuntu_cpu:latest /bin/bash
   apt install gdb
   gdb python3
   run -m pytest --durations=50 --cov-report xml:tests_unittest.xml --verbose 
tests/python/unittest/test_gluon.py::test_parameter_sharing
   ```
   
   This is the `ldd` output
   
   ```
   ldd build/libmxnet.so
           linux-vdso.so.1 (0x00007ffdd25e3000)
           libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f3ebca23000)
           libmkl_intel_lp64.so => 
/opt/intel/mkl/lib/intel64/libmkl_intel_lp64.so (0x00007f3ebbeb7000)
           libmkl_intel_thread.so => 
/opt/intel/mkl/lib/intel64/libmkl_intel_thread.so (0x00007f3eb994b000)
           libmkl_core.so => /opt/intel/mkl/lib/intel64/libmkl_core.so 
(0x00007f3eb562b000)
           libiomp5.so => 
/opt/intel/compilers_and_libraries/linux/lib/intel64/libiomp5.so 
(0x00007f3eb523b000)
           librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f3eb5033000)
           libopencv_imgcodecs.so.3.2 => 
/usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2 (0x00007f3eb4dfa000)
           libopencv_imgproc.so.3.2 => 
/usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.3.2 (0x00007f3eb48a9000)
           libopencv_core.so.3.2 => 
/usr/lib/x86_64-linux-gnu/libopencv_core.so.3.2 (0x00007f3eb446e000)
           libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 
(0x00007f3eb424f000)
           libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 
(0x00007f3eb3ec6000)
           libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f3eb3b28000)
           libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 
(0x00007f3eb3910000)
           libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3eb351f000)
           /lib64/ld-linux-x86-64.so.2 (0x00007f3edb011000)
           libjpeg.so.8 => /usr/lib/x86_64-linux-gnu/libjpeg.so.8 
(0x00007f3eb32b7000)
           libwebp.so.6 => /usr/lib/x86_64-linux-gnu/libwebp.so.6 
(0x00007f3eb304e000)
           libpng16.so.16 => /usr/lib/x86_64-linux-gnu/libpng16.so.16 
(0x00007f3eb2e1c000)
           libgdcmMSFF.so.2.8 => /usr/lib/x86_64-linux-gnu/libgdcmMSFF.so.2.8 
(0x00007f3eb2999000)
           libtiff.so.5 => /usr/lib/x86_64-linux-gnu/libtiff.so.5 
(0x00007f3eb2722000)
           libIlmImf-2_2.so.22 => /usr/lib/x86_64-linux-gnu/libIlmImf-2_2.so.22 
(0x00007f3eb225e000)
           libHalf.so.12 => /usr/lib/x86_64-linux-gnu/libHalf.so.12 
(0x00007f3eb201b000)
           libgdal.so.20 => /usr/lib/libgdal.so.20 (0x00007f3eb0e0d000)
           libgdcmDSED.so.2.8 => /usr/lib/x86_64-linux-gnu/libgdcmDSED.so.2.8 
(0x00007f3eb0afa000)
           libtbb.so.2 => /usr/lib/x86_64-linux-gnu/libtbb.so.2 
(0x00007f3eb08be000)
           libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f3eb06a1000)
           libgdcmIOD.so.2.8 => /usr/lib/x86_64-linux-gnu/libgdcmIOD.so.2.8 
(0x00007f3eb048b000)
           libgdcmDICT.so.2.8 => /usr/lib/x86_64-linux-gnu/libgdcmDICT.so.2.8 
(0x00007f3eb002b000)
           libgdcmjpeg8.so.2.8 => /usr/lib/x86_64-linux-gnu/libgdcmjpeg8.so.2.8 
(0x00007f3eafe03000)
           libgdcmjpeg12.so.2.8 => 
/usr/lib/x86_64-linux-gnu/libgdcmjpeg12.so.2.8 (0x00007f3eafbdb000)
           libgdcmjpeg16.so.2.8 => 
/usr/lib/x86_64-linux-gnu/libgdcmjpeg16.so.2.8 (0x00007f3eaf9b3000)
           libopenjp2.so.7 => /usr/lib/x86_64-linux-gnu/libopenjp2.so.7 
(0x00007f3eaf75d000)
           libCharLS.so.1 => /usr/lib/x86_64-linux-gnu/libCharLS.so.1 
(0x00007f3eaf516000)
           libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 
(0x00007f3eaf30f000)
           libjson-c.so.3 => /lib/x86_64-linux-gnu/libjson-c.so.3 
(0x00007f3eaf104000)
           libgdcmCommon.so.2.8 => 
/usr/lib/x86_64-linux-gnu/libgdcmCommon.so.2.8 (0x00007f3eaeedb000)
           liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 
(0x00007f3eaecb5000)
           libjbig.so.0 => /usr/lib/x86_64-linux-gnu/libjbig.so.0 
(0x00007f3eaeaa7000)
           libIex-2_2.so.12 => /usr/lib/x86_64-linux-gnu/libIex-2_2.so.12 
(0x00007f3eae889000)
           libIlmThread-2_2.so.12 => 
/usr/lib/x86_64-linux-gnu/libIlmThread-2_2.so.12 (0x00007f3eae682000)
           libarmadillo.so.8 => /usr/lib/libarmadillo.so.8 (0x00007f3eae479000)
           libproj.so.12 => /usr/lib/x86_64-linux-gnu/libproj.so.12 
(0x00007f3eae210000)
           libpoppler.so.73 => /usr/lib/x86_64-linux-gnu/libpoppler.so.73 
(0x00007f3eadd7a000)
           libfreexl.so.1 => /usr/lib/x86_64-linux-gnu/libfreexl.so.1 
(0x00007f3eadb71000)
           libqhull.so.7 => /usr/lib/x86_64-linux-gnu/libqhull.so.7 
(0x00007f3ead917000)
           libgeos_c.so.1 => /usr/lib/x86_64-linux-gnu/libgeos_c.so.1 
(0x00007f3ead6e8000)
           libepsilon.so.1 => /usr/lib/x86_64-linux-gnu/libepsilon.so.1 
(0x00007f3ead4d0000)
           libodbc.so.2 => /usr/lib/x86_64-linux-gnu/libodbc.so.2 
(0x00007f3ead263000)
           libodbcinst.so.2 => /usr/lib/x86_64-linux-gnu/libodbcinst.so.2 
(0x00007f3ead04e000)
           libkmlbase.so.1 => /usr/lib/x86_64-linux-gnu/libkmlbase.so.1 
(0x00007f3eace33000)
           libkmldom.so.1 => /usr/lib/x86_64-linux-gnu/libkmldom.so.1 
(0x00007f3eacb7c000)
           libkmlengine.so.1 => /usr/lib/x86_64-linux-gnu/libkmlengine.so.1 
(0x00007f3eac944000)
           libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 
(0x00007f3eac712000)
           libxerces-c-3.2.so => /usr/lib/x86_64-linux-gnu/libxerces-c-3.2.so 
(0x00007f3eac19e000)
           libnetcdf.so.13 => /usr/lib/x86_64-linux-gnu/libnetcdf.so.13 
(0x00007f3eabe7c000)
           libhdf5_serial.so.100 => 
/usr/lib/x86_64-linux-gnu/libhdf5_serial.so.100 (0x00007f3eab924000)
           libmfhdfalt.so.0 => /usr/lib/libmfhdfalt.so.0 (0x00007f3eab6fe000)
           libdfalt.so.0 => /usr/lib/libdfalt.so.0 (0x00007f3eab45b000)
           libogdi.so.3.2 => /usr/lib/libogdi.so.3.2 (0x00007f3eab23b000)
           libgif.so.7 => /usr/lib/x86_64-linux-gnu/libgif.so.7 
(0x00007f3eab032000)
           libgeotiff.so.2 => /usr/lib/x86_64-linux-gnu/libgeotiff.so.2 
(0x00007f3eaadfc000)
           libpq.so.5 => /usr/lib/x86_64-linux-gnu/libpq.so.5 
(0x00007f3eaabb3000)
           libdapclient.so.6 => /usr/lib/x86_64-linux-gnu/libdapclient.so.6 
(0x00007f3eaa972000)
           libdap.so.25 => /usr/lib/x86_64-linux-gnu/libdap.so.25 
(0x00007f3eaa5e2000)
           libspatialite.so.7 => /usr/lib/x86_64-linux-gnu/libspatialite.so.7 
(0x00007f3ea9e60000)
           libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 
(0x00007f3ea9bee000)
           libcurl-gnutls.so.4 => /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 
(0x00007f3ea9971000)
           libfyba.so.0 => /usr/lib/x86_64-linux-gnu/libfyba.so.0 
(0x00007f3ea971c000)
           libxml2.so.2 => /usr/lib/x86_64-linux-gnu/libxml2.so.2 
(0x00007f3ea935b000)
           libmysqlclient.so.20 => 
/usr/lib/x86_64-linux-gnu/libmysqlclient.so.20 (0x00007f3ea8da3000)
           libcrypto.so.1.1 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 
(0x00007f3ea88d8000)
           libblas.so.3 => /usr/lib/x86_64-linux-gnu/libblas.so.3 
(0x00007f3ea867d000)
           liblapack.so.3 => /usr/lib/x86_64-linux-gnu/liblapack.so.3 
(0x00007f3ea7df7000)
           libarpack.so.2 => /usr/lib/x86_64-linux-gnu/libarpack.so.2 
(0x00007f3ea7bad000)
           libsuperlu.so.5 => /usr/lib/x86_64-linux-gnu/libsuperlu.so.5 
(0x00007f3ea793d000)
           libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 
(0x00007f3ea7689000)
           libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 
(0x00007f3ea7444000)
           libnss3.so => /usr/lib/x86_64-linux-gnu/libnss3.so 
(0x00007f3ea7100000)
           libsmime3.so => /usr/lib/x86_64-linux-gnu/libsmime3.so 
(0x00007f3ea6ed4000)
           libnspr4.so => /usr/lib/x86_64-linux-gnu/libnspr4.so 
(0x00007f3ea6c97000)
           liblcms2.so.2 => /usr/lib/x86_64-linux-gnu/liblcms2.so.2 
(0x00007f3ea6a3f000)
           libgeos-3.6.2.so => /usr/lib/x86_64-linux-gnu/libgeos-3.6.2.so 
(0x00007f3ea66a6000)
           libltdl.so.7 => /usr/lib/x86_64-linux-gnu/libltdl.so.7 
(0x00007f3ea649c000)
           libminizip.so.1 => /usr/lib/x86_64-linux-gnu/libminizip.so.1 
(0x00007f3ea6291000)
           liburiparser.so.1 => /usr/lib/x86_64-linux-gnu/liburiparser.so.1 
(0x00007f3ea6076000)
           libicuuc.so.60 => /usr/lib/x86_64-linux-gnu/libicuuc.so.60 
(0x00007f3ea5cbe000)
           libhdf5_serial_hl.so.100 => 
/usr/lib/x86_64-linux-gnu/libhdf5_serial_hl.so.100 (0x00007f3ea5a9b000)
           libsz.so.2 => /usr/lib/x86_64-linux-gnu/libsz.so.2 
(0x00007f3ea5898000)
           libssl.so.1.1 => /usr/lib/x86_64-linux-gnu/libssl.so.1.1 
(0x00007f3ea560b000)
           libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 
(0x00007f3ea53c0000)
           libldap_r-2.4.so.2 => /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2 
(0x00007f3ea516e000)
           libsqlite3.so.0 => /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 
(0x00007f3ea4e65000)
           libnghttp2.so.14 => /usr/lib/x86_64-linux-gnu/libnghttp2.so.14 
(0x00007f3ea4c40000)
           libidn2.so.0 => /usr/lib/x86_64-linux-gnu/libidn2.so.0 
(0x00007f3ea4a23000)
           librtmp.so.1 => /usr/lib/x86_64-linux-gnu/librtmp.so.1 
(0x00007f3ea4807000)
           libpsl.so.5 => /usr/lib/x86_64-linux-gnu/libpsl.so.5 
(0x00007f3ea45f9000)
           libnettle.so.6 => /usr/lib/x86_64-linux-gnu/libnettle.so.6 
(0x00007f3ea43c3000)
           libgnutls.so.30 => /usr/lib/x86_64-linux-gnu/libgnutls.so.30 
(0x00007f3ea405d000)
           liblber-2.4.so.2 => /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2 
(0x00007f3ea3e4f000)
           libfyut.so.0 => /usr/lib/x86_64-linux-gnu/libfyut.so.0 
(0x00007f3ea3c46000)
           libfygm.so.0 => /usr/lib/x86_64-linux-gnu/libfygm.so.0 
(0x00007f3ea3a3f000)
           libopenblas.so.0 => /usr/lib/x86_64-linux-gnu/libopenblas.so.0 
(0x00007f3ea1799000)
           libgfortran.so.4 => /usr/lib/x86_64-linux-gnu/libgfortran.so.4 
(0x00007f3ea13ba000)
           libnssutil3.so => /usr/lib/x86_64-linux-gnu/libnssutil3.so 
(0x00007f3ea118b000)
           libplc4.so => /usr/lib/x86_64-linux-gnu/libplc4.so 
(0x00007f3ea0f86000)
           libplds4.so => /usr/lib/x86_64-linux-gnu/libplds4.so 
(0x00007f3ea0d82000)
           libicudata.so.60 => /usr/lib/x86_64-linux-gnu/libicudata.so.60 
(0x00007f3e9f1d9000)
           libaec.so.0 => /usr/lib/x86_64-linux-gnu/libaec.so.0 
(0x00007f3e9efd1000)
           libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 
(0x00007f3e9ecfb000)
           libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 
(0x00007f3e9eac9000)
           libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 
(0x00007f3e9e8c5000)
           libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 
(0x00007f3e9e6ba000)
           libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 
(0x00007f3e9e49f000)
           libsasl2.so.2 => /usr/lib/x86_64-linux-gnu/libsasl2.so.2 
(0x00007f3e9e284000)
           libgssapi.so.3 => /usr/lib/x86_64-linux-gnu/libgssapi.so.3 
(0x00007f3e9e043000)
           libunistring.so.2 => /usr/lib/x86_64-linux-gnu/libunistring.so.2 
(0x00007f3e9dcc5000)
           libhogweed.so.4 => /usr/lib/x86_64-linux-gnu/libhogweed.so.4 
(0x00007f3e9da91000)
           libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 
(0x00007f3e9d810000)
           libp11-kit.so.0 => /usr/lib/x86_64-linux-gnu/libp11-kit.so.0 
(0x00007f3e9d4e1000)
           libtasn1.so.6 => /usr/lib/x86_64-linux-gnu/libtasn1.so.6 
(0x00007f3e9d2ce000)
           libquadmath.so.0 => /usr/lib/x86_64-linux-gnu/libquadmath.so.0 
(0x00007f3e9d08e000)
           libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 
(0x00007f3e9ce8a000)
           libheimntlm.so.0 => /usr/lib/x86_64-linux-gnu/libheimntlm.so.0 
(0x00007f3e9cc81000)
           libkrb5.so.26 => /usr/lib/x86_64-linux-gnu/libkrb5.so.26 
(0x00007f3e9c9f4000)
           libasn1.so.8 => /usr/lib/x86_64-linux-gnu/libasn1.so.8 
(0x00007f3e9c752000)
           libhcrypto.so.4 => /usr/lib/x86_64-linux-gnu/libhcrypto.so.4 
(0x00007f3e9c51c000)
           libroken.so.18 => /usr/lib/x86_64-linux-gnu/libroken.so.18 
(0x00007f3e9c306000)
           libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 
(0x00007f3e9c0fe000)
           libwind.so.0 => /usr/lib/x86_64-linux-gnu/libwind.so.0 
(0x00007f3e9bed5000)
           libheimbase.so.1 => /usr/lib/x86_64-linux-gnu/libheimbase.so.1 
(0x00007f3e9bcc6000)
           libhx509.so.5 => /usr/lib/x86_64-linux-gnu/libhx509.so.5 
(0x00007f3e9ba7c000)
           libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 
(0x00007f3e9b844000)
   ```
   
   and these are the immediate shared library dependencies
   
   ```
   readelf -d build/libmxnet.so | grep NEEDED
    0x0000000000000001 (NEEDED)             Shared library: [libdl.so.2]
    0x0000000000000001 (NEEDED)             Shared library: 
[libmkl_intel_lp64.so]
    0x0000000000000001 (NEEDED)             Shared library: 
[libmkl_intel_thread.so]
    0x0000000000000001 (NEEDED)             Shared library: [libmkl_core.so]
    0x0000000000000001 (NEEDED)             Shared library: [libiomp5.so]
    0x0000000000000001 (NEEDED)             Shared library: [librt.so.1]
    0x0000000000000001 (NEEDED)             Shared library: 
[libopencv_imgcodecs.so.3.2]
    0x0000000000000001 (NEEDED)             Shared library: 
[libopencv_imgproc.so.3.2]
    0x0000000000000001 (NEEDED)             Shared library: 
[libopencv_core.so.3.2]
    0x0000000000000001 (NEEDED)             Shared library: [libpthread.so.0]
    0x0000000000000001 (NEEDED)             Shared library: [libstdc++.so.6]
    0x0000000000000001 (NEEDED)             Shared library: [libm.so.6]
    0x0000000000000001 (NEEDED)             Shared library: [libgcc_s.so.1]
    0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
    0x0000000000000001 (NEEDED)             Shared library: 
[ld-linux-x86-64.so.2]
   ```


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to