Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.
7956 Discussions

undefined reference to `__intel_sse2_strcpy while loadind shared module'

Santosh_Singh
Beginner
1,060 Views
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
1,060 Views
Please show the expansion of LD_LIBRARY_PATH
0 Kudos
Santosh_Singh
Beginner
1,060 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.
0 Kudos
Steven_L_Intel1
Employee
1,060 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?
0 Kudos
Santosh_Singh
Beginner
1,060 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.
0 Kudos
Steven_L_Intel1
Employee
1,060 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.
0 Kudos
JenniferJ
Moderator
1,060 Views

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

Jennifer

0 Kudos
Santosh_Singh
Beginner
1,060 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
0 Kudos
TimP
Honored Contributor III
1,060 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.
0 Kudos
Reply