Bug#836216: opengm: FTBFS (32-bit): SelfFusion/LazyFlipper type mismatch

2016-08-31 Thread Ghislain Vaillant

control: forwarded -1 https://github.com/opengm/opengm/issues/475

Thanks for reporting this issue. Upstream has been notified.

Perhaps an explicit cast to size_t where appropriate could solve the compile
error then.

Best regards,
Ghislain



Bug#836216: opengm: FTBFS (32-bit): SelfFusion/LazyFlipper type mismatch

2016-08-31 Thread Aaron M. Ucko
Source: opengm
Version: 2.3.6+20160131-2
Severity: serious
Justification: fails to build from source (but built successfully in the past)

Thanks for taking care of #806379!

opengm is now in good shape on 64-bit architectures (apart from one
test failure on sparc64, which isn't a release architecture), but
32-bit builds are hitting compilation errors (heavily excerpted below).

AFAICT, these errors stem from the fact that the intended
LazyFlipper<...>::Parameter constructor requires a size_t

https://anonscm.debian.org/cgit/debian-science/packages/opengm.git/tree/include/opengm/inference/lazyflipper.hxx#n156

but CSelfFusion<...>::Parameter::maxSubgraphSize_ has type UInt64Type

https://anonscm.debian.org/cgit/debian-science/packages/opengm.git/tree/include/opengm/inference/self_fusion.hxx#n356

and these types are equivalent only on 64-bit architectures.

Could you please take a look?

Thanks!

---

  In file included from 
/«BUILDDIR»/opengm-2.3.6+20160814/src/interfaces/commandline/double/../../common/caller/lazyflipper_caller.hxx:5:0,
   from 
/«BUILDDIR»/opengm-2.3.6+20160814/src/interfaces/commandline/double/opengm_min_sum.cxx:22:
  /«BUILDDIR»/opengm-2.3.6+20160814/include/opengm/inference/lazyflipper.hxx: 
In instantiation of 'opengm::LazyFlipper::Parameter::Parameter(const 
P&)
   [with P = long long unsigned int;
 GM = opengm::GraphicalModel, opengm::SimpleDiscreteSpace >;
 ACC = opengm::Minimizer]':
  
/«BUILDDIR»/opengm-2.3.6+20160814/include/opengm/inference/self_fusion.hxx:150:53:
   required from 'size_t opengm::FusionVisitor::fuseVisit(INF&)
   [with INF = opengm::MessagePassing, 
opengm::Minimizer, opengm::BeliefPropagationUpdateRules<...>, 
opengm::MaxDistance>;
 SELF_FUSION = opengm::SelfFusion >;
 SELF_FUSION_VISITOR = 
opengm::visitors::TimingVisitor 
> >;
 size_t = unsigned int]'
  
/«BUILDDIR»/opengm-2.3.6+20160814/include/opengm/inference/self_fusion.hxx:99:35:
   required from 'size_t opengm::FusionVisitor::operator()(INF&)
   [with INF = opengm::MessagePassing<...>;
 SELF_FUSION = opengm::SelfFusion >;
 SELF_FUSION_VISITOR = 
opengm::visitors::TimingVisitor 
> >;
 size_t = unsigned int]'
  
/«BUILDDIR»/opengm-2.3.6+20160814/include/opengm/inference/messagepassing/messagepassing.hxx:384:17:
   required from 'void opengm::MessagePassing::inferAcyclic(VisitorType&)
   [with VisitorType = opengm::FusionVisitor, 
opengm::SelfFusion<...>, opengm::visitors::TimingVisitor<...> >;
 GM = opengm::GraphicalModel, opengm::DiscreteSpace<> >;
 ACC = opengm::Minimizer;
 UPDATE_RULES = 
opengm::BeliefPropagationUpdateRules, opengm::DiscreteSpace<> >, 
opengm::Minimizer, opengm::MessageBuffer > >;
 DIST = opengm::MaxDistance]'
  
/«BUILDDIR»/opengm-2.3.6+20160814/include/opengm/inference/messagepassing/messagepassing.hxx:259:19:
   required from 'opengm::InferenceTermination opengm::MessagePassing::infer(VisitorType&)
   [with VisitorType = opengm::FusionVisitor, 
opengm::SelfFusion >, 
opengm::visitors::TimingVisitor<...> >;
 GM = opengm::GraphicalModel, opengm::DiscreteSpace<> >;
 ACC = opengm::Minimizer;
 UPDATE_RULES = 
opengm::BeliefPropagationUpdateRules, 
opengm::Minimizer, opengm::MessageBuffer<...> >;
 DIST = opengm::MaxDistance]'
  
/«BUILDDIR»/opengm-2.3.6+20160814/include/opengm/inference/self_fusion.hxx:470:4:
   required from 'opengm::InferenceTermination 
opengm::SelfFusion::infer(VisitorType&)
   [with VisitorType = 
opengm::visitors::TimingVisitor 
> >;
 INFERENCE = opengm::MessagePassing, 
opengm::Minimizer, opengm::BeliefPropagationUpdateRules<...>, 
opengm::MaxDistance>]'
  
/«BUILDDIR»/opengm-2.3.6+20160814/src/interfaces/commandline/double/../../common/caller/inference_caller_base.hxx:185:40:
   required from 'void opengm::interface::InferenceCallerBase::infer(GM&, opengm::interface::InferenceCallerBase::OutputBase&, bool, const PARAMETER&) const
   [with INF = opengm::SelfFusion >;
 VISITOR =