Skip to content

FTBS w/ GCC 15 for ppc64le #2443

Closed
Closed

Description

@kmilos

Fedora Rawhide switched to GCC 15, and libjxl fails to build now on ppc64le: https://kojipkgs.fedoraproject.org//work/tasks/522/127990522/build.log

/usr/include/hwy/ops/ppc_vsx-inl.h: In function ‘hwy::N_PPC8::VFromD<D> hwy::N_PPC8::PromoteTo(D, VFromD<typename D::Rebind<float> >)’:
/usr/include/hwy/ops/ppc_vsx-inl.h:3692:33: error: there are no arguments to ‘__builtin_vsx_xvcvspsxds’ that depend on a template parameter, so a declaration of ‘__builtin_vsx_xvcvspsxds’ must be available [-Wtemplate-body]
 3692 |   return VFromD<decltype(di64)>{__builtin_vsx_xvcvspsxds(raw_v)};
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/hwy/ops/ppc_vsx-inl.h:3692:33: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/usr/include/hwy/ops/ppc_vsx-inl.h: In function ‘hwy::N_PPC8::VFromD<D> hwy::N_PPC8::PromoteTo(D, VFromD<typename D::Rebind<float> >)’:
/usr/include/hwy/ops/ppc_vsx-inl.h:3706:7: error: there are no arguments to ‘__builtin_vsx_xvcvspuxds’ that depend on a template parameter, so a declaration of ‘__builtin_vsx_xvcvspuxds’ must be available [-Wtemplate-body]
 3706 |       __builtin_vsx_xvcvspuxds(raw_v))};
      |       ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/hwy/ops/ppc_vsx-inl.h: In function ‘hwy::N_PPC8::VFromD<D> hwy::N_PPC8::PromoteUpperTo(D, Vec128<float>)’:
/usr/include/hwy/ops/ppc_vsx-inl.h:3816:33: error: there are no arguments to ‘__builtin_vsx_xvcvspsxds’ that depend on a template parameter, so a declaration of ‘__builtin_vsx_xvcvspsxds’ must be available [-Wtemplate-body]
 3816 |   return VFromD<decltype(di64)>{__builtin_vsx_xvcvspsxds(raw_v)};
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/hwy/ops/ppc_vsx-inl.h: In function ‘hwy::N_PPC8::VFromD<D> hwy::N_PPC8::PromoteUpperTo(D, Vec128<float>)’:
/usr/include/hwy/ops/ppc_vsx-inl.h:3831:7: error: there are no arguments to ‘__builtin_vsx_xvcvspuxds’ that depend on a template parameter, so a declaration of ‘__builtin_vsx_xvcvspuxds’ must be available [-Wtemplate-body]
 3831 |       __builtin_vsx_xvcvspuxds(raw_v))};
      |       ^~~~~~~~~~~~~~~~~~~~~~~~

See also https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/7DZJVMHWPYMRPJC3BEM6RFCE2O64S44G/

Activity

  1. changed the title [-]FTBS for ppc64le[/-] [+]FTBS w/ GCC 15 for ppc64le[/+] on Jan 17, 2025
  2. jan-wassenberg commented on Jan 17, 2025

    @jan-wassenberg
    Member

    Thanks for reporting.
    Looks like this intrinsic was removed. @johnplatts , can you confirm that it can be replaced with vec_signed, and/or would you like to send a PR to do so?

  3. johnplatts commented on Jan 17, 2025

    @johnplatts
    Contributor

    Thanks for reporting. Looks like this intrinsic was removed. @johnplatts , can you confirm that it can be replaced with vec_signed, and/or would you like to send a PR to do so?

    @jan-wassenberg I have implemented a fix to this issue, and I will submit a pull request once I verify that the fix compiles successfully with GCC 14, GCC 15, and Clang 19 on both big-endian PPC and little-endian PPC.

  4. jan-wassenberg commented on Jan 20, 2025

    @jan-wassenberg
    Member

    Thanks for adding the workaround! Golly, 4 different versions depending on the compiler version :/

  5. jan-wassenberg commented on Jan 24, 2025

    @jan-wassenberg
    Member

    Thanks @johnplatts for fixing.
    Closing, please feel free to reopen if required.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions