Bug#955551: openmsx ftbfs on ppc64el and s390x
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’: src/utils/small_compare.hh:88:41: required from ‘struct ScVal’ 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 struct ScValBe : ScValBeImpl {}; | ^~~ 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::parseAttributes(char*&, bool) [with int FLAGS = 2; HANDLER = openmsx::XMLLoader::XMLElementParser]’ src/utils/rapidsax.hh:387:3: required from ‘void rapidsax::internal::Parser::parseDeclaration(char*&) [with int FLAGS = 2; HANDLER = openmsx::XMLLoader::XMLElementParser]’ src/utils/rapidsax.hh:575:5: required from ‘void rapidsax::internal::Parser::parseNode(char*&) [with int FLAGS = 2; HANDLER = openmsx::XMLLoader::XMLElementParser]’ src/utils/rapidsax.hh:377:4: required from ‘rapidsax::internal::Parser::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’} 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
Bug#955551: openmsx ftbfs on ppc64el and s390x
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 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 int, > '\357', '\273', '\277'>’: > src/utils/small_compare.hh:88:41: required from ‘struct ScVal 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 struct ScValBe : ScValBeImpl 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::parseAttributes(char*&, bool) > [with > int FLAGS = 2; HANDLER = openmsx::XMLLoader::XMLElementParser]’ > src/utils/rapidsax.hh:387:3: required from ‘void > rapidsax::internal::Parser::parseDeclaration(char*&) [with > int > FLAGS = 2; HANDLER = openmsx::XMLLoader::XMLElementParser]’ > src/utils/rapidsax.hh:575:5: required from ‘void > rapidsax::internal::Parser::parseNode(char*&) [with int > FLAGS = > 2; HANDLER = openmsx::XMLLoader::XMLElementParser]’ > src/utils/rapidsax.hh:377:4: required from > ‘rapidsax::internal::Parser 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’} >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 > >
Bug#955551: openmsx ftbfs on ppc64el and s390x
On 4/2/20 6:43 PM, Wouter Vermaelen wrote: > 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?) no, ppc64el is little endian, s390x and ppc64 are big endian. > 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. both build still ftbfs: https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/ppa/+sourcepub/11161164/+listing-archive-extra https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/ppa/+build/19114396/+files/buildlog_ubuntu-focal-ppc64el.openmsx_0.15.0-2ubuntu1.1_BUILDING.txt.gz https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/ppa/+build/19114397/+files/buildlog_ubuntu-focal-s390x.openmsx_0.15.0-2ubuntu1.1_BUILDING.txt.gz