Skip to content

arm64 build fails with conversion error on Fedora w/ GCC 15.2.1 #226

@hobbes1069

Description

@hobbes1069

I get repeated errors of the following:

In file included from /builddir/build/BUILD/netgen-mesher-6.2.2506-build/netgen-6.2.2506/libsrc/core/profiler.hpp:12,
                 from /builddir/build/BUILD/netgen-mesher-6.2.2506-build/netgen-6.2.2506/libsrc/core/table.hpp:18,
                 from /builddir/build/BUILD/netgen-mesher-6.2.2506-build/netgen-6.2.2506/libsrc/core/ngcore.hpp:9,
                 from /builddir/build/BUILD/netgen-mesher-6.2.2506-build/netgen-6.2.2506/libsrc/include/../general/../include/mydefs.hpp:14,
                 from /builddir/build/BUILD/netgen-mesher-6.2.2506-build/netgen-6.2.2506/libsrc/include/../general/myadt.hpp:16,
                 from /builddir/build/BUILD/netgen-mesher-6.2.2506-build/netgen-6.2.2506/libsrc/include/myadt.hpp:1,
                 from /builddir/build/BUILD/netgen-mesher-6.2.2506-build/netgen-6.2.2506/libsrc/general/spbita2d.cpp:13:
/builddir/build/BUILD/netgen-mesher-6.2.2506-build/netgen-6.2.2506/libsrc/core/taskmanager.hpp: In member function ‘void ngcore::SharedLoop2::SharedIterator::GetNext2()’:
/builddir/build/BUILD/netgen-mesher-6.2.2506-build/netgen-6.2.2506/libsrc/core/taskmanager.hpp:596:28: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
  596 |             if (steal_from == ranges.Size()) steal_from = 0;
      |                 ~~~~~~~~~~~^~~~~~~~~~~~~~~~
In file included from /builddir/build/BUILD/netgen-mesher-6.2.2506-build/netgen-6.2.2506/libsrc/core/simd.hpp:34,
                 from /builddir/build/BUILD/netgen-mesher-6.2.2506-build/netgen-6.2.2506/libsrc/core/ngcore.hpp:16:
/builddir/build/BUILD/netgen-mesher-6.2.2506-build/netgen-6.2.2506/libsrc/core/simd_arm64.hpp: In function ‘ngcore::SIMD<ngcore::mask64, 2> ngcore::operator==(SIMD<long int, 2>, SIMD<long int, 2>)’:
/builddir/build/BUILD/netgen-mesher-6.2.2506-build/netgen-6.2.2506/libsrc/core/simd_arm64.hpp:75:21: note: use ‘-flax-vector-conversions’ to permit conversions between vectors with differing element types or numbers of subparts
   75 |     return vceqq_u64(a.Data(), b.Data());
      |            ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/netgen-mesher-6.2.2506-build/netgen-6.2.2506/libsrc/core/simd_arm64.hpp:75:28: error: cannot convert ‘__Int64x2_t’ to ‘uint64x2_t’
   75 |     return vceqq_u64(a.Data(), b.Data());
      |                      ~~~~~~^~
      |                            |
      |                            __Int64x2_t
In file included from /builddir/build/BUILD/netgen-mesher-6.2.2506-build/netgen-6.2.2506/libsrc/core/simd_arm64.hpp:1:
/usr/lib/gcc/aarch64-redhat-linux/15/include/arm_neon.h:7646:23: note: initializing argument 1 of ‘uint64x2_t vceqq_u64(uint64x2_t, uint64x2_t)’
 7646 | vceqq_u64 (uint64x2_t __a, uint64x2_t __b)
      |            ~~~~~~~~~~~^~~
/builddir/build/BUILD/netgen-mesher-6.2.2506-build/netgen-6.2.2506/libsrc/core/simd_arm64.hpp: In function ‘ngcore::SIMD<ngcore::mask64, 2> ngcore::operator>(SIMD<long int, 2>, SIMD<long int, 2>)’:
/builddir/build/BUILD/netgen-mesher-6.2.2506-build/netgen-6.2.2506/libsrc/core/simd_arm64.hpp:80:21: error: could not convert ‘vcgtq_s64(a.ngcore::SIMD<long int, 2>::Data(), b.ngcore::SIMD<long int, 2>::Data())’ from ‘uint64x2_t’ to ‘ngcore::SIMD<ngcore::mask64, 2>’
   80 |     return vcgtq_s64(a.Data(), b.Data());
      |            ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
      |                     |

https://kojipkgs.fedoraproject.org//work/tasks/5848/137435848/build.log

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