From 5d8a1bf8136c3c46f92bce0987687f36e78e327d Mon Sep 17 00:00:00 2001 From: Vadim Pisarevsky Date: Fri, 6 Mar 2015 15:02:22 +0300 Subject: [PATCH] explained reason why IPP is disabled on 32-bit Linux. disable IPP's minMaxLoc_32f on 32-bit OSes only --- cmake/OpenCVFindIPP.cmake | 2 +- modules/core/src/stat.cpp | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/cmake/OpenCVFindIPP.cmake b/cmake/OpenCVFindIPP.cmake index 0242c1303..76c73f3e0 100644 --- a/cmake/OpenCVFindIPP.cmake +++ b/cmake/OpenCVFindIPP.cmake @@ -35,7 +35,7 @@ unset(IPP_VERSION_MINOR) unset(IPP_VERSION_BUILD) if (X86 AND UNIX AND NOT APPLE AND NOT ANDROID AND BUILD_SHARED_LIBS) - message(STATUS "On 32-bit Linux IPP can not currently be used with dynamic libs. Set BUILD_SHARED_LIBS=OFF") + message(STATUS "On 32-bit Linux IPP can not currently be used with dynamic libs because of linker errors. Set BUILD_SHARED_LIBS=OFF") return() endif() diff --git a/modules/core/src/stat.cpp b/modules/core/src/stat.cpp index bd69e5dc7..243d1f663 100644 --- a/modules/core/src/stat.cpp +++ b/modules/core/src/stat.cpp @@ -2314,7 +2314,10 @@ void cv::minMaxIdx(InputArray _src, double* minVal, depth == CV_8U ? (ippiMinMaxIndxFuncC1)ippiMinMaxIndx_8u_C1R : depth == CV_8S ? (ippiMinMaxIndxFuncC1)ippiMinMaxIndx_8s_C1R : depth == CV_16U ? (ippiMinMaxIndxFuncC1)ippiMinMaxIndx_16u_C1R : - /*depth == CV_32F ? (ippiMinMaxIndxFuncC1)ippiMinMaxIndx_32f_C1R :*/ 0; + #if !((defined _MSC_VER && defined _M_IX86) || defined __i386__) + depth == CV_32F ? (ippiMinMaxIndxFuncC1)ippiMinMaxIndx_32f_C1R : + #endif + 0; CV_SUPPRESS_DEPRECATED_END if( ippFuncC1 )