opencv: unbreak x86; remove unnecessary rdeps; simplify.

This commit is contained in:
Juan RP 2014-12-10 17:41:52 +01:00
parent 5ed2f074ea
commit dcd84de33d
3 changed files with 85 additions and 8 deletions

View file

@ -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

View file

@ -0,0 +1,46 @@
From ea50be0529c248961e1b66293f8a9e4b807294a6 Mon Sep 17 00:00:00 2001
From: Samuel Martin <s.martin49@gmail.com>
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 <s.martin49@gmail.com>
---
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"
);

View file

@ -3,25 +3,23 @@
pkgname=opencv
version=2.4.10
revision=1
revision=2
build_style=cmake
maintainer="Carlo Dormeletti <carloDOTdormelettiATaliceDOTit>"
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
}