Build failure on Big Endian architectures
Closed this issue · 1 comments
xvitaly commented
Version: 3.0.1
Compiler: GCC 14.1.1
OS: Fedora 41
Log:
[3/142] /builddir/build/BUILD/libscn-3.0.1-build/scnlib-3.0.1/benchmark/runtime/integer/single.cpp
FAILED: benchmark/runtime/integer/CMakeFiles/scn_int_bench.dir/single.cpp.o
/usr/bin/g++ -I/builddir/build/BUILD/libscn-3.0.1-build/scnlib-3.0.1/include -I/builddir/build/BUILD/libscn-3.0.1-build/scnlib-3.0.1/src -I/builddir/build/BUILD/libscn-3.0.1-build/scnlib-3.0.1/benchmark/runtime/common -O2 -flto=auto -ffat-lto-objects -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 -march=z13 -mtune=z14 -fasynchronous-unwind-tables -fstack-clash-protection -DNDEBUG -DSCN_REGEX_BACKEND=0 -Wno-unused -Wno-redundant-decls -MD -MT benchmark/runtime/integer/CMakeFiles/scn_int_bench.dir/single.cpp.o -MF benchmark/runtime/integer/CMakeFiles/scn_int_bench.dir/single.cpp.o.d -o benchmark/runtime/integer/CMakeFiles/scn_int_bench.dir/single.cpp.o -c /builddir/build/BUILD/libscn-3.0.1-build/scnlib-3.0.1/benchmark/runtime/integer/single.cpp
In file included from /builddir/build/BUILD/libscn-3.0.1-build/scnlib-3.0.1/benchmark/runtime/integer/int_bench.h:18,
from /builddir/build/BUILD/libscn-3.0.1-build/scnlib-3.0.1/benchmark/runtime/integer/single.cpp:20:
/builddir/build/BUILD/libscn-3.0.1-build/scnlib-3.0.1/include/scn/scan.h: In instantiation of ‘T scn::v3::scan_int_exhaustive_valid(std::string_view) [with T = int; std::enable_if_t<((bool)is_scan_int_type<T>)>* <anonymous> = 0; std::string_view = std::basic_string_view<char>]’:
/builddir/build/BUILD/libscn-3.0.1-build/scnlib-3.0.1/benchmark/runtime/integer/single.cpp:124:55: required from ‘void scan_int_single_scn_int_exhaustive_valid(benchmark::State&) [with Int = int]’
124 | auto val = scn::scan_int_exhaustive_valid<Int>(*s.it);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/builddir/build/BUILD/libscn-3.0.1-build/scnlib-3.0.1/benchmark/runtime/integer/single.cpp:129:1: required from here
129 | BENCHMARK_TEMPLATE(scan_int_single_scn_int_exhaustive_valid, int);
| ^~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/libscn-3.0.1-build/scnlib-3.0.1/include/scn/scan.h:9089:17: error: static assertion failed: scan_int_exhaustive_valid requires a little endian environment
9089 | detail::dependent_bool<!SCN_IS_BIG_ENDIAN, T>,
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/libscn-3.0.1-build/scnlib-3.0.1/include/scn/scan.h:9089:17: note: ‘scn::v3::detail::dependent_bool<false, int>’ evaluates to false
/builddir/build/BUILD/libscn-3.0.1-build/scnlib-3.0.1/include/scn/scan.h: In instantiation of ‘T scn::v3::scan_int_exhaustive_valid(std::string_view) [with T = long long int; std::enable_if_t<((bool)is_scan_int_type<T>)>* <anonymous> = 0; std::string_view = std::basic_string_view<char>]’:
/builddir/build/BUILD/libscn-3.0.1-build/scnlib-3.0.1/benchmark/runtime/integer/single.cpp:124:55: required from ‘void scan_int_single_scn_int_exhaustive_valid(benchmark::State&) [with Int = long long int]’
124 | auto val = scn::scan_int_exhaustive_valid<Int>(*s.it);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/builddir/build/BUILD/libscn-3.0.1-build/scnlib-3.0.1/benchmark/runtime/integer/single.cpp:130:1: required from here
130 | BENCHMARK_TEMPLATE(scan_int_single_scn_int_exhaustive_valid, long long);
| ^~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/libscn-3.0.1-build/scnlib-3.0.1/include/scn/scan.h:9089:17: error: static assertion failed: scan_int_exhaustive_valid requires a little endian environment
9089 | detail::dependent_bool<!SCN_IS_BIG_ENDIAN, T>,
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/libscn-3.0.1-build/scnlib-3.0.1/include/scn/scan.h:9089:17: note: ‘scn::v3::detail::dependent_bool<false, long long int>’ evaluates to false
/builddir/build/BUILD/libscn-3.0.1-build/scnlib-3.0.1/include/scn/scan.h: In instantiation of ‘T scn::v3::scan_int_exhaustive_valid(std::string_view) [with T = unsigned int; std::enable_if_t<((bool)is_scan_int_type<T>)>* <anonymous> = 0; std::string_view = std::basic_string_view<char>]’:
/builddir/build/BUILD/libscn-3.0.1-build/scnlib-3.0.1/benchmark/runtime/integer/single.cpp:124:55: required from ‘void scan_int_single_scn_int_exhaustive_valid(benchmark::State&) [with Int = unsigned int]’
124 | auto val = scn::scan_int_exhaustive_valid<Int>(*s.it);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/builddir/build/BUILD/libscn-3.0.1-build/scnlib-3.0.1/benchmark/runtime/integer/single.cpp:131:1: required from here
131 | BENCHMARK_TEMPLATE(scan_int_single_scn_int_exhaustive_valid, unsigned);
| ^~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/libscn-3.0.1-build/scnlib-3.0.1/include/scn/scan.h:9089:17: error: static assertion failed: scan_int_exhaustive_valid requires a little endian environment
9089 | detail::dependent_bool<!SCN_IS_BIG_ENDIAN, T>,
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/libscn-3.0.1-build/scnlib-3.0.1/include/scn/scan.h:9089:17: note: ‘scn::v3::detail::dependent_bool<false, unsigned int>’ evaluates to false
Code fragment:
Lines 9085 to 9092 in bdd6c09
eliaskosunen commented
Oh yeah, that's because the CI doesn't cover the benchmarks on non-x86/arm64-architectures. Fixed in f3b00ec, thanks!