Skip to content

Error compiling with newer Eigen on PPC64LE #19647

@smuzaffar

Description

@smuzaffar
System information (version)
  • OpenCV => 4.3.0 and 4.5.1
  • Operating System / Platform => CentOS 7 / PPC64LE
  • Compiler => GCC 9.3.0
Detailed description

I am trying to build OpenCV 4.3.0 ( also tried 4.5.1) with newer Eigen ( https://gitlab.com/libeigen/eigen/-/commit/011e0db31d1bed8b7f73662be6d57d9f30fa457a ). It builds/run fine for amd64 and aarch64 but for ppc64le it failed to build with error message

In file included from eigen/011e0db31d1bed8b7f73662be6d57d9f30fa457a/include/eigen3/Eigen/Core:203,
                 from opencv/4.5.1-cms/opencv-4.5.1/modules/core/include/opencv2/core/private.hpp:70,
                 from opencv/4.5.1-cms/opencv-4.5.1/modules/core/src/precomp.hpp:55,
                 from opencv/4.5.1-cms/opencv-4.5.1/modules/core/src/check.cpp:5:
eigen/011e0db31d1bed8b7f73662be6d57d9f30fa457a/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h: In function 'TgtPacket Eigen::internal::pcast(const SrcPacket
&) [with SrcPacket = __vector(4) float; TgtPacket = __vector(4) unsigned int]':
eigen/011e0db31d1bed8b7f73662be6d57d9f30fa457a/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h:2126:21: error: no matching function for call to 'vec_ctu(cons
t Packet4f&, int)'
 2126 |   return vec_ctu(a,0);
      |                     ^
In file included from opencv/4.5.1-cms/opencv-4.5.1/modules/core/include/opencv2/core/base.hpp:651,
                 from opencv/4.5.1-cms/opencv-4.5.1/modules/core/include/opencv2/core.hpp:54,
                 from opencv/4.5.1-cms/opencv-4.5.1/modules/core/include/opencv2/core/utility.hpp:56,
                 from opencv/4.5.1-cms/opencv-4.5.1/modules/core/src/precomp.hpp:49,
                 from opencv/4.5.1-cms/opencv-4.5.1/modules/core/src/check.cpp:5:
opencv/4.5.1-cms/opencv-4.5.1/modules/core/include/opencv2/core/vsx_utils.hpp:285:50: note: candidate: 'vec_uint4 vec_ctu(const vec_float4&)'
  285 | VSX_IMPL_1RG(vec_uint4, vec_float4,  xvcvspuxws, vec_ctu)
      |                                                  ^~~~~~~
opencv/4.5.1-cms/opencv-4.5.1/modules/core/include/opencv2/core/vsx_utils.hpp:114:17: note: in definition of macro 'VSX_IMPL_1RG'
  114 | VSX_FINLINE(rt) fnm(const rg& a)       \
      |                 ^~~
opencv/4.5.1-cms/opencv-4.5.1/modules/core/include/opencv2/core/vsx_utils.hpp:285:50: note:   candidate expects 1 argument, 2 provided
  285 | VSX_IMPL_1RG(vec_uint4, vec_float4,  xvcvspuxws, vec_ctu)
      |                                                  ^~~~~~~
opencv/4.5.1-cms/opencv-4.5.1/modules/core/include/opencv2/core/vsx_utils.hpp:114:17: note: in definition of macro 'VSX_IMPL_1RG'
  114 | VSX_FINLINE(rt) fnm(const rg& a)       \
      |                 ^~~
opencv/4.5.1-cms/opencv-4.5.1/modules/core/include/opencv2/core/vsx_utils.hpp:487:49: note: candidate: 'vec_uint4 vec_ctu(const vec_double2&)'
  487 | VSX_IMPL_CONV_EVEN_2_4(vec_uint4,  vec_double2, vec_ctu, vec_ctuo)
      |                                                 ^~~~~~~
opencv/4.5.1-cms/opencv-4.5.1/modules/core/include/opencv2/core/vsx_utils.hpp:476:17: note: in definition of macro 'VSX_IMPL_CONV_EVEN_2_4'
  476 | VSX_FINLINE(rt) fnm(const rg& a)                 \
      |                 ^~~
opencv/4.5.1-cms/opencv-4.5.1/modules/core/include/opencv2/core/vsx_utils.hpp:487:49: note:   candidate expects 1 argument, 2 provided
  487 | VSX_IMPL_CONV_EVEN_2_4(vec_uint4,  vec_double2, vec_ctu, vec_ctuo)
      |                                                 ^~~~~~~
opencv/4.5.1-cms/opencv-4.5.1/modules/core/include/opencv2/core/vsx_utils.hpp:476:17: note: in definition of macro 'VSX_IMPL_CONV_EVEN_2_4'
  476 | VSX_FINLINE(rt) fnm(const rg& a)                 \
      |                 ^~~

any idea how to fix/avoid this issue? Thanks

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions