diff -cr boost/atomic/detail/platform.hpp.orig boost/atomic/detail/platform.hpp *** boost/atomic/detail/platform.hpp.orig Sun Sep 8 09:55:41 2013 --- boost/atomic/detail/platform.hpp Wed Dec 10 11:33:54 2014 *************** *** 16,23 **** #endif // Intel compiler does not support __atomic* intrinsics properly, although defines them (tested with 13.0.1 and 13.1.1 on Linux) ! #if (defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 407) && !defined(BOOST_INTEL_CXX_VERSION))\ ! || (defined(BOOST_CLANG) && ((__clang_major__ * 100 + __clang_minor__) >= 302)) #include --- 16,24 ---- #endif // Intel compiler does not support __atomic* intrinsics properly, although defines them (tested with 13.0.1 and 13.1.1 on Linux) ! // IBM xlc-linux does not support __atomic* intrinsics ! #if (defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 407) && !defined(BOOST_INTEL_CXX_VERSION) && !defined(__ibmxl__))\ ! || (defined(BOOST_CLANG) && ((__clang_major__ * 100 + __clang_minor__) >= 302) && !defined(__ibmxl__)) #include *************** *** 30,36 **** #include #include ! #elif defined(__GNUC__) && (defined(__POWERPC__) || defined(__PPC__)) #include --- 31,37 ---- #include #include ! #elif (defined(__GNUC__) && !defined(__ibmxl__)) && (defined(__POWERPC__) || defined(__PPC__)) #include diff -cr boost/graph/buffer_concepts.hpp.orig boost/graph/buffer_concepts.hpp *** boost/graph/buffer_concepts.hpp.orig Mon Oct 4 14:50:40 2010 --- boost/graph/buffer_concepts.hpp Wed Dec 10 11:34:08 2014 *************** *** 25,31 **** BOOST_CONCEPT_ASSERT((Assignable)); ! buf.push(g_ct); buf.pop(); reference t = buf.top(); boost::ignore_unused_variable_warning(t); --- 25,31 ---- BOOST_CONCEPT_ASSERT((Assignable)); ! sizeof(buf.push(g_ct),0); buf.pop(); reference t = buf.top(); boost::ignore_unused_variable_warning(t); *************** *** 51,62 **** : Buffer { BOOST_CONCEPT_USAGE(UpdatableQueue) { ! q.update(g_ct); } void const_constraints(const Q& cq) { ! if (cq.contains(g_ct)) ! dummy = __LINE__; } int dummy; --- 51,61 ---- : Buffer { BOOST_CONCEPT_USAGE(UpdatableQueue) { ! sizeof(q.update(g_ct),0); } void const_constraints(const Q& cq) { ! sizeof(cq.contains(g_ct) ? (dummy = __LINE__, int(0)) : char(0)); } int dummy; *************** *** 77,83 **** void const_constraints(const Q& cq) { km = cq.keys(); ! k = get(km, g_ct); } static const typename Buffer::value_type g_ct; --- 76,82 ---- void const_constraints(const Q& cq) { km = cq.keys(); ! sizeof(k = get(km, g_ct), char(0)); } static const typename Buffer::value_type g_ct; diff -cr boost/interprocess/detail/atomic.hpp.orig boost/interprocess/detail/atomic.hpp *** boost/interprocess/detail/atomic.hpp.orig Sun Sep 8 16:07:03 2013 --- boost/interprocess/detail/atomic.hpp Wed Dec 10 11:34:09 2014 *************** *** 390,396 **** } //namespace interprocess{ } //namespace boost{ ! #elif defined(__IBMCPP__) && (__IBMCPP__ >= 800) && defined(_AIX) #include --- 390,397 ---- } //namespace interprocess{ } //namespace boost{ ! // As of V12.1, XLC++ has atomic BIF's implemented ! #elif defined(__IBMCPP__) && (__IBMCPP__ >= 800) && defined(_AIX) && (__IBMCPP__ < 1210) #include diff -cr boost/interprocess/ipc/message_queue.hpp.orig boost/interprocess/ipc/message_queue.hpp *** boost/interprocess/ipc/message_queue.hpp.orig Sat May 18 06:40:55 2013 --- boost/interprocess/ipc/message_queue.hpp Wed Dec 10 11:34:11 2014 *************** *** 523,529 **** msg_hdr_align = ::boost::alignment_of::value, index_align = ::boost::alignment_of::value, r_hdr_size = ipcdetail::ct_rounded_size::value, ! r_index_size = ipcdetail::get_rounded_size(max_num_msg*sizeof(msg_hdr_ptr_t), msg_hdr_align), r_max_msg_size = ipcdetail::get_rounded_size(max_msg_size, msg_hdr_align) + sizeof(msg_header); return r_hdr_size + r_index_size + (max_num_msg*r_max_msg_size) + open_create_impl_t::ManagedOpenOrCreateUserOffset; --- 523,530 ---- msg_hdr_align = ::boost::alignment_of::value, index_align = ::boost::alignment_of::value, r_hdr_size = ipcdetail::ct_rounded_size::value, ! // Some Linux distros fail without the static_cast below because in 32-bit mode ! r_index_size = ipcdetail::get_rounded_size(max_num_msg*(static_cast(sizeof(msg_hdr_ptr_t))), msg_hdr_align), r_max_msg_size = ipcdetail::get_rounded_size(max_msg_size, msg_hdr_align) + sizeof(msg_header); return r_hdr_size + r_index_size + (max_num_msg*r_max_msg_size) + open_create_impl_t::ManagedOpenOrCreateUserOffset; *************** *** 537,543 **** msg_hdr_align = ::boost::alignment_of::value, index_align = ::boost::alignment_of::value, r_hdr_size = ipcdetail::ct_rounded_size::value, ! r_index_size = ipcdetail::get_rounded_size(m_max_num_msg*sizeof(msg_hdr_ptr_t), msg_hdr_align), r_max_msg_size = ipcdetail::get_rounded_size(m_max_msg_size, msg_hdr_align) + sizeof(msg_header); //Pointer to the index --- 538,545 ---- msg_hdr_align = ::boost::alignment_of::value, index_align = ::boost::alignment_of::value, r_hdr_size = ipcdetail::ct_rounded_size::value, ! // Some Linux distros fail without the static_cast below because in 32-bit mode ! r_index_size = ipcdetail::get_rounded_size(m_max_num_msg*(static_cast(sizeof(msg_hdr_ptr_t))), msg_hdr_align), r_max_msg_size = ipcdetail::get_rounded_size(m_max_msg_size, msg_hdr_align) + sizeof(msg_header); //Pointer to the index diff -cr boost/interprocess/mem_algo/detail/multi_simple_seq_fit_impl.hpp.orig boost/interprocess/mem_algo/detail/multi_simple_seq_fit_impl.hpp *** boost/interprocess/mem_algo/detail/multi_simple_seq_fit_impl.hpp.orig Sat Dec 31 11:19:15 2011 --- boost/interprocess/mem_algo/detail/multi_simple_seq_fit_impl.hpp Wed Dec 10 11:34:12 2014 *************** *** 242,248 **** m_header.m_size = size; //Initialize pointers ! size_type block1_off = ipcdetail::get_rounded_size(sizeof(*this)+extra_hdr_bytes, Alignment); m_header.m_root.m_next = reinterpret_cast (reinterpret_cast(this) + block1_off); m_header.m_root.m_next->m_size = (size - block1_off)/Alignment; --- 242,248 ---- m_header.m_size = size; //Initialize pointers ! size_type block1_off = ipcdetail::get_rounded_size(static_cast(sizeof(*this)+extra_hdr_bytes), Alignment); m_header.m_root.m_next = reinterpret_cast (reinterpret_cast(this) + block1_off); m_header.m_root.m_next->m_size = (size - block1_off)/Alignment; *************** *** 308,314 **** simple_seq_fit_impl:: get_min_size (size_type extra_hdr_bytes) { ! return ipcdetail::get_rounded_size(sizeof(simple_seq_fit_impl)+extra_hdr_bytes ,Alignment) + MinBlockSize; } --- 308,314 ---- simple_seq_fit_impl:: get_min_size (size_type extra_hdr_bytes) { ! return ipcdetail::get_rounded_size(static_cast (sizeof(simple_seq_fit_impl)+extra_hdr_bytes) ,Alignment) + MinBlockSize; } diff -cr boost/interprocess/mem_algo/detail/simple_seq_fit_impl.hpp.orig boost/interprocess/mem_algo/detail/simple_seq_fit_impl.hpp *** boost/interprocess/mem_algo/detail/simple_seq_fit_impl.hpp.orig Sat Dec 1 18:08:28 2012 --- boost/interprocess/mem_algo/detail/simple_seq_fit_impl.hpp Wed Dec 10 11:34:16 2014 *************** *** 305,311 **** size_type uint_aligned_this = uint_this/Alignment*Alignment; size_type this_disalignment = (uint_this - uint_aligned_this); size_type block1_off = ! ipcdetail::get_rounded_size(sizeof(simple_seq_fit_impl) + extra_hdr_bytes + this_disalignment, Alignment) - this_disalignment; algo_impl_t::assert_alignment(this_disalignment + block1_off); return block1_off; --- 305,311 ---- size_type uint_aligned_this = uint_this/Alignment*Alignment; size_type this_disalignment = (uint_this - uint_aligned_this); size_type block1_off = ! ipcdetail::get_rounded_size(static_cast(sizeof(simple_seq_fit_impl) + extra_hdr_bytes + this_disalignment), Alignment) - this_disalignment; algo_impl_t::assert_alignment(this_disalignment + block1_off); return block1_off; diff -cr boost/math/special_functions/detail/fp_traits.hpp.orig boost/math/special_functions/detail/fp_traits.hpp *** boost/math/special_functions/detail/fp_traits.hpp.orig Mon Jan 2 06:21:41 2012 --- boost/math/special_functions/detail/fp_traits.hpp Wed Dec 10 11:34:16 2014 *************** *** 279,285 **** #if defined(BOOST_BIG_ENDIAN) BOOST_STATIC_CONSTANT(int, offset_ = 0); #elif defined(BOOST_LITTLE_ENDIAN) ! BOOST_STATIC_CONSTANT(int, offset_ = 4); #else BOOST_STATIC_ASSERT(false); #endif --- 279,285 ---- #if defined(BOOST_BIG_ENDIAN) BOOST_STATIC_CONSTANT(int, offset_ = 0); #elif defined(BOOST_LITTLE_ENDIAN) ! BOOST_STATIC_CONSTANT(int, offset_ = 12); #else BOOST_STATIC_ASSERT(false); #endif diff -cr boost/numeric/ublas/matrix_sparse.hpp.orig boost/numeric/ublas/matrix_sparse.hpp *** boost/numeric/ublas/matrix_sparse.hpp.orig Sat Sep 22 17:57:57 2012 --- boost/numeric/ublas/matrix_sparse.hpp Wed Dec 10 11:34:18 2014 *************** *** 1353,1359 **** typedef T value_type; typedef const T &const_reference; #ifndef BOOST_UBLAS_STRICT_MATRIX_SPARSE ! typedef typename detail::map_traits::reference reference; #else typedef sparse_matrix_element reference; #endif --- 1353,1360 ---- typedef T value_type; typedef const T &const_reference; #ifndef BOOST_UBLAS_STRICT_MATRIX_SPARSE ! // No such thing as std::map::data_value_type ! typedef typename detail::map_traits::reference reference; #else typedef sparse_matrix_element reference; #endif diff -cr boost/proto/transform/default.hpp.orig boost/proto/transform/default.hpp *** boost/proto/transform/default.hpp.orig Sun Sep 30 22:06:52 2012 --- boost/proto/transform/default.hpp Wed Dec 10 11:34:20 2014 *************** *** 65,71 **** typedef typename result_of::child_c::type e0; \ typedef typename Grammar::template impl::result_type r0; \ public: \ ! BOOST_PROTO_DECLTYPE_(OP proto::detail::MAKE(), result_type) \ result_type operator ()( \ typename impl::expr_param e \ , typename impl::state_param s \ --- 65,71 ---- typedef typename result_of::child_c::type e0; \ typedef typename Grammar::template impl::result_type r0; \ public: \ ! BOOST_PROTO_DECLTYPE_(OP (proto::detail::MAKE()), result_type) \ result_type operator ()( \ typename impl::expr_param e \ , typename impl::state_param s \ diff -cr boost/spirit/home/karma/detail/pass_container.hpp.orig boost/spirit/home/karma/detail/pass_container.hpp *** boost/spirit/home/karma/detail/pass_container.hpp.orig Mon Jan 9 09:36:46 2012 --- boost/spirit/home/karma/detail/pass_container.hpp Wed Dec 10 11:34:21 2014 *************** *** 188,194 **** {}; // If both, the containers value type and the exposed attribute type are ! // optionals we are allowed to pass through the the container only if the // embedded types of those optionals are not compatible. template --- 188,194 ---- {}; // If both, the containers value type and the exposed attribute type are ! // optionals we are allowed to pass through the container only if the // embedded types of those optionals are not compatible. template *************** *** 203,208 **** --- 203,227 ---- // We pass through the container attribute if at least one of the embedded // types in the variant requires to pass through the attribute + #if !defined(BOOST_VARIANT_DO_NOT_USE_VARIADIC_TEMPLATES) + template + struct pass_through_container + , Sequence> + : pass_through_container + {}; + + template + struct pass_through_container, Sequence> + : mpl::bool_::type::value || pass_through_container< + Container, ValueType, boost::variant, Sequence + >::type::value> + {}; + #else #define BOOST_SPIRIT_PASS_THROUGH_CONTAINER(z, N, _) \ pass_through_container::type::value || \ *************** *** 224,229 **** --- 243,249 ---- {}; #undef BOOST_SPIRIT_PASS_THROUGH_CONTAINER + #endif }}}} /////////////////////////////////////////////////////////////////////////////// *************** *** 242,268 **** namespace boost { namespace spirit { namespace karma { namespace detail { /////////////////////////////////////////////////////////////////////////// // This function handles the case where the attribute (Attr) given // to the sequence is an STL container. This is a wrapper around F. // The function F does the actual generating. template ! struct pass_container { typedef typename F::context_type context_type; pass_container(F const& f, Iterator begin, Iterator end) ! : f(f), iter(begin), end(end) {} bool is_at_end() const { ! return traits::compare(iter, end); } void next() { ! traits::next(iter); } // this is for the case when the current element expects an attribute --- 262,312 ---- namespace boost { namespace spirit { namespace karma { namespace detail { + template + struct pass_container_base + { + pass_container_base(Iterator begin, Iterator end) + : iter(begin), end(end) + {} + + mutable Iterator iter; + mutable Iterator end; + }; + + template + struct pass_container_base + { + pass_container_base(Iterator& begin, Iterator& end) + : iter(begin), end(end) + {} + + Iterator& iter; + Iterator& end; + }; + /////////////////////////////////////////////////////////////////////////// // This function handles the case where the attribute (Attr) given // to the sequence is an STL container. This is a wrapper around F. // The function F does the actual generating. template ! struct pass_container : pass_container_base { + typedef pass_container_base base_type; typedef typename F::context_type context_type; pass_container(F const& f, Iterator begin, Iterator end) ! : base_type(begin, end) ! , f(f) {} bool is_at_end() const { ! return traits::compare(this->iter, this->end); } void next() { ! traits::next(this->iter); } // this is for the case when the current element expects an attribute *************** *** 271,280 **** bool dispatch_container(Component const& component, mpl::false_) const { // get the next value to generate from container ! if (!is_at_end() && !f(component, traits::deref(iter))) { // needs to return false as long as everything is ok ! traits::next(iter); return false; } --- 315,324 ---- bool dispatch_container(Component const& component, mpl::false_) const { // get the next value to generate from container ! if (!is_at_end() && !f(component, traits::deref(this->iter))) { // needs to return false as long as everything is ok ! traits::next(this->iter); return false; } *************** *** 288,294 **** template bool dispatch_container(Component const& component, mpl::true_) const { ! return f(component, make_iterator_range(iter, end)); } /////////////////////////////////////////////////////////////////////// --- 332,338 ---- template bool dispatch_container(Component const& component, mpl::true_) const { ! return f(component, make_iterator_range(this->iter, this->end)); } /////////////////////////////////////////////////////////////////////// *************** *** 338,345 **** } F f; - mutable Iterator iter; - mutable Iterator end; private: // silence MSVC warning C4512: assignment operator could not be generated --- 382,387 ---- diff -cr boost/spirit/home/support/detail/math/detail/fp_traits.hpp.orig boost/spirit/home/support/detail/math/detail/fp_traits.hpp *** boost/spirit/home/support/detail/math/detail/fp_traits.hpp.orig Thu Dec 16 08:39:55 2010 --- boost/spirit/home/support/detail/math/detail/fp_traits.hpp Wed Dec 10 11:34:21 2014 *************** *** 333,339 **** #if defined(BOOST_BIG_ENDIAN) BOOST_STATIC_CONSTANT(int, offset_ = 0); #elif defined(BOOST_LITTLE_ENDIAN) ! BOOST_STATIC_CONSTANT(int, offset_ = 4); #else BOOST_STATIC_ASSERT(false); #endif --- 333,339 ---- #if defined(BOOST_BIG_ENDIAN) BOOST_STATIC_CONSTANT(int, offset_ = 0); #elif defined(BOOST_LITTLE_ENDIAN) ! BOOST_STATIC_CONSTANT(int, offset_ = 12); #else BOOST_STATIC_ASSERT(false); #endif diff -cr boost/spirit/repository/home/karma/nonterminal/subrule.hpp.orig boost/spirit/repository/home/karma/nonterminal/subrule.hpp *** boost/spirit/repository/home/karma/nonterminal/subrule.hpp.orig Wed Apr 10 18:51:13 2013 --- boost/spirit/repository/home/karma/nonterminal/subrule.hpp Wed Dec 10 11:34:26 2014 *************** *** 207,213 **** // trying to use a subrule which has inherited attributes, // without passing values for them. context_type context(*this ! , traits::pre_transform( make_attribute::call(attr))); return def.binder(sink, context, delimiter); --- 207,213 ---- // trying to use a subrule which has inherited attributes, // without passing values for them. context_type context(*this ! , traits::pre_transform( make_attribute::call(attr))); return def.binder(sink, context, delimiter); *************** *** 242,248 **** // trying to use a subrule which has inherited attributes, // passing values of incompatible types for them. context_type context(*this ! , traits::pre_transform( make_attribute::call(attr)), params, caller_context); return def.binder(sink, context, delimiter); --- 242,248 ---- // trying to use a subrule which has inherited attributes, // passing values of incompatible types for them. context_type context(*this ! , traits::pre_transform( make_attribute::call(attr)), params, caller_context); return def.binder(sink, context, delimiter); diff -cr boost/thread/detail/config.hpp.orig boost/thread/detail/config.hpp *** boost/thread/detail/config.hpp.orig Sat Aug 3 12:04:39 2013 --- boost/thread/detail/config.hpp Wed Dec 10 11:34:27 2014 *************** *** 363,369 **** --- 363,371 ---- // compatibility with the rest of Boost's auto-linking code: #if defined(BOOST_THREAD_DYN_LINK) || defined(BOOST_ALL_DYN_LINK) # undef BOOST_THREAD_USE_LIB + #ifndef BOOST_THREAD_USE_DLL # define BOOST_THREAD_USE_DLL + #endif #endif #if defined(BOOST_THREAD_BUILD_DLL) //Build dll diff -cr libs/algorithm/test/Jamfile.v2.orig libs/algorithm/test/Jamfile.v2 *** libs/algorithm/test/Jamfile.v2.orig Sat Sep 21 16:17:00 2013 --- libs/algorithm/test/Jamfile.v2 Wed Dec 10 11:34:32 2014 *************** *** 18,65 **** { test-suite algorithm: # Search tests ! : [ run empty_search_test.cpp unit_test_framework : : : : empty_search_test ] ! [ run search_test1.cpp unit_test_framework : : : : search_test1 ] ! [ run search_test2.cpp unit_test_framework : : : : search_test2 ] ! [ run search_test3.cpp unit_test_framework : : : : search_test3 ] ! [ run search_test4.cpp unit_test_framework : : : : search_test4 ] [ compile-fail search_fail1.cpp : : : : ] [ compile-fail search_fail2.cpp : : : : ] [ compile-fail search_fail3.cpp : : : : ] # Clamp tests ! [ run clamp_test.cpp unit_test_framework : : : : clamp_test ] # Cxx11 tests ! [ run all_of_test.cpp unit_test_framework : : : : all_of_test ] ! [ run any_of_test.cpp unit_test_framework : : : : any_of_test ] ! [ run none_of_test.cpp unit_test_framework : : : : none_of_test ] ! [ run one_of_test.cpp unit_test_framework : : : : one_of_test ] ! [ run ordered_test.cpp unit_test_framework : : : : ordered_test ] ! [ run find_if_not_test1.cpp unit_test_framework : : : : find_if_not_test1 ] ! [ run copy_if_test1.cpp unit_test_framework : : : : copy_if_test1 ] ! [ run copy_n_test1.cpp unit_test_framework : : : : copy_n_test1 ] ! [ run iota_test1.cpp unit_test_framework : : : : iota_test1 ] ! [ run is_permutation_test1.cpp unit_test_framework : : : : is_permutation_test1 ] ! [ run partition_point_test1.cpp unit_test_framework : : : : partition_point_test1 ] ! [ run is_partitioned_test1.cpp unit_test_framework : : : : is_partitioned_test1 ] ! [ run partition_copy_test1.cpp unit_test_framework : : : : partition_copy_test1 ] # Cxx14 tests ! [ run equal_test.cpp unit_test_framework : : : : equal_test ] ! [ run mismatch_test.cpp unit_test_framework : : : : mismatch_test ] # Hex tests ! [ run hex_test1.cpp unit_test_framework : : : : hex_test1 ] ! [ run hex_test2.cpp unit_test_framework : : : : hex_test2 ] ! [ run hex_test3.cpp unit_test_framework : : : : hex_test3 ] ! [ run hex_test4.cpp unit_test_framework : : : : hex_test4 ] [ compile-fail hex_fail1.cpp ] # Gather tests ! [ run gather_test1.cpp unit_test_framework : : : : gather_test1 ] [ compile-fail gather_fail1.cpp ] ; --- 18,65 ---- { test-suite algorithm: # Search tests ! : [ run empty_search_test.cpp unit_test_framework : : : vacpp,linux:BOOST_HAS_INCLUDE_NEXT : empty_search_test ] ! [ run search_test1.cpp unit_test_framework : : : vacpp,linux:BOOST_HAS_INCLUDE_NEXT : search_test1 ] ! [ run search_test2.cpp unit_test_framework : : : vacpp,linux:BOOST_HAS_INCLUDE_NEXT : search_test2 ] ! [ run search_test3.cpp unit_test_framework : : : vacpp,linux:BOOST_HAS_INCLUDE_NEXT : search_test3 ] ! [ run search_test4.cpp unit_test_framework : : : vacpp,linux:BOOST_HAS_INCLUDE_NEXT : search_test4 ] [ compile-fail search_fail1.cpp : : : : ] [ compile-fail search_fail2.cpp : : : : ] [ compile-fail search_fail3.cpp : : : : ] # Clamp tests ! [ run clamp_test.cpp unit_test_framework : : : vacpp,linux:BOOST_HAS_INCLUDE_NEXT : clamp_test ] # Cxx11 tests ! [ run all_of_test.cpp unit_test_framework : : : vacpp,linux:BOOST_HAS_INCLUDE_NEXT : all_of_test ] ! [ run any_of_test.cpp unit_test_framework : : : vacpp,linux:BOOST_HAS_INCLUDE_NEXT : any_of_test ] ! [ run none_of_test.cpp unit_test_framework : : : vacpp,linux:BOOST_HAS_INCLUDE_NEXT : none_of_test ] ! [ run one_of_test.cpp unit_test_framework : : : vacpp,linux:BOOST_HAS_INCLUDE_NEXT : one_of_test ] ! [ run ordered_test.cpp unit_test_framework : : : vacpp,linux:BOOST_HAS_INCLUDE_NEXT : ordered_test ] ! [ run find_if_not_test1.cpp unit_test_framework : : : vacpp,linux:BOOST_HAS_INCLUDE_NEXT : find_if_not_test1 ] ! [ run copy_if_test1.cpp unit_test_framework : : : vacpp,linux:BOOST_HAS_INCLUDE_NEXT : copy_if_test1 ] ! [ run copy_n_test1.cpp unit_test_framework : : : vacpp,linux:BOOST_HAS_INCLUDE_NEXT : copy_n_test1 ] ! [ run iota_test1.cpp unit_test_framework : : : vacpp,linux:BOOST_HAS_INCLUDE_NEXT : iota_test1 ] ! [ run is_permutation_test1.cpp unit_test_framework : : : vacpp,linux:BOOST_HAS_INCLUDE_NEXT : is_permutation_test1 ] ! [ run partition_point_test1.cpp unit_test_framework : : : vacpp,linux:BOOST_HAS_INCLUDE_NEXT : partition_point_test1 ] ! [ run is_partitioned_test1.cpp unit_test_framework : : : vacpp,linux:BOOST_HAS_INCLUDE_NEXT : is_partitioned_test1 ] ! [ run partition_copy_test1.cpp unit_test_framework : : : vacpp,linux:BOOST_HAS_INCLUDE_NEXT : partition_copy_test1 ] # Cxx14 tests ! [ run equal_test.cpp unit_test_framework : : : vacpp,linux:BOOST_HAS_INCLUDE_NEXT : equal_test ] ! [ run mismatch_test.cpp unit_test_framework : : : vacpp,linux:BOOST_HAS_INCLUDE_NEXT : mismatch_test ] # Hex tests ! [ run hex_test1.cpp unit_test_framework : : : vacpp,linux:BOOST_HAS_INCLUDE_NEXT : hex_test1 ] ! [ run hex_test2.cpp unit_test_framework : : : vacpp,linux:BOOST_HAS_INCLUDE_NEXT : hex_test2 ] ! [ run hex_test3.cpp unit_test_framework : : : vacpp,linux:BOOST_HAS_INCLUDE_NEXT : hex_test3 ] ! [ run hex_test4.cpp unit_test_framework : : : vacpp,linux:BOOST_HAS_INCLUDE_NEXT : hex_test4 ] [ compile-fail hex_fail1.cpp ] # Gather tests ! [ run gather_test1.cpp unit_test_framework : : : vacpp,linux:BOOST_HAS_INCLUDE_NEXT : gather_test1 ] [ compile-fail gather_fail1.cpp ] ; diff -cr libs/atomic/test/Jamfile.v2.orig libs/atomic/test/Jamfile.v2 *** libs/atomic/test/Jamfile.v2.orig Sun Sep 8 09:55:41 2013 --- libs/atomic/test/Jamfile.v2 Wed Dec 10 11:34:33 2014 *************** *** 12,17 **** --- 12,18 ---- project boost/atomic/test : requirements multi + vacpp:../../date_time/build//boost_date_time /boost/thread//boost_thread /boost/atomic//boost_atomic ; diff -cr libs/chrono/build/Jamfile.v2.orig libs/chrono/build/Jamfile.v2 *** libs/chrono/build/Jamfile.v2.orig Thu Mar 28 19:45:26 2013 --- libs/chrono/build/Jamfile.v2 Wed Dec 10 11:34:34 2014 *************** *** 89,95 **** #BOOST_RATIO_USES_ARRAY_ASSERT #BOOST_CHRONO_USES_ARRAY_ASSERT #vacpp:BOOST_COMMON_TYPE_DONT_USE_TYPEOF ! vacpp:BOOST_TYPEOF_EMULATION sun:__typeof__=__typeof__ BOOST_SYSTEM_NO_DEPRECATED --- 89,95 ---- #BOOST_RATIO_USES_ARRAY_ASSERT #BOOST_CHRONO_USES_ARRAY_ASSERT #vacpp:BOOST_COMMON_TYPE_DONT_USE_TYPEOF ! #vacpp:BOOST_TYPEOF_EMULATION sun:__typeof__=__typeof__ BOOST_SYSTEM_NO_DEPRECATED diff -cr libs/local_function/test/addable.hpp.orig libs/local_function/test/addable.hpp *** libs/local_function/test/addable.hpp.orig Sat May 26 17:17:03 2012 --- libs/local_function/test/addable.hpp Wed Dec 10 11:34:35 2014 *************** *** 13,19 **** template struct Addable { // User-defined concept. BOOST_CONCEPT_USAGE(Addable) { ! return_type(x + y); // Check addition `T operator+(T x, T y)`. } private: --- 13,20 ---- template struct Addable { // User-defined concept. BOOST_CONCEPT_USAGE(Addable) { ! // some compilers will require the definition of x and y, so use a sizeof to avoid the requirement ! sizeof(return_type(x + y)); // Check addition `T operator+(T x, T y)`. } private: diff -cr libs/math/test/complex_test.cpp.orig libs/math/test/complex_test.cpp *** libs/math/test/complex_test.cpp.orig Mon Apr 15 04:47:08 2013 --- libs/math/test/complex_test.cpp Wed Dec 10 11:34:36 2014 *************** *** 406,412 **** BOOST_CHECK((boost::math::isnan)(result.real())); BOOST_CHECK(result.imag() == infinity); } ! if(boost::math::signbit(mzero)) { result = boost::math::acos(ct(-1.25f, zero)); BOOST_CHECK(result.real() > 0); --- 406,412 ---- BOOST_CHECK((boost::math::isnan)(result.real())); BOOST_CHECK(result.imag() == infinity); } ! if((boost::math::signbit)(mzero)) { result = boost::math::acos(ct(-1.25f, zero)); BOOST_CHECK(result.real() > 0); *************** *** 537,543 **** BOOST_CHECK((boost::math::isnan)(result.real())); BOOST_CHECK((boost::math::isnan)(result.imag())); } ! if(boost::math::signbit(mzero)) { result = boost::math::acosh(ct(-2.5f, zero)); BOOST_CHECK(result.real() > 0); --- 537,543 ---- BOOST_CHECK((boost::math::isnan)(result.real())); BOOST_CHECK((boost::math::isnan)(result.imag())); } ! if((boost::math::signbit)(mzero)) { result = boost::math::acosh(ct(-2.5f, zero)); BOOST_CHECK(result.real() > 0); *************** *** 669,675 **** BOOST_CHECK(std::fabs(result.real()) == infinity); BOOST_CHECK((boost::math::isnan)(result.imag())); } ! if(boost::math::signbit(mzero)) { result = boost::math::asinh(ct(zero, 1.5f)); BOOST_CHECK(result.real() > 0); --- 669,675 ---- BOOST_CHECK(std::fabs(result.real()) == infinity); BOOST_CHECK((boost::math::isnan)(result.imag())); } ! if((boost::math::signbit)(mzero)) { result = boost::math::asinh(ct(zero, 1.5f)); BOOST_CHECK(result.real() > 0); *************** *** 817,823 **** BOOST_CHECK((boost::math::isnan)(result.imag())); } ! if(boost::math::signbit(mzero)) { result = boost::math::atanh(ct(-2.0f, mzero)); BOOST_CHECK(result.real() < 0); --- 817,823 ---- BOOST_CHECK((boost::math::isnan)(result.imag())); } ! if((boost::math::signbit)(mzero)) { result = boost::math::atanh(ct(-2.0f, mzero)); BOOST_CHECK(result.real() < 0); diff -cr libs/math/test/test_airy.cpp.orig libs/math/test/test_airy.cpp *** libs/math/test/test_airy.cpp.orig Mon Apr 15 04:47:08 2013 --- libs/math/test/test_airy.cpp Wed Dec 10 11:34:41 2014 *************** *** 12,17 **** --- 12,18 ---- #include #include #include + #include #ifdef _MSC_VER # pragma warning(disable : 4756 4127) // overflow in constant arithmetic *************** *** 49,58 **** for(unsigned i = 0; i < data.size(); ++i) { BOOST_CHECK_CLOSE_FRACTION(data[i][1], boost::math::airy_ai(data[i][0]), tol); ! if(boost::math::isfinite(data[i][2])) BOOST_CHECK_CLOSE_FRACTION(data[i][2], boost::math::airy_bi(data[i][0]), tol); BOOST_CHECK_CLOSE_FRACTION(data[i][3], boost::math::airy_ai_prime(data[i][0]), tol); ! if(boost::math::isfinite(data[i][4])) BOOST_CHECK_CLOSE_FRACTION(data[i][4], boost::math::airy_bi_prime(data[i][0]), tol); } } --- 50,59 ---- for(unsigned i = 0; i < data.size(); ++i) { BOOST_CHECK_CLOSE_FRACTION(data[i][1], boost::math::airy_ai(data[i][0]), tol); ! if((boost::math::isfinite)(data[i][2])) BOOST_CHECK_CLOSE_FRACTION(data[i][2], boost::math::airy_bi(data[i][0]), tol); BOOST_CHECK_CLOSE_FRACTION(data[i][3], boost::math::airy_ai_prime(data[i][0]), tol); ! if((boost::math::isfinite)(data[i][4])) BOOST_CHECK_CLOSE_FRACTION(data[i][4], boost::math::airy_bi_prime(data[i][0]), tol); } } diff -cr libs/math/test/test_error_handling.cpp.orig libs/math/test/test_error_handling.cpp *** libs/math/test/test_error_handling.cpp.orig Sat Sep 28 12:19:47 2013 --- libs/math/test/test_error_handling.cpp Wed Dec 10 11:34:42 2014 *************** *** 13,18 **** --- 13,19 ---- // in order to check that they are otherwise undefined. // The user MUST define them before they can be used. // + #include struct user_defined_error{}; namespace boost{ namespace math{ namespace policies{ diff -cr libs/math/test/test_hankel.cpp.orig libs/math/test/test_hankel.cpp *** libs/math/test/test_hankel.cpp.orig Mon Apr 15 04:47:08 2013 --- libs/math/test/test_hankel.cpp Wed Dec 10 11:34:43 2014 *************** *** 13,18 **** --- 13,19 ---- #include #include #include + #include #ifdef _MSC_VER # pragma warning(disable : 4756 4127) // overflow in constant arithmetic diff -cr libs/math/test/test_nc_t.cpp.orig libs/math/test/test_nc_t.cpp *** libs/math/test/test_nc_t.cpp.orig Sat Sep 28 12:19:47 2013 --- libs/math/test/test_nc_t.cpp Wed Dec 10 11:34:44 2014 *************** *** 744,750 **** BOOST_CHECK((boost::math::isnan)(mean(ignore_error_non_central_t(1, 0)))); BOOST_CHECK((boost::math::isnan)(mean(ignore_error_non_central_t(2, nan)))); BOOST_CHECK((boost::math::isnan)(mean(ignore_error_non_central_t(nan, nan)))); ! BOOST_CHECK(boost::math::isfinite(mean(ignore_error_non_central_t(2, 0)))); // OK // Variance BOOST_CHECK((boost::math::isnan)(variance(ignore_error_non_central_t(nan, 0)))); --- 744,750 ---- BOOST_CHECK((boost::math::isnan)(mean(ignore_error_non_central_t(1, 0)))); BOOST_CHECK((boost::math::isnan)(mean(ignore_error_non_central_t(2, nan)))); BOOST_CHECK((boost::math::isnan)(mean(ignore_error_non_central_t(nan, nan)))); ! BOOST_CHECK((boost::math::isfinite)(mean(ignore_error_non_central_t(2, 0)))); // OK // Variance BOOST_CHECK((boost::math::isnan)(variance(ignore_error_non_central_t(nan, 0)))); *************** *** 784,796 **** BOOST_CHECK((boost::math::isnan)(kurtosis_excess(ignore_error_non_central_t(3, 0)))); BOOST_CHECK((boost::math::isnan)(kurtosis_excess(ignore_error_non_central_t(4, 0)))); } // has_quiet_NaN ! BOOST_CHECK(boost::math::isfinite(mean(ignore_error_non_central_t(1 + std::numeric_limits::epsilon(), 0)))); ! BOOST_CHECK(boost::math::isfinite(variance(ignore_error_non_central_t(2 + 2 * std::numeric_limits::epsilon(), 0)))); ! BOOST_CHECK(boost::math::isfinite(variance(ignore_error_non_central_t(static_cast(2.0001L), 0)))); ! BOOST_CHECK(boost::math::isfinite(variance(ignore_error_non_central_t(2 + 2 * std::numeric_limits::epsilon(), 0)))); ! BOOST_CHECK(boost::math::isfinite(skewness(ignore_error_non_central_t(3 + 3 * std::numeric_limits::epsilon(), 0)))); ! BOOST_CHECK(boost::math::isfinite(kurtosis(ignore_error_non_central_t(4 + 4 * std::numeric_limits::epsilon(), 0)))); ! BOOST_CHECK(boost::math::isfinite(kurtosis(ignore_error_non_central_t(static_cast(4.0001L), 0)))); // check_out_of_range >(1, 0); // Fails one check because allows df = infinity. check_support >(non_central_t_distribution(1, 0)); --- 784,796 ---- BOOST_CHECK((boost::math::isnan)(kurtosis_excess(ignore_error_non_central_t(3, 0)))); BOOST_CHECK((boost::math::isnan)(kurtosis_excess(ignore_error_non_central_t(4, 0)))); } // has_quiet_NaN ! BOOST_CHECK((boost::math::isfinite)(mean(ignore_error_non_central_t(1 + std::numeric_limits::epsilon(), 0)))); ! BOOST_CHECK((boost::math::isfinite)(variance(ignore_error_non_central_t(2 + 2 * std::numeric_limits::epsilon(), 0)))); ! BOOST_CHECK((boost::math::isfinite)(variance(ignore_error_non_central_t(static_cast(2.0001L), 0)))); ! BOOST_CHECK((boost::math::isfinite)(variance(ignore_error_non_central_t(2 + 2 * std::numeric_limits::epsilon(), 0)))); ! BOOST_CHECK((boost::math::isfinite)(skewness(ignore_error_non_central_t(3 + 3 * std::numeric_limits::epsilon(), 0)))); ! BOOST_CHECK((boost::math::isfinite)(kurtosis(ignore_error_non_central_t(4 + 4 * std::numeric_limits::epsilon(), 0)))); ! BOOST_CHECK((boost::math::isfinite)(kurtosis(ignore_error_non_central_t(static_cast(4.0001L), 0)))); // check_out_of_range >(1, 0); // Fails one check because allows df = infinity. check_support >(non_central_t_distribution(1, 0)); diff -cr libs/math/test/test_next.cpp.orig libs/math/test/test_next.cpp *** libs/math/test/test_next.cpp.orig Mon Apr 15 04:47:08 2013 --- libs/math/test/test_next.cpp Wed Dec 10 11:34:45 2014 *************** *** 10,15 **** --- 10,16 ---- #include #include #include + #include #ifdef BOOST_MSVC #pragma warning(disable:4127) diff -cr libs/math/test/test_roots.cpp.orig libs/math/test/test_roots.cpp *** libs/math/test/test_roots.cpp.orig Mon Apr 15 04:47:08 2013 --- libs/math/test/test_roots.cpp Wed Dec 10 11:34:46 2014 *************** *** 14,19 **** --- 14,20 ---- #include #include #include + #include #include "table_type.hpp" #define BOOST_CHECK_CLOSE_EX(a, b, prec, i) \ diff -cr libs/math/test/test_round.cpp.orig libs/math/test/test_round.cpp *** libs/math/test/test_round.cpp.orig Mon Apr 15 04:47:08 2013 --- libs/math/test/test_round.cpp Wed Dec 10 11:34:46 2014 *************** *** 14,19 **** --- 14,20 ---- #include #include #include + #include boost::mt19937 rng; diff -cr libs/math/test/test_signed_zero.cpp.orig libs/math/test/test_signed_zero.cpp *** libs/math/test/test_signed_zero.cpp.orig Mon May 14 13:01:32 2012 --- libs/math/test/test_signed_zero.cpp Wed Dec 10 11:34:47 2014 *************** *** 21,26 **** --- 21,27 ---- #include #include #include + #include namespace { diff -cr libs/math/test/test_students_t.cpp.orig libs/math/test/test_students_t.cpp *** libs/math/test/test_students_t.cpp.orig Sat Sep 28 12:19:47 2013 --- libs/math/test/test_students_t.cpp Wed Dec 10 11:34:48 2014 *************** *** 704,716 **** BOOST_CHECK((boost::math::isnan)(kurtosis_excess(ignore_error_students_t(4)))); } // has_quiet_NaN ! BOOST_CHECK(boost::math::isfinite(mean(ignore_error_students_t(1 + std::numeric_limits::epsilon())))); ! BOOST_CHECK(boost::math::isfinite(variance(ignore_error_students_t(2 + 2 * std::numeric_limits::epsilon())))); ! BOOST_CHECK(boost::math::isfinite(variance(ignore_error_students_t(static_cast(2.0001L))))); ! BOOST_CHECK(boost::math::isfinite(variance(ignore_error_students_t(2 + 2 * std::numeric_limits::epsilon())))); ! BOOST_CHECK(boost::math::isfinite(skewness(ignore_error_students_t(3 + 3 * std::numeric_limits::epsilon())))); ! BOOST_CHECK(boost::math::isfinite(kurtosis(ignore_error_students_t(4 + 4 * std::numeric_limits::epsilon())))); ! BOOST_CHECK(boost::math::isfinite(kurtosis(ignore_error_students_t(static_cast(4.0001L))))); // check_out_of_range >(1); // Cannot be used because fails "exception std::domain_error is expected" --- 704,716 ---- BOOST_CHECK((boost::math::isnan)(kurtosis_excess(ignore_error_students_t(4)))); } // has_quiet_NaN ! BOOST_CHECK((boost::math::isfinite)(mean(ignore_error_students_t(1 + std::numeric_limits::epsilon())))); ! BOOST_CHECK((boost::math::isfinite)(variance(ignore_error_students_t(2 + 2 * std::numeric_limits::epsilon())))); ! BOOST_CHECK((boost::math::isfinite)(variance(ignore_error_students_t(static_cast(2.0001L))))); ! BOOST_CHECK((boost::math::isfinite)(variance(ignore_error_students_t(2 + 2 * std::numeric_limits::epsilon())))); ! BOOST_CHECK((boost::math::isfinite)(skewness(ignore_error_students_t(3 + 3 * std::numeric_limits::epsilon())))); ! BOOST_CHECK((boost::math::isfinite)(kurtosis(ignore_error_students_t(4 + 4 * std::numeric_limits::epsilon())))); ! BOOST_CHECK((boost::math::isfinite)(kurtosis(ignore_error_students_t(static_cast(4.0001L))))); // check_out_of_range >(1); // Cannot be used because fails "exception std::domain_error is expected" diff -cr libs/math/test/test_toms748_solve.cpp.orig libs/math/test/test_toms748_solve.cpp *** libs/math/test/test_toms748_solve.cpp.orig Mon Apr 15 04:47:08 2013 --- libs/math/test/test_toms748_solve.cpp Wed Dec 10 11:34:48 2014 *************** *** 12,17 **** --- 12,18 ---- #include #include #include + #include // // Test functor implements the same test cases as used by diff -cr libs/math/test/test_tr1.cpp.orig libs/math/test/test_tr1.cpp *** libs/math/test/test_tr1.cpp.orig Mon Apr 15 04:47:08 2013 --- libs/math/test/test_tr1.cpp Wed Dec 10 11:34:49 2014 *************** *** 8,13 **** --- 8,14 ---- #include #include #include // ldexpf + #include #ifdef TEST_STD #include diff -cr libs/numeric/ublas/test/sparse_view_test.cpp.orig libs/numeric/ublas/test/sparse_view_test.cpp *** libs/numeric/ublas/test/sparse_view_test.cpp.orig Mon Jul 5 14:20:58 2010 --- libs/numeric/ublas/test/sparse_view_test.cpp Wed Dec 10 11:34:50 2014 *************** *** 7,17 **** // ublas headers - #include #include #include #include #include --- 7,18 ---- // ublas headers #include #include #include + // Moved the following header down since it uses storage_array which is declared in storage.hpp (included from matrix.hpp) + #include #include diff -cr libs/phoenix/test/regression/bug4853.cpp.orig libs/phoenix/test/regression/bug4853.cpp *** libs/phoenix/test/regression/bug4853.cpp.orig Wed Apr 13 17:42:40 2011 --- libs/phoenix/test/regression/bug4853.cpp Wed Dec 10 11:34:51 2014 *************** *** 18,23 **** --- 18,24 ---- #include #include + #include namespace phoenix = boost::phoenix; diff -cr libs/pool/test/Jamfile.v2.orig libs/pool/test/Jamfile.v2 *** libs/pool/test/Jamfile.v2.orig Tue Aug 2 13:04:07 2011 --- libs/pool/test/Jamfile.v2 Wed Dec 10 11:34:53 2014 *************** *** 16,21 **** --- 16,23 ---- pathscale:-Wno-long-long gcc:-Wcast-align msvc:on + # Not sure how the definition of system_category() is not needed by other toolsets + vacpp:/boost/system//boost_system ; import testing ; diff -cr libs/ptr_container/test/tut1.cpp.orig libs/ptr_container/test/tut1.cpp *** libs/ptr_container/test/tut1.cpp.orig Sat Mar 22 17:45:55 2008 --- libs/ptr_container/test/tut1.cpp Wed Dec 10 11:34:54 2014 *************** *** 22,27 **** --- 22,28 ---- // // First we select which container to use. // + #include // Needed for boost::noncopyable #include // diff -cr libs/regex/test/Jamfile.v2.orig libs/regex/test/Jamfile.v2 *** libs/regex/test/Jamfile.v2.orig Mon Dec 10 08:18:45 2012 --- libs/regex/test/Jamfile.v2 Wed Dec 10 11:34:55 2014 *************** *** 176,191 **** BOOST_REGEX_RECURSIVE=1 : regex_regress_recursive ] ! [ run regress/$(R_SOURCE) ./noeh_test//boost_regex_noeh ! ../build//icu_options ! : # command line ! : # input files ! : # requirements ! BOOST_NO_EXCEPTIONS=1 ! off ! static ! shared ! : regex_regress_noeh ] ; --- 176,193 ---- BOOST_REGEX_RECURSIVE=1 : regex_regress_recursive ] ! # The below test case causes a recursive call to terminate. The amount ! # of ouptut is then unmanageable. ! # [ run regress/$(R_SOURCE) ./noeh_test//boost_regex_noeh ! # ../build//icu_options ! # : # command line ! # : # input files ! # : # requirements ! # BOOST_NO_EXCEPTIONS=1 ! # off ! # static ! # shared ! # : regex_regress_noeh ] ; diff -cr libs/signals/test/swap_test.cpp.orig libs/signals/test/swap_test.cpp *** libs/signals/test/swap_test.cpp.orig Sat Oct 13 13:27:29 2012 --- libs/signals/test/swap_test.cpp Wed Dec 10 11:34:57 2014 *************** *** 3,8 **** --- 3,9 ---- #include #include + #include struct HelloWorld { diff -cr libs/spirit/test/karma/regression_container_variant_sequence.cpp.orig libs/spirit/test/karma/regression_container_variant_sequence.cpp *** libs/spirit/test/karma/regression_container_variant_sequence.cpp.orig Sat Dec 8 11:31:17 2012 --- libs/spirit/test/karma/regression_container_variant_sequence.cpp Wed Dec 10 11:34:58 2014 *************** *** 32,38 **** --- 32,43 ---- SettingsHeaderGenerator() : SettingsHeaderGenerator::base_type(baseRule) { using phoenix::insert; + #ifdef BOOST_SPIRIT_USE_PHOENIX_V3 + // The V3 header does not actually declare at_c in the phoenix namespace + using boost::fusion::result_of::at_c; + #else using phoenix::at_c; + #endif using phoenix::push_back; using phoenix::ref; using karma::lit; diff -cr libs/thread/build/Jamfile.v2.orig libs/thread/build/Jamfile.v2 *** libs/thread/build/Jamfile.v2.orig Sat Sep 14 10:22:45 2013 --- libs/thread/build/Jamfile.v2 Wed Dec 10 11:34:59 2014 *************** *** 242,247 **** --- 242,251 ---- #if ! vacpp in $(properties) || 11.1 in $(properties) || 12.1.0.1 in $(properties) || 12.1 in $(properties) #{ result += /boost/chrono//boost_chrono ; + if vacpp in $(properties) + { + result += /boost/date_time//boost_date_time ; + } #} return $(result) ; diff -cr libs/thread/test/Jamfile.v2.orig libs/thread/test/Jamfile.v2 *** libs/thread/test/Jamfile.v2.orig Fri Sep 13 15:01:48 2013 --- libs/thread/test/Jamfile.v2 Wed Dec 10 11:35:00 2014 *************** *** 138,144 **** rule thread-run2-noit ( sources : name ) { return ! [ run $(sources) ../build//boost_thread : : : : $(name) ] [ run $(sources) ../src/tss_null.cpp ../build//boost_thread/static : : : --- 138,144 ---- rule thread-run2-noit ( sources : name ) { return ! [ run $(sources) ../build//boost_thread /boost/atomic//boost_atomic : : : : $(name) ] [ run $(sources) ../src/tss_null.cpp ../build//boost_thread/static : : : diff -cr libs/tr1/test/Jamfile.v2.orig libs/tr1/test/Jamfile.v2 *** libs/tr1/test/Jamfile.v2.orig Fri Oct 9 12:16:02 2009 --- libs/tr1/test/Jamfile.v2 Wed Dec 10 11:35:01 2014 *************** *** 13,18 **** --- 13,20 ---- borland:$(BOOST_ROOT)/boost/tr1/tr1/bcc32 # Sunpro's broken include mechanism needs these extra headers: $(BOOST_ROOT)/boost/tr1/tr1/sun + # XLC++ has #include_next implemented correctly and it is needed on Linux + vacpp,linux:BOOST_HAS_INCLUDE_NEXT ; diff -cr libs/utility/assert_test.cpp.orig libs/utility/assert_test.cpp *** libs/utility/assert_test.cpp.orig Sat Sep 21 16:17:00 2013 --- libs/utility/assert_test.cpp Wed Dec 10 11:35:02 2014 *************** *** 66,71 **** --- 66,76 ---- #undef BOOST_DISABLE_ASSERTS #define BOOST_ENABLE_ASSERT_HANDLER + // The assertion_failed_msg function declaration is missing if NDEBUG is defined. + #ifdef NDEBUG + # undef NDEBUG + # define NDEBUG_PREVIOUSLY_DEFINED + #endif #include #include #include *************** *** 142,147 **** --- 147,155 ---- #undef BOOST_ENABLE_ASSERT_HANDLER #undef BOOST_ENABLE_ASSERT_MSG_HANDLER + #ifdef NDEBUG_PREVIOUSLY_DEFINED + # define NDEBUG + #endif int main() { diff -cr tools/build/v2/engine/lists.c.orig tools/build/v2/engine/lists.c *** tools/build/v2/engine/lists.c.orig Tue May 21 00:14:18 2013 --- tools/build/v2/engine/lists.c Wed Dec 10 11:35:03 2014 *************** *** 86,91 **** --- 86,92 ---- return l; } + __attribute__((__noinline__)) LISTITER list_begin( LIST * l ) { return l ? (LISTITER)( (char *)l + sizeof( LIST ) ) : 0; diff -cr tools/build/v2/tools/vacpp.jam.orig tools/build/v2/tools/vacpp.jam *** tools/build/v2/tools/vacpp.jam.orig Wed Feb 17 04:49:08 2010 --- tools/build/v2/tools/vacpp.jam Wed Dec 10 11:35:10 2014 *************** *** 13,21 **** import common ; import generators ; import os ; ! feature.extend toolset : vacpp ; toolset.inherit vacpp : unix ; generators.override vacpp.prebuilt : builtin.prebuilt ; generators.override vacpp.searched-lib-generator : searched-lib-generator ; --- 13,45 ---- import common ; import generators ; import os ; + import modules ; ! if [ os.name ] = LINUX ! { ! import gcc ; ! } ! toolset.inherit vacpp : unix ; + feature.extend toolset : vacpp ; + + if [ os.name ] = LINUX + { + rule link ( targets * : sources * : properties * ) + { + gcc.quote-rpath $(targets) ; + } + + rule link.dll ( targets * : sources * : properties * ) + { + gcc.quote-rpath $(targets) ; + } + + rule archive ( targets * : sources * : properties * ) + { + gcc.archive $(targets) : $(sources) : $(properties) ; + } + } generators.override vacpp.prebuilt : builtin.prebuilt ; generators.override vacpp.searched-lib-generator : searched-lib-generator ; *************** *** 25,34 **** local condition = [ common.check-init-parameters vacpp : version $(version) ] ; ! command = [ common.get-invocation-command vacpp : xlC : $(command) : "/usr/vacpp/bin/xlC" ] ; ! common.handle-options vacpp : $(condition) : $(command) : $(options) ; } # Declare generators --- 49,63 ---- local condition = [ common.check-init-parameters vacpp : version $(version) ] ; ! local tool-command = [ common.get-invocation-command vacpp : xlC : $(command) : "/usr/vacpp/bin/xlC" ] ; ! common.handle-options vacpp : $(condition) : $(tool-command) : $(options) ; ! ! if [ os.name ] = LINUX ! { ! gcc.init-link-flags vacpp gnu $(condition) ; ! } } # Declare generators *************** *** 35,43 **** generators.register-c-compiler vacpp.compile.c : C : OBJ : vacpp ; generators.register-c-compiler vacpp.compile.c++ : CPP : OBJ : vacpp ; - # Allow C++ style comments in C files - flags vacpp CFLAGS : -qcpluscmt ; - # Declare flags flags vacpp CFLAGS off : -qNOOPTimize ; flags vacpp CFLAGS speed : -O3 -qstrict ; --- 64,69 ---- *************** *** 46,53 **** # Discretionary inlining (not recommended) flags vacpp CFLAGS off : -qnoinline ; flags vacpp CFLAGS on : -qinline ; ! #flags vacpp CFLAGS full : -qinline ; ! flags vacpp CFLAGS full : ; # Exception handling flags vacpp C++FLAGS off : -qnoeh ; --- 72,78 ---- # Discretionary inlining (not recommended) flags vacpp CFLAGS off : -qnoinline ; flags vacpp CFLAGS on : -qinline ; ! flags vacpp CFLAGS full : -qinline ; # Exception handling flags vacpp C++FLAGS off : -qnoeh ; *************** *** 59,76 **** # Enable 64-bit memory addressing model flags vacpp CFLAGS 64 : -q64 ; ! flags vacpp LINKFLAGS 64 : -q64 ; ! flags vacpp ARFLAGS aix/64 : -X 64 ; # Use absolute path when generating debug information flags vacpp CFLAGS on : -g -qfullpath ; ! flags vacpp LINKFLAGS on : -g -qfullpath ; ! flags vacpp LINKFLAGS off : -s ; if [ os.name ] = AIX { flags vacpp.compile C++FLAGS : -qfuncsect ; # The -bnoipath strips the prepending (relative) path of libraries from # the loader section in the target library or executable. Hence, during # load-time LIBPATH (identical to LD_LIBRARY_PATH) or a hard-coded --- 84,108 ---- # Enable 64-bit memory addressing model flags vacpp CFLAGS 64 : -q64 ; ! flags vacpp.link OPTIONS 64 : -q64 ; ! flags vacpp AIX_OBJ_MODE aix/64 : -X 64 ; # Use absolute path when generating debug information flags vacpp CFLAGS on : -g -qfullpath ; ! flags vacpp.link OPTIONS on : -g -qfullpath ; ! flags vacpp.link OPTIONS aix/off/on : -s ; + # In order to prevent TOC overflow for some test cases with many global symbols + flags vacpp.compile CFLAGS shared : -qpic=large ; + flags vacpp.link OPTIONS shared : -qpic=large ; + if [ os.name ] = AIX { flags vacpp.compile C++FLAGS : -qfuncsect ; + # Enable 32-bit Very Large Address-Space + flags vacpp.link OPTIONS 32 : -bmaxdata:0xAFFFFFFF/dsa ; + # The -bnoipath strips the prepending (relative) path of libraries from # the loader section in the target library or executable. Hence, during # load-time LIBPATH (identical to LD_LIBRARY_PATH) or a hard-coded *************** *** 84,90 **** # AIX 4.x and AIX 6.x. For details about the AIX linker see: # http://download.boulder.ibm.com/ibmdl/pub/software/dw/aix/es-aix_ll.pdf # ! flags vacpp.link LINKFLAGS shared : -bnoipath ; # Run-time linking flags vacpp.link EXE-LINKFLAGS shared : -brtl ; --- 116,122 ---- # AIX 4.x and AIX 6.x. For details about the AIX linker see: # http://download.boulder.ibm.com/ibmdl/pub/software/dw/aix/es-aix_ll.pdf # ! flags vacpp.link OPTIONS shared : -bnoipath ; # Run-time linking flags vacpp.link EXE-LINKFLAGS shared : -brtl ; *************** *** 92,104 **** else { # Linux PPC ! flags vacpp.compile CFLAGS shared : -qpic=large ; ! flags vacpp FINDLIBS : rt ; } # Profiling flags vacpp CFLAGS on : -pg ; ! flags vacpp LINKFLAGS on : -pg ; flags vacpp.compile OPTIONS ; flags vacpp.compile.c++ OPTIONS ; --- 124,135 ---- else { # Linux PPC ! flags vacpp.link FINDLIBS-SA multi : rt ; } # Profiling flags vacpp CFLAGS on : -pg ; ! flags vacpp.link OPTIONS on : -pg ; flags vacpp.compile OPTIONS ; flags vacpp.compile.c++ OPTIONS ; *************** *** 106,150 **** flags vacpp UNDEFS ; flags vacpp HDRS ; flags vacpp STDHDRS ; ! flags vacpp.link OPTIONS ; flags vacpp ARFLAGS ; ! flags vacpp LIBPATH ; ! flags vacpp NEEDLIBS ; ! flags vacpp FINDLIBS ; ! flags vacpp FINDLIBS ; ! # Select the compiler name according to the threading model. ! flags vacpp VA_C_COMPILER single : xlc ; ! flags vacpp VA_C_COMPILER multi : xlc_r ; ! flags vacpp VA_CXX_COMPILER single : xlC ; ! flags vacpp VA_CXX_COMPILER multi : xlC_r ; SPACE = " " ; ! flags vacpp.link.dll HAVE_SONAME linux : "" ; ! ! actions vacpp.link bind NEEDLIBS { ! $(VA_CXX_COMPILER) $(EXE-LINKFLAGS) $(LINKFLAGS) -o "$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) $(OPTIONS) $(USER_OPTIONS) } ! ! actions vacpp.link.dll bind NEEDLIBS { ! xlC_r -G $(LINKFLAGS) -o "$(<[1])" $(HAVE_SONAME)-Wl,-soname$(SPACE)-Wl,$(<[-1]:D=) -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) $(OPTIONS) $(USER_OPTIONS) } actions vacpp.compile.c { ! $(VA_C_COMPILER) -c $(OPTIONS) $(USER_OPTIONS) -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)" } actions vacpp.compile.c++ { ! $(VA_CXX_COMPILER) -c $(OPTIONS) $(USER_OPTIONS) -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) $(C++FLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)" } ! actions updated together piecemeal vacpp.archive { ! ar $(ARFLAGS) ru "$(<)" "$(>)" } --- 137,207 ---- flags vacpp UNDEFS ; flags vacpp HDRS ; flags vacpp STDHDRS ; ! flags vacpp ARFLAGS ; + flags vacpp ARFLAGS ; ! flags vacpp.link USER_OPTIONS ; ! flags vacpp.link LINKPATH ; ! flags vacpp.link LIBRARIES ; ! flags vacpp.link FINDLIBS-ST ; ! flags vacpp.link FINDLIBS-SA ; ! # Select the compiler configuration stanza according to the threading model. ! flags vacpp VA_C_COMPILER_CFG single : -F:xlc ; ! flags vacpp VA_C_COMPILER_CFG multi : -F:xlc_r ; ! flags vacpp VA_CXX_COMPILER_CFG single : -F:xlC ; ! flags vacpp VA_CXX_COMPILER_CFG multi : -F:xlC_r ; SPACE = " " ; ! if [ os.name ] = LINUX { ! actions link bind LIBRARIES ! { ! $(CONFIG_COMMAND) $(VA_CXX_COMPILER_CFG) -L"$(LINKPATH)" -Wl,-R,$(RPATH) -Wl,-rpath-link,"$(RPATH_LINK)" -o "$(<[1])" $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS) ! } ! actions link.dll bind LIBRARIES ! { ! $(CONFIG_COMMAND) $(VA_CXX_COMPILER_CFG) -G -L"$(LINKPATH)" -Wl,-R$(SPACE)-Wl,$(RPATH) -o "$(<[1])" -Wl,-soname=$(<[-1]:D=) $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS) ! } } ! else { ! actions vacpp.link bind LIBRARIES ! { ! $(CONFIG_COMMAND) $(VA_CXX_COMPILER_CFG) $(EXE-LINKFLAGS) -o "$(<[1])" -L$(LINKPATH) "$(>)" "$(LIBRARIES)" "$(LIBRARIES)" -l$(FINDLIBS-ST) -l$(FINDLIBS-SA) $(OPTIONS) $(USER_OPTIONS) ! } ! ! actions vacpp.link.dll bind LIBRARIES ! { ! $(CONFIG_COMMAND) $(VA_CXX_COMPILER_CFG) -G -o "$(<[1])" $(HAVE_SONAME)-Wl,-soname$(SPACE)-Wl,$(<[-1]:D=) -L$(LINKPATH) "$(>)" "$(LIBRARIES)" "$(LIBRARIES)" -l$(FINDLIBS-ST) -l$(FINDLIBS-SA) $(OPTIONS) $(USER_OPTIONS) ! } } actions vacpp.compile.c { ! $(CONFIG_COMMAND) $(VA_C_COMPILER_CFG) -c $(OPTIONS) $(USER_OPTIONS) -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)" } actions vacpp.compile.c++ { ! $(CONFIG_COMMAND) $(VA_CXX_COMPILER_CFG) -c $(OPTIONS) $(USER_OPTIONS) -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) $(C++FLAGS) -qxflag=MangleCVOnTemplateTypeArgs -D__IBM_ALLOW_OVERRIDE_PLACEMENT_NEW -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)" } ! if [ os.name ] = AIX { ! actions updated together piecemeal vacpp.archive ! { ! ar $(AIX_OBJ_MODE) $(ARFLAGS) rcu "$(<)" "$(>)" ! ranlib $(AIX_OBJ_MODE) "$(<)" ! } ! } ! else ! { ! actions piecemeal archive ! { ! ar $(ARFLAGS) rc "$(<)" "$(>)" ! ranlib "$(<)" ! } } diff -cr boost/math/special_functions/jacobi_elliptic.hpp.orig boost/math/special_functions/jacobi_elliptic.hpp *** boost/math/special_functions/jacobi_elliptic.hpp.orig 2013-04-15 04:47:08.000000000 -0400 --- boost/math/special_functions/jacobi_elliptic.hpp 2014-12-11 07:12:13.720962804 -0500 *************** *** 145,150 **** --- 145,166 ---- return jacobi_elliptic(k, theta, pcn, pdn, policies::policy<>()); } + /* Providing overloads rather than attempting to declare default arguments since the order of inclusion + sometimes puts this header ahead of math_fwd which is where the default arguments were specified. + These are not forwarding calls in case copying 'k' or 'theta' may have semantics. + */ + template + inline typename tools::promote_args::type jacobi_elliptic(T k, U theta, V* pcn) + { + return jacobi_elliptic(k, theta, pcn, 0, policies::policy<>()); + } + + template + inline typename tools::promote_args::type jacobi_elliptic(T k, U theta) + { + return jacobi_elliptic(k, theta, 0, 0, policies::policy<>()); + } + template inline typename tools::promote_args::type jacobi_sn(U k, T theta, const Policy& pol) { diff -cr boost/math/special_functions/math_fwd.hpp.orig boost/math/special_functions/math_fwd.hpp *** boost/math/special_functions/math_fwd.hpp.orig 2013-09-28 12:19:47.000000000 -0400 --- boost/math/special_functions/math_fwd.hpp 2014-12-11 07:01:34.817650721 -0500 *************** *** 813,819 **** typename tools::promote_args::type jacobi_elliptic(T k, U theta, V* pcn, V* pdn, const Policy&); template ! typename tools::promote_args::type jacobi_elliptic(T k, U theta, V* pcn = 0, V* pdn = 0); template typename tools::promote_args::type jacobi_sn(U k, T theta, const Policy& pol); --- 813,825 ---- typename tools::promote_args::type jacobi_elliptic(T k, U theta, V* pcn, V* pdn, const Policy&); template ! typename tools::promote_args::type jacobi_elliptic(T k, U theta, V* pcn, V* pdn); ! ! template ! typename tools::promote_args::type jacobi_elliptic(T k, U theta, V* pcn); ! ! template ! typename tools::promote_args::type jacobi_elliptic(T k, U theta); template typename tools::promote_args::type jacobi_sn(U k, T theta, const Policy& pol); diff -cr boost/utility/value_init.hpp.orig boost/utility/value_init.hpp *** boost/utility/value_init.hpp.orig Sat Sep 21 16:17:00 2013 --- boost/utility/value_init.hpp Mon Dec 15 06:33:26 2014 *************** *** 92,100 **** #endif aligned_storage::value>::type x; wrapper * wrapper_address() const { ! return static_cast( static_cast(&x)); } public : --- 92,105 ---- #endif aligned_storage::value>::type x; + wrapper * launder(void *vptr) const __attribute__((noinline)) + { + return static_cast(vptr); + } + wrapper * wrapper_address() const { ! return launder(&x); } public : diff -cr boost/container/detail/advanced_insert_int.hpp.orig boost/container/detail/advanced_insert_int.hpp *** boost/container/detail/advanced_insert_int.hpp.orig Thu Sep 26 17:35:57 2013 --- boost/container/detail/advanced_insert_int.hpp Mon Dec 15 06:37:45 2014 *************** *** 366,372 **** { \ BOOST_ASSERT(n == 1); (void)n; \ aligned_storage::value> v; \ ! value_type *vp = static_cast(static_cast(&v)); \ alloc_traits::construct(this->a_, vp \ BOOST_PP_ENUM_TRAILING(N, BOOST_CONTAINER_PP_MEMBER_FORWARD, _)); \ BOOST_TRY{ \ --- 366,372 ---- { \ BOOST_ASSERT(n == 1); (void)n; \ aligned_storage::value> v; \ ! value_type *vp = launder(&v); \ alloc_traits::construct(this->a_, vp \ BOOST_PP_ENUM_TRAILING(N, BOOST_CONTAINER_PP_MEMBER_FORWARD, _)); \ BOOST_TRY{ \ *************** *** 379,384 **** --- 379,390 ---- BOOST_CATCH_END \ alloc_traits::destroy(this->a_, vp); \ } \ + private: \ + /* make the pointer value opaque to address value propagation */ \ + value_type *launder(void *p) const __attribute__((noinline)) \ + { \ + return static_cast(p); \ + } \ }; \ //! #define BOOST_PP_LOCAL_LIMITS (0, BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS)