diff --git a/boost-1.53.0-static_assert-unused_typedef.patch b/boost-1.53.0-static_assert-unused_typedef.patch new file mode 100644 index 0000000..c4157d1 --- /dev/null +++ b/boost-1.53.0-static_assert-unused_typedef.patch @@ -0,0 +1,30 @@ +diff -up boost_1_53_0/boost/static_assert.hpp\~ boost_1_53_0/boost/static_assert.hpp +--- boost_1_53_0/boost/static_assert.hpp~ 2012-12-11 15:42:26.000000000 +0100 ++++ boost_1_53_0/boost/static_assert.hpp 2013-07-19 14:15:59.504039071 +0200 +@@ -43,6 +43,14 @@ + #else + # define BOOST_STATIC_ASSERT_BOOL_CAST(x) (bool)(x) + #endif ++// ++// If the compiler warns about unused typedefs then enable this: ++// ++#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7))) ++# define BOOST_STATIC_ASSERT_UNUSED_ATTRIBUTE __attribute__((unused)) ++#else ++# define BOOST_STATIC_ASSERT_UNUSED_ATTRIBUTE ++#endif + + #ifndef BOOST_NO_CXX11_STATIC_ASSERT + # define BOOST_STATIC_ASSERT( B ) static_assert(B, #B) +@@ -122,7 +130,8 @@ template struct static_assert_tes + #define BOOST_STATIC_ASSERT( B ) \ + typedef ::boost::static_assert_test<\ + sizeof(::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST( B ) >)>\ +- BOOST_JOIN(boost_static_assert_typedef_, __LINE__) ++ BOOST_JOIN(boost_static_assert_typedef_, __LINE__) \ ++ BOOST_STATIC_ASSERT_UNUSED_ATTRIBUTE + #endif + + #else + +Diff finished. Fri Jul 19 14:16:04 2013 diff --git a/boost-1.54.0-bind-static_assert.patch b/boost-1.54.0-bind-static_assert.patch new file mode 100644 index 0000000..bd1800e --- /dev/null +++ b/boost-1.54.0-bind-static_assert.patch @@ -0,0 +1,21 @@ +diff -up ./boost/bind/arg.hpp~ ./boost/bind/arg.hpp +--- ./boost/bind/arg.hpp~ 2007-11-25 10:07:19.000000000 -0800 ++++ ./boost/bind/arg.hpp 2013-07-18 00:41:41.667412595 -0700 +@@ -21,6 +21,7 @@ + + #include + #include ++#include + + namespace boost + { +@@ -33,8 +34,7 @@ template< int I > struct arg + + template< class T > arg( T const & /* t */ ) + { +- // static assert I == is_placeholder::value +- typedef char T_must_be_placeholder[ I == is_placeholder::value? 1: -1 ]; ++ BOOST_STATIC_ASSERT(I == is_placeholder::value); + } + }; + diff --git a/boost-1.54.0-concept-unused_typedef.patch b/boost-1.54.0-concept-unused_typedef.patch new file mode 100644 index 0000000..9559a5c --- /dev/null +++ b/boost-1.54.0-concept-unused_typedef.patch @@ -0,0 +1,21 @@ +diff -up ./boost/concept/detail/general.hpp~ ./boost/concept/detail/general.hpp +--- ./boost/concept/detail/general.hpp~ 2010-06-08 12:31:13.000000000 -0700 ++++ ./boost/concept/detail/general.hpp 2013-07-18 06:01:05.967747186 -0700 +@@ -6,6 +6,7 @@ + + # include + # include ++# include + + # ifdef BOOST_OLD_CONCEPT_SUPPORT + # include +@@ -68,7 +69,8 @@ struct requirement_ + # define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \ + typedef ::boost::concepts::detail::instantiate< \ + &::boost::concepts::requirement_::failed> \ +- BOOST_PP_CAT(boost_concept_check,__LINE__) ++ BOOST_PP_CAT(boost_concept_check,__LINE__) \ ++ BOOST_STATIC_ASSERT_UNUSED_ATTRIBUTE + + }} + diff --git a/boost-1.54.0-date_time-unused_typedef.patch b/boost-1.54.0-date_time-unused_typedef.patch new file mode 100644 index 0000000..0f287ee --- /dev/null +++ b/boost-1.54.0-date_time-unused_typedef.patch @@ -0,0 +1,100 @@ +Index: boost/date_time/date_parsing.hpp +=================================================================== +--- boost/date_time/date_parsing.hpp (revision 85073) ++++ boost/date_time/date_parsing.hpp (working copy) +@@ -113,7 +113,6 @@ + spec_str = "mdy"; + } + +- typedef typename date_type::year_type year_type; + typedef typename date_type::month_type month_type; + unsigned pos = 0; + unsigned short year(0), month(0), day(0); +@@ -160,7 +159,6 @@ + parse_undelimited_date(const std::string& s) { + int offsets[] = {4,2,2}; + int pos = 0; +- typedef typename date_type::year_type year_type; + //typename date_type::ymd_type ymd((year_type::min)(),1,1); + unsigned short y = 0, m = 0, d = 0; + +Index: boost/date_time/local_time/local_time_io.hpp +=================================================================== +--- boost/date_time/local_time/local_time_io.hpp (revision 85073) ++++ boost/date_time/local_time/local_time_io.hpp (working copy) +@@ -36,7 +36,6 @@ + boost::io::ios_flags_saver iflags(os); + typedef local_date_time time_type;//::utc_time_type typename + typedef date_time::time_facet custom_time_facet; +- typedef std::time_put std_time_facet; + std::ostreambuf_iterator oitr(os); + + if(std::has_facet(os.getloc())) { +@@ -123,7 +122,6 @@ + const boost::local_time::local_time_period& p) { + boost::io::ios_flags_saver iflags(os); + typedef boost::date_time::time_facet custom_facet; +- typedef std::time_put std_time_facet; + std::ostreambuf_iterator oitr(os); + if (std::has_facet(os.getloc())) { + std::use_facet(os.getloc()).put(oitr, os, os.fill(), p); +Index: boost/date_time/posix_time/posix_time_io.hpp +=================================================================== +--- boost/date_time/posix_time/posix_time_io.hpp (revision 85073) ++++ boost/date_time/posix_time/posix_time_io.hpp (working copy) +@@ -47,7 +47,6 @@ + const ptime& p) { + boost::io::ios_flags_saver iflags(os); + typedef boost::date_time::time_facet custom_ptime_facet; +- typedef std::time_put std_ptime_facet; + std::ostreambuf_iterator oitr(os); + if (std::has_facet(os.getloc())) + std::use_facet(os.getloc()).put(oitr, os, os.fill(), p); +@@ -114,7 +113,6 @@ + const boost::posix_time::time_period& p) { + boost::io::ios_flags_saver iflags(os); + typedef boost::date_time::time_facet custom_ptime_facet; +- typedef std::time_put std_time_facet; + std::ostreambuf_iterator oitr(os); + if (std::has_facet(os.getloc())) { + std::use_facet(os.getloc()).put(oitr, os, os.fill(), p); +@@ -180,7 +178,6 @@ + { + boost::io::ios_flags_saver iflags(os); + typedef boost::date_time::time_facet custom_ptime_facet; +- typedef std::time_put std_ptime_facet; + std::ostreambuf_iterator oitr(os); + if (std::has_facet(os.getloc())) + std::use_facet(os.getloc()).put(oitr, os, os.fill(), td); +Index: boost/date_time/string_convert.hpp +=================================================================== +--- boost/date_time/string_convert.hpp (revision 85073) ++++ boost/date_time/string_convert.hpp (working copy) +@@ -21,7 +21,6 @@ + inline + std::basic_string convert_string_type(const std::basic_string& inp_str) + { +- typedef std::basic_string input_type; + typedef std::basic_string output_type; + output_type result; + result.insert(result.begin(), inp_str.begin(), inp_str.end()); +Index: boost/date_time/strings_from_facet.hpp +=================================================================== +--- boost/date_time/strings_from_facet.hpp (revision 85073) ++++ boost/date_time/strings_from_facet.hpp (working copy) +@@ -35,7 +35,6 @@ + { + typedef std::basic_string string_type; + typedef std::vector collection_type; +- typedef std::basic_ostringstream ostream_type; + typedef std::ostreambuf_iterator ostream_iter_type; + typedef std::basic_ostringstream stringstream_type; + typedef std::time_put time_put_facet_type; +@@ -86,7 +85,6 @@ + { + typedef std::basic_string string_type; + typedef std::vector collection_type; +- typedef std::basic_ostringstream ostream_type; + typedef std::ostreambuf_iterator ostream_iter_type; + typedef std::basic_ostringstream stringstream_type; + typedef std::time_put time_put_facet_type; diff --git a/boost-1.54.0-math-unused_typedef-2.patch b/boost-1.54.0-math-unused_typedef-2.patch new file mode 100644 index 0000000..75d07ce --- /dev/null +++ b/boost-1.54.0-math-unused_typedef-2.patch @@ -0,0 +1,20 @@ +Index: boost/math/special_functions/beta.hpp +=================================================================== +--- boost/math/special_functions/beta.hpp (revision 85073) ++++ boost/math/special_functions/beta.hpp (working copy) +@@ -1331,7 +1331,6 @@ + BOOST_FPU_EXCEPTION_GUARD + typedef typename tools::promote_args::type result_type; + typedef typename policies::evaluation::type value_type; +- typedef typename lanczos::lanczos::type evaluation_type; + typedef typename policies::normalise< + Policy, + policies::promote_float, +@@ -1349,7 +1348,6 @@ + BOOST_FPU_EXCEPTION_GUARD + typedef typename tools::promote_args::type result_type; + typedef typename policies::evaluation::type value_type; +- typedef typename lanczos::lanczos::type evaluation_type; + typedef typename policies::normalise< + Policy, + policies::promote_float, diff --git a/boost-1.54.0-math-unused_typedef.patch b/boost-1.54.0-math-unused_typedef.patch new file mode 100644 index 0000000..f413279 --- /dev/null +++ b/boost-1.54.0-math-unused_typedef.patch @@ -0,0 +1,15 @@ +diff -up boost_1_54_0/boost/math/distributions/inverse_gaussian.hpp~ boost_1_54_0/boost/math/distributions/inverse_gaussian.hpp +--- boost_1_54_0/boost/math/distributions/inverse_gaussian.hpp~ 2012-09-07 01:43:19.000000000 -0700 ++++ boost_1_54_0/boost/math/distributions/inverse_gaussian.hpp 2013-07-22 03:42:15.216142075 -0700 +@@ -285,10 +285,8 @@ namespace detail + + // Define the distribution, using gamma_nooverflow: + typedef gamma_distribution gamma_nooverflow; ++ gamma_nooverflow g(static_cast(0.5), static_cast(1.)); + +- gamma_distribution g(static_cast(0.5), static_cast(1.)); +- +- // gamma_nooverflow g(static_cast(0.5), static_cast(1.)); + // R qgamma(0.2, 0.5, 1) 0.0320923 + RealType qg = quantile(complement(g, p)); + //RealType qg1 = qgamma(1.- p, 0.5, 1.0, true, false); diff --git a/boost-1.54.0-multiprecision-unused_typedef.patch b/boost-1.54.0-multiprecision-unused_typedef.patch new file mode 100644 index 0000000..af245af --- /dev/null +++ b/boost-1.54.0-multiprecision-unused_typedef.patch @@ -0,0 +1,148 @@ +diff -up boost_1_54_0/boost/multiprecision/detail/functions/constants.hpp~ boost_1_54_0/boost/multiprecision/detail/functions/constants.hpp +--- boost_1_54_0/boost/multiprecision/detail/functions/constants.hpp~ 2012-09-20 09:04:02.000000000 -0700 ++++ boost_1_54_0/boost/multiprecision/detail/functions/constants.hpp 2013-07-22 03:31:01.145084522 -0700 +@@ -81,7 +81,6 @@ template + void calc_e(T& result, unsigned digits) + { + typedef typename mpl::front::type ui_type; +- typedef typename mpl::front::type real_type; + // + // 1100 digits in string form: + // +diff -up boost_1_54_0/boost/multiprecision/detail/functions/pow.hpp~ boost_1_54_0/boost/multiprecision/detail/functions/pow.hpp +--- boost_1_54_0/boost/multiprecision/detail/functions/pow.hpp~ 2013-03-31 09:34:50.000000000 -0700 ++++ boost_1_54_0/boost/multiprecision/detail/functions/pow.hpp 2013-07-22 03:43:12.495489757 -0700 +@@ -142,10 +142,6 @@ void hyp1F0(T& H1F0, const T& a, const T + // There are no checks on input range or parameter boundaries. + + typedef typename boost::multiprecision::detail::canonical::type si_type; +- typedef typename boost::multiprecision::detail::canonical::type ui_type; +- typedef typename T::exponent_type exp_type; +- typedef typename boost::multiprecision::detail::canonical::type canonical_exp_type; +- typedef typename mpl::front::type fp_type; + + BOOST_ASSERT(&H1F0 != &x); + BOOST_ASSERT(&H1F0 != &a); +@@ -200,7 +196,6 @@ void eval_exp(T& result, const T& x) + typedef typename boost::multiprecision::detail::canonical::type si_type; + typedef typename T::exponent_type exp_type; + typedef typename boost::multiprecision::detail::canonical::type canonical_exp_type; +- typedef typename boost::multiprecision::detail::canonical::type float_type; + + // Handle special arguments. + int type = eval_fpclassify(x); +@@ -326,7 +321,6 @@ void eval_log(T& result, const T& arg) + // then let y = x - 1 and compute: + // log(x) = log(2) * n + log1p(1 + y) + // +- typedef typename boost::multiprecision::detail::canonical::type si_type; + typedef typename boost::multiprecision::detail::canonical::type ui_type; + typedef typename T::exponent_type exp_type; + typedef typename boost::multiprecision::detail::canonical::type canonical_exp_type; +@@ -409,9 +403,6 @@ inline void eval_pow(T& result, const T& + { + BOOST_STATIC_ASSERT_MSG(number_category::value == number_kind_floating_point, "The pow function is only valid for floating point types."); + typedef typename boost::multiprecision::detail::canonical::type si_type; +- typedef typename boost::multiprecision::detail::canonical::type ui_type; +- typedef typename T::exponent_type exp_type; +- typedef typename boost::multiprecision::detail::canonical::type canonical_exp_type; + typedef typename mpl::front::type fp_type; + + if((&result == &x) || (&result == &a)) +@@ -595,10 +586,7 @@ namespace detail{ + template + void sinhcosh(const T& x, T* p_sinh, T* p_cosh) + { +- typedef typename boost::multiprecision::detail::canonical::type si_type; + typedef typename boost::multiprecision::detail::canonical::type ui_type; +- typedef typename T::exponent_type exp_type; +- typedef typename boost::multiprecision::detail::canonical::type canonical_exp_type; + typedef typename mpl::front::type fp_type; + + switch(eval_fpclassify(x)) +diff -up boost_1_54_0/boost/multiprecision/detail/functions/trig.hpp~ boost_1_54_0/boost/multiprecision/detail/functions/trig.hpp +--- boost_1_54_0/boost/multiprecision/detail/functions/trig.hpp~ 2013-03-31 09:34:50.000000000 -0700 ++++ boost_1_54_0/boost/multiprecision/detail/functions/trig.hpp 2013-07-22 03:44:30.512963273 -0700 +@@ -17,9 +17,6 @@ void hyp0F1(T& result, const T& b, const + { + typedef typename boost::multiprecision::detail::canonical::type si_type; + typedef typename boost::multiprecision::detail::canonical::type ui_type; +- typedef typename T::exponent_type exp_type; +- typedef typename boost::multiprecision::detail::canonical::type canonical_exp_type; +- typedef typename mpl::front::type fp_type; + + // Compute the series representation of Hypergeometric0F1 taken from + // http://functions.wolfram.com/HypergeometricFunctions/Hypergeometric0F1/06/01/01/ +@@ -82,8 +79,6 @@ void eval_sin(T& result, const T& x) + + typedef typename boost::multiprecision::detail::canonical::type si_type; + typedef typename boost::multiprecision::detail::canonical::type ui_type; +- typedef typename T::exponent_type exp_type; +- typedef typename boost::multiprecision::detail::canonical::type canonical_exp_type; + typedef typename mpl::front::type fp_type; + + switch(eval_fpclassify(x)) +@@ -228,8 +223,6 @@ void eval_cos(T& result, const T& x) + + typedef typename boost::multiprecision::detail::canonical::type si_type; + typedef typename boost::multiprecision::detail::canonical::type ui_type; +- typedef typename T::exponent_type exp_type; +- typedef typename boost::multiprecision::detail::canonical::type canonical_exp_type; + typedef typename mpl::front::type fp_type; + + switch(eval_fpclassify(x)) +@@ -381,11 +374,7 @@ void hyp2F1(T& result, const T& a, const + // Abramowitz and Stegun 15.1.1. + // There are no checks on input range or parameter boundaries. + +- typedef typename boost::multiprecision::detail::canonical::type si_type; + typedef typename boost::multiprecision::detail::canonical::type ui_type; +- typedef typename T::exponent_type exp_type; +- typedef typename boost::multiprecision::detail::canonical::type canonical_exp_type; +- typedef typename mpl::front::type fp_type; + + T x_pow_n_div_n_fact(x); + T pochham_a (a); +@@ -443,10 +432,7 @@ template + void eval_asin(T& result, const T& x) + { + BOOST_STATIC_ASSERT_MSG(number_category::value == number_kind_floating_point, "The asin function is only valid for floating point types."); +- typedef typename boost::multiprecision::detail::canonical::type si_type; + typedef typename boost::multiprecision::detail::canonical::type ui_type; +- typedef typename T::exponent_type exp_type; +- typedef typename boost::multiprecision::detail::canonical::type canonical_exp_type; + typedef typename mpl::front::type fp_type; + + if(&result == &x) +@@ -597,8 +583,6 @@ void eval_atan(T& result, const T& x) + BOOST_STATIC_ASSERT_MSG(number_category::value == number_kind_floating_point, "The atan function is only valid for floating point types."); + typedef typename boost::multiprecision::detail::canonical::type si_type; + typedef typename boost::multiprecision::detail::canonical::type ui_type; +- typedef typename T::exponent_type exp_type; +- typedef typename boost::multiprecision::detail::canonical::type canonical_exp_type; + typedef typename mpl::front::type fp_type; + + switch(eval_fpclassify(x)) +@@ -699,11 +683,7 @@ void eval_atan2(T& result, const T& y, c + return; + } + +- typedef typename boost::multiprecision::detail::canonical::type si_type; + typedef typename boost::multiprecision::detail::canonical::type ui_type; +- typedef typename T::exponent_type exp_type; +- typedef typename boost::multiprecision::detail::canonical::type canonical_exp_type; +- typedef typename mpl::front::type fp_type; + + switch(eval_fpclassify(y)) + { +diff -up boost_1_54_0/boost/multiprecision/detail/generic_interconvert.hpp~ boost_1_54_0/boost/multiprecision/detail/generic_interconvert.hpp +--- boost_1_54_0/boost/multiprecision/detail/generic_interconvert.hpp~ 2012-12-20 09:42:14.000000000 -0800 ++++ boost_1_54_0/boost/multiprecision/detail/generic_interconvert.hpp 2013-07-22 03:38:51.614906286 -0700 +@@ -191,7 +191,6 @@ void generic_interconvert(To& to, const + template + void generic_interconvert(To& to, const From& from, const mpl::int_& /*to_type*/, const mpl::int_& /*from_type*/) + { +- typedef typename component_type >::type from_component_type; + typedef typename component_type >::type to_component_type; + + number t(from); diff --git a/boost-1.54.0-numeric-unused_typedef.patch b/boost-1.54.0-numeric-unused_typedef.patch new file mode 100644 index 0000000..b391725 --- /dev/null +++ b/boost-1.54.0-numeric-unused_typedef.patch @@ -0,0 +1,250 @@ +diff -up boost_1_54_0/boost/numeric/ublas/detail/matrix_assign.hpp~ boost_1_54_0/boost/numeric/ublas/detail/matrix_assign.hpp +--- boost_1_54_0/boost/numeric/ublas/detail/matrix_assign.hpp~ 2010-10-19 00:01:35.000000000 -0700 ++++ boost_1_54_0/boost/numeric/ublas/detail/matrix_assign.hpp 2013-07-22 04:33:26.399038120 -0700 +@@ -1303,7 +1303,6 @@ namespace detail { + void matrix_swap (M &m, matrix_expression &e, packed_proxy_tag, row_major_tag) { + typedef F functor_type; + // R unnecessary, make_conformant not required +- typedef typename M::size_type size_type; + typedef typename M::difference_type difference_type; + typename M::iterator1 it1 (m.begin1 ()); + typename E::iterator1 it1e (e ().begin1 ()); +@@ -1329,7 +1328,6 @@ namespace detail { + void matrix_swap (M &m, matrix_expression &e, packed_proxy_tag, column_major_tag) { + typedef F functor_type; + // R unnecessary, make_conformant not required +- typedef typename M::size_type size_type; + typedef typename M::difference_type difference_type; + typename M::iterator2 it2 (m.begin2 ()); + typename E::iterator2 it2e (e ().begin2 ()); +@@ -1357,7 +1355,6 @@ namespace detail { + typedef R conformant_restrict_type; + typedef typename M::size_type size_type; + typedef typename M::difference_type difference_type; +- typedef typename M::value_type value_type; + BOOST_UBLAS_CHECK (m.size1 () == e ().size1 (), bad_size ()); + BOOST_UBLAS_CHECK (m.size2 () == e ().size2 (), bad_size ()); + +@@ -1482,7 +1479,6 @@ namespace detail { + typedef R conformant_restrict_type; + typedef typename M::size_type size_type; + typedef typename M::difference_type difference_type; +- typedef typename M::value_type value_type; + BOOST_UBLAS_CHECK (m.size1 () == e ().size1 (), bad_size ()); + BOOST_UBLAS_CHECK (m.size2 () == e ().size2 (), bad_size ()); + +diff -up boost_1_54_0/boost/numeric/ublas/detail/vector_assign.hpp~ boost_1_54_0/boost/numeric/ublas/detail/vector_assign.hpp +--- boost_1_54_0/boost/numeric/ublas/detail/vector_assign.hpp~ 2007-11-25 10:07:19.000000000 -0800 ++++ boost_1_54_0/boost/numeric/ublas/detail/vector_assign.hpp 2013-07-22 04:32:21.774650296 -0700 +@@ -379,7 +379,6 @@ namespace detail { + typedef typename V::size_type size_type; + typedef typename V::difference_type difference_type; + typedef typename V::value_type value_type; +- typedef typename V::reference reference; + #if BOOST_UBLAS_TYPE_CHECK + vector cv (v.size ()); + indexing_vector_assign (cv, v); +@@ -513,7 +512,6 @@ namespace detail { + typedef F functor_type; + typedef typename V::size_type size_type; + typedef typename V::difference_type difference_type; +- typedef typename V::value_type value_type; + + detail::make_conformant (v, e); + // FIXME should be a seperate restriction for E +diff -up boost_1_54_0/boost/numeric/ublas/lu.hpp~ boost_1_54_0/boost/numeric/ublas/lu.hpp +--- boost_1_54_0/boost/numeric/ublas/lu.hpp~ 2010-07-04 23:06:24.000000000 -0700 ++++ boost_1_54_0/boost/numeric/ublas/lu.hpp 2013-07-22 04:40:06.634440205 -0700 +@@ -63,7 +63,6 @@ namespace boost { namespace numeric { na + BOOST_UBLAS_INLINE + void swap_rows (const PM &pm, MV &mv, vector_tag) { + typedef typename PM::size_type size_type; +- typedef typename MV::value_type value_type; + + size_type size = pm.size (); + for (size_type i = 0; i < size; ++ i) { +@@ -75,7 +74,6 @@ namespace boost { namespace numeric { na + BOOST_UBLAS_INLINE + void swap_rows (const PM &pm, MV &mv, matrix_tag) { + typedef typename PM::size_type size_type; +- typedef typename MV::value_type value_type; + + size_type size = pm.size (); + for (size_type i = 0; i < size; ++ i) { +diff -up boost_1_54_0/boost/numeric/ublas/operation.hpp~ boost_1_54_0/boost/numeric/ublas/operation.hpp +--- boost_1_54_0/boost/numeric/ublas/operation.hpp~ 2007-11-25 10:07:19.000000000 -0800 ++++ boost_1_54_0/boost/numeric/ublas/operation.hpp 2013-07-22 04:42:19.436046788 -0700 +@@ -129,7 +129,6 @@ namespace boost { namespace numeric { na + const vector_expression &e2, + V &v, packed_random_access_iterator_tag, row_major_tag) { + typedef const E1 expression1_type; +- typedef const E2 expression2_type; + typedef typename V::size_type size_type; + + typename expression1_type::const_iterator1 it1 (e1 ().begin1 ()); +@@ -159,7 +158,6 @@ namespace boost { namespace numeric { na + const vector_expression &e2, + V &v, packed_random_access_iterator_tag, column_major_tag) { + typedef const E1 expression1_type; +- typedef const E2 expression2_type; + typedef typename V::size_type size_type; + + typename expression1_type::const_iterator2 it2 (e1 ().begin2 ()); +@@ -188,9 +186,7 @@ namespace boost { namespace numeric { na + axpy_prod (const matrix_expression &e1, + const vector_expression &e2, + V &v, sparse_bidirectional_iterator_tag) { +- typedef const E1 expression1_type; + typedef const E2 expression2_type; +- typedef typename V::size_type size_type; + + typename expression2_type::const_iterator it (e2 ().begin ()); + typename expression2_type::const_iterator it_end (e2 ().end ()); +@@ -350,7 +346,6 @@ namespace boost { namespace numeric { na + axpy_prod (const vector_expression &e1, + const matrix_expression &e2, + V &v, packed_random_access_iterator_tag, column_major_tag) { +- typedef const E1 expression1_type; + typedef const E2 expression2_type; + typedef typename V::size_type size_type; + +@@ -380,7 +375,6 @@ namespace boost { namespace numeric { na + axpy_prod (const vector_expression &e1, + const matrix_expression &e2, + V &v, packed_random_access_iterator_tag, row_major_tag) { +- typedef const E1 expression1_type; + typedef const E2 expression2_type; + typedef typename V::size_type size_type; + +@@ -411,8 +405,6 @@ namespace boost { namespace numeric { na + const matrix_expression &e2, + V &v, sparse_bidirectional_iterator_tag) { + typedef const E1 expression1_type; +- typedef const E2 expression2_type; +- typedef typename V::size_type size_type; + + typename expression1_type::const_iterator it (e1 ().begin ()); + typename expression1_type::const_iterator it_end (e1 ().end ()); +@@ -501,9 +493,6 @@ namespace boost { namespace numeric { na + const matrix_expression &e2, + M &m, TRI, + dense_proxy_tag, row_major_tag) { +- typedef M matrix_type; +- typedef const E1 expression1_type; +- typedef const E2 expression2_type; + typedef typename M::size_type size_type; + typedef typename M::value_type value_type; + +@@ -530,11 +519,9 @@ namespace boost { namespace numeric { na + const matrix_expression &e2, + M &m, TRI, + sparse_proxy_tag, row_major_tag) { +- typedef M matrix_type; + typedef TRI triangular_restriction; + typedef const E1 expression1_type; + typedef const E2 expression2_type; +- typedef typename M::size_type size_type; + typedef typename M::value_type value_type; + + #if BOOST_UBLAS_TYPE_CHECK +@@ -580,9 +567,6 @@ namespace boost { namespace numeric { na + const matrix_expression &e2, + M &m, TRI, + dense_proxy_tag, column_major_tag) { +- typedef M matrix_type; +- typedef const E1 expression1_type; +- typedef const E2 expression2_type; + typedef typename M::size_type size_type; + typedef typename M::value_type value_type; + +@@ -609,11 +593,9 @@ namespace boost { namespace numeric { na + const matrix_expression &e2, + M &m, TRI, + sparse_proxy_tag, column_major_tag) { +- typedef M matrix_type; + typedef TRI triangular_restriction; + typedef const E1 expression1_type; + typedef const E2 expression2_type; +- typedef typename M::size_type size_type; + typedef typename M::value_type value_type; + + #if BOOST_UBLAS_TYPE_CHECK +@@ -738,9 +720,6 @@ namespace boost { namespace numeric { na + const matrix_expression &e2, + M &m, + dense_proxy_tag, row_major_tag) { +- typedef M matrix_type; +- typedef const E1 expression1_type; +- typedef const E2 expression2_type; + typedef typename M::size_type size_type; + typedef typename M::value_type value_type; + +@@ -769,9 +748,6 @@ namespace boost { namespace numeric { na + const matrix_expression &e2, + M &m, + dense_proxy_tag, column_major_tag) { +- typedef M matrix_type; +- typedef const E1 expression1_type; +- typedef const E2 expression2_type; + typedef typename M::size_type size_type; + typedef typename M::value_type value_type; + +diff -up boost_1_54_0/boost/numeric/ublas/triangular.hpp~ boost_1_54_0/boost/numeric/ublas/triangular.hpp +--- boost_1_54_0/boost/numeric/ublas/triangular.hpp~ 2012-09-18 14:07:07.000000000 -0700 ++++ boost_1_54_0/boost/numeric/ublas/triangular.hpp 2013-07-22 04:39:31.667230329 -0700 +@@ -1859,7 +1859,6 @@ namespace boost { namespace numeric { na + void inplace_solve (const matrix_expression &e1, vector_expression &e2, + lower_tag, column_major_tag, dense_proxy_tag) { + typedef typename E2::size_type size_type; +- typedef typename E2::difference_type difference_type; + typedef typename E2::value_type value_type; + + BOOST_UBLAS_CHECK (e1 ().size1 () == e1 ().size2 (), bad_size ()); +@@ -1914,7 +1913,6 @@ namespace boost { namespace numeric { na + void inplace_solve (const matrix_expression &e1, vector_expression &e2, + lower_tag, column_major_tag, unknown_storage_tag) { + typedef typename E2::size_type size_type; +- typedef typename E2::difference_type difference_type; + typedef typename E2::value_type value_type; + + BOOST_UBLAS_CHECK (e1 ().size1 () == e1 ().size2 (), bad_size ()); +@@ -1943,7 +1941,6 @@ namespace boost { namespace numeric { na + void inplace_solve (const matrix_expression &e1, vector_expression &e2, + lower_tag, row_major_tag, dense_proxy_tag) { + typedef typename E2::size_type size_type; +- typedef typename E2::difference_type difference_type; + typedef typename E2::value_type value_type; + + BOOST_UBLAS_CHECK (e1 ().size1 () == e1 ().size2 (), bad_size ()); +@@ -1969,7 +1966,6 @@ namespace boost { namespace numeric { na + void inplace_solve (const matrix_expression &e1, vector_expression &e2, + lower_tag, row_major_tag, packed_proxy_tag) { + typedef typename E2::size_type size_type; +- typedef typename E2::difference_type difference_type; + typedef typename E2::value_type value_type; + + BOOST_UBLAS_CHECK (e1 ().size1 () == e1 ().size2 (), bad_size ()); +@@ -1998,7 +1994,6 @@ namespace boost { namespace numeric { na + void inplace_solve (const matrix_expression &e1, vector_expression &e2, + lower_tag, row_major_tag, unknown_storage_tag) { + typedef typename E2::size_type size_type; +- typedef typename E2::difference_type difference_type; + typedef typename E2::value_type value_type; + + BOOST_UBLAS_CHECK (e1 ().size1 () == e1 ().size2 (), bad_size ()); +@@ -2374,7 +2369,6 @@ namespace boost { namespace numeric { na + void inplace_solve (const matrix_expression &e1, matrix_expression &e2, + lower_tag, dense_proxy_tag) { + typedef typename E2::size_type size_type; +- typedef typename E2::difference_type difference_type; + typedef typename E2::value_type value_type; + + BOOST_UBLAS_CHECK (e1 ().size1 () == e1 ().size2 (), bad_size ()); +@@ -2435,7 +2429,6 @@ namespace boost { namespace numeric { na + void inplace_solve (const matrix_expression &e1, matrix_expression &e2, + lower_tag, unknown_storage_tag) { + typedef typename E2::size_type size_type; +- typedef typename E2::difference_type difference_type; + typedef typename E2::value_type value_type; + + BOOST_UBLAS_CHECK (e1 ().size1 () == e1 ().size2 (), bad_size ()); diff --git a/boost-1.54.0-random-unused_typedef.patch b/boost-1.54.0-random-unused_typedef.patch new file mode 100644 index 0000000..fff4226 --- /dev/null +++ b/boost-1.54.0-random-unused_typedef.patch @@ -0,0 +1,24 @@ +Index: boost/random/generate_canonical.hpp +=================================================================== +--- boost/random/generate_canonical.hpp (revision 85073) ++++ boost/random/generate_canonical.hpp (working copy) +@@ -54,7 +54,6 @@ + using std::floor; + BOOST_ASSERT((g.min)() == 0); + BOOST_ASSERT((g.max)() == 1); +- typedef typename URNG::result_type base_result; + std::size_t digits = std::numeric_limits::digits; + std::size_t engine_bits = detail::generator_bits::value(); + std::size_t b = (std::min)(bits, digits); +Index: boost/random/uniform_real_distribution.hpp +=================================================================== +--- boost/random/uniform_real_distribution.hpp (revision 85073) ++++ boost/random/uniform_real_distribution.hpp (working copy) +@@ -36,7 +36,6 @@ + { + for(;;) { + typedef T result_type; +- typedef typename Engine::result_type base_result; + result_type numerator = static_cast(eng() - (eng.min)()); + result_type divisor = static_cast((eng.max)() - (eng.min)()); + BOOST_ASSERT(divisor > 0); diff --git a/boost-1.54.0-spirit-unused_typedef.patch b/boost-1.54.0-spirit-unused_typedef.patch new file mode 100644 index 0000000..830e418 --- /dev/null +++ b/boost-1.54.0-spirit-unused_typedef.patch @@ -0,0 +1,11 @@ +diff -up boost_1_54_0/boost/spirit/home/classic/core/primitives/primitives.hpp~ boost_1_54_0/boost/spirit/home/classic/core/primitives/primitives.hpp +--- boost_1_54_0/boost/spirit/home/classic/core/primitives/primitives.hpp~ 2008-06-22 08:05:38.000000000 -0700 ++++ boost_1_54_0/boost/spirit/home/classic/core/primitives/primitives.hpp 2013-07-22 06:35:38.417914083 -0700 +@@ -47,7 +47,6 @@ BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN + typename parser_result::type + parse(ScannerT const& scan) const + { +- typedef typename parser_result::type result_t; + typedef typename ScannerT::value_t value_t; + typedef typename ScannerT::iterator_t iterator_t; + diff --git a/boost-1.54.0-static_warning-unused_typedef.patch b/boost-1.54.0-static_warning-unused_typedef.patch new file mode 100644 index 0000000..9418a17 --- /dev/null +++ b/boost-1.54.0-static_warning-unused_typedef.patch @@ -0,0 +1,23 @@ +diff -up boost_1_54_0/boost/serialization/static_warning.hpp\~ boost_1_54_0/boost/serialization/static_warning.hpp +--- boost_1_54_0/boost/serialization/static_warning.hpp~ 2013-07-15 23:36:08.224983552 +0200 ++++ boost_1_54_0/boost/serialization/static_warning.hpp 2013-07-18 19:33:36.163463409 +0200 +@@ -72,6 +72,7 @@ + #include + #include + #include ++#include + + namespace boost { + namespace serialization { +@@ -101,7 +102,8 @@ struct BOOST_SERIALIZATION_SS {}; + #define BOOST_SERIALIZATION_BSW(B, L) \ + typedef boost::serialization::BOOST_SERIALIZATION_SS< \ + sizeof( boost::serialization::static_warning_test< B, L > ) \ +- > BOOST_JOIN(STATIC_WARNING_LINE, L); ++ > BOOST_JOIN(STATIC_WARNING_LINE, L) \ ++ BOOST_STATIC_ASSERT_UNUSED_ATTRIBUTE; + + #define BOOST_STATIC_WARNING(B) BOOST_SERIALIZATION_BSW(B, __LINE__) + + +Diff finished. Fri Jul 19 01:38:59 2013 diff --git a/boost-1.54.0-tuple-unused_typedef.patch b/boost-1.54.0-tuple-unused_typedef.patch new file mode 100644 index 0000000..51481c2 --- /dev/null +++ b/boost-1.54.0-tuple-unused_typedef.patch @@ -0,0 +1,12 @@ +Index: boost/tuple/detail/tuple_basic.hpp +=================================================================== +--- boost/tuple/detail/tuple_basic.hpp (revision 85075) ++++ boost/tuple/detail/tuple_basic.hpp (working copy) +@@ -225,7 +225,6 @@ + get(const cons& c BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) { + typedef BOOST_DEDUCED_TYPENAME detail::drop_front::BOOST_NESTED_TEMPLATE + apply > impl; +- typedef BOOST_DEDUCED_TYPENAME impl::type cons_element; + return impl::call(c).head; + } + diff --git a/boost.spec b/boost.spec index fdf456d..741b26f 100644 --- a/boost.spec +++ b/boost.spec @@ -115,6 +115,48 @@ Patch15: boost-1.50.0-pool.patch # https://bugzilla.redhat.com/show_bug.cgi?id=909888 Patch16: boost-1.53.0-context.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=984346 +# https://svn.boost.org/trac/boost/ticket/7242 +Patch17: boost-1.53.0-static_assert-unused_typedef.patch + +# https://svn.boost.org/trac/boost/ticket/8826 +Patch22: boost-1.54.0-context-execstack.patch + +# https://svn.boost.org/trac/boost/ticket/8844 +Patch23: boost-1.54.0-bind-static_assert.patch + +# https://svn.boost.org/trac/boost/ticket/8847 +Patch24: boost-1.54.0-concept-unused_typedef.patch + +# https://svn.boost.org/trac/boost/ticket/5637 +Patch25: boost-1.54.0-mpl-print.patch + +# https://svn.boost.org/trac/boost/ticket/8859 +Patch26: boost-1.54.0-static_warning-unused_typedef.patch + +# https://svn.boost.org/trac/boost/ticket/8855 +Patch27: boost-1.54.0-math-unused_typedef.patch +Patch28: boost-1.54.0-math-unused_typedef-2.patch +Patch29: boost-1.53.0-fpclassify-unused_typedef.patch + +# https://svn.boost.org/trac/boost/ticket/8853 +Patch30: boost-1.54.0-tuple-unused_typedef.patch + +# https://svn.boost.org/trac/boost/ticket/8854 +Patch31: boost-1.54.0-random-unused_typedef.patch + +# https://svn.boost.org/trac/boost/ticket/8856 +Patch32: boost-1.54.0-date_time-unused_typedef.patch + +# https://svn.boost.org/trac/boost/ticket/8870 +Patch33: boost-1.54.0-spirit-unused_typedef.patch + +# https://svn.boost.org/trac/boost/ticket/8871 +Patch34: boost-1.54.0-numeric-unused_typedef.patch + +# https://svn.boost.org/trac/boost/ticket/8872 +Patch35: boost-1.54.0-multiprecision-unused_typedef.patch + %bcond_with tests %bcond_with docs_generated @@ -523,6 +565,21 @@ a number of significant features and is now developed independently %patch10 -p1 %patch15 -p0 %patch16 -p1 +%patch17 -p1 +%patch22 -p1 +%patch23 -p1 +%patch24 -p1 +%patch25 -p0 +%patch26 -p1 +%patch27 -p1 +%patch28 -p0 +%patch29 -p1 +%patch30 -p0 +%patch31 -p0 +%patch32 -p0 +%patch33 -p1 +%patch34 -p1 +%patch35 -p1 # At least python2_version needs to be a macro so that it's visible in # %%install as well. @@ -1097,6 +1154,23 @@ rm -rf $RPM_BUILD_ROOT * Fri Jul 19 2013 Petr Machata - 1.53.0-8 - Install supporting files (images etc.) for documentation (courtesy Marcel Metz, bug 985593) +- Add several patches for silencing unused local typedef warnings + (boost-1.53.0-static_assert-unused_typedef.patch, + boost-1.54.0-bind-static_assert.patch, + boost-1.54.0-concept-unused_typedef.patch, + boost-1.54.0-static_warning-unused_typedef.patch, + boost-1.54.0-math-unused_typedef.patch, + boost-1.54.0-math-unused_typedef-2.patch, + boost-1.53.0-fpclassify-unused_typedef.patch, + boost-1.54.0-tuple-unused_typedef.patch, + boost-1.54.0-random-unused_typedef.patch, + boost-1.54.0-date_time-unused_typedef.patch, + boost-1.54.0-spirit-unused_typedef.patch, + boost-1.54.0-numeric-unused_typedef.patch, + boost-1.54.0-multiprecision-unused_typedef.patch) +- Add a patch to turn off execstack in Boost.Context + (boost-1.54.0-context-execstack.patch) +- Fix boost::mpl::print on GCC (boost-1.54.0-mpl-print.patch) * Thu Jun 27 2013 Petr Machata - 1.53.0-7 - Add symlinks for /usr/lib/libboost_{thread,locale}.so -> *-mt.so