OpenCV 3.0 beta cannot compile with IPP on 32 bit (Bug #4070)
Description
It works fine on 64 but not 32. All logs (including compile flags) here:
http://jenkins.ros.org/job/ros-indigo-opencv3_binarydeb_trusty_i386/10/
From the logs:
cd /tmp/buildd/ros-indigo-opencv3-2.9.2-1trusty-20141217-1243/obj-i686-linux-gnu/modules/imgproc && /usr/bin/cmake -E cmake_link_script CMakeFiles/opencv_imgproc.dir/link.txt --verbose=1
/usr/lib/ccache/i686-linux-gnu-g++ -fPIC -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -msse3 -mfpmath=sse -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden -O2 -g -DNDEBUG -shared -Wl,-soname,libopencv_imgproc.so.3.0 -o ../../lib/libopencv_imgproc.so.3.0.0 CMakeFiles/opencv_imgproc.dir/src/geometry.cpp.o CMakeFiles/opencv_imgproc.dir/src/canny.cpp.o CMakeFiles/opencv_imgproc.dir/src/matchcontours.cpp.o CMakeFiles/opencv_imgproc.dir/src/drawing.cpp.o CMakeFiles/opencv_imgproc.dir/src/segmentation.cpp.o CMakeFiles/opencv_imgproc.dir/src/morph.cpp.o CMakeFiles/opencv_imgproc.dir/src/utils.cpp.o CMakeFiles/opencv_imgproc.dir/src/phasecorr.cpp.o CMakeFiles/opencv_imgproc.dir/src/smooth.cpp.o CMakeFiles/opencv_imgproc.dir/src/emd.cpp.o CMakeFiles/opencv_imgproc.dir/src/floodfill.cpp.o CMakeFiles/opencv_imgproc.dir/src/hough.cpp.o CMakeFiles/opencv_imgproc.dir/src/generalized_hough.cpp.o CMakeFiles/opencv_imgproc.dir/src/linefit.cpp.o CMakeFiles/opencv_imgproc.dir/src/lsd.cpp.o CMakeFiles/opencv_imgproc.dir/src/thresh.cpp.o CMakeFiles/opencv_imgproc.dir/src/clahe.cpp.o CMakeFiles/opencv_imgproc.dir/src/samplers.cpp.o CMakeFiles/opencv_imgproc.dir/src/subdivision2d.cpp.o CMakeFiles/opencv_imgproc.dir/src/gabor.cpp.o CMakeFiles/opencv_imgproc.dir/src/rotcalipers.cpp.o CMakeFiles/opencv_imgproc.dir/src/demosaicing.cpp.o CMakeFiles/opencv_imgproc.dir/src/grabcut.cpp.o CMakeFiles/opencv_imgproc.dir/src/contours.cpp.o CMakeFiles/opencv_imgproc.dir/src/intersection.cpp.o CMakeFiles/opencv_imgproc.dir/src/imgwarp.cpp.o CMakeFiles/opencv_imgproc.dir/src/hershey_fonts.cpp.o CMakeFiles/opencv_imgproc.dir/src/accum.cpp.o CMakeFiles/opencv_imgproc.dir/src/connectedcomponents.cpp.o CMakeFiles/opencv_imgproc.dir/src/min_enclosing_triangle.cpp.o CMakeFiles/opencv_imgproc.dir/src/undistort.cpp.o CMakeFiles/opencv_imgproc.dir/src/deriv.cpp.o CMakeFiles/opencv_imgproc.dir/src/shapedescr.cpp.o CMakeFiles/opencv_imgproc.dir/src/tables.cpp.o CMakeFiles/opencv_imgproc.dir/src/moments.cpp.o CMakeFiles/opencv_imgproc.dir/src/filter.cpp.o CMakeFiles/opencv_imgproc.dir/src/featureselect.cpp.o CMakeFiles/opencv_imgproc.dir/src/color.cpp.o CMakeFiles/opencv_imgproc.dir/src/blend.cpp.o CMakeFiles/opencv_imgproc.dir/src/convhull.cpp.o CMakeFiles/opencv_imgproc.dir/src/distransform.cpp.o CMakeFiles/opencv_imgproc.dir/src/colormap.cpp.o CMakeFiles/opencv_imgproc.dir/src/sumpixels.cpp.o CMakeFiles/opencv_imgproc.dir/src/cornersubpix.cpp.o CMakeFiles/opencv_imgproc.dir/src/pyramids.cpp.o CMakeFiles/opencv_imgproc.dir/src/templmatch.cpp.o CMakeFiles/opencv_imgproc.dir/src/approx.cpp.o CMakeFiles/opencv_imgproc.dir/src/corner.cpp.o CMakeFiles/opencv_imgproc.dir/src/histogram.cpp.o CMakeFiles/opencv_imgproc.dir/opencl_kernels_imgproc.cpp.o ../../lib/libopencv_core.so.3.0.0 -ldl -lm -lpthread -lrt ../../../3rdparty/ippicv/unpack/ippicv_lnx/lib/ia32/libippicv.a -Wl,-rpath,/tmp/buildd/ros-indigo-opencv3-2.9.2-1trusty-20141217-1243/obj-i686-linux-gnu/lib:
/usr/bin/ld: ../../../3rdparty/ippicv/unpack/ippicv_lnx/lib/ia32/libippicv.a(jmp_ippiResizeGetBufferSize_16s_as.s.o): relocation R_386_GOTOFF against undefined symbol `ippicvJumpIndexForMergedLibs' can not be used when making a shared object
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
make4: *** [lib/libopencv_imgproc.so.3.0.0] Error 1
Associated revisions
Merge pull request #4070 from techfort:fixpythonsample
History
Updated by Ilya Lavrenov about 10 years ago
- Assignee set to Alexander Alekhin
Updated by Vadim Pisarevsky about 10 years ago
Maksim, could you try to reproduce the problem?
- Assignee changed from Alexander Alekhin to Maksim Shabunin
Updated by Vincent Rabaud almost 10 years ago
I thought it would have been fixed by https://github.com/Itseez/opencv/commit/7a52c3d9f18794c73b08ecb9a697a734695c2d5b#diff-85cd1a6b69f18d279359ed4159576fdfR105 but it still creates a problem on our buildfarm with the OpenCV version from today: http://jenkins.ros.org/job/ros-hydro-opencv3_binarydeb_precise_i386/7/console
Updated by Vadim Pisarevsky almost 10 years ago
Hi Vincent,
I can not reproduce the bug on Ubuntu 14.04 and the fresh snapshot from master. Looking at the log I suspect that some older version of OpenCV is used, because the OpenCV is clearly build as shared libs and yet IPPICV is linked to it. In the current master IPP is disabled when you build OpenCV as shared libs on 32-bit Linux. Is it possible to supply the output of CMake command that generated makefiles?
Updated by Vincent Rabaud almost 10 years ago
ok, you can close: we are not cross-compiling on the build farm so there is actually no proper CMake way for us to check the architecture and that's what's failing.
Updated by Cyd L almost 10 years ago
Hi guys,
I don't know if it's here I have to write.
I have the same problem when im installing opencv3.0.0-beta
mkdir release
cd release/
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_ZLIB=ON -D WITH_V4L=ON -D WITH_GSTREAMER=ON -D WITH_OPENEXR=ON -D WITH_UNICAP=ON -D BUILD_PYTHON_SUPPORT=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON ..
make ( my problem comes here.. )
[ 28%] Building CXX object modules/imgproc/CMakeFiles/opencv_imgproc.dir/src/connectedcomponents.cpp.o
[ 28%] Building CXX object modules/imgproc/CMakeFiles/opencv_imgproc.dir/src/accum.cpp.o
[ 28%] Building CXX object modules/imgproc/CMakeFiles/opencv_imgproc.dir/src/emd.cpp.o
[ 28%] Building CXX object modules/imgproc/CMakeFiles/opencv_imgproc.dir/src/deriv.cpp.o
[ 28%] Building CXX object modules/imgproc/CMakeFiles/opencv_imgproc.dir/opencl_kernels_imgproc.cpp.o
Linking CXX shared library ../../lib/libopencv_imgproc.so
/usr/bin/ld: ../../../3rdparty/ippicv/unpack/ippicv_lnx/lib/ia32/libippicv.a(jmp_ippiResizeGetBufferSize_16s_as.s.o): relocation R_386_GOTOFF against undefined symbol `ippicvJumpIndexForMergedLibs' can not be used when making a shared object
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
make2: * [lib/libopencv_imgproc.so.3.0.0] Erreur 1
make1: [modules/imgproc/CMakeFiles/opencv_imgproc.dir/all] Erreur 2
make: ** [all] Erreur 2
Ubuntu LTS 14.04 (desktop) and Kali Linux 3.18.0-kali3-686-pae (eEe-pc)
Python 2.7
I just want to report this bug.
Cya
Have a nice day
Updated by Vadim Pisarevsky almost 10 years ago
fixed in https://github.com/Itseez/opencv/pull/3794 (IPP is disabled in certain configurations)
- Status changed from New to Done