Skip to content

Compilation error against lapack-3.10.0 #21116

@dwardor

Description

@dwardor
System information (version)
  • OpenCV => 4.5.2 (issue on 4.5.. and 4.5.4)
  • Operating System / Platform => Gentoo Linux 64 bit
  • Compiler => gcc
Detailed description

Compilation fails agaisn tlapack-3.10.0 with

/build/opencv-cuda/src/opencv-4.5.2/modules/core/src/hal_internal.cpp:166:23: error: too few arguments to function ‘void sposv_(const char*, const int*, const int*, float*, const int*, float*, const int*, int*, size_t)’
  166 |                 sposv_(L, &m, &n, (float*)a, &lda, (float*)b, &m, &lapackStatus);
      |                 ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/lapack.h:11,
                 from /usr/include/lapacke.h:36,
                 from ./opencv_lapack.h:12,
                 from /build/opencv-cuda/src/opencv-4.5.2/modules/core/src/hal_internal.cpp:51:
/usr/include/lapack.h:13003:6: note: declared here
13003 | void LAPACK_sposv_base(
      |      ^~~~~~~~~~~~~~~~~
/build/opencv-cuda/src/opencv-4.5.2/modules/core/src/hal_internal.cpp:168:23: error: too few arguments to function ‘void dposv_(const char*, const int*, const int*, double*, const int*, double*, const int*, int*, size_t)’
  168 |                 dposv_(L, &m, &n, (double*)a, &lda, (double*)b, &m, &lapackStatus);
      |                 ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/lapack.h:11,
                 from /usr/include/lapacke.h:36,
                 from ./opencv_lapack.h:12,
                 from /build/opencv-cuda/src/opencv-4.5.2/modules/core/src/hal_internal.cpp:51:
/usr/include/lapack.h:12986:6: note: declared here
12986 | void LAPACK_dposv_base(
      |      ^~~~~~~~~~~~~~~~~
/build/opencv-cuda/src/opencv-4.5.2/modules/core/src/hal_internal.cpp:177:23: error: too few arguments to function ‘void sposv_(const char*, const int*, const int*, float*, const int*, float*, const int*, int*, size_t)’
  177 |                 sposv_(L, &m, &n, (float*)a, &lda, (float*)tmpB, &m, &lapackStatus);
      |                 ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/lapack.h:11,
                 from /usr/include/lapacke.h:36,
                 from ./opencv_lapack.h:12,
                 from /build/opencv-cuda/src/opencv-4.5.2/modules/core/src/hal_internal.cpp:51:
/usr/include/lapack.h:13003:6: note: declared here
13003 | void LAPACK_sposv_base(
      |      ^~~~~~~~~~~~~~~~~
/build/opencv-cuda/src/opencv-4.5.2/modules/core/src/hal_internal.cpp:179:23: error: too few arguments to function ‘void dposv_(const char*, const int*, const int*, double*, const int*, double*, const int*, int*, size_t)’
  179 |                 dposv_(L, &m, &n, (double*)a, &lda, (double*)tmpB, &m, &lapackStatus);
      |                 ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/lapack.h:11,
                 from /usr/include/lapacke.h:36,
                 from ./opencv_lapack.h:12,
                 from /build/opencv-cuda/src/opencv-4.5.2/modules/core/src/hal_internal.cpp:51:
/usr/include/lapack.h:12986:6: note: declared here
12986 | void LAPACK_dposv_base(
      |      ^~~~~~~~~~~~~~~~~
/build/opencv-cuda/src/opencv-4.5.2/modules/core/src/hal_internal.cpp:188:20: error: too few arguments to function ‘void spotrf_(const char*, const int*, float*, const int*, int*, size_t)’
  188 |             spotrf_(L, &m, (float*)a, &lda, &lapackStatus);
      |             ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/lapack.h:11,
                 from /usr/include/lapacke.h:36,
                 from ./opencv_lapack.h:12,
                 from /build/opencv-cuda/src/opencv-4.5.2/modules/core/src/hal_internal.cpp:51:
/usr/include/lapack.h:13394:6: note: declared here
13394 | void LAPACK_spotrf_base(
      |      ^~~~~~~~~~~~~~~~~~
/build/opencv-cuda/src/opencv-4.5.2/modules/core/src/hal_internal.cpp:190:20: error: too few arguments to function ‘void dpotrf_(const char*, const int*, double*, const int*, int*, size_t)’
  190 |             dpotrf_(L, &m, (double*)a, &lda, &lapackStatus);
      |             ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/lapack.h:11,
                 from /usr/include/lapacke.h:36,
                 from ./opencv_lapack.h:12,
                 from /build/opencv-cuda/src/opencv-4.5.2/modules/core/src/hal_internal.cpp:51:
/usr/include/lapack.h:13378:6: note: declared here
13378 | void LAPACK_dpotrf_base(
      |      ^~~~~~~~~~~~~~~~~~
/build/opencv-cuda/src/opencv-4.5.2/modules/core/src/hal_internal.cpp: In function ‘int lapack_SVD(fptype*, size_t, fptype*, fptype*, size_t, fptype*, size_t, int, int, int, int*)’:
/build/opencv-cuda/src/opencv-4.5.2/modules/core/src/hal_internal.cpp:230:16: error: too few arguments to function ‘void sgesdd_(const char*, const int*, const int*, float*, const int*, float*, float*, const int*, float*, const int*, float*, const int*, int*, int*, size_t)’
  230 |         sgesdd_(mode, &m, &n, (float*)a, &lda, (float*)w, (float*)u, &ldu, (float*)vt, &ldv, (float*)&work1, &lwork, iworkBuf, info);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/lapack.h:11,
                 from /usr/include/lapacke.h:36,
                 from ./opencv_lapack.h:12,
                 from /build/opencv-cuda/src/opencv-4.5.2/modules/core/src/hal_internal.cpp:51:
/usr/include/lapack.h:3264:6: note: declared here
 3264 | void LAPACK_sgesdd_base(
      |      ^~~~~~~~~~~~~~~~~~
/build/opencv-cuda/src/opencv-4.5.2/modules/core/src/hal_internal.cpp:238:16: error: too few arguments to function ‘void sgesdd_(const char*, const int*, const int*, float*, const int*, float*, float*, const int*, float*, const int*, float*, const int*, int*, int*, size_t)’
  238 |         sgesdd_(mode, &m, &n, (float*)a, &lda, (float*)w, (float*)u, &ldu, (float*)vt, &ldv, (float*)buffer, &lwork, iworkBuf, info);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/lapack.h:11,
                 from /usr/include/lapacke.h:36,
                 from ./opencv_lapack.h:12,
                 from /build/opencv-cuda/src/opencv-4.5.2/modules/core/src/hal_internal.cpp:51:
/usr/include/lapack.h:3264:6: note: declared here
 3264 | void LAPACK_sgesdd_base(

see also : gentoo bug and similar issue againts lapack-3.9.1

Steps to reproduce

Try to compile againt lapack-3.10.0

Issue submission checklist
  • I report the issue, it's not a question
  • I checked the problem with documentation, FAQ, open issues,
    forum.opencv.org, Stack Overflow, etc and have not found solution
  • I updated to latest OpenCV version and the issue is still there
  • There is reproducer code and related data files: videos, images, onnx, etc

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions