Skip to content

[C++] Version 25.0.0 does not build with ARROW_SIMD_LEVEL=NONE #50542

Description

@lahwaacz

Describe the bug, including details regarding any error messages, version, and platform.

I tried to build the 25.0.0 release on Arch Linux but it failed with these errors:

cmake_options=(
    -B build
    -S apache-arrow-25.0.0/cpp
    -G Ninja
    -W no-dev
    -DCMAKE_BUILD_TYPE=RelWithDebInfo
    -DCMAKE_INSTALL_PREFIX="/usr"
    -DCMAKE_INSTALL_LIBDIR="lib"
    -DARROW_SIMD_LEVEL=NONE
    -DARROW_RUNTIME_SIMD_LEVEL=MAX
    -DARROW_DEPENDENCY_SOURCE=SYSTEM
    -DARROW_BUILD_STATIC=OFF
    -DARROW_BUILD_TESTS=ON
    -DARROW_BUILD_UTILITIES=ON
    -DARROW_COMPUTE=ON
    -DARROW_CSV=ON
    -DARROW_FILESYSTEM=ON
    -DARROW_FLIGHT=ON
    -DARROW_FLIGHT_SQL=ON
    -DARROW_GANDIVA=OFF
    -DARROW_HDFS=ON
    -DARROW_IPC=ON
    -DARROW_JEMALLOC=ON
    -DARROW_JSON=ON
    -DARROW_ORC=ON
    -DARROW_PARQUET=ON
    -DARROW_S3=ON
    -DARROW_SUBSTRAIT=ON
    -DARROW_TENSORFLOW=ON
    -DARROW_USE_GLOG=ON
    -DARROW_WITH_BROTLI=ON
    -DARROW_WITH_BZ2=ON
    -DARROW_WITH_LZ4=ON
    -DARROW_WITH_SNAPPY=ON
    -DARROW_WITH_ZLIB=ON
    -DARROW_WITH_ZSTD=ON
    -DPARQUET_REQUIRE_ENCRYPTION=ON
)
cmake "${cmake_options[@]}"
cmake --build build
...
FAILED: [code=1] src/arrow/CMakeFiles/arrow_util.dir/util/bpacking.cc.o
/usr/bin/c++ -DARROW_HAVE_RUNTIME_AVX2 -DARROW_HAVE_RUNTIME_AVX512 -DARROW_HAVE_RUNTIME_BMI2 -DARROW_HAVE_RUNTIME_SSE4_2 -DARROW_WITH_TIMING_TESTS -DGFLAGS_IS_A_DLL=0 -DGLOG_USE_GFLAGS -DGLOG_USE_GLOG_EXPORT -DURI_STATIC_BUILD -I/build/arrow/src/build/src -I/build/arrow/src/apache-arrow-25.0.0/cpp/src -Wredundant-move -Wno-noexcept-type -Wno-self-move -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection         -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/arrow/src=/usr/src/debug/arrow -flto=auto -fdiagnostics-color=always  -Wall -Wno-conversion -Wno-sign-conversion -Wdate-time -Wimplicit-fallthrough -Wunused-result -fno-semantic-interposition  -O2 -g -DNDEBUG -ftree-vectorize -ggdb  -std=c++20 -fPIC -MD -MT src/arrow/CMakeFiles/arrow_util.dir/util/bpacking.cc.o -MF src/arrow/CMakeFiles/arrow_util.dir/util/bpacking.cc.o.d -o src/arrow/CMakeFiles/arrow_util.dir/util/bpacking.cc.o -c /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc
In file included from /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:23:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc: In static member function ‘static constexpr auto arrow::internal::{anonymous}::UnpackDynamicFunction<Uint>::targets()’:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:39:49: error: ‘unpack_sse4_2’ is not a member of ‘arrow::internal::bpacking’ [-Wtemplate-body]
   39 |         ARROW_DISPATCH_TARGET_SSE4_2(&bpacking::unpack_sse4_2<Uint>)  //
      |                                                 ^~~~~~~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:158:10: note: in definition of macro ‘ARROW_DISPATCH_TARGET_SSE4_2’
  158 |         (func),                                   \
      |          ^~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:39:67: error: expected primary-expression before ‘>’ token [-Wtemplate-body]
   39 |         ARROW_DISPATCH_TARGET_SSE4_2(&bpacking::unpack_sse4_2<Uint>)  //
      |                                                                   ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:158:10: note: in definition of macro ‘ARROW_DISPATCH_TARGET_SSE4_2’
  158 |         (func),                                   \
      |          ^~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:158:14: error: expected primary-expression before ‘)’ token [-Wtemplate-body]
  158 |         (func),                                   \
      |              ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:39:9: note: in expansion of macro ‘ARROW_DISPATCH_TARGET_SSE4_2’
   39 |         ARROW_DISPATCH_TARGET_SSE4_2(&bpacking::unpack_sse4_2<Uint>)  //
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc: In instantiation of ‘void arrow::internal::unpack(const uint8_t*, Uint*, const UnpackOptions&) [with Uint = bool; uint8_t = unsigned char]’:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:54:71:   required from here
   54 | template void unpack<bool>(const uint8_t*, bool*, const UnpackOptions&);
      |                                                                       ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61: error: template constraint failure for ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch’
   50 |   static const DynamicDispatch<UnpackDynamicFunction<Uint>> dispatch;
      |                                                             ^~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61: note: constraints not satisfied
  • /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h: In substitution of ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch [with DynamicFunction = arrow::internal::{anonymous}::UnpackDynamicFunction<bool>]’:
  • required from ‘void arrow::internal::unpack(const uint8_t*, Uint*, const UnpackOptions&) [with Uint = bool; uint8_t = unsigned char]’
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61:
  • required from here
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:54:71:
       54 | template void unpack<bool>(const uint8_t*, bool*, const UnpackOptions&);
          |                                                                       ^
  • required for the satisfaction of ‘DynamicDispatchSpec<DynamicFunction>’ [with DynamicFunction = arrow::internal::<unnamed>::UnpackDynamicFunction<bool>]
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:229:9:
      229 | concept DynamicDispatchSpec = requires {
          |         ^~~~~~~~~~~~~~~~~~~
  • in requirements  [with T = arrow::internal::<unnamed>::UnpackDynamicFunction<bool>]
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:229:31:
      229 | concept DynamicDispatchSpec = requires {
          |                               ^~~~~~~~~~
      230 |   typename T::FunctionType;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~
      231 |
          |
      232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      233 |   requires T::targets().size() > 0;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      234 |   requires DispatchHasStatic<typename T::FunctionType>(T::targets());
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      235 | };
          | ~
  • the required expression ‘T::targets()’ is invalid
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:232:15:
      232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
          |     ~~~~~~~~~~^~
  • nested requirement ‘(T::targets().size() > 0)’ is not satisfied
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:233:12:
      233 |   requires T::targets().size() > 0;
          |   ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
  • nested requirement ‘DispatchHasStatic<typename T::FunctionType>(T::targets())’ is not satisfied
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:234:12:
      234 |   requires DispatchHasStatic<typename T::FunctionType>(T::targets());
          |   ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc: In instantiation of ‘void arrow::internal::unpack(const uint8_t*, Uint*, const UnpackOptions&) [with Uint = bool; uint8_t = unsigned char]’:
  • required from here
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:54:71:
       54 | template void unpack<bool>(const uint8_t*, bool*, const UnpackOptions&);
          |                                                                       ^
  • set ‘-fconcepts-diagnostics-depth=’ to at least 2 for more detail
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc: In instantiation of ‘void arrow::internal::unpack(const uint8_t*, Uint*, const UnpackOptions&) [with Uint = unsigned char; uint8_t = unsigned char]’:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:55:77:   required from here
   55 | template void unpack<uint8_t>(const uint8_t*, uint8_t*, const UnpackOptions&);
      |                                                                             ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61: error: template constraint failure for ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch’
   50 |   static const DynamicDispatch<UnpackDynamicFunction<Uint>> dispatch;
      |                                                             ^~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61: note: constraints not satisfied
  • /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h: In substitution of ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch [with DynamicFunction = arrow::internal::{anonymous}::UnpackDynamicFunction<unsigned char>]’:
  • required from ‘void arrow::internal::unpack(const uint8_t*, Uint*, const UnpackOptions&) [with Uint = unsigned char; uint8_t = unsigned char]’
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61:
  • required from here
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:55:77:
       55 | template void unpack<uint8_t>(const uint8_t*, uint8_t*, const UnpackOptions&);
          |                                                                             ^
  • required for the satisfaction of ‘DynamicDispatchSpec<DynamicFunction>’ [with DynamicFunction = arrow::internal::<unnamed>::UnpackDynamicFunction<unsigned char>]
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:229:9:
      229 | concept DynamicDispatchSpec = requires {
          |         ^~~~~~~~~~~~~~~~~~~
  • in requirements  [with T = arrow::internal::<unnamed>::UnpackDynamicFunction<unsigned char>]
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:229:31:
      229 | concept DynamicDispatchSpec = requires {
          |                               ^~~~~~~~~~
      230 |   typename T::FunctionType;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~
      231 |
          |
      232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      233 |   requires T::targets().size() > 0;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      234 |   requires DispatchHasStatic<typename T::FunctionType>(T::targets());
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      235 | };
          | ~
  • the required expression ‘T::targets()’ is invalid
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:232:15:
      232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
          |     ~~~~~~~~~~^~
  • nested requirement ‘(T::targets().size() > 0)’ is not satisfied
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:233:12:
      233 |   requires T::targets().size() > 0;
          |   ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
  • nested requirement ‘DispatchHasStatic<typename T::FunctionType>(T::targets())’ is not satisfied
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:234:12:
      234 |   requires DispatchHasStatic<typename T::FunctionType>(T::targets());
          |   ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc: In instantiation of ‘void arrow::internal::unpack(const uint8_t*, Uint*, const UnpackOptions&) [with Uint = short unsigned int; uint8_t = unsigned char]’:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:56:79:   required from here
   56 | template void unpack<uint16_t>(const uint8_t*, uint16_t*, const UnpackOptions&);
      |                                                                               ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61: error: template constraint failure for ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch’
   50 |   static const DynamicDispatch<UnpackDynamicFunction<Uint>> dispatch;
      |                                                             ^~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61: note: constraints not satisfied
  • /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h: In substitution of ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch [with DynamicFunction = arrow::internal::{anonymous}::UnpackDynamicFunction<short unsigned int>]’:
  • required from ‘void arrow::internal::unpack(const uint8_t*, Uint*, const UnpackOptions&) [with Uint = short unsigned int; uint8_t = unsigned char]’
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61:
  • required from here
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:56:79:
       56 | template void unpack<uint16_t>(const uint8_t*, uint16_t*, const UnpackOptions&);
          |                                                                               ^
  • required for the satisfaction of ‘DynamicDispatchSpec<DynamicFunction>’ [with DynamicFunction = arrow::internal::<unnamed>::UnpackDynamicFunction<short unsigned int>]
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:229:9:
      229 | concept DynamicDispatchSpec = requires {
          |         ^~~~~~~~~~~~~~~~~~~
  • in requirements  [with T = arrow::internal::<unnamed>::UnpackDynamicFunction<short unsigned int>]
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:229:31:
      229 | concept DynamicDispatchSpec = requires {
          |                               ^~~~~~~~~~
      230 |   typename T::FunctionType;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~
      231 |
          |
      232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      233 |   requires T::targets().size() > 0;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      234 |   requires DispatchHasStatic<typename T::FunctionType>(T::targets());
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      235 | };
          | ~
  • the required expression ‘T::targets()’ is invalid
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:232:15:
      232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
          |     ~~~~~~~~~~^~
  • nested requirement ‘(T::targets().size() > 0)’ is not satisfied
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:233:12:
      233 |   requires T::targets().size() > 0;
          |   ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
  • nested requirement ‘DispatchHasStatic<typename T::FunctionType>(T::targets())’ is not satisfied
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:234:12:
      234 |   requires DispatchHasStatic<typename T::FunctionType>(T::targets());
          |   ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc: In instantiation of ‘void arrow::internal::unpack(const uint8_t*, Uint*, const UnpackOptions&) [with Uint = unsigned int; uint8_t = unsigned char]’:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:57:79:   required from here
   57 | template void unpack<uint32_t>(const uint8_t*, uint32_t*, const UnpackOptions&);
      |                                                                               ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61: error: template constraint failure for ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch’
   50 |   static const DynamicDispatch<UnpackDynamicFunction<Uint>> dispatch;
      |                                                             ^~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61: note: constraints not satisfied
  • /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h: In substitution of ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch [with DynamicFunction = arrow::internal::{anonymous}::UnpackDynamicFunction<unsigned int>]’:
  • required from ‘void arrow::internal::unpack(const uint8_t*, Uint*, const UnpackOptions&) [with Uint = unsigned int; uint8_t = unsigned char]’
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61:
  • required from here
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:57:79:
       57 | template void unpack<uint32_t>(const uint8_t*, uint32_t*, const UnpackOptions&);
          |                                                                               ^
  • required for the satisfaction of ‘DynamicDispatchSpec<DynamicFunction>’ [with DynamicFunction = arrow::internal::<unnamed>::UnpackDynamicFunction<unsigned int>]
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:229:9:
      229 | concept DynamicDispatchSpec = requires {
          |         ^~~~~~~~~~~~~~~~~~~
  • in requirements  [with T = arrow::internal::<unnamed>::UnpackDynamicFunction<unsigned int>]
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:229:31:
      229 | concept DynamicDispatchSpec = requires {
          |                               ^~~~~~~~~~
      230 |   typename T::FunctionType;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~
      231 |
          |
      232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      233 |   requires T::targets().size() > 0;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      234 |   requires DispatchHasStatic<typename T::FunctionType>(T::targets());
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      235 | };
          | ~
  • the required expression ‘T::targets()’ is invalid
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:232:15:
      232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
          |     ~~~~~~~~~~^~
  • nested requirement ‘(T::targets().size() > 0)’ is not satisfied
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:233:12:
      233 |   requires T::targets().size() > 0;
          |   ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
  • nested requirement ‘DispatchHasStatic<typename T::FunctionType>(T::targets())’ is not satisfied
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:234:12:
      234 |   requires DispatchHasStatic<typename T::FunctionType>(T::targets());
          |   ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc: In instantiation of ‘void arrow::internal::unpack(const uint8_t*, Uint*, const UnpackOptions&) [with Uint = long unsigned int; uint8_t = unsigned char]’:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:58:79:   required from here
   58 | template void unpack<uint64_t>(const uint8_t*, uint64_t*, const UnpackOptions&);
      |                                                                               ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61: error: template constraint failure for ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch’
   50 |   static const DynamicDispatch<UnpackDynamicFunction<Uint>> dispatch;
      |                                                             ^~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61: note: constraints not satisfied
  • /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h: In substitution of ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch [with DynamicFunction = arrow::internal::{anonymous}::UnpackDynamicFunction<long unsigned int>]’:
  • required from ‘void arrow::internal::unpack(const uint8_t*, Uint*, const UnpackOptions&) [with Uint = long unsigned int; uint8_t = unsigned char]’
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61:
  • required from here
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:58:79:
       58 | template void unpack<uint64_t>(const uint8_t*, uint64_t*, const UnpackOptions&);
          |                                                                               ^
  • required for the satisfaction of ‘DynamicDispatchSpec<DynamicFunction>’ [with DynamicFunction = arrow::internal::<unnamed>::UnpackDynamicFunction<long unsigned int>]
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:229:9:
      229 | concept DynamicDispatchSpec = requires {
          |         ^~~~~~~~~~~~~~~~~~~
  • in requirements  [with T = arrow::internal::<unnamed>::UnpackDynamicFunction<long unsigned int>]
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:229:31:
      229 | concept DynamicDispatchSpec = requires {
          |                               ^~~~~~~~~~
      230 |   typename T::FunctionType;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~
      231 |
          |
      232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      233 |   requires T::targets().size() > 0;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      234 |   requires DispatchHasStatic<typename T::FunctionType>(T::targets());
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      235 | };
          | ~
  • the required expression ‘T::targets()’ is invalid
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:232:15:
      232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
          |     ~~~~~~~~~~^~
  • nested requirement ‘(T::targets().size() > 0)’ is not satisfied
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:233:12:
      233 |   requires T::targets().size() > 0;
          |   ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
  • nested requirement ‘DispatchHasStatic<typename T::FunctionType>(T::targets())’ is not satisfied
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:234:12:
      234 |   requires DispatchHasStatic<typename T::FunctionType>(T::targets());
          |   ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

FAILED: [code=1] src/arrow/CMakeFiles/arrow_util.dir/util/byte_stream_split_internal.cc.o
/usr/bin/c++ -DARROW_HAVE_RUNTIME_AVX2 -DARROW_HAVE_RUNTIME_AVX512 -DARROW_HAVE_RUNTIME_BMI2 -DARROW_HAVE_RUNTIME_SSE4_2 -DARROW_WITH_TIMING_TESTS -DGFLAGS_IS_A_DLL=0 -DGLOG_USE_GFLAGS -DGLOG_USE_GLOG_EXPORT -DURI_STATIC_BUILD -I/build/arrow/src/build/src -I/build/arrow/src/apache-arrow-25.0.0/cpp/src -Wredundant-move -Wno-noexcept-type -Wno-self-move -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection         -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/arrow/src=/usr/src/debug/arrow -flto=auto -fdiagnostics-color=always  -Wall -Wno-conversion -Wno-sign-conversion -Wdate-time -Wimplicit-fallthrough -Wunused-result -fno-semantic-interposition  -O2 -g -DNDEBUG -ftree-vectorize -ggdb  -std=c++20 -fPIC -MD -MT src/arrow/CMakeFiles/arrow_util.dir/util/byte_stream_split_internal.cc.o -MF src/arrow/CMakeFiles/arrow_util.dir/util/byte_stream_split_internal.cc.o.d -o src/arrow/CMakeFiles/arrow_util.dir/util/byte_stream_split_internal.cc.o -c /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc
In file included from /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:18:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h: In instantiation of ‘void arrow::util::internal::ByteStreamSplitDecodeSimd(const uint8_t*, int, int64_t, int64_t, uint8_t*) [with Arch = xsimd::sse4_2; int kNumStreams = 2; uint8_t = unsigned char; int64_t = long int]’:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:46:5:   required from ‘static constexpr auto arrow::util::internal::ByteStreamSplitDecodeDynamic<kNumStreams>::targets() [with int kNumStreams = 2]’
   46 |     };
      |     ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:232:15:   required by substitution of ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch [with DynamicFunction = arrow::util::internal::ByteStreamSplitDecodeDynamic<2>]’
  232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
      |     ~~~~~~~~~~^~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:53:75:   required from ‘void arrow::util::internal::ByteStreamSplitDecodeSimdDispatch(const uint8_t*, int, int64_t, int64_t, uint8_t*) [with int kNumStreams = 2; uint8_t = unsigned char; int64_t = long int]’
   53 |   static const DynamicDispatch<ByteStreamSplitDecodeDynamic<kNumStreams>> dispatch;
      |                                                                           ^~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:58:60:   required from here
   58 |                                                    uint8_t*);
      |                                                            ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:56:28: error: static assertion failed: The smallest SIMD size is 128 bits
   56 |   static_assert(kBatchSize >= 16, "The smallest SIMD size is 128 bits");
      |                 ~~~~~~~~~~~^~~~~
  • the comparison reduces to ‘(1 >= 16)’
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:66:29: error: static assertion failed: The algorithm works when the number of streams is smaller than the SIMD batch size.
   66 |   static_assert(kNumStreams <= kBatchSize,
      |                 ~~~~~~~~~~~~^~~~~~~~~~~~~
  • the comparison reduces to ‘(2 <= 1)’
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h: In instantiation of ‘void arrow::util::internal::ByteStreamSplitDecodeSimd(const uint8_t*, int, int64_t, int64_t, uint8_t*) [with Arch = xsimd::sse4_2; int kNumStreams = 4; uint8_t = unsigned char; int64_t = long int]’:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:46:5:   required from ‘static constexpr auto arrow::util::internal::ByteStreamSplitDecodeDynamic<kNumStreams>::targets() [with int kNumStreams = 4]’
   46 |     };
      |     ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:232:15:   required by substitution of ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch [with DynamicFunction = arrow::util::internal::ByteStreamSplitDecodeDynamic<4>]’
  232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
      |     ~~~~~~~~~~^~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:53:75:   required from ‘void arrow::util::internal::ByteStreamSplitDecodeSimdDispatch(const uint8_t*, int, int64_t, int64_t, uint8_t*) [with int kNumStreams = 4; uint8_t = unsigned char; int64_t = long int]’
   53 |   static const DynamicDispatch<ByteStreamSplitDecodeDynamic<kNumStreams>> dispatch;
      |                                                                           ^~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:60:60:   required from here
   60 |                                                    uint8_t*);
      |                                                            ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:56:28: error: static assertion failed: The smallest SIMD size is 128 bits
   56 |   static_assert(kBatchSize >= 16, "The smallest SIMD size is 128 bits");
      |                 ~~~~~~~~~~~^~~~~
  • the comparison reduces to ‘(1 >= 16)’
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:66:29: error: static assertion failed: The algorithm works when the number of streams is smaller than the SIMD batch size.
   66 |   static_assert(kNumStreams <= kBatchSize,
      |                 ~~~~~~~~~~~~^~~~~~~~~~~~~
  • the comparison reduces to ‘(4 <= 1)’
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h: In instantiation of ‘void arrow::util::internal::ByteStreamSplitDecodeSimd(const uint8_t*, int, int64_t, int64_t, uint8_t*) [with Arch = xsimd::sse4_2; int kNumStreams = 8; uint8_t = unsigned char; int64_t = long int]’:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:46:5:   required from ‘static constexpr auto arrow::util::internal::ByteStreamSplitDecodeDynamic<kNumStreams>::targets() [with int kNumStreams = 8]’
   46 |     };
      |     ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:232:15:   required by substitution of ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch [with DynamicFunction = arrow::util::internal::ByteStreamSplitDecodeDynamic<8>]’
  232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
      |     ~~~~~~~~~~^~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:53:75:   required from ‘void arrow::util::internal::ByteStreamSplitDecodeSimdDispatch(const uint8_t*, int, int64_t, int64_t, uint8_t*) [with int kNumStreams = 8; uint8_t = unsigned char; int64_t = long int]’
   53 |   static const DynamicDispatch<ByteStreamSplitDecodeDynamic<kNumStreams>> dispatch;
      |                                                                           ^~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:62:60:   required from here
   62 |                                                    uint8_t*);
      |                                                            ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:56:28: error: static assertion failed: The smallest SIMD size is 128 bits
   56 |   static_assert(kBatchSize >= 16, "The smallest SIMD size is 128 bits");
      |                 ~~~~~~~~~~~^~~~~
  • the comparison reduces to ‘(1 >= 16)’
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:66:29: error: static assertion failed: The algorithm works when the number of streams is smaller than the SIMD batch size.
   66 |   static_assert(kNumStreams <= kBatchSize,
      |                 ~~~~~~~~~~~~^~~~~~~~~~~~~
  • the comparison reduces to ‘(8 <= 1)’
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h: In instantiation of ‘void arrow::util::internal::ByteStreamSplitEncodeSimd(const uint8_t*, int, int64_t, uint8_t*) [with Arch = xsimd::sse4_2; int kNumStreams = 2; uint8_t = unsigned char; int64_t = long int]’:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:80:5:   required from ‘static constexpr auto arrow::util::internal::ByteStreamSplitEncodeDynamic<kNumStreams>::targets() [with int kNumStreams = 2]’
   80 |     };
      |     ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:232:15:   required by substitution of ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch [with DynamicFunction = arrow::util::internal::ByteStreamSplitEncodeDynamic<2>]’
  232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
      |     ~~~~~~~~~~^~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:88:75:   required from ‘void arrow::util::internal::ByteStreamSplitEncodeSimdDispatch(const uint8_t*, int, int64_t, uint8_t*) [with int kNumStreams = 2; uint8_t = unsigned char; int64_t = long int]’
   88 |   static const DynamicDispatch<ByteStreamSplitEncodeDynamic<kNumStreams>> dispatch;
      |                                                                           ^~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:93:60:   required from here
   93 |                                                    uint8_t*);
      |                                                            ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:178:28: error: static assertion failed: The smallest SIMD size is 128 bits
  178 |   static_assert(kBatchSize >= 16, "The smallest SIMD size is 128 bits");
      |                 ~~~~~~~~~~~^~~~~
  • the comparison reduces to ‘(1 >= 16)’
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:189:29: error: static assertion failed: The algorithm works when the number of streams is smaller than the SIMD batch size.
  189 |   static_assert(kNumStreams <= kBatchSize,
      |                 ~~~~~~~~~~~~^~~~~~~~~~~~~
  • the comparison reduces to ‘(2 <= 1)’
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:215:35: error: static assertion failed
  215 |   static_assert(kNumValuesInBatch > 0);
      |                 ~~~~~~~~~~~~~~~~~~^~~
  • the comparison reduces to ‘(0 > 0)’
In file included from /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:21:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:221:44:   in ‘constexpr’ expansion of ‘arrow::internal::ReversePow2<int>(((int)kNumValuesInBatch))’
  221 |   constexpr int kNumStepsByte = ReversePow2(kNumValuesInBatch) + 1;
      |                                 ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/math_internal.h:66:80: error: overflow in constant expression [-fpermissive]
   66 |   for (T n = 0, y = 1; n <= (kByteLen * static_cast<T>(sizeof(T))); ++n, y = y * 2) {
      |                                                                              ~~^~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/math_internal.h:66:80: error: overflow in constant expression [-fpermissive]
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:223:75: error: division by zero is not a constant expression
  223 |   constexpr int kNumStepsLarge = ReversePow2(static_cast<int>(kBatchSize) / kNumBytes);
      |                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:226:27: error: non-constant condition for static assertion
  226 |   static_assert(kNumSteps == ReversePow2(kBatchSize));
      |                 ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:232:32: error: size of array is not an integral constant-expression
  232 |     simd_batch stage[kNumSteps + 1][kNumStreams];
      |                      ~~~~~~~~~~^~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h: In instantiation of ‘void arrow::util::internal::ByteStreamSplitEncodeSimd(const uint8_t*, int, int64_t, uint8_t*) [with Arch = xsimd::sse4_2; int kNumStreams = 4; uint8_t = unsigned char; int64_t = long int]’:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:80:5:   required from ‘static constexpr auto arrow::util::internal::ByteStreamSplitEncodeDynamic<kNumStreams>::targets() [with int kNumStreams = 4]’
   80 |     };
      |     ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:232:15:   required by substitution of ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch [with DynamicFunction = arrow::util::internal::ByteStreamSplitEncodeDynamic<4>]’
  232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
      |     ~~~~~~~~~~^~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:88:75:   required from ‘void arrow::util::internal::ByteStreamSplitEncodeSimdDispatch(const uint8_t*, int, int64_t, uint8_t*) [with int kNumStreams = 4; uint8_t = unsigned char; int64_t = long int]’
   88 |   static const DynamicDispatch<ByteStreamSplitEncodeDynamic<kNumStreams>> dispatch;
      |                                                                           ^~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:95:60:   required from here
   95 |                                                    uint8_t*);
      |                                                            ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:178:28: error: static assertion failed: The smallest SIMD size is 128 bits
  178 |   static_assert(kBatchSize >= 16, "The smallest SIMD size is 128 bits");
      |                 ~~~~~~~~~~~^~~~~
  • the comparison reduces to ‘(1 >= 16)’
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:189:29: error: static assertion failed: The algorithm works when the number of streams is smaller than the SIMD batch size.
  189 |   static_assert(kNumStreams <= kBatchSize,
      |                 ~~~~~~~~~~~~^~~~~~~~~~~~~
  • the comparison reduces to ‘(4 <= 1)’
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:215:35: error: static assertion failed
  215 |   static_assert(kNumValuesInBatch > 0);
      |                 ~~~~~~~~~~~~~~~~~~^~~
  • the comparison reduces to ‘(0 > 0)’
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:221:44:   in ‘constexpr’ expansion of ‘arrow::internal::ReversePow2<int>(((int)kNumValuesInBatch))’
  221 |   constexpr int kNumStepsByte = ReversePow2(kNumValuesInBatch) + 1;
      |                                 ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/math_internal.h:66:80: error: overflow in constant expression [-fpermissive]
   66 |   for (T n = 0, y = 1; n <= (kByteLen * static_cast<T>(sizeof(T))); ++n, y = y * 2) {
      |                                                                              ~~^~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/math_internal.h:66:80: error: overflow in constant expression [-fpermissive]
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:223:75: error: division by zero is not a constant expression
  223 |   constexpr int kNumStepsLarge = ReversePow2(static_cast<int>(kBatchSize) / kNumBytes);
      |                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:226:27: error: non-constant condition for static assertion
  226 |   static_assert(kNumSteps == ReversePow2(kBatchSize));
      |                 ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:232:32: error: size of array is not an integral constant-expression
  232 |     simd_batch stage[kNumSteps + 1][kNumStreams];
      |                      ~~~~~~~~~~^~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h: In instantiation of ‘void arrow::util::internal::ByteStreamSplitEncodeSimd(const uint8_t*, int, int64_t, uint8_t*) [with Arch = xsimd::sse4_2; int kNumStreams = 8; uint8_t = unsigned char; int64_t = long int]’:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:80:5:   required from ‘static constexpr auto arrow::util::internal::ByteStreamSplitEncodeDynamic<kNumStreams>::targets() [with int kNumStreams = 8]’
   80 |     };
      |     ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:232:15:   required by substitution of ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch [with DynamicFunction = arrow::util::internal::ByteStreamSplitEncodeDynamic<8>]’
  232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
      |     ~~~~~~~~~~^~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:88:75:   required from ‘void arrow::util::internal::ByteStreamSplitEncodeSimdDispatch(const uint8_t*, int, int64_t, uint8_t*) [with int kNumStreams = 8; uint8_t = unsigned char; int64_t = long int]’
   88 |   static const DynamicDispatch<ByteStreamSplitEncodeDynamic<kNumStreams>> dispatch;
      |                                                                           ^~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:97:60:   required from here
   97 |                                                    uint8_t*);
      |                                                            ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:178:28: error: static assertion failed: The smallest SIMD size is 128 bits
  178 |   static_assert(kBatchSize >= 16, "The smallest SIMD size is 128 bits");
      |                 ~~~~~~~~~~~^~~~~
  • the comparison reduces to ‘(1 >= 16)’
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:189:29: error: static assertion failed: The algorithm works when the number of streams is smaller than the SIMD batch size.
  189 |   static_assert(kNumStreams <= kBatchSize,
      |                 ~~~~~~~~~~~~^~~~~~~~~~~~~
  • the comparison reduces to ‘(8 <= 1)’
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:215:35: error: static assertion failed
  215 |   static_assert(kNumValuesInBatch > 0);
      |                 ~~~~~~~~~~~~~~~~~~^~~
  • the comparison reduces to ‘(0 > 0)’
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:221:44:   in ‘constexpr’ expansion of ‘arrow::internal::ReversePow2<int>(((int)kNumValuesInBatch))’
  221 |   constexpr int kNumStepsByte = ReversePow2(kNumValuesInBatch) + 1;
      |                                 ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/math_internal.h:66:80: error: overflow in constant expression [-fpermissive]
   66 |   for (T n = 0, y = 1; n <= (kByteLen * static_cast<T>(sizeof(T))); ++n, y = y * 2) {
      |                                                                              ~~^~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/math_internal.h:66:80: error: overflow in constant expression [-fpermissive]
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:223:75: error: division by zero is not a constant expression
  223 |   constexpr int kNumStepsLarge = ReversePow2(static_cast<int>(kBatchSize) / kNumBytes);
      |                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:226:27: error: non-constant condition for static assertion
  226 |   static_assert(kNumSteps == ReversePow2(kBatchSize));
      |                 ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:232:32: error: size of array is not an integral constant-expression
  232 |     simd_batch stage[kNumSteps + 1][kNumStreams];
      |                      ~~~~~~~~~~^~~

Component(s)

C++

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions