Bug#955551: openmsx ftbfs on ppc64el and s390x

2020-04-02 Thread Matthias Klose
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

2020-04-02 Thread Wouter Vermaelen
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

2020-04-02 Thread Matthias Klose
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