From dcd84de33de60c5dba962770331cb123e8adb282 Mon Sep 17 00:00:00 2001 From: Juan RP Date: Wed, 10 Dec 2014 17:41:52 +0100 Subject: [PATCH] opencv: unbreak x86; remove unnecessary rdeps; simplify. --- srcpkgs/opencv/patches/pkgconfig.patch | 34 ++++++++++++++++++ srcpkgs/opencv/patches/x86_asmfix.patch | 46 +++++++++++++++++++++++++ srcpkgs/opencv/template | 13 +++---- 3 files changed, 85 insertions(+), 8 deletions(-) create mode 100644 srcpkgs/opencv/patches/pkgconfig.patch create mode 100644 srcpkgs/opencv/patches/x86_asmfix.patch diff --git a/srcpkgs/opencv/patches/pkgconfig.patch b/srcpkgs/opencv/patches/pkgconfig.patch new file mode 100644 index 00000000000..de475d92f36 --- /dev/null +++ b/srcpkgs/opencv/patches/pkgconfig.patch @@ -0,0 +1,34 @@ +--- cmake/OpenCVGenPkgconfig.cmake 2013-11-12 20:31:27.253763202 +0000 ++++ cmake/OpenCVGenPkgconfig.cmake 2013-11-12 20:41:48.936262732 +0000 +@@ -10,7 +10,7 @@ + # ------------------------------------------------------------------------------------------- + set(prefix "${CMAKE_INSTALL_PREFIX}") + set(exec_prefix "\${prefix}") +-set(libdir "") #TODO: need link paths for OpenCV_EXTRA_COMPONENTS ++set(libdir "\${prefix}/${OPENCV_LIB_INSTALL_PATH}") + set(includedir "\${prefix}/${OPENCV_INCLUDE_INSTALL_PATH}") + + if(CMAKE_BUILD_TYPE MATCHES "Release") +@@ -35,10 +35,11 @@ + ocv_list_reverse(OpenCV_EXTRA_COMPONENTS) + + #build the list of components +-set(OpenCV_LIB_COMPONENTS_ "") ++set(OpenCV_LIB_COMPONENTS_ "-L\${libdir}") + foreach(CVLib ${OpenCV_LIB_COMPONENTS}) + get_target_property(libpath ${CVLib} LOCATION_${CMAKE_BUILD_TYPE}) + get_filename_component(libname "${libpath}" NAME) ++ get_filename_component(lname "${libpath}" NAME_WE) + + if(INSTALL_TO_MANGLED_PATHS) + set(libname "${libname}.${OPENCV_VERSION}") +@@ -51,7 +52,8 @@ + set(installDir "${OPENCV_LIB_INSTALL_PATH}") + endif() + +- set(OpenCV_LIB_COMPONENTS_ "${OpenCV_LIB_COMPONENTS_} \${exec_prefix}/${installDir}/${libname}") ++ string(REPLACE "libopencv" "-lopencv" lname "${lname}") ++ set(OpenCV_LIB_COMPONENTS_ "${OpenCV_LIB_COMPONENTS_} ${lname}") + endforeach() + + # add extra dependencies required for OpenCV diff --git a/srcpkgs/opencv/patches/x86_asmfix.patch b/srcpkgs/opencv/patches/x86_asmfix.patch new file mode 100644 index 00000000000..cb52751f2fb --- /dev/null +++ b/srcpkgs/opencv/patches/x86_asmfix.patch @@ -0,0 +1,46 @@ +From ea50be0529c248961e1b66293f8a9e4b807294a6 Mon Sep 17 00:00:00 2001 +From: Samuel Martin +Date: Sun, 12 Oct 2014 10:17:23 +0200 +Subject: [PATCH] core: fix x86 PIC code compilation + +This bug was triggered by Buildroot autobuilders [1,2], causing this +kind of failures [3,4]: + + [ 14%] Building CXX object modules/core/CMakeFiles/opencv_core.dir/src/system.cpp.o + /home/test/autobuild/instance-0/output/build/opencv-2.4.10/modules/core/src/system.cpp: In function '(static initializers for /home/test/autobuild/instance-0/output/build/opencv-2.4.10/modules/core/src/system.cpp)': + /home/test/autobuild/instance-0/output/build/opencv-2.4.10/modules/core/src/system.cpp:280:10: error: inconsistent operand constraints in an 'asm' + make[3]: *** [modules/core/CMakeFiles/opencv_core.dir/src/system.cpp.o] Error 1 + +[1] http://buildroot.org/ +[2] http://autobuild.buildroot.org/ +[3] http://autobuild.buildroot.org/?reason=opencv-2.4.10 +[4] http://autobuild.buildroot.org/results/483/4838285b25d6293a5cf0bb9eadd5040a7c75d766/build-end.log + +Signed-off-by: Samuel Martin +--- + modules/core/src/system.cpp | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/modules/core/src/system.cpp b/modules/core/src/system.cpp +index 5a970d5..e9ffdc7 100644 +--- modules/core/src/system.cpp ++++ modules/core/src/system.cpp +@@ -267,14 +267,17 @@ struct HWFeatures + : "cc" + ); + #else ++ // We need to preserve ebx since we are compiling PIC code. ++ // This means we cannot use "=b" for the 2nd output register. + asm volatile + ( + "pushl %%ebx\n\t" + "movl $7,%%eax\n\t" + "movl $0,%%ecx\n\t" + "cpuid\n\t" ++ "movl %%ebx,%1\n\t" + "popl %%ebx\n\t" +- : "=a"(cpuid_data[0]), "=b"(cpuid_data[1]), "=c"(cpuid_data[2]), "=d"(cpuid_data[3]) ++ : "=a"(cpuid_data[0]), "=r"(cpuid_data[1]), "=c"(cpuid_data[2]), "=d"(cpuid_data[3]) + : + : "cc" + ); diff --git a/srcpkgs/opencv/template b/srcpkgs/opencv/template index 421916c2f2d..6714e0ec197 100644 --- a/srcpkgs/opencv/template +++ b/srcpkgs/opencv/template @@ -3,25 +3,23 @@ pkgname=opencv version=2.4.10 -revision=1 +revision=2 build_style=cmake maintainer="Carlo Dormeletti " homepage="http://opencv.org" license="BSD" short_desc="Computer vision and machine learning software library" -configure_args="-Wno-dev -DCMAKE_BUILD_TYPE=RELEASE " +configure_args="-Wno-dev" hostmakedepends="cmake pkg-config python-devel eigen2 unzip python-numpy-devel" makedepends="ffmpeg-devel libpng-devel libjpeg-turbo-devel tiff-devel - jasper-devel libopenexr-devel" + jasper-devel libopenexr-devel" distfiles="${SOURCEFORGE_SITE}/opencvlibrary/opencv-unix/${version}/opencv-${version}.zip" checksum="1bf4cb87283797fd91669d4f90b622a677a903c20b4a577b7958a2164f7596c6" - libopencv_package() { short_desc+=" - library files" - depends="${sourcepkg}>=${version}_${revision}" pkg_install() { - vmove usr/lib/libopencv_*.so.* + vmove usr/lib/*.so.* } } @@ -38,8 +36,7 @@ libopencv-devel_package() { } libopencv-python_package(){ - short_desc+=" - python files" - depends="libopencv>=${version}_${revision}" + short_desc+=" - python bindings" pkg_install() { vmove usr/lib/python2.7 }