Bug 209332

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

Description Dimitry Andric freebsd_committer 2016-05-06 14:59:32 UTC
Created attachment 170049 [details]
Fix std::map declaration in audio/ardour

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

In file included from gtk2_ardour/editor.cc:33:
In file included from libs/pbd/pbd/enumwriter.h:24:
/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)>)> \
                                  ^
gtk2_ardour/tempo_lines.h:53:8: note: in instantiation of template class 'std::__1::map<double, Gnome::Canvas::SimpleLine *, std::__1::less<double>, boost::fast_pool_allocator<std::__1::pair<double, Gnome::Canvas::SimpleLine *>, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex, 8192, 0> >' requested here
        Lines _lines;
              ^

This is because the std::map's allocator is not defined correctly.  Fix this by correcting the 'fast_pool_allocator' definition to use a const double.

[1] http://package18.nyi.freebsd.org/data/headamd64PR208158-default/2016-05-01_10h29m48s/logs/errors/ardour-2.8.16_1.log
Comment 1 commit-hook freebsd_committer 2016-05-30 05:53:22 UTC
A commit references this bug:

Author: danfe
Date: Mon May 30 05:52:57 UTC 2016
New revision: 416138
URL: https://svnweb.freebsd.org/changeset/ports/416138

Log:
  During the exp-run in PR 208158, it was found that audio/ardour gives errors
  with libc++ 3.8.0.  This is because the std::map's allocator was not defined
  correctly.  Fix the `fast_pool_allocator' definition to use a `const double'.

  PR:		209332
  Submitted by:	dim

Changes:
  head/audio/ardour/Makefile
Comment 2 Alexey Dokuchaev freebsd_committer 2016-05-30 05:54:35 UTC
In-place sed(1) version of the patch committed as ports r416138, thank you.