Bug #151
Intel IPP Libs seem to behave different when liked without explict rpath
Status: | Closed | Start date: | 2013-02-20 | |
---|---|---|---|---|
Priority: | Urgent | Due date: | ||
Assignee: | - | % Done: | 100% | |
Category: | - | |||
Target version: | icl-8.0 |
Description
When linking projects using the auto-generated package-config files,
all libraries are listed fine in the linker/compiler commands.
However:
There seems to be some specialty for the Intel IPP libraries under Lucid that
make them not beeing found by the run-time linker
adding
LDFLAGS=-Wl,-rpath=/vol/nivision/share/IPP/7.06/ipp/lib/ia32 \
-Wl,-rpath=/vol/nivision/share/IPP/7.06/lib/ia32
in the project's Makefile.custom works, however it is not clear to me, why
the Intel IPP libraries behave so differently:
[_95%] [obj] app/obj/track-3D.o
g++ -c -Wno-delete-non-virtual-dtor -Isrc -Iapp -fPIC -Wall -I/vol/nivision/include/bullet -I/vol/nivision/include/icl-8.0 -I/usr/include/qt4 -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtCore -I/vol/nivision/share/IPP/7.06/ipp/include -I/vol/nivision/share/MKL/10.3.11/mkl/include -I/vol/nivision/include/CL -I/usr/include/opencv -I/usr/include/dc1394 -I/vol/nivision/include -I/vol/nivision/include/libfreenect -I/homes/celbrech/projects/_ICL_cmake_revise_branch/ICLGeom/src -I/homes/celbrech/projects/_ICL_cmake_revise_branch/ICLCV/src -I/homes/celbrech/projects/_ICL_cmake_revise_branch/ICLQt/src -I/homes/celbrech/projects/_ICL_cmake_revise_branch/ICLIO/src -I/homes/celbrech/projects/_ICL_cmake_revise_branch/ICLFilter/src -I/homes/celbrech/projects/_ICL_cmake_revise_branch/ICLCore/src -I/homes/celbrech/projects/_ICL_cmake_revise_branch/ICLMath/src -I/homes/celbrech/projects/_ICL_cmake_revise_branch/ICLUtils/src -I/homes/celbrech/projects/_ICL_cmake_revise_branch/ICLMarkers/src -I/homes/celbrech/projects/_ICL_cmake_revise_branch/build/src -O4 -march=native -mtune=native -funroll-loops -fopenmp -DICL_32BIT -DICL_SYSTEM_LINUX -DHAVE_LIBZ -DHAVE_LIBJPEG -DHAVE_LIBPNG -DHAVE_IPP -DHAVE_MKL -DHAVE_OPENCL -DCL_USE_DEPRECATED_OPENCL_1_1_APIS -DHAVE_OPENCV -DHAVE_LIBDC -DHAVE_VIDEODEV -DHAVE_XINE -DHAVE_QT -DHAVE_OPENGL -DHAVE_GLX -DHAVE_LIBFREENECT app/track-3D.cpp -o app/obj/track-3D.o
[_97%] [app] bin/track-3D
g++ app/obj/track-3D.o -Wno-delete-non-virtual-dtor -Isrc -Iapp -fPIC -Wall -I/vol/nivision/include/bullet -I/vol/nivision/include/icl-8.0 -I/usr/include/qt4 -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtCore -I/vol/nivision/share/IPP/7.06/ipp/include -I/vol/nivision/share/MKL/10.3.11/mkl/include -I/vol/nivision/include/CL -I/usr/include/opencv -I/usr/include/dc1394 -I/vol/nivision/include -I/vol/nivision/include/libfreenect -I/homes/celbrech/projects/_ICL_cmake_revise_branch/ICLGeom/src -I/homes/celbrech/projects/_ICL_cmake_revise_branch/ICLCV/src -I/homes/celbrech/projects/_ICL_cmake_revise_branch/ICLQt/src -I/homes/celbrech/projects/_ICL_cmake_revise_branch/ICLIO/src -I/homes/celbrech/projects/_ICL_cmake_revise_branch/ICLFilter/src -I/homes/celbrech/projects/_ICL_cmake_revise_branch/ICLCore/src -I/homes/celbrech/projects/_ICL_cmake_revise_branch/ICLMath/src -I/homes/celbrech/projects/_ICL_cmake_revise_branch/ICLUtils/src -I/homes/celbrech/projects/_ICL_cmake_revise_branch/ICLMarkers/src -I/homes/celbrech/projects/_ICL_cmake_revise_branch/build/src -O4 -march=native -mtune=native -funroll-loops -fopenmp -DICL_32BIT -DICL_SYSTEM_LINUX -DHAVE_LIBZ -DHAVE_LIBJPEG -DHAVE_LIBPNG -DHAVE_IPP -DHAVE_MKL -DHAVE_OPENCL -DCL_USE_DEPRECATED_OPENCL_1_1_APIS -DHAVE_OPENCV -DHAVE_LIBDC -DHAVE_VIDEODEV -DHAVE_XINE -DHAVE_QT -DHAVE_OPENGL -DHAVE_GLX -DHAVE_LIBFREENECT -Llib -lICLPhysics -Wl,-rpath=`pwd`/lib -Wl,-rpath=/vol/nivision/lib /usr/lib/libGLU.so /usr/lib/libGL.so /usr/lib/libSM.so /usr/lib/libICE.so /usr/lib/libX11.so /usr/lib/libXext.so /usr/lib/libGLEW.so /usr/lib/libdc1394.so /vol/nivision/lib/libxine.so /vol/nivision/lib/libfreenect.so /vol/nivision/lib/libfreenect_sync.so /usr/lib/libQtOpenGL.so /usr/lib/libQtGui.so /usr/lib/libQtCore.so /usr/lib/libcxcore.so /usr/lib/libcv.so /usr/lib/libml.so /usr/lib/libhighgui.so /usr/lib/libcvaux.so /usr/lib/libz.so /usr/lib/libjpeg.so /usr/lib/libpng.so /vol/nivision/share/IPP/7.06/ipp/lib/ia32/libippcore.so /vol/nivision/share/IPP/7.06/ipp/lib/ia32/libippi.so /vol/nivision/share/IPP/7.06/ipp/lib/ia32/libipps.so /vol/nivision/share/IPP/7.06/ipp/lib/ia32/libippcv.so /vol/nivision/share/IPP/7.06/ipp/lib/ia32/libippm.so /vol/nivision/share/IPP/7.06/ipp/lib/ia32/libippcc.so /vol/nivision/share/IPP/7.06/lib/ia32/libiomp5.so /vol/nivision/share/MKL/10.3.11/mkl/lib/ia32/libmkl_intel.so /vol/nivision/share/MKL/10.3.11/mkl/lib/ia32/libmkl_intel_thread.so /vol/nivision/share/MKL/10.3.11/mkl/lib/ia32/libmkl_core.so /vol/nivision/lib/libOpenCL.so -L/vol/nivision/lib -lBulletSoftBody -lBulletDynamics -lBulletCollision -lLinearMath -lICLMarkers -lICLGeom -lICLCV -lICLQt -lICLIO -lICLFilter -lICLCore -lICLMath -lICLUtils -lpthread -Wl,-rpath=/vol/nivision/lib -o bin/track-3D
[100%] [build] custom build
[pertinax:~/projects/ICLProjects/ICLPhysics/trunk]> bin/track-3D
bin/track-3D: error while loading shared libraries: libippcore.so.7.0: cannot open shared object file: No such file or directory
[pertinax:~/projects/ICLProjects/ICLPhysics/trunk]> ldd bin/track-3D
linux-gate.so.1 => (0xb7864000)
libICLPhysics.so => /homes/celbrech/projects/ICLProjects/ICLPhysics/trunk/lib/libICLPhysics.so (0xb77c7000)
libGLU.so.1 => /usr/lib/libGLU.so.1 (0xb7724000)
libGL.so.1 => /usr/lib/libGL.so.1 (0xb7638000)
libSM.so.6 => /usr/lib/libSM.so.6 (0xb762f000)
libICE.so.6 => /usr/lib/libICE.so.6 (0xb7616000)
libX11.so.6 => /usr/lib/libX11.so.6 (0xb74f9000)
libXext.so.6 => /usr/lib/libXext.so.6 (0xb74e9000)
libGLEW.so.1.5 => /usr/lib/libGLEW.so.1.5 (0xb749c000)
libdc1394.so.22 => /usr/lib/libdc1394.so.22 (0xb742a000)
libxine.so.1 => /vol/nivision/lib/libxine.so.1 (0xb73d7000)
libfreenect.so.0.0 => /vol/nivision/lib/libfreenect.so.0.0 (0xb73ce000)
libfreenect_sync.so.0.0 => /vol/nivision/lib/libfreenect_sync.so.0.0 (0xb73ca000)
libQtOpenGL.so.4 => /usr/lib/libQtOpenGL.so.4 (0xb72fc000)
libQtGui.so.4 => /usr/lib/libQtGui.so.4 (0xb6880000)
libQtCore.so.4 => /usr/lib/libQtCore.so.4 (0xb6602000)
libcxcore.so.4 => /usr/lib/libcxcore.so.4 (0xb63c1000)
libcv.so.4 => /usr/lib/libcv.so.4 (0xb6185000)
libml.so.4 => /usr/lib/libml.so.4 (0xb610c000)
libhighgui.so.4 => /usr/lib/libhighgui.so.4 (0xb60cc000)
libcvaux.so.4 => /usr/lib/libcvaux.so.4 (0xb5fe1000)
libz.so.1 => /lib/libz.so.1 (0xb5fcc000)
libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0xb5fab000)
libpng12.so.0 => /lib/libpng12.so.0 (0xb5f86000)
libippcore.so.7.0 => not found
libippi.so.7.0 => not found
libipps.so.7.0 => not found
libippcv.so.7.0 => not found
libippm.so.7.0 => not found
libippcc.so.7.0 => not found
libiomp5.so => not found
/vol/nivision/share/MKL/10.3.11/mkl/lib/ia32/libmkl_intel.so (0xb5c2d000)
/vol/nivision/share/MKL/10.3.11/mkl/lib/ia32/libmkl_intel_thread.so (0xb56b6000)
/vol/nivision/share/MKL/10.3.11/mkl/lib/ia32/libmkl_core.so (0xb4ed9000)
libOpenCL.so.1 => /usr/lib/libOpenCL.so.1 (0xb4ed3000)
libBulletSoftBody.so.2.81 => /vol/nivision/lib/libBulletSoftBody.so.2.81 (0xb4e8b000)
libBulletDynamics.so.2.81 => /vol/nivision/lib/libBulletDynamics.so.2.81 (0xb4e31000)
libBulletCollision.so.2.81 => /vol/nivision/lib/libBulletCollision.so.2.81 (0xb4d46000)
libLinearMath.so.2.81 => /vol/nivision/lib/libLinearMath.so.2.81 (0xb4d24000)
libICLMarkers.so.8.0 => /vol/nivision/lib/libICLMarkers.so.8.0 (0xb4ca8000)
libICLGeom.so.8.0 => /vol/nivision/lib/libICLGeom.so.8.0 (0xb4b8f000)
libICLCV.so.8.0 => /vol/nivision/lib/libICLCV.so.8.0 (0xb4aef000)
libICLQt.so.8.0 => /vol/nivision/lib/libICLQt.so.8.0 (0xb48d2000)
libICLIO.so.8.0 => /vol/nivision/lib/libICLIO.so.8.0 (0xb472d000)
libICLFilter.so.8.0 => /vol/nivision/lib/libICLFilter.so.8.0 (0xb44d8000)
libICLCore.so.8.0 => /vol/nivision/lib/libICLCore.so.8.0 (0xb4312000)
libICLMath.so.8.0 => /vol/nivision/lib/libICLMath.so.8.0 (0xb41b0000)
libICLUtils.so.8.0 => /vol/nivision/lib/libICLUtils.so.8.0 (0xb4117000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb40fe000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb4008000)
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb3fe1000)
libgomp.so.1 => /usr/lib/libgomp.so.1 (0xb3fd3000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb3fb4000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb3e5a000)
libippcore.so.7.0 => not found
libippi.so.7.0 => not found
libipps.so.7.0 => not found
libippcv.so.7.0 => not found
libippm.so.7.0 => not found
libippcc.so.7.0 => not found
libiomp5.so => not found
libatiuki.so.1 => /usr/lib/libatiuki.so.1 (0xb3e3f000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb3e3b000)
libuuid.so.1 => /lib/libuuid.so.1 (0xb3e36000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb3e1b000)
libXmu.so.6 => /usr/lib/libXmu.so.6 (0xb3e04000)
libXi.so.6 => /usr/lib/libXi.so.6 (0xb3df6000)
libraw1394.so.11 => /usr/lib/libraw1394.so.11 (0xb3de8000)
libusb-1.0.so.0 => /lib/libusb-1.0.so.0 (0xb3ddb000)
librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb3dd1000)
libresolv.so.2 => /lib/tls/i686/cmov/libresolv.so.2 (0xb3dbd000)
libnsl.so.1 => /lib/tls/i686/cmov/libnsl.so.1 (0xb3da6000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb3d30000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb3d26000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb3cf5000)
libaudio.so.2 => /usr/lib/libaudio.so.2 (0xb3cde000)
libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0xb3c14000)
libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb3bd5000)
libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb3bcf000)
libavformat.so.52 => /usr/lib/i686/cmov/libavformat.so.52 (0xb3ad0000)
libavcodec.so.52 => /usr/lib/i686/cmov/libavcodec.so.52 (0xb328d000)
libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0xb2eb8000)
libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0xb2e22000)
libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0xb2e06000)
libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xb2dde000)
libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xb2dd2000)
libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0xb2d34000)
libcairo.so.2 => /usr/lib/libcairo.so.2 (0xb2cba000)
libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xb2c77000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xb2c5c000)
libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb2c57000)
libtiff.so.4 => /usr/lib/libtiff.so.4 (0xb2bfc000)
libjasper.so.1 => /usr/lib/libjasper.so.1 (0xb2baf000)
libswscale.so.0 => /usr/lib/i686/cmov/libswscale.so.0 (0xb2b64000)
libippcore.so.7.0 => /vol/nivision/share/IPP/7.06/ipp/lib/ia32/libippcore.so.7.0 (0xb2b4d000)
libippi.so.7.0 => /vol/nivision/share/IPP/7.06/ipp/lib/ia32/libippi.so.7.0 (0xb2ade000)
libipps.so.7.0 => /vol/nivision/share/IPP/7.06/ipp/lib/ia32/libipps.so.7.0 (0xb2a9e000)
libippcv.so.7.0 => /vol/nivision/share/IPP/7.06/ipp/lib/ia32/libippcv.so.7.0 (0xb2a85000)
libippm.so.7.0 => /vol/nivision/share/IPP/7.06/ipp/lib/ia32/libippm.so.7.0 (0xb2a69000)
libippcc.so.7.0 => /vol/nivision/share/IPP/7.06/ipp/lib/ia32/libippcc.so.7.0 (0xb2a56000)
libiomp5.so => /vol/nivision/share/IPP/7.06/lib/ia32/libiomp5.so (0xb299a000)
/lib/ld-linux.so.2 (0xb7865000)
libXau.so.6 => /usr/lib/libXau.so.6 (0xb2995000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb298f000)
libXt.so.6 => /usr/lib/libXt.so.6 (0xb293c000)
libexpat.so.1 => /lib/libexpat.so.1 (0xb2914000)
libpcre.so.3 => /lib/libpcre.so.3 (0xb28e3000)
libavutil.so.49 => /usr/lib/i686/cmov/libavutil.so.49 (0xb28d2000)
libbz2.so.1.0 => /lib/libbz2.so.1.0 (0xb28c0000)
libgsm.so.1 => /usr/lib/libgsm.so.1 (0xb28b2000)
libschroedinger-1.0.so.0 => /usr/lib/libschroedinger-1.0.so.0 (0xb2835000)
libspeex.so.1 => /usr/lib/sse2/libspeex.so.1 (0xb2818000)
libtheora.so.0 => /usr/lib/libtheora.so.0 (0xb27c6000)
libvorbisenc.so.2 => /usr/lib/libvorbisenc.so.2 (0xb26ca000)
libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0xb26a1000)
libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xb269c000)
libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xb2694000)
libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xb268a000)
libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0xb2686000)
libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0xb2682000)
libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb267b000)
libselinux.so.1 => /lib/libselinux.so.1 (0xb2660000)
libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0xb2606000)
libdirectfb-1.2.so.0 => /usr/lib/libdirectfb-1.2.so.0 (0xb258f000)
libfusion-1.2.so.0 => /usr/lib/libfusion-1.2.so.0 (0xb2584000)
libdirect-1.2.so.0 => /usr/lib/libdirect-1.2.so.0 (0xb256e000)
libxcb-render-util.so.0 => /usr/lib/libxcb-render-util.so.0 (0xb2569000)
libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0xb2561000)
liboil-0.3.so.0 => /usr/lib/liboil-0.3.so.0 (0xb24f1000)
libogg.so.0 => /usr/lib/libogg.so.0 (0xb24ea000)
[pertinax:~/projects/ICLProjects/ICLPhysics/trunk]> ls /vol/nivision/share/IPP/7.06/ipp/lib/ia32/libippcore.so
/vol/nivision/share/IPP/7.06/ipp/lib/ia32/libippcore.so
[pertinax:~/projects/ICLProjects/ICLPhysics/trunk]> ls -lah /vol/nivision/share/IPP/7.06/ipp/lib/ia32/libippcore.so
lrwxrwxrwx 1 celbrech nivision 19 2012-03-27 09:05 /vol/nivision/share/IPP/7.06/ipp/lib/ia32/libippcore.so -> ./libippcore.so.7.0
History
#1 Updated by Christof Elbrechter over 11 years ago
- Target version set to icl-8.0
#2 Updated by Christof Elbrechter over 11 years ago
This is due to Intel IPP's run-time linker (The magic waterfall process), which needs the run-path at run-time
#3 Updated by Christof Elbrechter over 11 years ago
- Status changed from New to Closed
- % Done changed from 0 to 100
solved