Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix build error with cv::v_mul when OpenCV >= 4.9 && < 4.11 on exotic platforms #1607

Merged

Conversation

s-trinh
Copy link
Contributor

@s-trinh s-trinh commented Mar 8, 2025

Try to fix #1606

OpenCV HAL API for v_mul is available for all the platforms only starting from 4.11: https://docs.opencv.org/4.11.0/df/d91/group__core__hal__intrin.html#gaaa56a561e899888ef65fc2c2e258b892

So between >= 4.9 and < 4.11 we should be able to use OpenCV HAL only with regular architectures: X86 or ARM64


General configurations:

Build is OK for "amd64 3.6.0-4 Installed 13d 3h 37m x86-ubc-01"
-- Performing Test HAVE_SSE2 (check file: cmake/checks/cpu_sse2.cpp)
-- Performing Test HAVE_SSE2 - Success
-- Performing Test HAVE_SSE3 (check file: cmake/checks/cpu_sse3.cpp)
-- Performing Test HAVE_SSE3 - Success
-- Performing Test HAVE_SSSE3 (check file: cmake/checks/cpu_ssse3.cpp)
-- Performing Test HAVE_SSSE3 - Success
-- Performing Test HAVE_SSE4_1 (check file: cmake/checks/cpu_sse41.cpp)
-- Performing Test HAVE_SSE4_1 - Failed
-- Performing Test HAVE_SSE4_2 (check file: cmake/checks/cpu_sse42.cpp)
-- Performing Test HAVE_SSE4_2 - Failed
-- Performing Test HAVE_AVX (check file: cmake/checks/cpu_avx.cpp)
-- Performing Test HAVE_AVX - Failed
-- Performing Test HAVE_AVX2 (check file: cmake/checks/cpu_avx2.cpp)
-- Performing Test HAVE_AVX2 - Failed
-- Performing Test HAVE_NEON (check file: cmake/checks/cpu_neon.cpp)
-- Performing Test HAVE_NEON - Failed
-- 
-- ==========================================================
-- General configuration information for ViSP 3.6.0
-- 
--   Version control:               unknown
-- 
--   Platform:
--     Timestamp:                   2025-02-16T17:47:35Z
--     Host:                        Linux 6.1.0-31-amd64 x86_64
--     CMake:                       3.31.5
--     CMake generator:             Unix Makefiles
--     CMake build tool:            /usr/bin/gmake
--     Configuration:               Release
-- 
--   System information:
--     Number of CPU logical cores: 6
--     Number of CPU physical cores: 6
--     Total physical memory (in MiB): 15990
--     OS name:                     Linux
--     OS release:                  6.1.0-31-amd64
--     OS version:                  #1 SMP PREEMPT_DYNAMIC Debian 6.1.128-1 (2025-02-07)
--     OS platform:                 x86_64
--     CPU name:                    Unknown AMD family
--     Is the CPU 64-bit?           yes
--     Does the CPU have FPU?       yes
--     CPU optimization:            SSE2 SSE3 SSSE3
-- 
--   C/C++:
--     Built as dynamic libs?:      yes
--     C++ Compiler:                /usr/bin/c++  (ver 14.2.0)
--     C++ flags (Release):         -g -O2 -ffile-prefix-map=/build/reproducible-path/visp-3.6.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2  -Wall -Wextra -fopenmp -std=c++17 -fvisibility=hidden -msse2 -msse3 -mssse3 -fPIC -g -O2 -ffile-prefix-map=/build/reproducible-path/visp-3.6.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection
--     C++ flags (Debug):           -g -O2 -ffile-prefix-map=/build/reproducible-path/visp-3.6.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2  -Wall -Wextra -fopenmp -std=c++17 -fvisibility=hidden -msse2 -msse3 -mssse3 -fPIC -g
--     C Compiler:                  /usr/bin/cc
--     C flags (Release):           -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/visp-3.6.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2  -Wall -Wextra -fopenmp -std=c++17 -fvisibility=hidden -msse2 -msse3 -mssse3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/visp-3.6.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection
--     C flags (Debug):             -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/visp-3.6.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2  -Wall -Wextra -fopenmp -std=c++17 -fvisibility=hidden -msse2 -msse3 -mssse3 -fPIC -g
--     Linker flags (Release):      -Wl,-z,relro -Wl,-z,now -Wl,-z,relro -Wl,-z,now
--     Linker flags (Debug):        -Wl,-z,relro -Wl,-z,now
--     Use cxx standard:            17
-- 
--   ViSP modules:
--     To be built:                 core dnn_tracker gui imgproc io java_bindings_generator klt me sensor ar blob robot visual_features vs vision detection mbt tt tt_mi
--     Disabled:                    -
--     Disabled by dependency:      -
--     Unavailable:                 java
-- 
--   Python (for build):            no
-- 
--   Java:                          
--     ant:                         no
--     JNI:                         no
-- 
--   Build options: 
--     Build deprecated:            yes
--     Build with moment combine:   no
-- 
--   OpenCV: 
--     Version:                     4.10.0
--     Modules:                     calib3d core dnn features2d flann highgui imgcodecs imgproc ml objdetect photo stitching video videoio alphamat aruco bgsegm bioinspired ccalib cvv datasets dnn_objdetect dnn_superres dpm face freetype fuzzy hdf hfs img_hash intensity_transform line_descriptor mcc optflow phase_unwrapping plot quality rapid reg rgbd saliency shape signal stereo structured_light superres surface_matching text tracking videostab viz wechat_qrcode ximgproc xobjdetect xphoto
--     OpenCV dir:                  /usr/lib/x86_64-linux-gnu/cmake/opencv4
-- 
--   Mathematics: 
--     Blas/Lapack:                 yes
--     \- Use MKL:                  no
--     \- Use OpenBLAS:             no
--     \- Use Atlas:                no
--     \- Use Netlib:               no
--     \- Use GSL:                  yes (ver 2.8)
--     \- Use Lapack (built-in):    no
--     Use Eigen3:                  yes (ver 3.4.0)
--     Use OpenCV:                  yes (ver 4.10.0)
-- 
--   Simulator: 
--     Ogre simulator: 
--     \- Use Ogre3D:               no
--     \- Use OIS:                  no
--     Coin simulator: 
--     \- Use Coin3D:               yes (ver 4.0.3)
--     \- Use SoWin:                no
--     \- Use SoXt:                 no
--     \- Use SoQt:                 no
--     \- Use Qt5:                  no
--     \- Use Qt4:                  no
--     \- Use Qt3:                  no
-- 
--   Media I/O: 
--     Use JPEG:                    yes (ver 62)
--     Use PNG:                     yes (ver 1.6.47)
--     \- Use ZLIB:                 yes (ver 1.3.1)
--     Use OpenCV:                  yes (ver 4.10.0)
--     Use stb_image (built-in):    yes (ver 2.27.0)
--     Use TinyEXR (built-in):      yes (ver 1.0.2)
-- 
--   Real robots: 
--     Use Afma4:                   no
--     Use Afma6:                   no
--     Use Franka:                  no
--     Use Viper650:                no
--     Use Viper850:                no
--     Use ur_rtde:                 no
--     Use Kinova Jaco:             no
--     Use aria (Pioneer):          no
--     Use PTU46:                   no
--     Use Biclops PTU:             no
--     Use Flir PTU SDK:            no
--     Use MAVSDK:                  no
--     Use Parrot ARSDK:            no
--     \-Use ffmpeg:                no
--     Use Virtuose:                no
--     Use qbdevice (built-in):     yes (ver 2.6.0)
--     Use takktile2 (built-in):    yes (ver 1.0.0)
-- 
--   GUI: 
--     Use X11:                     yes
--     Use GTK:                     no
--     Use OpenCV:                  yes (ver 4.10.0)
--     Use GDI:                     no
--     Use Direct3D:                no
-- 
--   Cameras: 
--     Use DC1394-2.x:              yes (ver 2.2.6)
--     Use CMU 1394:                no
--     Use V4L2:                    yes (ver 1.28.1)
--     Use directshow:              no
--     Use OpenCV:                  yes (ver 4.10.0)
--     Use FLIR Flycapture:         no
--     Use Basler Pylon:            no
--     Use IDS uEye:                no
-- 
--   RGB-D sensors: 
--     Use Realsense:               no
--     Use Realsense2:              no
--     Use Occipital Structure:     no
--     Use Kinect:                  no
--     \- Use libfreenect:          no
--     \- Use libusb-1:             no
--     \- Use pthread:              yes
--     Use PCL:                     no
--     \- Use VTK:                  no
-- 
--   F/T sensors: 
--     Use atidaq (built-in):       no
--     Use comedi:                  no
--     Use IIT SDK:                 no
-- 
--   Mocap: 
--     Use Qualisys:                no
--     Use Vicon:                   no
-- 
--   Detection: 
--     Use zbar:                    no
--     Use dmtx:                    yes (ver 0.7.7)
--     Use AprilTag (built-in):     yes (ver 3.1.1)
--     \- Use AprilTag big family:  no
-- 
--   Misc: 
--     Use Clipper (built-in):      yes (ver 6.4.2)
--     Use pugixml (built-in):      yes (ver 1.9.0)
--     Use libxml2:                 yes (ver 2.9.14)
--     Use json (nlohmann):         yes (ver 3.11.3)
-- 
--   Optimization: 
--     Use OpenMP:                  yes
--     Use pthread:                 yes
--     Use pthread (built-in):      no
--     Use Simd (built-in):         yes (ver 4.9.109)
-- 
--   DNN: 
--     Use CUDA Toolkit:            no
--     Use TensorRT:                no
-- 
--   Documentation: 
--     Use doxygen:                 yes
--     \- Use mathjax:              no
-- 
--   Tests and samples:
--     Use catch2 (built-in):       yes (ver 2.13.7)
--     Tests:                       yes
--     Demos:                       yes
--     Examples:                    yes
--     Tutorials:                   yes
--     Dataset found:               yes (ver 3.6.0 in /usr/share/visp-images-data/ViSP-images)
-- 
--   Library dirs:
--     Eigen3 include dir:          /usr/share/eigen3/cmake
--     OpenCV dir:                  /usr/lib/x86_64-linux-gnu/cmake/opencv4
-- 
--   Install path:                  /usr
-- 
-- ==========================================================
-- Configuring done (31.3s)
-- Generating done (3.5s)
Build is OK for "arm64 3.6.0-4 Installed 13d 2h 37m arm-ubc-01"
-- Performing Test HAVE_SSE2 (check file: cmake/checks/cpu_sse2.cpp)
-- Performing Test HAVE_SSE2 - Failed
-- Performing Test HAVE_SSE3 (check file: cmake/checks/cpu_sse3.cpp)
-- Performing Test HAVE_SSE3 - Failed
-- Performing Test HAVE_SSSE3 (check file: cmake/checks/cpu_ssse3.cpp)
-- Performing Test HAVE_SSSE3 - Failed
-- Performing Test HAVE_SSE4_1 (check file: cmake/checks/cpu_sse41.cpp)
-- Performing Test HAVE_SSE4_1 - Failed
-- Performing Test HAVE_SSE4_2 (check file: cmake/checks/cpu_sse42.cpp)
-- Performing Test HAVE_SSE4_2 - Failed
-- Performing Test HAVE_AVX (check file: cmake/checks/cpu_avx.cpp)
-- Performing Test HAVE_AVX - Failed
-- Performing Test HAVE_AVX2 (check file: cmake/checks/cpu_avx2.cpp)
-- Performing Test HAVE_AVX2 - Failed
-- Performing Test HAVE_NEON (check file: cmake/checks/cpu_neon.cpp)
-- Performing Test HAVE_NEON - Success
-- 
-- ==========================================================
-- General configuration information for ViSP 3.6.0
-- 
--   Version control:               unknown
-- 
--   Platform:
--     Timestamp:                   2025-02-16T17:47:35Z
--     Host:                        Linux 6.1.0-31-arm64 aarch64
--     CMake:                       3.31.5
--     CMake generator:             Unix Makefiles
--     CMake build tool:            /usr/bin/gmake
--     Configuration:               Release
-- 
--   System information:
--     Number of CPU logical cores: 4
--     Number of CPU physical cores: 1
--     Total physical memory (in MiB): 11950
--     OS name:                     Linux
--     OS release:                  6.1.0-31-arm64
--     OS version:                  #1 SMP Debian 6.1.128-1 (2025-02-07)
--     OS platform:                 aarch64
--     CPU name:                    Unknown family
--     Is the CPU 64-bit?           yes
--     Does the CPU have FPU?       no
--     CPU optimization:            NEON
-- 
--   C/C++:
--     Built as dynamic libs?:      yes
--     C++ Compiler:                /usr/bin/c++  (ver 14.2.0)
--     C++ flags (Release):         -g -O2 -ffile-prefix-map=/build/reproducible-path/visp-3.6.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2  -Wall -Wextra -fopenmp -std=c++17 -fvisibility=hidden -fPIC -g -O2 -ffile-prefix-map=/build/reproducible-path/visp-3.6.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard
--     C++ flags (Debug):           -g -O2 -ffile-prefix-map=/build/reproducible-path/visp-3.6.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2  -Wall -Wextra -fopenmp -std=c++17 -fvisibility=hidden -fPIC -g
--     C Compiler:                  /usr/bin/cc
--     C flags (Release):           -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/visp-3.6.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2  -Wall -Wextra -fopenmp -std=c++17 -fvisibility=hidden -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/visp-3.6.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard
--     C flags (Debug):             -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/visp-3.6.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2  -Wall -Wextra -fopenmp -std=c++17 -fvisibility=hidden -fPIC -g
--     Linker flags (Release):      -Wl,-z,relro -Wl,-z,now -Wl,-z,relro -Wl,-z,now
--     Linker flags (Debug):        -Wl,-z,relro -Wl,-z,now
--     Use cxx standard:            17
-- 
--   ViSP modules:
--     To be built:                 core dnn_tracker gui imgproc io java_bindings_generator klt me sensor ar blob robot visual_features vs vision detection mbt tt tt_mi
--     Disabled:                    -
--     Disabled by dependency:      -
--     Unavailable:                 java
-- 
--   Python (for build):            no
-- 
--   Java:                          
--     ant:                         no
--     JNI:                         no
-- 
--   Build options: 
--     Build deprecated:            yes
--     Build with moment combine:   no
-- 
--   OpenCV: 
--     Version:                     4.10.0
--     Modules:                     calib3d core dnn features2d flann highgui imgcodecs imgproc ml objdetect photo stitching video videoio alphamat aruco bgsegm bioinspired ccalib cvv datasets dnn_objdetect dnn_superres dpm face freetype fuzzy hdf hfs img_hash intensity_transform line_descriptor mcc optflow phase_unwrapping plot quality rapid reg rgbd saliency shape signal stereo structured_light superres surface_matching text tracking videostab viz wechat_qrcode ximgproc xobjdetect xphoto
--     OpenCV dir:                  /usr/lib/aarch64-linux-gnu/cmake/opencv4
-- 
--   Mathematics: 
--     Blas/Lapack:                 yes
--     \- Use MKL:                  no
--     \- Use OpenBLAS:             no
--     \- Use Atlas:                no
--     \- Use Netlib:               no
--     \- Use GSL:                  yes (ver 2.8)
--     \- Use Lapack (built-in):    no
--     Use Eigen3:                  yes (ver 3.4.0)
--     Use OpenCV:                  yes (ver 4.10.0)
-- 
--   Simulator: 
--     Ogre simulator: 
--     \- Use Ogre3D:               no
--     \- Use OIS:                  no
--     Coin simulator: 
--     \- Use Coin3D:               yes (ver 4.0.3)
--     \- Use SoWin:                no
--     \- Use SoXt:                 no
--     \- Use SoQt:                 no
--     \- Use Qt5:                  no
--     \- Use Qt4:                  no
--     \- Use Qt3:                  no
-- 
--   Media I/O: 
--     Use JPEG:                    yes (ver 62)
--     Use PNG:                     yes (ver 1.6.47)
--     \- Use ZLIB:                 yes (ver 1.3.1)
--     Use OpenCV:                  yes (ver 4.10.0)
--     Use stb_image (built-in):    yes (ver 2.27.0)
--     Use TinyEXR (built-in):      yes (ver 1.0.2)
-- 
--   Real robots: 
--     Use Afma4:                   no
--     Use Afma6:                   no
--     Use Franka:                  no
--     Use Viper650:                no
--     Use Viper850:                no
--     Use ur_rtde:                 no
--     Use Kinova Jaco:             no
--     Use aria (Pioneer):          no
--     Use PTU46:                   no
--     Use Biclops PTU:             no
--     Use Flir PTU SDK:            no
--     Use MAVSDK:                  no
--     Use Parrot ARSDK:            no
--     \-Use ffmpeg:                no
--     Use Virtuose:                no
--     Use qbdevice (built-in):     yes (ver 2.6.0)
--     Use takktile2 (built-in):    yes (ver 1.0.0)
-- 
--   GUI: 
--     Use X11:                     yes
--     Use GTK:                     no
--     Use OpenCV:                  yes (ver 4.10.0)
--     Use GDI:                     no
--     Use Direct3D:                no
-- 
--   Cameras: 
--     Use DC1394-2.x:              yes (ver 2.2.6)
--     Use CMU 1394:                no
--     Use V4L2:                    yes (ver 1.28.1)
--     Use directshow:              no
--     Use OpenCV:                  yes (ver 4.10.0)
--     Use FLIR Flycapture:         no
--     Use Basler Pylon:            no
--     Use IDS uEye:                no
-- 
--   RGB-D sensors: 
--     Use Realsense:               no
--     Use Realsense2:              no
--     Use Occipital Structure:     no
--     Use Kinect:                  no
--     \- Use libfreenect:          no
--     \- Use libusb-1:             no
--     \- Use pthread:              yes
--     Use PCL:                     no
--     \- Use VTK:                  no
-- 
--   F/T sensors: 
--     Use atidaq (built-in):       no
--     Use comedi:                  no
--     Use IIT SDK:                 no
-- 
--   Mocap: 
--     Use Qualisys:                no
--     Use Vicon:                   no
-- 
--   Detection: 
--     Use zbar:                    no
--     Use dmtx:                    yes (ver 0.7.7)
--     Use AprilTag (built-in):     yes (ver 3.1.1)
--     \- Use AprilTag big family:  no
-- 
--   Misc: 
--     Use Clipper (built-in):      yes (ver 6.4.2)
--     Use pugixml (built-in):      yes (ver 1.9.0)
--     Use libxml2:                 yes (ver 2.9.14)
--     Use json (nlohmann):         yes (ver 3.11.3)
-- 
--   Optimization: 
--     Use OpenMP:                  yes
--     Use pthread:                 yes
--     Use pthread (built-in):      no
--     Use Simd (built-in):         yes (ver 4.9.109)
-- 
--   DNN: 
--     Use CUDA Toolkit:            no
--     Use TensorRT:                no
-- 
--   Documentation: 
--     Use doxygen:                 yes
--     \- Use mathjax:              no
-- 
--   Tests and samples:
--     Use catch2 (built-in):       yes (ver 2.13.7)
--     Tests:                       yes
--     Demos:                       yes
--     Examples:                    yes
--     Tutorials:                   yes
--     Dataset found:               yes (ver 3.6.0 in /usr/share/visp-images-data/ViSP-images)
-- 
--   Library dirs:
--     Eigen3 include dir:          /usr/share/eigen3/cmake
--     OpenCV dir:                  /usr/lib/aarch64-linux-gnu/cmake/opencv4
-- 
--   Install path:                  /usr
-- 
-- ==========================================================
-- Configuring done (87.9s)
-- Generating done (8.0s)

