diff options
author | nia <nia@pkgsrc.org> | 2021-09-22 13:40:41 +0000 |
---|---|---|
committer | nia <nia@pkgsrc.org> | 2021-09-22 13:40:41 +0000 |
commit | 401ea91316f8fdf2e889f18ab651c70782a8bdd2 (patch) | |
tree | a3201f12fbe70adcfa6fa4ea97d6ea346654e7f3 | |
parent | 7d5c84bd14ca67bae6921804e0da5863ec2713c3 (diff) | |
download | pkgsrc-401ea91316f8fdf2e889f18ab651c70782a8bdd2.tar.gz |
opencv: Fix netbsd-8 build failure. Still does not link, due to libstdc++
-rw-r--r-- | graphics/opencv/distinfo | 4 | ||||
-rw-r--r-- | graphics/opencv/patches/patch-cmake_checks_lapack__check.cpp | 20 | ||||
-rw-r--r-- | graphics/opencv/patches/patch-modules_core_src_hal__internal.cpp | 111 |
3 files changed, 134 insertions, 1 deletions
diff --git a/graphics/opencv/distinfo b/graphics/opencv/distinfo index 4c056708474..5ecc166cd22 100644 --- a/graphics/opencv/distinfo +++ b/graphics/opencv/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.50 2021/07/08 21:27:39 markd Exp $ +$NetBSD: distinfo,v 1.51 2021/09/22 13:40:41 nia Exp $ SHA1 (opencv-3.4.9.tar.gz) = bcd0fafc9f1a240d92af9007c9f8098da601d7a5 RMD160 (opencv-3.4.9.tar.gz) = 2ab36f669a70c876e739736e6b9daacabc5933fe @@ -11,11 +11,13 @@ SHA1 (patch-apps_visualisation_opencv__visualisation.cpp) = b62c32172049c6369fd6 SHA1 (patch-cmake_OpenCVDetectCXXCompiler.cmake) = ac7deccedcc5071d3785c7827a06419713ba0529 SHA1 (patch-cmake_OpenCVDetectPython.cmake) = 4f3bfe574edf083ebc7e78d347355c58461b2c6b SHA1 (patch-cmake_OpenCVFindOpenEXR.cmake) = 202d0fdc84464d563dead955d5299b42098d52a6 +SHA1 (patch-cmake_checks_lapack__check.cpp) = dd25d34fff25e0d46651789cf5577391d7b48c81 SHA1 (patch-modules_core_include_opencv2_core_bindings__utils.hpp) = 9018a6124fb840be5213450b1bbe353078b37029 SHA1 (patch-modules_core_include_opencv2_core_opencl_opencl__info.hpp) = f0cff24b2a760086f54ab66536bdfee4f4f1a6d7 SHA1 (patch-modules_core_include_opencv2_core_types_c.h) = 75444e65677be99af8167f9060419d7970a7adaa SHA1 (patch-modules_core_src_check.cpp) = c8dac4e0fb6fa4a0dca6a2794bd598ba114e78b6 SHA1 (patch-modules_core_src_downhill__simplex.cpp) = 1ad7c2fa126d15050b87785e8eec20dbe796b471 +SHA1 (patch-modules_core_src_hal__internal.cpp) = 22beba5ee93fc468999479227d7ef07397848b22 SHA1 (patch-modules_core_src_rand.cpp) = aa87ee5a538deb1a2ed3e89dd3dd4ee9b86ae0de SHA1 (patch-modules_core_src_system.cpp) = 3b7ac545585a430d28c7077f360357079f127580 SHA1 (patch-modules_dnn_src_tensorflow_tf__importer.cpp) = 9b3628d91c2217c4b1ed77413efd4c0bf85758c4 diff --git a/graphics/opencv/patches/patch-cmake_checks_lapack__check.cpp b/graphics/opencv/patches/patch-cmake_checks_lapack__check.cpp new file mode 100644 index 00000000000..2a0568b2e5e --- /dev/null +++ b/graphics/opencv/patches/patch-cmake_checks_lapack__check.cpp @@ -0,0 +1,20 @@ +$NetBSD: patch-cmake_checks_lapack__check.cpp,v 1.1 2021/09/22 13:40:41 nia Exp $ + +https://bugs.gentoo.org/800539 +https://github.com/opencv/opencv/issues/19846 + +--- cmake/checks/lapack_check.cpp.orig 2019-12-19 15:16:47.000000000 +0000 ++++ cmake/checks/lapack_check.cpp +@@ -2,9 +2,9 @@ + #include "opencv_lapack.h" + + static char* check_fn1 = (char*)sgesv_; +-static char* check_fn2 = (char*)sposv_; +-static char* check_fn3 = (char*)spotrf_; +-static char* check_fn4 = (char*)sgesdd_; ++static char* check_fn2 = (char*)LAPACK_sposv_; ++static char* check_fn3 = (char*)LAPACK_spotrf_; ++static char* check_fn4 = (char*)LAPACK_sgesdd_; + + int main(int argc, char* argv[]) + { diff --git a/graphics/opencv/patches/patch-modules_core_src_hal__internal.cpp b/graphics/opencv/patches/patch-modules_core_src_hal__internal.cpp new file mode 100644 index 00000000000..2e07c6670b5 --- /dev/null +++ b/graphics/opencv/patches/patch-modules_core_src_hal__internal.cpp @@ -0,0 +1,111 @@ +$NetBSD: patch-modules_core_src_hal__internal.cpp,v 1.1 2021/09/22 13:40:41 nia Exp $ + +https://bugs.gentoo.org/800539 +https://github.com/opencv/opencv/issues/19846 + +--- modules/core/src/hal_internal.cpp.orig 2019-12-19 15:16:47.000000000 +0000 ++++ modules/core/src/hal_internal.cpp +@@ -162,9 +162,9 @@ lapack_Cholesky(fptype* a, size_t a_step + if(n == 1 && b_step == sizeof(fptype)) + { + if(typeid(fptype) == typeid(float)) +- sposv_(L, &m, &n, (float*)a, &lda, (float*)b, &m, &lapackStatus); ++ LAPACK_sposv_(L, &m, &n, (float*)a, &lda, (float*)b, &m, &lapackStatus); + else if(typeid(fptype) == typeid(double)) +- dposv_(L, &m, &n, (double*)a, &lda, (double*)b, &m, &lapackStatus); ++ LAPACK_dposv_(L, &m, &n, (double*)a, &lda, (double*)b, &m, &lapackStatus); + } + else + { +@@ -173,9 +173,9 @@ lapack_Cholesky(fptype* a, size_t a_step + transpose(b, ldb, tmpB, m, m, n); + + if(typeid(fptype) == typeid(float)) +- sposv_(L, &m, &n, (float*)a, &lda, (float*)tmpB, &m, &lapackStatus); ++ LAPACK_sposv_(L, &m, &n, (float*)a, &lda, (float*)tmpB, &m, &lapackStatus); + else if(typeid(fptype) == typeid(double)) +- dposv_(L, &m, &n, (double*)a, &lda, (double*)tmpB, &m, &lapackStatus); ++ LAPACK_dposv_(L, &m, &n, (double*)a, &lda, (double*)tmpB, &m, &lapackStatus); + + transpose(tmpB, m, b, ldb, n, m); + delete[] tmpB; +@@ -184,9 +184,9 @@ lapack_Cholesky(fptype* a, size_t a_step + else + { + if(typeid(fptype) == typeid(float)) +- spotrf_(L, &m, (float*)a, &lda, &lapackStatus); ++ LAPACK_spotrf_(L, &m, (float*)a, &lda, &lapackStatus); + else if(typeid(fptype) == typeid(double)) +- dpotrf_(L, &m, (double*)a, &lda, &lapackStatus); ++ LAPACK_dpotrf_(L, &m, (double*)a, &lda, &lapackStatus); + } + + if(lapackStatus == 0) *info = true; +@@ -226,17 +226,17 @@ lapack_SVD(fptype* a, size_t a_step, fpt + } + + if(typeid(fptype) == typeid(float)) +- sgesdd_(mode, &m, &n, (float*)a, &lda, (float*)w, (float*)u, &ldu, (float*)vt, &ldv, (float*)&work1, &lwork, iworkBuf, info); ++ LAPACK_sgesdd_(mode, &m, &n, (float*)a, &lda, (float*)w, (float*)u, &ldu, (float*)vt, &ldv, (float*)&work1, &lwork, iworkBuf, info); + else if(typeid(fptype) == typeid(double)) +- dgesdd_(mode, &m, &n, (double*)a, &lda, (double*)w, (double*)u, &ldu, (double*)vt, &ldv, (double*)&work1, &lwork, iworkBuf, info); ++ LAPACK_dgesdd_(mode, &m, &n, (double*)a, &lda, (double*)w, (double*)u, &ldu, (double*)vt, &ldv, (double*)&work1, &lwork, iworkBuf, info); + + lwork = (int)round(work1); //optimal buffer size + fptype* buffer = new fptype[lwork + 1]; + + if(typeid(fptype) == typeid(float)) +- sgesdd_(mode, &m, &n, (float*)a, &lda, (float*)w, (float*)u, &ldu, (float*)vt, &ldv, (float*)buffer, &lwork, iworkBuf, info); ++ LAPACK_sgesdd_(mode, &m, &n, (float*)a, &lda, (float*)w, (float*)u, &ldu, (float*)vt, &ldv, (float*)buffer, &lwork, iworkBuf, info); + else if(typeid(fptype) == typeid(double)) +- dgesdd_(mode, &m, &n, (double*)a, &lda, (double*)w, (double*)u, &ldu, (double*)vt, &ldv, (double*)buffer, &lwork, iworkBuf, info); ++ LAPACK_dgesdd_(mode, &m, &n, (double*)a, &lda, (double*)w, (double*)u, &ldu, (double*)vt, &ldv, (double*)buffer, &lwork, iworkBuf, info); + + if(!(flags & CV_HAL_SVD_NO_UV)) + transpose_square_inplace(vt, ldv, n); +@@ -287,18 +287,18 @@ lapack_QR(fptype* a, size_t a_step, int + if (k == 1 && b_step == sizeof(fptype)) + { + if (typeid(fptype) == typeid(float)) +- sgels_(mode, &m, &n, &k, (float*)tmpA, &ldtmpA, (float*)b, &m, (float*)&work1, &lwork, info); ++ LAPACK_sgels_(mode, &m, &n, &k, (float*)tmpA, &ldtmpA, (float*)b, &m, (float*)&work1, &lwork, info); + else if (typeid(fptype) == typeid(double)) +- dgels_(mode, &m, &n, &k, (double*)tmpA, &ldtmpA, (double*)b, &m, (double*)&work1, &lwork, info); ++ LAPACK_dgels_(mode, &m, &n, &k, (double*)tmpA, &ldtmpA, (double*)b, &m, (double*)&work1, &lwork, info); + + lwork = cvRound(work1); //optimal buffer size + std::vector<fptype> workBufMemHolder(lwork + 1); + fptype* buffer = &workBufMemHolder.front(); + + if (typeid(fptype) == typeid(float)) +- sgels_(mode, &m, &n, &k, (float*)tmpA, &ldtmpA, (float*)b, &m, (float*)buffer, &lwork, info); ++ LAPACK_sgels_(mode, &m, &n, &k, (float*)tmpA, &ldtmpA, (float*)b, &m, (float*)buffer, &lwork, info); + else if (typeid(fptype) == typeid(double)) +- dgels_(mode, &m, &n, &k, (double*)tmpA, &ldtmpA, (double*)b, &m, (double*)buffer, &lwork, info); ++ LAPACK_dgels_(mode, &m, &n, &k, (double*)tmpA, &ldtmpA, (double*)b, &m, (double*)buffer, &lwork, info); + } + else + { +@@ -308,18 +308,18 @@ lapack_QR(fptype* a, size_t a_step, int + transpose(b, ldb, tmpB, m, m, k); + + if (typeid(fptype) == typeid(float)) +- sgels_(mode, &m, &n, &k, (float*)tmpA, &ldtmpA, (float*)tmpB, &m, (float*)&work1, &lwork, info); ++ LAPACK_sgels_(mode, &m, &n, &k, (float*)tmpA, &ldtmpA, (float*)tmpB, &m, (float*)&work1, &lwork, info); + else if (typeid(fptype) == typeid(double)) +- dgels_(mode, &m, &n, &k, (double*)tmpA, &ldtmpA, (double*)tmpB, &m, (double*)&work1, &lwork, info); ++ LAPACK_dgels_(mode, &m, &n, &k, (double*)tmpA, &ldtmpA, (double*)tmpB, &m, (double*)&work1, &lwork, info); + + lwork = cvRound(work1); //optimal buffer size + std::vector<fptype> workBufMemHolder(lwork + 1); + fptype* buffer = &workBufMemHolder.front(); + + if (typeid(fptype) == typeid(float)) +- sgels_(mode, &m, &n, &k, (float*)tmpA, &ldtmpA, (float*)tmpB, &m, (float*)buffer, &lwork, info); ++ LAPACK_sgels_(mode, &m, &n, &k, (float*)tmpA, &ldtmpA, (float*)tmpB, &m, (float*)buffer, &lwork, info); + else if (typeid(fptype) == typeid(double)) +- dgels_(mode, &m, &n, &k, (double*)tmpA, &ldtmpA, (double*)tmpB, &m, (double*)buffer, &lwork, info); ++ LAPACK_dgels_(mode, &m, &n, &k, (double*)tmpA, &ldtmpA, (double*)tmpB, &m, (double*)buffer, &lwork, info); + + transpose(tmpB, m, b, ldb, k, m); + } |