[Debian-med-packaging] Bug#710543: libzeep: FTBFS on s390: call of overloaded 'object(size_t)' is ambiguous

Aaron M. Ucko ucko at debian.org
Fri May 31 18:08:11 UTC 2013


Source: libzeep
Version: 3.0.0-1
Severity: serious
Justification: fails to build from source

The s390 build of libzeep failed with

  src/webapp-el.cpp: In member function 'zeep::http::el::object zeep::http::el::interpreter::parse_primary_expr()':
  src/webapp-el.cpp:1550:37: error: call of overloaded 'object(size_t)' is ambiguous
  src/webapp-el.cpp:1550:37: note: candidates are:
  src/webapp-el.cpp:585:1: note: zeep::http::el::object::object(const string&) <near match>
  src/webapp-el.cpp:585:1: note:   no known conversion for argument 1 from 'size_t {aka long unsigned int}' to 'const string& {aka const std::basic_string<char>&}'
  src/webapp-el.cpp:578:1: note: zeep::http::el::object::object(const char*) <near match>
  src/webapp-el.cpp:578:1: note:   no known conversion for argument 1 from 'size_t {aka long unsigned int}' to 'const char*'
  src/webapp-el.cpp:573:1: note: zeep::http::el::object::object(double)
  src/webapp-el.cpp:568:1: note: zeep::http::el::object::object(float)
  src/webapp-el.cpp:563:1: note: zeep::http::el::object::object(uint64)
  src/webapp-el.cpp:558:1: note: zeep::http::el::object::object(int64)
  src/webapp-el.cpp:553:1: note: zeep::http::el::object::object(uint32)
  src/webapp-el.cpp:548:1: note: zeep::http::el::object::object(int32)
  src/webapp-el.cpp:543:1: note: zeep::http::el::object::object(uint16)
  src/webapp-el.cpp:538:1: note: zeep::http::el::object::object(int16)
  src/webapp-el.cpp:533:1: note: zeep::http::el::object::object(uint8)
  src/webapp-el.cpp:528:1: note: zeep::http::el::object::object(int8)
  src/webapp-el.cpp:522:1: note: zeep::http::el::object::object(bool)
  src/webapp-el.cpp:478:1: note: zeep::http::el::object::object(zeep::http::el::detail::object_impl*) <near match>
  src/webapp-el.cpp:478:1: note:   no known conversion for argument 1 from 'size_t {aka long unsigned int}' to 'zeep::http::el::detail::object_impl*'
  src/webapp-el.cpp:483:1: note: zeep::http::el::object::object(const zeep::http::el::object&)
  make[2]: *** [obj/webapp-el.o] Error 1

It seems that s390 is one of those 32-bit architectures on which size_t
is formally unsigned long whereas uint32 is formally unsigned int; even
though both types are equivalent in practice, the compiler insists on
treating them as distinct, leading to that error.  To compensate, I'd
suggest casting result.count() to uint64 on line 1550; all the variants
of object's constructor that take integral types ultimately widen them
to 64 bits anyway.

Could you please take a look?

Thanks!



More information about the Debian-med-packaging mailing list