Skip to content

Build opencv-4.11.0 on Fedora rawhide fails only on PPC64LE with new GCC 15 #26770

@sergiomb2

Description

@sergiomb2

System Information

OpenCV: 4.11.0
Operating System / Platform Fedora rawhide (42)
Compiler & compiler version: gcc: 15.0.0-0.4.fc42

here is the scratch build (only available for a few days) : https://koji.fedoraproject.org/koji/taskinfo?taskID=127846000

"
See https://gcc.gnu.org/r15-1919 and
https://gcc.gnu.org/pipermail/gcc-patches/2024-April/649747.html
In short, for intrinsics on the various architectures, the supported API
are the intrinsics declared in the header, not the underlying builtin
functions, which can be added/removed as needed, those are just
implementation details how to implement those intrinsics.
opencv is clearly using a builtin directly, don't.

That said, I don't know much about the VSX intrinsics, for vector
conversions there is also __builtin_convertvector (both in GCC and LLVM)
which allows to say convert a vector of floats to vector of doubles or vice
versa.

In any case, I think raise this upstream and if they don't know what to do,
get them talk to the author of those changes.

Jakub
"

Let me know if you need more information

Thank you,

Detailed description

[  1%] Building CXX object CMakeFiles/ade.dir/3rdparty/ade/ade-0.1.2e/sources/ade/source/memory_accessor.cpp.o
/usr/bin/g++ -DVK_NO_PROTOTYPES -I/builddir/build/BUILD/opencv-4.11.0-build/opencv-4.11.0/redhat-linux-build -I/usr/include/vulkan -I/builddir/build/BUILD/opencv-4.11.0-build/opencv-4.11.0/redhat-linux-build/3rdparty/ade/ade-0.1.2e/sources/ade/include -isystem /usr/include/gdal -isystem /usr/include/coin -isystem /usr/include/openblas -O2  -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -mcpu=power8 -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection   -fsigned-char -W -Wall -Wreturn-type -Wnon-virtual-dtor -Waddress -Wsequence-point -Wformat -Wformat-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections  -fvisibility=hidden -fvisibility-inlines-hidden -fopenmp -DNDEBUG  -DNDEBUG -std=c++17 -fPIC -MD -MT CMakeFiles/ade.dir/3rdparty/ade/ade-0.1.2e/sources/ade/source/memory_accessor.cpp.o -MF CMakeFiles/ade.dir/3rdparty/ade/ade-0.1.2e/sources/ade/source/memory_accessor.cpp.o.d -o CMakeFiles/ade.dir/3rdparty/ade/ade-0.1.2e/sources/ade/source/memory_accessor.cpp.o -c /builddir/build/BUILD/opencv-4.11.0-build/opencv-4.11.0/redhat-linux-build/3rdparty/ade/ade-0.1.2e/sources/ade/source/memory_accessor.cpp
In file included from /builddir/build/BUILD/opencv-4.11.0-build/opencv-4.11.0/modules/core/include/opencv2/core/base.hpp:679,
                 from /builddir/build/BUILD/opencv-4.11.0-build/opencv-4.11.0/modules/core/include/opencv2/core.hpp:53,
                 from /builddir/build/BUILD/opencv-4.11.0-build/opencv-4.11.0/modules/core/include/opencv2/core/utility.hpp:56,
                 from /builddir/build/BUILD/opencv-4.11.0-build/opencv-4.11.0/modules/core/src/precomp.hpp:53,
                 from /builddir/build/BUILD/opencv-4.11.0-build/opencv-4.11.0/modules/core/src/alloc.cpp:43:
/builddir/build/BUILD/opencv-4.11.0-build/opencv-4.11.0/modules/core/include/opencv2/core/vsx_utils.hpp: In function ‘vec_float4 vec_cvfo(const vec_double2&)’:
/builddir/build/BUILD/opencv-4.11.0-build/opencv-4.11.0/modules/core/include/opencv2/core/vsx_utils.hpp:260:54: error: ‘__builtin_vsx_xvcvdpsp’ was not declared in this scope; did you mean ‘__builtin_vsx_xscvdpsp’?
  260 | VSX_REDIRECT_1RG(vec_float4,  vec_double2, vec_cvfo, __builtin_vsx_xvcvdpsp)
      |                                                      ^~~~~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/opencv-4.11.0-build/opencv-4.11.0/modules/core/include/opencv2/core/vsx_utils.hpp:102:43: note: in definition of macro ‘VSX_REDIRECT_1RG’
  102 | VSX_FINLINE(rt) fnm(const rg& a) { return fn2(a); }
      |                                           ^~~
/builddir/build/BUILD/opencv-4.11.0-build/opencv-4.11.0/modules/core/include/opencv2/core/vsx_utils.hpp: In function ‘vec_double2 vec_cvfo(const vec_float4&)’:
/builddir/build/BUILD/opencv-4.11.0-build/opencv-4.11.0/modules/core/include/opencv2/core/vsx_utils.hpp:261:54: error: ‘__builtin_vsx_xvcvspdp’ was not declared in this scope; did you mean ‘__builtin_vsx_xscvspdp’?
  261 | VSX_REDIRECT_1RG(vec_double2, vec_float4,  vec_cvfo, __builtin_vsx_xvcvspdp)
      |                                                      ^~~~~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/opencv-4.11.0-build/opencv-4.11.0/modules/core/include/opencv2/core/vsx_utils.hpp:102:43: note: in definition of macro ‘VSX_REDIRECT_1RG’
  102 | VSX_FINLINE(rt) fnm(const rg& a) { return fn2(a); }
      |                                           ^~~

Steps to reproduce

git clone https://src.fedoraproject.org/forks/packit/rpms/opencv.git
git checkout rawhide-update-pull_from_upstream
fedpkg --release rawhide scratch-build --target f42-build-side-103300 (this one one need to be a fedora packager ) you can build locally with koji side-tag f42-build-side-1103300 repo, let me know if you need that instructions

Thank you

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 any solution
  • I updated to the 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

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions