Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Santosh_Singh
Beginner
155 Views

undefined reference to `__intel_sse2_strcpy while loadind shared module'

I am getting the error message at run time when trying to load the shared library with Intel12.1 compiler:
failed to load fluxlogging

File "/nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Flux/linx64/bin/pyExt/Logging.py", line 26, in swig_import_helper
_mod = imp.load_module('_Logging', fp, pathname, description)
ImportError: /nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Flux/linx64/bin/pyExt/_Logging.so: undefined symbol: __intel_sse2_strcpy

below is the command to build the shared object
icpc -o /nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Builds/linx64/Logging/_Logging.so -O3 -openmp -shared /nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Builds/linx64/Logging/Logging_wrap.os-L/nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Flux/linx64/bin/stub-L/nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Flux/linx64/bin -L/nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Libraries/linx64/ThirdParty/lib/boost -L/nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Python/linx64/lib/python2.7/config -L/nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Libraries/linx64/ThirdParty/lib/glog -L/nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Flux/linx64/lib/pyExt -L/nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Python/linx64/lib/python2.7/config -lFlux.Logging -ldl -lglog -lboost_thread -lpthread -lpython2.7 -lutil -lpython2.7 -lpthread -ldl -lutil -lirc

Build Machine Info:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 44
model name : Intel Xeon CPU X5650 @ 2.67GHz
stepping : 2
cpu MHz : 2659.818
cache size : 12288 KB
physical id : 1
siblings : 6
core id : 0
cpu cores : 6
apicid : 32
initial apicid : 32
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb
rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pd
cm dca sse4_1 sse4_2 popcnt aes lahf_lm ida arat tpr_shadow vnmi flexpriority ept vpid
bogomips : 5319.63
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:

The LD_LIBRARY_PATH is correctly set. Can you please help in this?
0 Kudos
8 Replies
Steven_L_Intel1
Employee
155 Views

Please show the expansion of LD_LIBRARY_PATH
Santosh_Singh
Beginner
155 Views

Hi Steve:

I have installed the Intel Compiler package at /nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Tools/linx64/Compilers/intel

spsingh@punsuppalalnx[234] echo $LD_LIBRARY_PATH
/nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Tools/linx64/Compilers/intel/12.1/09/compiler/lib/intel64

Thanks.
Steven_L_Intel1
Employee
155 Views

It looks as if you are using Intel C++, not Fortran, right? Can you determine what the LD_LIBRARY_PATH is in the context of the Python interpreter?
Santosh_Singh
Beginner
155 Views

Hi Steve:
I am using the Intel C++ libraries. For the Python Interpreter theLD_LIBRARY_PATH is/nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Python/linx64/lib/python2.7/config
spsingh@punsuppalalnx[112] ls /nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Python/linx64/lib/python2.7/config
config.c config.c.in install-sh libpython2.7.a Makefile makesetup python.o Setup Setup.config Setup.local
Thanks.
Steven_L_Intel1
Employee
155 Views

Ok - I am going to move your thread over to the Intel C++ section. But I think that Python will need to have the Intel lib path added to LD_LIBRARY_PATH as well.
JenniferJ
Moderator
155 Views

Try linking the libirc.a into your shared .so file using "-static-intel"; this might be the easiest.

Jennifer

Santosh_Singh
Beginner
155 Views

Hi Jennifer:

I tried linking the libirc.a into my shared using "-static-intel, but I am getting the compilation error

spsingh@punsuppalalnx[185] icpc -o /nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Builds/linx64/Kernel/libFlux.Kernel.so -fPIC -O3 -openmp -static-intel -shared /nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Builds/linx64/Kernel/Database/src/Database.os /nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Builds/linx64/Kernel/Database/src/debugTools.os /nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Builds/linx64/Kernel/RandomNumberGenerators/src/randomNumberGenerators.os /nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Builds/linx64/Kernel/MemoryManagement/src/ArrayTracer.os /nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Builds/linx64/Kernel/MemoryManagement/src/ArrayScavenger.os /nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Builds/linx64/Kernel/AType/src/AType.os /nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Builds/linx64/Kernel/System/src/timer.os -L/nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Flux/linx64/bin/stub -L/nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Flux/linx64/bin -L/nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Libraries/linx64/ThirdParty/lib/boost -L/nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Libraries/linx64/ThirdParty/lib/glog -lglog -lboost_thread -lirc
icpc: warning #10237: -lcilkrts linked in dynamically, static library not available
ld: /nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Tools/linx64/Compilers/intel/12.1/09/compiler/lib/intel64/libiomp5.a(kmp_csupport.o): relocation R_X86_64_32 against `__kmp_invoke_task_func' can not be used when making a shared object; recompile with -fPIC
/nfs/punlinuxvault2/fcdata4/dev/spsingh/development/flux/AFD14.5/Tools/linx64/Compilers/intel/12.1/09/compiler/lib/intel64/libiomp5.a: could not read symbols: Bad value
Thanks.
Santosh
TimP
Black Belt
155 Views

Linking both libcilkrts and libiomp5 may produce difficulties. More so, including static bits of libiomp5 in a .so is not recommended. It would likely lead to multiple instances of OpenMP if any other part of the application wants OpenMP.
It looks as if you have exceeded the 2GB limit for static data and code in the small memory model and may need -mc-model=medium.
Reply