Builds are NOK for:

  • armel
  • armhf
  • mips64el
  • riscv64
  • s390x
Build is NOK for "s390x 3.6.0-4 Build-Attempted 11d 2h 21m zani"
-- Performing Test HAVE_SSE2 (check file: cmake/checks/cpu_sse2.cpp)
-- Performing Test HAVE_SSE2 - Failed
-- Performing Test HAVE_SSE3 (check file: cmake/checks/cpu_sse3.cpp)
-- Performing Test HAVE_SSE3 - Failed
-- Performing Test HAVE_SSSE3 (check file: cmake/checks/cpu_ssse3.cpp)
-- Performing Test HAVE_SSSE3 - Failed
-- Performing Test HAVE_SSE4_1 (check file: cmake/checks/cpu_sse41.cpp)
-- Performing Test HAVE_SSE4_1 - Failed
-- Performing Test HAVE_SSE4_2 (check file: cmake/checks/cpu_sse42.cpp)
-- Performing Test HAVE_SSE4_2 - Failed
-- Performing Test HAVE_AVX (check file: cmake/checks/cpu_avx.cpp)
-- Performing Test HAVE_AVX - Failed
-- Performing Test HAVE_AVX2 (check file: cmake/checks/cpu_avx2.cpp)
-- Performing Test HAVE_AVX2 - Failed
-- Performing Test HAVE_NEON (check file: cmake/checks/cpu_neon.cpp)
-- Performing Test HAVE_NEON - Failed
-- 
-- ==========================================================
-- General configuration information for ViSP 3.6.0
-- 
--   Version control:               unknown
-- 
--   Platform:
--     Timestamp:                   2025-02-16T17:47:35Z
--     Host:                        Linux 6.1.0-31-s390x s390x
--     CMake:                       3.31.6
--     CMake generator:             Unix Makefiles
--     CMake build tool:            /usr/bin/gmake
--     Configuration:               Release
-- 
--   System information:
--     Number of CPU logical cores: 2
--     Number of CPU physical cores: 2
--     Total physical memory (in MiB): 8026
--     OS name:                     Linux
--     OS release:                  6.1.0-31-s390x
--     OS version:                  #1 SMP Debian 6.1.128-1 (2025-02-07)
--     OS platform:                 s390x
--     CPU name:                    3241.00
--     Is the CPU 64-bit?           yes
--     Does the CPU have FPU?       no
--     CPU optimization:
-- 
--   C/C++:
--     Built as dynamic libs?:      yes
--     C++ Compiler:                /usr/bin/c++  (ver 14.2.0)
--     C++ flags (Release):         -g -O2 -ffile-prefix-map=/build/reproducible-path/visp-3.6.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2  -Wall -Wextra -fopenmp -std=c++17 -fvisibility=hidden -fPIC -g -O2 -ffile-prefix-map=/build/reproducible-path/visp-3.6.0=. -fstack-protector-strong -Wformat -Werror=format-security
--     C++ flags (Debug):           -g -O2 -ffile-prefix-map=/build/reproducible-path/visp-3.6.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2  -Wall -Wextra -fopenmp -std=c++17 -fvisibility=hidden -fPIC -g
--     C Compiler:                  /usr/bin/cc
--     C flags (Release):           -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/visp-3.6.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2  -Wall -Wextra -fopenmp -std=c++17 -fvisibility=hidden -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/visp-3.6.0=. -fstack-protector-strong -Wformat -Werror=format-security
--     C flags (Debug):             -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/visp-3.6.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2  -Wall -Wextra -fopenmp -std=c++17 -fvisibility=hidden -fPIC -g
--     Linker flags (Release):      -Wl,-z,relro -Wl,-z,now -Wl,-z,relro -Wl,-z,now
--     Linker flags (Debug):        -Wl,-z,relro -Wl,-z,now
--     Use cxx standard:            17
-- 
--   ViSP modules:
--     To be built:                 core dnn_tracker gui imgproc io java_bindings_generator klt me sensor ar blob robot visual_features vs vision detection mbt tt tt_mi
--     Disabled:                    -
--     Disabled by dependency:      -
--     Unavailable:                 java
-- 
--   Python (for build):            no
-- 
--   Java:                          
--     ant:                         no
--     JNI:                         no
-- 
--   Build options: 
--     Build deprecated:            yes
--     Build with moment combine:   no
-- 
--   OpenCV: 
--     Version:                     4.10.0
--     Modules:                     calib3d core dnn features2d flann highgui imgcodecs imgproc ml objdetect photo stitching video videoio alphamat aruco bgsegm bioinspired ccalib cvv datasets dnn_objdetect dnn_superres dpm face freetype fuzzy hdf hfs img_hash intensity_transform line_descriptor mcc optflow phase_unwrapping plot quality rapid reg rgbd saliency shape signal stereo structured_light superres surface_matching text tracking videostab viz wechat_qrcode ximgproc xobjdetect xphoto
--     OpenCV dir:                  /usr/lib/s390x-linux-gnu/cmake/opencv4
-- 
--   Mathematics: 
--     Blas/Lapack:                 yes
--     \- Use MKL:                  no
--     \- Use OpenBLAS:             no
--     \- Use Atlas:                no
--     \- Use Netlib:               no
--     \- Use GSL:                  yes (ver 2.8)
--     \- Use Lapack (built-in):    no
--     Use Eigen3:                  yes (ver 3.4.0)
--     Use OpenCV:                  yes (ver 4.10.0)
-- 
--   Simulator: 
--     Ogre simulator: 
--     \- Use Ogre3D:               no
--     \- Use OIS:                  no
--     Coin simulator: 
--     \- Use Coin3D:               yes (ver 4.0.3)
--     \- Use SoWin:                no
--     \- Use SoXt:                 no
--     \- Use SoQt:                 no
--     \- Use Qt5:                  no
--     \- Use Qt4:                  no
--     \- Use Qt3:                  no
-- 
--   Media I/O: 
--     Use JPEG:                    yes (ver 62)
--     Use PNG:                     yes (ver 1.6.47)
--     \- Use ZLIB:                 yes (ver 1.3.1)
--     Use OpenCV:                  yes (ver 4.10.0)
--     Use stb_image (built-in):    yes (ver 2.27.0)
--     Use TinyEXR (built-in):      yes (ver 1.0.2)
-- 
--   Real robots: 
--     Use Afma4:                   no
--     Use Afma6:                   no
--     Use Franka:                  no
--     Use Viper650:                no
--     Use Viper850:                no
--     Use ur_rtde:                 no
--     Use Kinova Jaco:             no
--     Use aria (Pioneer):          no
--     Use PTU46:                   no
--     Use Biclops PTU:             no
--     Use Flir PTU SDK:            no
--     Use MAVSDK:                  no
--     Use Parrot ARSDK:            no
--     \-Use ffmpeg:                no
--     Use Virtuose:                no
--     Use qbdevice (built-in):     yes (ver 2.6.0)
--     Use takktile2 (built-in):    yes (ver 1.0.0)
-- 
--   GUI: 
--     Use X11:                     yes
--     Use GTK:                     no
--     Use OpenCV:                  yes (ver 4.10.0)
--     Use GDI:                     no
--     Use Direct3D:                no
-- 
--   Cameras: 
--     Use DC1394-2.x:              yes (ver 2.2.6)
--     Use CMU 1394:                no
--     Use V4L2:                    yes (ver 1.28.1)
--     Use directshow:              no
--     Use OpenCV:                  yes (ver 4.10.0)
--     Use FLIR Flycapture:         no
--     Use Basler Pylon:            no
--     Use IDS uEye:                no
-- 
--   RGB-D sensors: 
--     Use Realsense:               no
--     Use Realsense2:              no
--     Use Occipital Structure:     no
--     Use Kinect:                  no
--     \- Use libfreenect:          no
--     \- Use libusb-1:             no
--     \- Use pthread:              yes
--     Use PCL:                     no
--     \- Use VTK:                  no
-- 
--   F/T sensors: 
--     Use atidaq (built-in):       no
--     Use comedi:                  no
--     Use IIT SDK:                 no
-- 
--   Mocap: 
--     Use Qualisys:                no
--     Use Vicon:                   no
-- 
--   Detection: 
--     Use zbar:                    no
--     Use dmtx:                    yes (ver 0.7.7)
--     Use AprilTag (built-in):     yes (ver 3.1.1)
--     \- Use AprilTag big family:  no
-- 
--   Misc: 
--     Use Clipper (built-in):      yes (ver 6.4.2)
--     Use pugixml (built-in):      yes (ver 1.9.0)
--     Use libxml2:                 yes (ver 2.9.14)
--     Use json (nlohmann):         yes (ver 3.11.3)
-- 
--   Optimization: 
--     Use OpenMP:                  yes
--     Use pthread:                 yes
--     Use pthread (built-in):      no
--     Use Simd (built-in):         yes (ver 4.9.109)
-- 
--   DNN: 
--     Use CUDA Toolkit:            no
--     Use TensorRT:                no
-- 
--   Documentation: 
--     Use doxygen:                 yes
--     \- Use mathjax:              no
-- 
--   Tests and samples:
--     Use catch2 (built-in):       yes (ver 2.13.7)
--     Tests:                       yes
--     Demos:                       yes
--     Examples:                    yes
--     Tutorials:                   yes
--     Dataset found:               yes (ver 3.6.0 in /usr/share/visp-images-data/ViSP-images)
-- 
--   Library dirs:
--     Eigen3 include dir:          /usr/share/eigen3/cmake
--     OpenCV dir:                  /usr/lib/s390x-linux-gnu/cmake/opencv4
-- 
--   Install path:                  /usr
-- 
-- ==========================================================
-- Configuring done (9.8s)
-- Generating done (2.2s)

OpenCV HAL API for v_mul is available for all the platforms only starting from 4.11.
So between >= 4.9 and < 4.11 we can use OpenCV HAL with regular architectures: X86 or ARM64.
Copy link

codecov bot commented Mar 9, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 54.52%. Comparing base (577f226) to head (719d323).
Report is 5 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #1607   +/-   ##
=======================================
  Coverage   54.52%   54.52%           
=======================================
  Files         442      442           
  Lines       53480    53480           
=======================================
  Hits        29159    29159           
  Misses      24321    24321           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@s-trinh s-trinh changed the title Fix build error with cv::v_mul when OpenCV >= 4.9 && < 4.11 on esoteric platforms Fix build error with cv::v_mul when OpenCV >= 4.9 && < 4.11 on exotic platforms Mar 9, 2025
@fspindle
Copy link
Contributor

@s-trinh Thanks

@fspindle fspindle merged commit edba767 into lagadic:master Mar 10, 2025
84 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Build failure on Debian for armel, armhf, mips64el, riscv64, and s390x
2 participants