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

Aaron M. Ucko amu at alum.mit.edu
Wed Aug 31 15:48:33 UTC 2016


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<GM, ACC>::Parameter::Parameter(const P&)
   [with P = long long unsigned int;
         GM = opengm::GraphicalModel<double, opengm::Adder, opengm::meta::TypeList<...>, opengm::SimpleDiscreteSpace<unsigned int, unsigned int> >;
         ACC = opengm::Minimizer]':
  /«BUILDDIR»/opengm-2.3.6+20160814/include/opengm/inference/self_fusion.hxx:150:53:   required from 'size_t opengm::FusionVisitor<INF, SELF_FUSION, SELF_FUSION_VISITOR>::fuseVisit(INF&)
   [with INF = opengm::MessagePassing<opengm::GraphicalModel<...>, opengm::Minimizer, opengm::BeliefPropagationUpdateRules<...>, opengm::MaxDistance>;
         SELF_FUSION = opengm::SelfFusion<opengm::MessagePassing<...> >;
         SELF_FUSION_VISITOR = opengm::visitors::TimingVisitor<opengm::SelfFusion<opengm::MessagePassing<...> > >;
         size_t = unsigned int]'
  /«BUILDDIR»/opengm-2.3.6+20160814/include/opengm/inference/self_fusion.hxx:99:35:   required from 'size_t opengm::FusionVisitor<INF, SELF_FUSION, SELF_FUSION_VISITOR>::operator()(INF&)
   [with INF = opengm::MessagePassing<...>;
         SELF_FUSION = opengm::SelfFusion<opengm::MessagePassing<...> >;
         SELF_FUSION_VISITOR = opengm::visitors::TimingVisitor<opengm::SelfFusion<opengm::MessagePassing<...> > >;
         size_t = unsigned int]'
  /«BUILDDIR»/opengm-2.3.6+20160814/include/opengm/inference/messagepassing/messagepassing.hxx:384:17:   required from 'void opengm::MessagePassing<GM, ACC, UPDATE_RULES, DIST>::inferAcyclic(VisitorType&)
   [with VisitorType = opengm::FusionVisitor<opengm::MessagePassing<...>, opengm::SelfFusion<...>, opengm::visitors::TimingVisitor<...> >;
         GM = opengm::GraphicalModel<double, opengm::Adder, opengm::meta::TypeList<...>, opengm::DiscreteSpace<> >;
         ACC = opengm::Minimizer;
         UPDATE_RULES = opengm::BeliefPropagationUpdateRules<opengm::GraphicalModel<double, opengm::Adder, opengm::meta::TypeList<...>, opengm::DiscreteSpace<> >, opengm::Minimizer, opengm::MessageBuffer<marray::Marray<double, std::allocator<unsigned int> > > >;
         DIST = opengm::MaxDistance]'
  /«BUILDDIR»/opengm-2.3.6+20160814/include/opengm/inference/messagepassing/messagepassing.hxx:259:19:   required from 'opengm::InferenceTermination opengm::MessagePassing<GM, ACC, UPDATE_RULES, DIST>::infer(VisitorType&)
   [with VisitorType = opengm::FusionVisitor<opengm::MessagePassing<...>, opengm::SelfFusion<opengm::MessagePassing<...> >, opengm::visitors::TimingVisitor<...> >;
         GM = opengm::GraphicalModel<double, opengm::Adder, opengm::meta::TypeList<...>, opengm::DiscreteSpace<> >;
         ACC = opengm::Minimizer;
         UPDATE_RULES = opengm::BeliefPropagationUpdateRules<opengm::GraphicalModel<...>, 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<INFERENCE>::infer(VisitorType&)
   [with VisitorType = opengm::visitors::TimingVisitor<opengm::SelfFusion<opengm::MessagePassing<...> > >;
         INFERENCE = opengm::MessagePassing<opengm::GraphicalModel<...>, 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<IO, GM, ACC, CHILD>::infer(GM&, opengm::interface::InferenceCallerBase<IO, GM, ACC, CHILD>::OutputBase&, bool, const PARAMETER&) const
   [with INF = opengm::SelfFusion<opengm::MessagePassing<...> >;
         VISITOR = opengm::visitors::TimingVisitor<opengm::SelfFusion<...> >;
         PARAMETER = opengm::SelfFusion<opengm::MessagePassing<...> >::Parameter;
         IO = opengm::interface::IOCMD;
         GM = opengm::GraphicalModel<double, opengm::Adder, opengm::meta::TypeList<...>, opengm::DiscreteSpace<> >;
         ACC = opengm::Minimizer;
         CHILD = opengm::interface::SelfFusionCaller<opengm::interface::IOCMD, opengm::GraphicalModel<...>, opengm::Minimizer>]'
  /«BUILDDIR»/opengm-2.3.6+20160814/src/interfaces/commandline/double/../../common/caller/selffusion_caller.hxx:108:7:   required from 'void opengm::interface::SelfFusionCaller<IO, GM, ACC>::runImpl(GM&, opengm::interface::SelfFusionCaller<IO, GM, ACC>::OutputBase&, bool)
   [with IO = opengm::interface::IOCMD;
         GM = opengm::GraphicalModel<double, opengm::Adder, opengm::meta::TypeList<...>, opengm::DiscreteSpace<> >;
         ACC = opengm::Minimizer;
         opengm::interface::SelfFusionCaller<IO, GM, ACC>::OutputBase = opengm::interface::InferenceCallerBase<opengm::interface::IOCMD, opengm::GraphicalModel<...>, opengm::Minimizer, opengm::interface::SelfFusionCaller<opengm::interface::IOCMD, opengm::GraphicalModel<...>, opengm::Minimizer> >::OutputBase]'
  /«BUILDDIR»/opengm-2.3.6+20160814/src/interfaces/commandline/double/opengm_min_sum.cxx:280:1:   required from here
  /«BUILDDIR»/opengm-2.3.6+20160814/include/opengm/inference/lazyflipper.hxx:169:29: error: request for member 'maxSubgraphSize_' in 'p', which is of non-class type 'const long long unsigned int'
         :  maxSubgraphSize_(p.maxSubgraphSize_),
                             ~~^~~~~~~~~~~~~~~~
  /«BUILDDIR»/opengm-2.3.6+20160814/include/opengm/inference/lazyflipper.hxx:170:27: error: request for member 'startingPoint_' in 'p', which is of non-class type 'const long long unsigned int'
            startingPoint_(p.startingPoint_),
                           ~~^~~~~~~~~~~~~~
  /«BUILDDIR»/opengm-2.3.6+20160814/include/opengm/inference/lazyflipper.hxx:171:29: error: request for member 'inferMultilabel_' in 'p', which is of non-class type 'const long long unsigned int'
            inferMultilabel_(p.inferMultilabel_)
                             ~~^~~~~~~~~~~~~~~~



More information about the debian-science-maintainers mailing list