Hi, I think the problem occurred on big-endian systems. Are ppc64el and s390x indeed big-endian? (IOW does the openMSX build system correctly detects this?)
I pushed a fix upstream: https://github.com/openMSX/openMSX/commit/0c259566e5f7a9597369b66c03d957ba7d37e5d1 This patch makes the big- and little-endian code paths more similar (it only keeps the essential differences). I think this will fix the problem. But I have not been able to test-compile this myself. Thanks for reporting. Wouter On Thu, Apr 2, 2020 at 3:09 PM Matthias Klose <d...@debian.org> wrote: > Package: src:openmsx > Version: > Severity: serious > Tags: sid bullseye > > openmsx ftbfs at least on ppc64el and s390x with > > src/utils/small_compare.hh: In instantiation of ‘struct ScValBe<unsigned > int, > '\357', '\273', '\277'>’: > src/utils/small_compare.hh:88:41: required from ‘struct ScVal<unsigned > int, > '\357', '\273', '\277'>’ > src/utils/small_compare.hh:100:37: required from ‘const type > SmallCompare<'\357', '\273', '\277'>::mask’ > src/utils/small_compare.hh:110:20: required from ‘bool > small_compare(const > char*) [with char ...Ns = {'\357', '\273', '\277'}]’ > src/utils/rapidsax.hh:208:34: required from ‘bool > rapidsax::internal::next(const char*) [with char C0 = '\357'; char C1 = > '\273'; > char C2 = '\277']’ > src/utils/rapidsax.hh:353:51: required from here > src/utils/small_compare.hh:84:41: error: narrowing conversion of ‘-1’ from > ‘int’ > to ‘unsigned int’ [-Wnarrowing] > 84 | template<typename T, char ...Ns> struct ScValBe : ScValBeImpl<T, > 0, -1, > Ns...> {}; > | ^~~~~~~ > src/utils/small_compare.hh: In instantiation of ‘const type > SmallCompare<'\357', > '\273', '\277'>::mask’: > > and > > src/utils/small_compare.hh: In instantiation of ‘const type > SmallCompare<'t', > ';'>::value’: > src/utils/small_compare.hh:110:32: required from ‘bool > small_compare(const > char*) [with char ...Ns = {'t', ';'}]’ > src/utils/rapidsax.hh:204:30: required from ‘bool > rapidsax::internal::next(const char*) [with char C0 = 't'; char C1 = ';']’ > src/utils/rapidsax.hh:281:22: required from ‘char* > rapidsax::internal::skipAndExpand(char*&) [with StopPred = > rapidsax::internal::AttPred1; StopPredPure = > rapidsax::internal::AttPurePred1; > int FLAGS = 2]’ > src/utils/rapidsax.hh:704:52: required from ‘void > rapidsax::internal::Parser<FLAGS, HANDLER>::parseAttributes(char*&, bool) > [with > int FLAGS = 2; HANDLER = openmsx::XMLLoader::XMLElementParser]’ > src/utils/rapidsax.hh:387:3: required from ‘void > rapidsax::internal::Parser<FLAGS, HANDLER>::parseDeclaration(char*&) [with > int > FLAGS = 2; HANDLER = openmsx::XMLLoader::XMLElementParser]’ > src/utils/rapidsax.hh:575:5: required from ‘void > rapidsax::internal::Parser<FLAGS, HANDLER>::parseNode(char*&) [with int > FLAGS = > 2; HANDLER = openmsx::XMLLoader::XMLElementParser]’ > src/utils/rapidsax.hh:377:4: required from > ‘rapidsax::internal::Parser<FLAGS, > HANDLER>::Parser(HANDLER&, char*) [with int FLAGS = 2; HANDLER = > openmsx::XMLLoader::XMLElementParser]’ > src/utils/rapidsax.hh:731:35: required from ‘void > rapidsax::parse(HANDLER&, > char*) [with int FLAGS = 2; HANDLER = > openmsx::XMLLoader::XMLElementParser]’ > src/config/XMLLoader.cc:46:64: required from here > src/utils/small_compare.hh:99:37: error: ‘value’ is not a member of > ‘SmallCompare<'t', ';'>::C’ {aka ‘ScVal<short unsigned int, 't', ';'>’} > 99 | static const typename Loader::type value = C::value; > | ^~~~~ > make[2]: *** [build/main.mk:531: > derived/s390-linux-debian/obj/config/XMLLoader.o] Error 1 > >