[boost/f19] Add many patches for unused typedefs, and an execstack patch
Petr Machata
pmachata at fedoraproject.org
Mon Jul 22 15:48:34 UTC 2013
commit 0494a65cc90cfbf35de09bbea43c9bac4274b367
Author: Petr Machata <pmachata at redhat.com>
Date: Mon Jul 22 17:47:20 2013 +0200
Add many patches for unused typedefs, and an execstack patch
boost-1.53.0-static_assert-unused_typedef.patch | 30 +++
boost-1.54.0-bind-static_assert.patch | 21 ++
boost-1.54.0-concept-unused_typedef.patch | 21 ++
boost-1.54.0-date_time-unused_typedef.patch | 100 +++++++++
boost-1.54.0-math-unused_typedef-2.patch | 20 ++
boost-1.54.0-math-unused_typedef.patch | 15 ++
boost-1.54.0-multiprecision-unused_typedef.patch | 148 +++++++++++++
boost-1.54.0-numeric-unused_typedef.patch | 250 ++++++++++++++++++++++
boost-1.54.0-random-unused_typedef.patch | 24 ++
boost-1.54.0-spirit-unused_typedef.patch | 11 +
boost-1.54.0-static_warning-unused_typedef.patch | 23 ++
boost-1.54.0-tuple-unused_typedef.patch | 12 +
boost.spec | 74 +++++++
13 files changed, 749 insertions(+), 0 deletions(-)
---
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<int x> 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 <boost/config.hpp>
+ #include <boost/is_placeholder.hpp>
++#include <boost/static_assert.hpp>
+
+ namespace boost
+ {
+@@ -33,8 +34,7 @@ template< int I > struct arg
+
+ template< class T > arg( T const & /* t */ )
+ {
+- // static assert I == is_placeholder<T>::value
+- typedef char T_must_be_placeholder[ I == is_placeholder<T>::value? 1: -1 ];
++ BOOST_STATIC_ASSERT(I == is_placeholder<T>::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 <boost/preprocessor/cat.hpp>
+ # include <boost/concept/detail/backward_compatibility.hpp>
++# include <boost/static_assert.hpp>
+
+ # ifdef BOOST_OLD_CONCEPT_SUPPORT
+ # include <boost/concept/detail/has_constraints.hpp>
+@@ -68,7 +69,8 @@ struct requirement_<void(*)(Model)>
+ # define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \
+ typedef ::boost::concepts::detail::instantiate< \
+ &::boost::concepts::requirement_<ModelFnPtr>::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<time_type, CharT> custom_time_facet;
+- typedef std::time_put<CharT> std_time_facet;
+ std::ostreambuf_iterator<CharT> oitr(os);
+
+ if(std::has_facet<custom_time_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<local_date_time, CharT> custom_facet;
+- typedef std::time_put<CharT> std_time_facet;
+ std::ostreambuf_iterator<CharT> oitr(os);
+ if (std::has_facet<custom_facet>(os.getloc())) {
+ std::use_facet<custom_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<ptime, CharT> custom_ptime_facet;
+- typedef std::time_put<CharT> std_ptime_facet;
+ std::ostreambuf_iterator<CharT> oitr(os);
+ if (std::has_facet<custom_ptime_facet>(os.getloc()))
+ std::use_facet<custom_ptime_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<ptime, CharT> custom_ptime_facet;
+- typedef std::time_put<CharT> std_time_facet;
+ std::ostreambuf_iterator<CharT> oitr(os);
+ if (std::has_facet<custom_ptime_facet>(os.getloc())) {
+ std::use_facet<custom_ptime_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<ptime, CharT> custom_ptime_facet;
+- typedef std::time_put<CharT> std_ptime_facet;
+ std::ostreambuf_iterator<CharT> oitr(os);
+ if (std::has_facet<custom_ptime_facet>(os.getloc()))
+ std::use_facet<custom_ptime_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<OutputT> convert_string_type(const std::basic_string<InputT>& inp_str)
+ {
+- typedef std::basic_string<InputT> input_type;
+ typedef std::basic_string<OutputT> 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<charT> string_type;
+ typedef std::vector<string_type> collection_type;
+- typedef std::basic_ostringstream<charT> ostream_type;
+ typedef std::ostreambuf_iterator<charT> ostream_iter_type;
+ typedef std::basic_ostringstream<charT> stringstream_type;
+ typedef std::time_put<charT> time_put_facet_type;
+@@ -86,7 +85,6 @@
+ {
+ typedef std::basic_string<charT> string_type;
+ typedef std::vector<string_type> collection_type;
+- typedef std::basic_ostringstream<charT> ostream_type;
+ typedef std::ostreambuf_iterator<charT> ostream_iter_type;
+ typedef std::basic_ostringstream<charT> stringstream_type;
+ typedef std::time_put<charT> 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<RT1, RT2, RT3>::type result_type;
+ typedef typename policies::evaluation<result_type, Policy>::type value_type;
+- typedef typename lanczos::lanczos<value_type, Policy>::type evaluation_type;
+ typedef typename policies::normalise<
+ Policy,
+ policies::promote_float<false>,
+@@ -1349,7 +1348,6 @@
+ BOOST_FPU_EXCEPTION_GUARD
+ typedef typename tools::promote_args<RT1, RT2, RT3>::type result_type;
+ typedef typename policies::evaluation<result_type, Policy>::type value_type;
+- typedef typename lanczos::lanczos<value_type, Policy>::type evaluation_type;
+ typedef typename policies::normalise<
+ Policy,
+ policies::promote_float<false>,
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<RealType, no_overthrow_policy> gamma_nooverflow;
++ gamma_nooverflow g(static_cast<RealType>(0.5), static_cast<RealType>(1.));
+
+- gamma_distribution<RealType, no_overthrow_policy> g(static_cast<RealType>(0.5), static_cast<RealType>(1.));
+-
+- // gamma_nooverflow g(static_cast<RealType>(0.5), static_cast<RealType>(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 <class T>
+ void calc_e(T& result, unsigned digits)
+ {
+ typedef typename mpl::front<typename T::unsigned_types>::type ui_type;
+- typedef typename mpl::front<typename T::float_types>::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<int, T>::type si_type;
+- typedef typename boost::multiprecision::detail::canonical<unsigned, T>::type ui_type;
+- typedef typename T::exponent_type exp_type;
+- typedef typename boost::multiprecision::detail::canonical<exp_type, T>::type canonical_exp_type;
+- typedef typename mpl::front<typename T::float_types>::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<int, T>::type si_type;
+ typedef typename T::exponent_type exp_type;
+ typedef typename boost::multiprecision::detail::canonical<exp_type, T>::type canonical_exp_type;
+- typedef typename boost::multiprecision::detail::canonical<float, T>::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<int, T>::type si_type;
+ typedef typename boost::multiprecision::detail::canonical<unsigned, T>::type ui_type;
+ typedef typename T::exponent_type exp_type;
+ typedef typename boost::multiprecision::detail::canonical<exp_type, T>::type canonical_exp_type;
+@@ -409,9 +403,6 @@ inline void eval_pow(T& result, const T&
+ {
+ BOOST_STATIC_ASSERT_MSG(number_category<T>::value == number_kind_floating_point, "The pow function is only valid for floating point types.");
+ typedef typename boost::multiprecision::detail::canonical<int, T>::type si_type;
+- typedef typename boost::multiprecision::detail::canonical<unsigned, T>::type ui_type;
+- typedef typename T::exponent_type exp_type;
+- typedef typename boost::multiprecision::detail::canonical<exp_type, T>::type canonical_exp_type;
+ typedef typename mpl::front<typename T::float_types>::type fp_type;
+
+ if((&result == &x) || (&result == &a))
+@@ -595,10 +586,7 @@ namespace detail{
+ template <class T>
+ void sinhcosh(const T& x, T* p_sinh, T* p_cosh)
+ {
+- typedef typename boost::multiprecision::detail::canonical<int, T>::type si_type;
+ typedef typename boost::multiprecision::detail::canonical<unsigned, T>::type ui_type;
+- typedef typename T::exponent_type exp_type;
+- typedef typename boost::multiprecision::detail::canonical<exp_type, T>::type canonical_exp_type;
+ typedef typename mpl::front<typename T::float_types>::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<boost::int32_t, T>::type si_type;
+ typedef typename boost::multiprecision::detail::canonical<boost::uint32_t, T>::type ui_type;
+- typedef typename T::exponent_type exp_type;
+- typedef typename boost::multiprecision::detail::canonical<exp_type, T>::type canonical_exp_type;
+- typedef typename mpl::front<typename T::float_types>::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<boost::int32_t, T>::type si_type;
+ typedef typename boost::multiprecision::detail::canonical<boost::uint32_t, T>::type ui_type;
+- typedef typename T::exponent_type exp_type;
+- typedef typename boost::multiprecision::detail::canonical<exp_type, T>::type canonical_exp_type;
+ typedef typename mpl::front<typename T::float_types>::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<boost::int32_t, T>::type si_type;
+ typedef typename boost::multiprecision::detail::canonical<boost::uint32_t, T>::type ui_type;
+- typedef typename T::exponent_type exp_type;
+- typedef typename boost::multiprecision::detail::canonical<exp_type, T>::type canonical_exp_type;
+ typedef typename mpl::front<typename T::float_types>::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<boost::int32_t, T>::type si_type;
+ typedef typename boost::multiprecision::detail::canonical<boost::uint32_t, T>::type ui_type;
+- typedef typename T::exponent_type exp_type;
+- typedef typename boost::multiprecision::detail::canonical<exp_type, T>::type canonical_exp_type;
+- typedef typename mpl::front<typename T::float_types>::type fp_type;
+
+ T x_pow_n_div_n_fact(x);
+ T pochham_a (a);
+@@ -443,10 +432,7 @@ template <class T>
+ void eval_asin(T& result, const T& x)
+ {
+ BOOST_STATIC_ASSERT_MSG(number_category<T>::value == number_kind_floating_point, "The asin function is only valid for floating point types.");
+- typedef typename boost::multiprecision::detail::canonical<boost::int32_t, T>::type si_type;
+ typedef typename boost::multiprecision::detail::canonical<boost::uint32_t, T>::type ui_type;
+- typedef typename T::exponent_type exp_type;
+- typedef typename boost::multiprecision::detail::canonical<exp_type, T>::type canonical_exp_type;
+ typedef typename mpl::front<typename T::float_types>::type fp_type;
+
+ if(&result == &x)
+@@ -597,8 +583,6 @@ void eval_atan(T& result, const T& x)
+ BOOST_STATIC_ASSERT_MSG(number_category<T>::value == number_kind_floating_point, "The atan function is only valid for floating point types.");
+ typedef typename boost::multiprecision::detail::canonical<boost::int32_t, T>::type si_type;
+ typedef typename boost::multiprecision::detail::canonical<boost::uint32_t, T>::type ui_type;
+- typedef typename T::exponent_type exp_type;
+- typedef typename boost::multiprecision::detail::canonical<exp_type, T>::type canonical_exp_type;
+ typedef typename mpl::front<typename T::float_types>::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<boost::int32_t, T>::type si_type;
+ typedef typename boost::multiprecision::detail::canonical<boost::uint32_t, T>::type ui_type;
+- typedef typename T::exponent_type exp_type;
+- typedef typename boost::multiprecision::detail::canonical<exp_type, T>::type canonical_exp_type;
+- typedef typename mpl::front<typename T::float_types>::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 <class To, class From>
+ void generic_interconvert(To& to, const From& from, const mpl::int_<number_kind_rational>& /*to_type*/, const mpl::int_<number_kind_rational>& /*from_type*/)
+ {
+- typedef typename component_type<number<From> >::type from_component_type;
+ typedef typename component_type<number<To> >::type to_component_type;
+
+ number<From> 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> &e, packed_proxy_tag, row_major_tag) {
+ typedef F<typename M::iterator2::reference, typename E::reference> 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> &e, packed_proxy_tag, column_major_tag) {
+ typedef F<typename M::iterator1::reference, typename E::reference> 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<value_type> cv (v.size ());
+ indexing_vector_assign<scalar_assign> (cv, v);
+@@ -513,7 +512,6 @@ namespace detail {
+ typedef F<typename V::iterator::reference, typename E::iterator::reference> 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> &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> &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> &e1,
+ const vector_expression<E2> &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> &e1,
+ const matrix_expression<E2> &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> &e1,
+ const matrix_expression<E2> &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> &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> &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> &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> &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> &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> &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> &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> &e1, vector_expression<E2> &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> &e1, vector_expression<E2> &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> &e1, vector_expression<E2> &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> &e1, vector_expression<E2> &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> &e1, vector_expression<E2> &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> &e1, matrix_expression<E2> &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> &e1, matrix_expression<E2> &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<RealType>::digits;
+ std::size_t engine_bits = detail::generator_bits<URNG>::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<T>(eng() - (eng.min)());
+ result_type divisor = static_cast<T>((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<self_t, ScannerT>::type
+ parse(ScannerT const& scan) const
+ {
+- typedef typename parser_result<self_t, ScannerT>::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 <boost/mpl/bool.hpp>
+ #include <boost/mpl/print.hpp>
+ #include <boost/mpl/eval_if.hpp>
++#include <boost/static_assert.hpp>
+
+ 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<HT, TT>& c BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) {
+ typedef BOOST_DEDUCED_TYPENAME detail::drop_front<N>::BOOST_NESTED_TEMPLATE
+ apply<cons<HT, TT> > 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 <pmachata at redhat.com> - 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 <pmachata at redhat.com> - 1.53.0-7
- Add symlinks for /usr/lib/libboost_{thread,locale}.so -> *-mt.so
More information about the scm-commits
mailing list