From 928317d80f67d7cbc73bfa4f04bcd1e4e6cdf980 Mon Sep 17 00:00:00 2001 From: Ash Berlin Date: Tue, 1 Dec 2009 15:54:11 +0000 Subject: Add patch for boost to fix 64bit boost-test issue Without this fix applied using the test framework will yield a double free error at exit time. --- Library/Formula/boost.rb | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) (limited to 'Library/Formula') diff --git a/Library/Formula/boost.rb b/Library/Formula/boost.rb index d0dc6c7eb..ad7fe6d65 100644 --- a/Library/Formula/boost.rb +++ b/Library/Formula/boost.rb @@ -1,13 +1,42 @@ require 'formula' class Boost DATA } + end def install # we specify libdir too because the script is apparently broken system "./bootstrap.sh --prefix='#{prefix}' --libdir='#{lib}'" system "./bjam --layout=tagged --prefix='#{prefix}' --libdir='#{lib}' threading=multi install" end -end \ No newline at end of file +end + +__END__ +https://svn.boost.org/trac/boost/changeset/56467 +Index: /trunk/boost/test/impl/framework.ipp +=================================================================== +--- /trunk/boost/test/impl/framework.ipp (revision 53665) ++++ /trunk/boost/test/impl/framework.ipp (revision 56467) +@@ -125,11 +125,12 @@ + { + while( !m_test_units.empty() ) { +- test_unit_store::value_type const& tu = *m_test_units.begin(); ++ test_unit_store::value_type const& tu = *m_test_units.begin(); ++ test_unit* tu_ptr = tu.second; + + // the delete will erase this element from map + if( ut_detail::test_id_2_unit_type( tu.second->p_id ) == tut_suite ) +- delete static_cast(tu.second); ++ delete (test_suite const*)tu_ptr; + else +- delete static_cast(tu.second); ++ delete (test_case const*)tu_ptr; + } + } + + -- cgit v1.2.3