summaryrefslogtreecommitdiff
path: root/media-libs/opencv/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2021-12-05 02:47:11 +0000
committerV3n3RiX <venerix@koprulu.sector>2021-12-05 02:47:11 +0000
commit2771f79232c273bc2a57d23bf335dd81ccf6af28 (patch)
treec8af0fd04194aed03cf067d44e53c7edd3e9ab84 /media-libs/opencv/files
parente9d044d4b9b71200a96adfa280848858c0f468c9 (diff)
gentoo resync : 05.12.2021
Diffstat (limited to 'media-libs/opencv/files')
-rw-r--r--media-libs/opencv/files/opencv-4.5.2-lapack-3.10.patch123
1 files changed, 123 insertions, 0 deletions
diff --git a/media-libs/opencv/files/opencv-4.5.2-lapack-3.10.patch b/media-libs/opencv/files/opencv-4.5.2-lapack-3.10.patch
new file mode 100644
index 000000000000..31e2fc60d121
--- /dev/null
+++ b/media-libs/opencv/files/opencv-4.5.2-lapack-3.10.patch
@@ -0,0 +1,123 @@
+https://bugs.gentoo.org/800539
+
+--- a/modules/core/src/hal_internal.cpp
++++ b/modules/core/src/hal_internal.cpp
+@@ -163,9 +163,9 @@
+ 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
+ {
+@@ -174,9 +174,9 @@
+ 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;
+@@ -185,9 +185,9 @@
+ 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;
+@@ -227,17 +227,17 @@
+ }
+
+ 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);
+@@ -288,18 +288,18 @@
+ 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
+ {
+@@ -309,18 +309,18 @@
+ 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);
+ }
+--- a/cmake/checks/lapack_check.cpp
++++ b/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[])
+ {