Bug 209614

Summary: graphics/blender: Fix build with libc++ 3.8.0
Product: Ports & Packages Reporter: Dimitry Andric <dim>
Component: Individual Port(s)Assignee: Marcus von Appen <mva>
Status: Closed FIXED    
Severity: Affects Some People Flags: bugzilla: maintainer-feedback? (mva)
Priority: ---    
Version: Latest   
Hardware: Any   
OS: Any   
Bug Depends on:    
Bug Blocks: 208158    
Attachments:
Description Flags
Fix std::map declaration in graphics/blender none

Description Dimitry Andric freebsd_committer freebsd_triage 2016-05-18 17:24:13 UTC
Created attachment 170452 [details]
Fix std::map declaration in graphics/blender

During the exp-run in bug 208158, it was found that graphics/blender gives errors with libc++ 3.8.0 [1]:

In file included from /wrkdirs/usr/ports/graphics/blender/work/blender-2.76b/intern/itasc/Armature.cpp:11:
In file included from /wrkdirs/usr/ports/graphics/blender/work/blender-2.76b/intern/itasc/Armature.hpp:11:
In file included from /wrkdirs/usr/ports/graphics/blender/work/blender-2.76b/intern/itasc/ControlledObject.hpp:12:
In file included from /wrkdirs/usr/ports/graphics/blender/work/blender-2.76b/intern/itasc/eigen_types.hpp:13:
In file included from /wrkdirs/usr/ports/graphics/blender/work/blender-2.76b/intern/itasc/kdl/tree.hpp:29:
/usr/include/c++/v1/map:837:5: error: implicit instantiation of undefined template '__static_assert_test<false>'
    static_assert((is_same<typename allocator_type::value_type, value_type>::value),
    ^
/usr/include/c++/v1/__config:632:35: note: expanded from macro 'static_assert'
    typedef __static_assert_check<sizeof(__static_assert_test<(__b)>)> \
                                  ^
/wrkdirs/usr/ports/graphics/blender/work/blender-2.76b/intern/itasc/kdl/tree.hpp:59:9: note: in instantiation of template class 'std::__1::map<std::__1::basic_string<char>, KDL::TreeElement, std::__1::less<std::__1::basic_string<char> >, Eigen::aligned_allocator<std::__1::pair<std::__1::basic_string<char>, KDL::TreeElement> > >' requested here
        SegmentMap::value_type const *parent;
        ^

This is because the allocator for SegmentMap is not defined correctly.  Fix this by correcting the definition to use a const string.

[1] http://package18.nyi.freebsd.org/data/headamd64PR208158-default/2016-05-01_10h29m48s/logs/errors/blender-2.76b_1.log
Comment 1 Marcus von Appen freebsd_committer freebsd_triage 2016-07-29 12:53:39 UTC
This has been incorporated in the latest 2.77a update from ports r419248, thanks!