From e50fa4d644f42df5ed93332028ff8dfd0f3e716d Mon Sep 17 00:00:00 2001 From: Petr Machata Date: Thu, 27 Jun 2013 23:48:42 +0200 Subject: [PATCH 1/6] Add symlinks for /usr/lib/libboost_{thread,locale,atomic}.so -> *-mt.so --- boost.spec | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/boost.spec b/boost.spec index 0e72a17..f27378c 100644 --- a/boost.spec +++ b/boost.spec @@ -34,7 +34,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.53.0 %define version_enc 1_53_0 -Release: 6%{?dist} +Release: 7%{?dist} License: Boost and MIT and Python %define toplev_dirname %{name}_%{version_enc} @@ -678,6 +678,15 @@ echo ============================= install serial ================== rm -f $RPM_BUILD_ROOT%{_libdir}/libboost_thread-mt.so install -p -m 644 $(basename %{SOURCE2}) $RPM_BUILD_ROOT%{_libdir}/ +# Add symlinks libboost_{thread,locale,atomic}.so -> *-mt.so +# https://bugzilla.redhat.com/show_bug.cgi?id=971956 +ln -s libboost_thread-mt.so $RPM_BUILD_ROOT%{_libdir}/libboost_thread.so +ln -s libboost_locale-mt.so $RPM_BUILD_ROOT%{_libdir}/libboost_locale.so +ln -s libboost_atomic-mt.so $RPM_BUILD_ROOT%{_libdir}/libboost_atomic.so +# Check that we didn't forget about anything. +find $RPM_BUILD_ROOT%{_libdir} -maxdepth 1 -name libboost_\*-mt.so \ + | while read a; do test -e ${a/-mt/} || exit 1; done + echo ============================= install Boost.Build ================== (cd tools/build/v2 ./b2 --prefix=$RPM_BUILD_ROOT%{_prefix} install @@ -979,7 +988,7 @@ rm -rf $RPM_BUILD_ROOT %defattr(-, root, root, -) %doc LICENSE_1_0.txt %{_includedir}/%{name} -%{_libdir}/libboost_atomic-mt.so +%{_libdir}/libboost_atomic*.so %{_libdir}/libboost_chrono*.so %if %{with context} %{_libdir}/libboost_context*.so @@ -1002,7 +1011,7 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/libboost_wserialization*.so %{_libdir}/libboost_signals*.so %{_libdir}/libboost_system*.so -%{_libdir}/libboost_thread-mt.so +%{_libdir}/libboost_thread*.so %{_libdir}/libboost_timer*.so %{_libdir}/libboost_wave*.so @@ -1081,6 +1090,9 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man1/bjam.1* %changelog +* Thu Jun 27 2013 Petr Machata - 1.53.0-7 +- Add symlinks for /usr/lib/libboost_{thread,locale}.so -> *-mt.so + * Wed Mar 6 2013 Petr Machata - 1.53.0-6 - libboost_context.so must be guarded by conditional in the expanded filelist at boost-devel. From c5eabd4220825d8fe16043c01bf6aca5a504235e Mon Sep 17 00:00:00 2001 From: Petr Machata Date: Sat, 20 Jul 2013 01:11:30 +0200 Subject: [PATCH 2/6] Install images etc. for documentation Resolves: #985593 --- boost.spec | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/boost.spec b/boost.spec index f27378c..fdf456d 100644 --- a/boost.spec +++ b/boost.spec @@ -34,7 +34,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.53.0 %define version_enc 1_53_0 -Release: 7%{?dist} +Release: 8%{?dist} License: Boost and MIT and Python %define toplev_dirname %{name}_%{version_enc} @@ -708,17 +708,21 @@ echo ============================= install documentation ================== # Prepare the place to temporary store the generated documentation rm -rf %{boost_docdir} && %{__mkdir_p} %{boost_docdir}/html DOCPATH=%{boost_docdir} -find libs doc more -type f \( -name \*.htm -o -name \*.html \) \ +DOCREGEX='.*\.\(html?\|css\|png\|gif\)' + +find libs doc more -type f -regex $DOCREGEX \ | sed -n '/\//{s,/[^/]*$,,;p}' \ | sort -u > tmp-doc-directories + sed "s:^:$DOCPATH/:" tmp-doc-directories \ | xargs --no-run-if-empty %{__install} -d + cat tmp-doc-directories | while read tobeinstalleddocdir; do - find $tobeinstalleddocdir -mindepth 1 -maxdepth 1 -name \*.htm\* \ + find $tobeinstalleddocdir -mindepth 1 -maxdepth 1 -regex $DOCREGEX \ | xargs %{__install} -p -m 644 -t $DOCPATH/$tobeinstalleddocdir done rm -f tmp-doc-directories -%{__install} -p -m 644 -t $DOCPATH LICENSE_1_0.txt index.htm index.html +%{__install} -p -m 644 -t $DOCPATH LICENSE_1_0.txt index.htm index.html boost.png rst.css boost.css echo ============================= install examples ================== # Fix a few non-standard issues (DOS and/or non-UTF8 files) @@ -1090,6 +1094,10 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man1/bjam.1* %changelog +* Fri Jul 19 2013 Petr Machata - 1.53.0-8 +- Install supporting files (images etc.) for documentation + (courtesy Marcel Metz, bug 985593) + * Thu Jun 27 2013 Petr Machata - 1.53.0-7 - Add symlinks for /usr/lib/libboost_{thread,locale}.so -> *-mt.so From 0494a65cc90cfbf35de09bbea43c9bac4274b367 Mon Sep 17 00:00:00 2001 From: Petr Machata Date: Mon, 22 Jul 2013 17:47:20 +0200 Subject: [PATCH 3/6] Add many patches for unused typedefs, and an execstack patch --- ...-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 ++ ...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 + ...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(+) create mode 100644 boost-1.53.0-static_assert-unused_typedef.patch create mode 100644 boost-1.54.0-bind-static_assert.patch create mode 100644 boost-1.54.0-concept-unused_typedef.patch create mode 100644 boost-1.54.0-date_time-unused_typedef.patch create mode 100644 boost-1.54.0-math-unused_typedef-2.patch create mode 100644 boost-1.54.0-math-unused_typedef.patch create mode 100644 boost-1.54.0-multiprecision-unused_typedef.patch create mode 100644 boost-1.54.0-numeric-unused_typedef.patch create mode 100644 boost-1.54.0-random-unused_typedef.patch create mode 100644 boost-1.54.0-spirit-unused_typedef.patch create mode 100644 boost-1.54.0-static_warning-unused_typedef.patch create mode 100644 boost-1.54.0-tuple-unused_typedef.patch 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 From 255051da37ab2f733c156434c2b2357dfbbffc76 Mon Sep 17 00:00:00 2001 From: Petr Machata Date: Tue, 23 Jul 2013 02:09:25 +0200 Subject: [PATCH 4/6] Flush more work in progress - This adds some forgotten patches from the last time around (context-execstack, mpl-print) - And adds another bunch of unused local typedef patches --- boost-1.53.0-fpclassify-unused_typedef.patch | 80 +++++++++++ boost-1.53.0-graph-unused_typedef.patch | 130 ++++++++++++++++++ ...t-1.53.0-lexical_cast-unused_typedef.patch | 13 ++ boost-1.53.0-math-unused_typedef-3.patch | 46 +++++++ boost-1.53.0-regex-unused_typedef.patch | 65 +++++++++ boost-1.54.0-algorithm-unused_typedef.patch | 43 ++++++ boost-1.54.0-context-execstack.patch | 109 +++++++++++++++ boost-1.54.0-date_time-unused_typedef-2.patch | 13 ++ boost-1.54.0-locale-unused_typedef.patch | 11 ++ boost-1.54.0-mpi-unused_typedef.patch | 11 ++ boost-1.54.0-mpl-print.patch | 37 +++++ ...-1.54.0-property_tree-unused_typedef.patch | 19 +++ boost-1.54.0-spirit-unused_typedef-2.patch | 22 +++ boost-1.54.0-unordered-unused_typedef.patch | 14 ++ boost-1.54.0-xpressive-unused_typedef.patch | 11 ++ boost.spec | 72 ++++++++-- 16 files changed, 686 insertions(+), 10 deletions(-) create mode 100644 boost-1.53.0-fpclassify-unused_typedef.patch create mode 100644 boost-1.53.0-graph-unused_typedef.patch create mode 100644 boost-1.53.0-lexical_cast-unused_typedef.patch create mode 100644 boost-1.53.0-math-unused_typedef-3.patch create mode 100644 boost-1.53.0-regex-unused_typedef.patch create mode 100644 boost-1.54.0-algorithm-unused_typedef.patch create mode 100644 boost-1.54.0-context-execstack.patch create mode 100644 boost-1.54.0-date_time-unused_typedef-2.patch create mode 100644 boost-1.54.0-locale-unused_typedef.patch create mode 100644 boost-1.54.0-mpi-unused_typedef.patch create mode 100644 boost-1.54.0-mpl-print.patch create mode 100644 boost-1.54.0-property_tree-unused_typedef.patch create mode 100644 boost-1.54.0-spirit-unused_typedef-2.patch create mode 100644 boost-1.54.0-unordered-unused_typedef.patch create mode 100644 boost-1.54.0-xpressive-unused_typedef.patch diff --git a/boost-1.53.0-fpclassify-unused_typedef.patch b/boost-1.53.0-fpclassify-unused_typedef.patch new file mode 100644 index 0000000..dddd3a8 --- /dev/null +++ b/boost-1.53.0-fpclassify-unused_typedef.patch @@ -0,0 +1,80 @@ +diff -up boost_1_53_0/boost/math/special_functions/sign.hpp\~ boost_1_53_0/boost/math/special_functions/sign.hpp +--- boost_1_53_0/boost/math/special_functions/sign.hpp~ 2011-05-17 14:19:17.000000000 +0200 ++++ boost_1_53_0/boost/math/special_functions/sign.hpp 2013-07-22 23:24:39.751342557 +0200 +@@ -110,7 +110,6 @@ template int (signbit)(T x) + { + typedef typename detail::fp_traits::type traits; + typedef typename traits::method method; +- typedef typename boost::is_floating_point::type fp_tag; + return detail::signbit_impl(x, method()); + } + +@@ -124,7 +123,6 @@ template T (changesign)(const T + { //!< \brief return unchanged binary pattern of x, except for change of sign bit. + typedef typename detail::fp_traits::sign_change_type traits; + typedef typename traits::method method; +- typedef typename boost::is_floating_point::type fp_tag; + + return detail::changesign_impl(x, method()); + } +diff -up boost_1_53_0/boost/math/special_functions/fpclassify.hpp~ boost_1_53_0/boost/math/special_functions/fpclassify.hpp +--- boost_1_53_0/boost/math/special_functions/fpclassify.hpp~ 2012-12-12 19:17:22.000000000 +0100 ++++ boost_1_53_0/boost/math/special_functions/fpclassify.hpp 2013-07-22 12:07:59.478713488 +0200 +@@ -327,7 +327,6 @@ inline bool (isfinite)(T x) + { //!< \brief return true if floating-point type t is finite. + typedef typename detail::fp_traits::type traits; + typedef typename traits::method method; +- typedef typename boost::is_floating_point::type fp_tag; + typedef typename tools::promote_args::type value_type; + return detail::isfinite_impl(static_cast(x), method()); + } +@@ -338,7 +338,6 @@ inline bool (isfinite)(long double x) + { //!< \brief return true if floating-point type t is finite. + typedef detail::fp_traits::type traits; + typedef traits::method method; +- typedef boost::is_floating_point::type fp_tag; + typedef long double value_type; + return detail::isfinite_impl(static_cast(x), method()); + } +@@ -398,7 +397,6 @@ inline bool (isnormal)(T x) + { + typedef typename detail::fp_traits::type traits; + typedef typename traits::method method; +- typedef typename boost::is_floating_point::type fp_tag; + typedef typename tools::promote_args::type value_type; + return detail::isnormal_impl(static_cast(x), method()); + } +@@ -409,7 +408,6 @@ inline bool (isnormal)(long double x) + { + typedef detail::fp_traits::type traits; + typedef traits::method method; +- typedef boost::is_floating_point::type fp_tag; + typedef long double value_type; + return detail::isnormal_impl(static_cast(x), method()); + } +@@ -487,7 +485,6 @@ inline bool (isinf)(T x) + { + typedef typename detail::fp_traits::type traits; + typedef typename traits::method method; +- typedef typename boost::is_floating_point::type fp_tag; + typedef typename tools::promote_args::type value_type; + return detail::isinf_impl(static_cast(x), method()); + } +@@ -498,7 +496,6 @@ inline bool (isinf)(long double x) + { + typedef detail::fp_traits::type traits; + typedef traits::method method; +- typedef boost::is_floating_point::type fp_tag; + typedef long double value_type; + return detail::isinf_impl(static_cast(x), method()); + } +@@ -570,7 +567,6 @@ inline bool (isnan)(T x) + { //!< \brief return true if floating-point type t is NaN (Not A Number). + typedef typename detail::fp_traits::type traits; + typedef typename traits::method method; +- typedef typename boost::is_floating_point::type fp_tag; + return detail::isnan_impl(x, method()); + } + + +Diff finished. Mon Jul 22 12:09:24 2013 diff --git a/boost-1.53.0-graph-unused_typedef.patch b/boost-1.53.0-graph-unused_typedef.patch new file mode 100644 index 0000000..697714f --- /dev/null +++ b/boost-1.53.0-graph-unused_typedef.patch @@ -0,0 +1,130 @@ +diff -urp boost_1_54_0-orig/boost/graph/breadth_first_search.hpp boost_1_54_0/boost/graph/breadth_first_search.hpp +--- boost_1_54_0-orig/boost/graph/breadth_first_search.hpp 2013-07-23 00:47:43.418886551 +0200 ++++ boost_1_54_0/boost/graph/breadth_first_search.hpp 2013-07-23 00:50:40.339958756 +0200 +@@ -64,7 +64,6 @@ namespace boost { + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + typedef graph_traits GTraits; + typedef typename GTraits::vertex_descriptor Vertex; +- typedef typename GTraits::edge_descriptor Edge; + BOOST_CONCEPT_ASSERT(( BFSVisitorConcept )); + BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); + typedef typename property_traits::value_type ColorValue; +diff -urp boost_1_53_0-orig/boost/graph/compressed_sparse_row_graph.hpp boost_1_53_0/boost/graph/compressed_sparse_row_graph.hpp +--- boost_1_53_0-orig/boost/graph/compressed_sparse_row_graph.hpp 2013-07-23 01:32:19.273266030 +0200 ++++ boost_1_53_0/boost/graph/compressed_sparse_row_graph.hpp 2013-07-23 01:34:15.202970721 +0200 +@@ -642,8 +642,6 @@ class compressed_sparse_row_graph::vertex_descriptor vertex_t; +- typedef typename boost::graph_traits::vertices_size_type vertex_num; +- typedef typename boost::graph_traits::edges_size_type edge_num; + typedef std::vector > edge_vector_t; + edge_vector_t new_edges(first, last); + if (new_edges.empty()) return; +@@ -666,8 +664,6 @@ class compressed_sparse_row_graph::vertex_descriptor vertex_t; +- typedef typename boost::graph_traits::vertices_size_type vertex_num; +- typedef typename boost::graph_traits::edges_size_type edge_num; + typedef std::pair vertex_pair; + typedef std::vector< + boost::tuple + in_edges(Vertex v, const BOOST_BIDIR_CSR_GRAPH_TYPE& g) + { +- typedef typename BOOST_BIDIR_CSR_GRAPH_TYPE::edge_descriptor ed; + typedef typename BOOST_BIDIR_CSR_GRAPH_TYPE::in_edge_iterator it; + EdgeIndex v_row_start = g.m_backward.m_rowstart[v]; + EdgeIndex next_row_start = g.m_backward.m_rowstart[v + 1]; +@@ -1368,7 +1363,6 @@ put(Tag tag, + typename property_map::key_type k, + typename lookup_one_property::plist_type, Tag>::type val) { + typedef typename property_map::all_tag all_tag; +- typedef typename property_map::type outer_pm; + lookup_one_property::plist_type, Tag>::lookup(get(all_tag(), g, k), tag) = val; + } + +diff -urp boost_1_53_0-orig/boost/graph/detail/adjacency_list.hpp boost_1_53_0/boost/graph/detail/adjacency_list.hpp +--- boost_1_53_0-orig/boost/graph/detail/adjacency_list.hpp 2013-07-23 01:32:19.390266741 +0200 ++++ boost_1_53_0/boost/graph/detail/adjacency_list.hpp 2013-07-23 01:34:15.275971164 +0200 +@@ -634,7 +634,6 @@ namespace boost { + directed_graph_helper& g_) + { + typedef typename Config::graph_type graph_type; +- typedef typename Config::edge_parallel_category Cat; + graph_type& g = static_cast(g_); + g.out_edge_list(u).clear(); + // clear() should be a req of Sequence and AssociativeContainer, +@@ -781,7 +780,6 @@ namespace boost { + typedef typename Graph::global_edgelist_selector EdgeListS; + BOOST_STATIC_ASSERT((!is_same::value)); + +- typedef typename EdgeList::value_type StoredEdge; + typename EdgeList::iterator i = el.begin(), end = el.end(); + for (; i != end; ++i) { + if ((*i).get_target() == v) { +@@ -986,7 +984,6 @@ namespace boost { + BOOST_STATIC_ASSERT((!is_same::value)); + + typedef typename Config::graph_type graph_type; +- typedef typename Config::edge_parallel_category Cat; + graph_type& g = static_cast(g_); + while (true) { + typename Config::out_edge_iterator ei, ei_end; +@@ -1588,7 +1585,6 @@ namespace boost { + typedef typename Config::graph_type Graph; + typedef typename Config::StoredEdge StoredEdge; + const Graph& cg = static_cast(g_); +- typedef typename Config::out_edge_iterator out_edge_iterator; + const typename Config::OutEdgeList& el = cg.out_edge_list(u); + typename Config::OutEdgeList::const_iterator it = graph_detail:: + find(el, StoredEdge(v)); +diff -urp boost_1_53_0-orig/boost/graph/detail/compressed_sparse_row_struct.hpp boost_1_53_0/boost/graph/detail/compressed_sparse_row_struct.hpp +--- boost_1_53_0-orig/boost/graph/detail/compressed_sparse_row_struct.hpp 2013-07-23 01:32:19.395266772 +0200 ++++ boost_1_53_0/boost/graph/detail/compressed_sparse_row_struct.hpp 2013-07-23 01:34:15.278971182 +0200 +@@ -218,8 +218,6 @@ namespace detail { + // the user has supplied the number of edges. + edges_size_type numedges = numedges_or_zero; + if (numedges == 0) { +- typedef typename std::iterator_traits::iterator_category +- category; + numedges = boost::graph::detail::reserve_count_for_single_pass(edge_begin, edge_end); + } + m_column.clear(); +@@ -313,7 +311,6 @@ namespace detail { + inherited_edge_properties::resize(numedges); + EdgeIndex current_edge = 0; + typedef typename boost::graph_traits::vertex_descriptor g_vertex; +- typedef typename boost::graph_traits::edge_descriptor g_edge; + typedef typename boost::graph_traits::out_edge_iterator + g_out_edge_iter; + +@@ -347,7 +344,6 @@ namespace detail { + // Flip sequence + BidirectionalIterator first(last_sorted); + BidirectionalIterator last(first_sorted); +- typedef Vertex vertex_t; + typedef Vertex vertex_num; + typedef EdgeIndex edge_num; + edge_num new_edge_count = std::distance(first, last); +diff -urp boost_1_53_0-orig/boost/graph/detail/histogram_sort.hpp boost_1_53_0/boost/graph/detail/histogram_sort.hpp +--- boost_1_53_0-orig/boost/graph/detail/histogram_sort.hpp 2013-07-23 01:32:19.364266583 +0200 ++++ boost_1_53_0/boost/graph/detail/histogram_sort.hpp 2013-07-23 01:34:15.279971188 +0200 +@@ -159,7 +159,6 @@ histogram_sort_inplace(KeyIterator key_b + Value1Iter values1, + KeyTransform key_transform) { + +- typedef NumKeys vertices_size_type; + typedef typename std::iterator_traits::value_type EdgeIndex; + + // 1. Copy m_rowstart (except last element) to get insert positions +@@ -194,7 +193,6 @@ histogram_sort_inplace(KeyIterator key_b + Value2Iter values2, + KeyTransform key_transform) { + +- typedef NumKeys vertices_size_type; + typedef typename std::iterator_traits::value_type EdgeIndex; + + // 1. Copy m_rowstart (except last element) to get insert positions diff --git a/boost-1.53.0-lexical_cast-unused_typedef.patch b/boost-1.53.0-lexical_cast-unused_typedef.patch new file mode 100644 index 0000000..a93c0ee --- /dev/null +++ b/boost-1.53.0-lexical_cast-unused_typedef.patch @@ -0,0 +1,13 @@ +diff -up boost_1_53_0/boost/lexical_cast.hpp\~ boost_1_53_0/boost/lexical_cast.hpp +--- boost_1_53_0/boost/lexical_cast.hpp~ 2012-12-29 15:41:23.000000000 +0100 ++++ boost_1_53_0/boost/lexical_cast.hpp 2013-07-22 23:27:48.841566845 +0200 +@@ -865,7 +865,6 @@ namespace boost { + #ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS + BOOST_STATIC_ASSERT(!std::numeric_limits::is_signed); + #endif +- typedef typename Traits::int_type int_type; + CharT const czero = lcast_char_constants::zero; + --end; + value = 0; + +Diff finished. Mon Jul 22 23:28:02 2013 diff --git a/boost-1.53.0-math-unused_typedef-3.patch b/boost-1.53.0-math-unused_typedef-3.patch new file mode 100644 index 0000000..f8b4854 --- /dev/null +++ b/boost-1.53.0-math-unused_typedef-3.patch @@ -0,0 +1,46 @@ +diff -urp boost_1_53_0-orig/boost/math/special_functions/detail/igamma_inverse.hpp boost_1_53_0/boost/math/special_functions/detail/igamma_inverse.hpp +--- boost_1_53_0-orig/boost/math/special_functions/detail/igamma_inverse.hpp 2013-07-23 01:32:21.874281840 +0200 ++++ boost_1_53_0/boost/math/special_functions/detail/igamma_inverse.hpp 2013-07-23 01:34:15.291971260 +0200 +@@ -341,7 +341,6 @@ struct gamma_p_inverse_func + // flag is set, then Q(x) - q and it's derivatives. + // + typedef typename policies::evaluation::type value_type; +- typedef typename lanczos::lanczos::type evaluation_type; + typedef typename policies::normalise< + Policy, + policies::promote_float, +diff -urp boost_1_53_0-orig/boost/math/special_functions/gamma.hpp boost_1_53_0/boost/math/special_functions/gamma.hpp +--- boost_1_53_0-orig/boost/math/special_functions/gamma.hpp 2013-07-23 01:32:21.824281537 +0200 ++++ boost_1_53_0/boost/math/special_functions/gamma.hpp 2013-07-23 01:34:15.322971451 +0200 +@@ -1360,7 +1360,6 @@ inline 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, +@@ -1489,7 +1488,6 @@ inline 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, +@@ -1520,7 +1518,6 @@ inline 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, +@@ -1551,7 +1548,6 @@ inline 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.53.0-regex-unused_typedef.patch b/boost-1.53.0-regex-unused_typedef.patch new file mode 100644 index 0000000..d10b476 --- /dev/null +++ b/boost-1.53.0-regex-unused_typedef.patch @@ -0,0 +1,65 @@ +diff -up ./boost/regex/icu.hpp~ ./boost/regex/icu.hpp +--- ./boost/regex/icu.hpp~ 2011-10-16 14:19:37.000000000 +0200 ++++ ./boost/regex/icu.hpp 2013-07-22 23:32:44.346321967 +0200 +@@ -423,7 +423,6 @@ bool do_regex_match(BidiIterator first, + { + typedef u16_to_u32_iterator conv_type; + typedef match_results match_type; +- typedef typename match_type::allocator_type alloc_type; + match_type what; + bool result = ::boost::regex_match(conv_type(first, first, last), conv_type(last, first, last), what, e, flags); + // copy results across to m: +@@ -439,7 +438,6 @@ bool do_regex_match(BidiIterator first, + { + typedef u8_to_u32_iterator conv_type; + typedef match_results match_type; +- typedef typename match_type::allocator_type alloc_type; + match_type what; + bool result = ::boost::regex_match(conv_type(first, first, last), conv_type(last, first, last), what, e, flags); + // copy results across to m: +@@ -598,7 +596,6 @@ bool do_regex_search(BidiIterator first, + { + typedef u16_to_u32_iterator conv_type; + typedef match_results match_type; +- typedef typename match_type::allocator_type alloc_type; + match_type what; + bool result = ::boost::regex_search(conv_type(first, first, last), conv_type(last, first, last), what, e, flags, conv_type(base)); + // copy results across to m: +@@ -615,7 +612,6 @@ bool do_regex_search(BidiIterator first, + { + typedef u8_to_u32_iterator conv_type; + typedef match_results match_type; +- typedef typename match_type::allocator_type alloc_type; + match_type what; + bool result = ::boost::regex_search(conv_type(first, first, last), conv_type(last, first, last), what, e, flags, conv_type(base)); + // copy results across to m: +diff -up ./boost/regex/v4/regex_format.hpp~ ./boost/regex/v4/regex_format.hpp +--- ./boost/regex/v4/regex_format.hpp~ 2012-05-24 12:03:48.000000000 +0200 ++++ ./boost/regex/v4/regex_format.hpp 2013-07-22 23:31:06.466740621 +0200 +@@ -1064,7 +1064,6 @@ struct format_functor_c_string + template + OutputIter operator()(const Match& m, OutputIter i, boost::regex_constants::match_flag_type f, const Traits& t = Traits()) + { +- typedef typename Match::char_type char_type; + const charT* end = func; + while(*end) ++end; + return regex_format_imp(i, m, func, end, f, t); +@@ -1083,7 +1082,6 @@ struct format_functor_container + template + OutputIter operator()(const Match& m, OutputIter i, boost::regex_constants::match_flag_type f, const Traits& t = Traits()) + { +- typedef typename Match::char_type char_type; + return re_detail::regex_format_imp(i, m, func.begin(), func.end(), f, t); + } + private: +diff -up ./boost/regex/v4/regex_split.hpp~ ./boost/regex/v4/regex_split.hpp +--- ./boost/regex/v4/regex_split.hpp~ 2007-11-25 19:07:19.000000000 +0100 ++++ ./boost/regex/v4/regex_split.hpp 2013-07-22 23:31:29.098875039 +0200 +@@ -107,7 +107,6 @@ std::size_t regex_split(OutputIterator o + std::size_t max_split) + { + typedef typename std::basic_string::const_iterator ci_t; +- typedef typename match_results::allocator_type match_allocator; + ci_t last = s.begin(); + std::size_t init_size = max_split; + re_detail::split_pred pred(&last, &out, &max_split); diff --git a/boost-1.54.0-algorithm-unused_typedef.patch b/boost-1.54.0-algorithm-unused_typedef.patch new file mode 100644 index 0000000..6bc8fe1 --- /dev/null +++ b/boost-1.54.0-algorithm-unused_typedef.patch @@ -0,0 +1,43 @@ +diff -urp boost_1_54_0-orig/boost/algorithm/string/detail/finder.hpp boost_1_54_0/boost/algorithm/string/detail/finder.hpp +--- boost_1_54_0-orig/boost/algorithm/string/detail/finder.hpp 2013-07-23 00:47:43.933889672 +0200 ++++ boost_1_54_0/boost/algorithm/string/detail/finder.hpp 2013-07-23 00:50:40.324958667 +0200 +@@ -142,7 +142,6 @@ namespace boost { + ForwardIteratorT End, + std::forward_iterator_tag ) const + { +- typedef ForwardIteratorT input_iterator_type; + typedef iterator_range result_type; + + first_finder_type first_finder( +@@ -263,7 +262,6 @@ namespace boost { + ForwardIteratorT End, + unsigned int N) const + { +- typedef ForwardIteratorT input_iterator_type; + typedef iterator_range result_type; + + // Sanity check +@@ -298,7 +296,6 @@ namespace boost { + ForwardIteratorT End, + unsigned int N) const + { +- typedef ForwardIteratorT input_iterator_type; + typedef iterator_range result_type; + + // Sanity check +@@ -362,7 +359,6 @@ namespace boost { + unsigned int N, + std::random_access_iterator_tag ) + { +- typedef ForwardIteratorT input_iterator_type; + typedef iterator_range result_type; + + if ( (End<=Begin) || ( static_cast(End-Begin) < N ) ) +@@ -436,7 +432,6 @@ namespace boost { + unsigned int N, + std::random_access_iterator_tag ) + { +- typedef ForwardIteratorT input_iterator_type; + typedef iterator_range result_type; + + if ( (End<=Begin) || ( static_cast(End-Begin) < N ) ) diff --git a/boost-1.54.0-context-execstack.patch b/boost-1.54.0-context-execstack.patch new file mode 100644 index 0000000..4513ae8 --- /dev/null +++ b/boost-1.54.0-context-execstack.patch @@ -0,0 +1,109 @@ +diff -up boost-1.54.0/libs/context/src/asm/jump_arm_aapcs_elf_gas.S~ boost-1.54.0/libs/context/src/asm/jump_arm_aapcs_elf_gas.S +--- boost-1.54.0/libs/context/src/asm/jump_arm_aapcs_elf_gas.S~ 2012-12-21 02:22:09.000000000 -0800 ++++ boost-1.54.0/libs/context/src/asm/jump_arm_aapcs_elf_gas.S 2013-07-15 11:11:46.772543152 -0700 +@@ -71,3 +71,6 @@ jump_fcontext: + @ and as first arg in context function + ldmia a2, {v1-v8,sp-pc} @ restore v1-V8,SP-PC + .size jump_fcontext,.-jump_fcontext ++ ++/* Mark that we don't need executable stack. */ ++.section .note.GNU-stack,"",@progbits +diff -up boost-1.54.0/libs/context/src/asm/jump_i386_sysv_elf_gas.S~ boost-1.54.0/libs/context/src/asm/jump_i386_sysv_elf_gas.S +--- boost-1.54.0/libs/context/src/asm/jump_i386_sysv_elf_gas.S~ 2012-09-18 02:06:47.000000000 -0700 ++++ boost-1.54.0/libs/context/src/asm/jump_i386_sysv_elf_gas.S 2013-07-15 11:10:32.829144835 -0700 +@@ -70,3 +70,6 @@ jump_fcontext: + + jmp *%edx /* indirect jump to context */ + .size jump_fcontext,.-jump_fcontext ++ ++/* Mark that we don't need executable stack. */ ++.section .note.GNU-stack,"",@progbits +diff -up boost-1.54.0/libs/context/src/asm/jump_ppc32_sysv_elf_gas.S~ boost-1.54.0/libs/context/src/asm/jump_ppc32_sysv_elf_gas.S +--- boost-1.54.0/libs/context/src/asm/jump_ppc32_sysv_elf_gas.S~ 2012-11-27 23:52:08.000000000 -0800 ++++ boost-1.54.0/libs/context/src/asm/jump_ppc32_sysv_elf_gas.S 2013-07-15 11:10:57.848279687 -0700 +@@ -178,3 +178,6 @@ jump_fcontext: + + bctr # jump to context + .size jump_fcontext, .-jump_fcontext ++ ++/* Mark that we don't need executable stack. */ ++.section .note.GNU-stack,"",@progbits +diff -up boost-1.54.0/libs/context/src/asm/jump_ppc64_sysv_elf_gas.S~ boost-1.54.0/libs/context/src/asm/jump_ppc64_sysv_elf_gas.S +--- boost-1.54.0/libs/context/src/asm/jump_ppc64_sysv_elf_gas.S~ 2012-11-27 23:52:08.000000000 -0800 ++++ boost-1.54.0/libs/context/src/asm/jump_ppc64_sysv_elf_gas.S 2013-07-15 11:11:07.189330597 -0700 +@@ -199,3 +199,6 @@ jump_fcontext: + + bctr # jump to context + .size .jump_fcontext, .-.jump_fcontext ++ ++/* Mark that we don't need executable stack. */ ++.section .note.GNU-stack,"",@progbits +diff -up boost-1.54.0/libs/context/src/asm/jump_x86_64_sysv_elf_gas.S~ boost-1.54.0/libs/context/src/asm/jump_x86_64_sysv_elf_gas.S +--- boost-1.54.0/libs/context/src/asm/jump_x86_64_sysv_elf_gas.S~ 2012-09-18 02:06:47.000000000 -0700 ++++ boost-1.54.0/libs/context/src/asm/jump_x86_64_sysv_elf_gas.S 2013-07-15 11:09:49.724912924 -0700 +@@ -80,3 +80,6 @@ jump_fcontext: + + jmp *%rcx /* indirect jump to context */ + .size jump_fcontext,.-jump_fcontext ++ ++/* Mark that we don't need executable stack. */ ++.section .note.GNU-stack,"",@progbits +diff -up boost-1.54.0/libs/context/src/asm/make_arm_aapcs_elf_gas.S~ boost-1.54.0/libs/context/src/asm/make_arm_aapcs_elf_gas.S +--- boost-1.54.0/libs/context/src/asm/make_arm_aapcs_elf_gas.S~ 2013-01-15 01:51:39.000000000 -0800 ++++ boost-1.54.0/libs/context/src/asm/make_arm_aapcs_elf_gas.S 2013-07-15 11:11:38.626499289 -0700 +@@ -74,3 +74,6 @@ finish: + mov a1, #0 @ exit code is zero + bl _exit@PLT @ exit application + .size make_fcontext,.-make_fcontext ++ ++/* Mark that we don't need executable stack. */ ++.section .note.GNU-stack,"",@progbits +diff -up boost-1.54.0/libs/context/src/asm/make_i386_sysv_elf_gas.S~ boost-1.54.0/libs/context/src/asm/make_i386_sysv_elf_gas.S +--- boost-1.54.0/libs/context/src/asm/make_i386_sysv_elf_gas.S~ 2013-06-07 08:38:10.000000000 -0700 ++++ boost-1.54.0/libs/context/src/asm/make_i386_sysv_elf_gas.S 2013-07-15 11:10:40.333185226 -0700 +@@ -75,3 +75,6 @@ finish: + call _exit@PLT /* exit application */ + hlt + .size make_fcontext,.-make_fcontext ++ ++/* Mark that we don't need executable stack. */ ++.section .note.GNU-stack,"",@progbits +diff -up boost-1.54.0/libs/context/src/asm/make_mips32_o32_elf_gas.S~ boost-1.54.0/libs/context/src/asm/make_mips32_o32_elf_gas.S +--- boost-1.54.0/libs/context/src/asm/make_mips32_o32_elf_gas.S~ 2012-11-27 23:52:08.000000000 -0800 ++++ boost-1.54.0/libs/context/src/asm/make_mips32_o32_elf_gas.S 2013-07-15 11:12:34.392799546 -0700 +@@ -83,3 +83,6 @@ finish: + jalr $t9 # exit application + .end make_fcontext + .size make_fcontext, .-make_fcontext ++ ++/* Mark that we don't need executable stack. */ ++.section .note.GNU-stack,"",@progbits +diff -up boost-1.54.0/libs/context/src/asm/make_ppc32_sysv_elf_gas.S~ boost-1.54.0/libs/context/src/asm/make_ppc32_sysv_elf_gas.S +--- boost-1.54.0/libs/context/src/asm/make_ppc32_sysv_elf_gas.S~ 2013-05-08 22:40:43.000000000 -0700 ++++ boost-1.54.0/libs/context/src/asm/make_ppc32_sysv_elf_gas.S 2013-07-15 11:11:20.247400344 -0700 +@@ -108,3 +108,6 @@ finish: + bl _exit@plt # exit application + .long 0 # We should never get here, so SIGILL if we do + .size make_fcontext, .-make_fcontext ++ ++/* Mark that we don't need executable stack. */ ++.section .note.GNU-stack,"",@progbits +diff -up boost-1.54.0/libs/context/src/asm/make_ppc64_sysv_elf_gas.S~ boost-1.54.0/libs/context/src/asm/make_ppc64_sysv_elf_gas.S +--- boost-1.54.0/libs/context/src/asm/make_ppc64_sysv_elf_gas.S~ 2013-05-08 22:40:43.000000000 -0700 ++++ boost-1.54.0/libs/context/src/asm/make_ppc64_sysv_elf_gas.S 2013-07-15 11:11:13.400363259 -0700 +@@ -130,3 +130,6 @@ finish: + nop # nop is required by the linker + .long 0 # We should never get here, so SIGILL if we do + .size .make_fcontext, .-.make_fcontext ++ ++/* Mark that we don't need executable stack. */ ++.section .note.GNU-stack,"",@progbits +diff -up boost-1.54.0/libs/context/src/asm/make_x86_64_sysv_elf_gas.S~ boost-1.54.0/libs/context/src/asm/make_x86_64_sysv_elf_gas.S +--- boost-1.54.0/libs/context/src/asm/make_x86_64_sysv_elf_gas.S~ 2012-11-29 23:38:52.000000000 -0800 ++++ boost-1.54.0/libs/context/src/asm/make_x86_64_sysv_elf_gas.S 2013-07-15 11:10:06.151001366 -0700 +@@ -72,3 +72,5 @@ finish: + hlt + .size make_fcontext,.-make_fcontext + ++/* Mark that we don't need executable stack. */ ++.section .note.GNU-stack,"",@progbits diff --git a/boost-1.54.0-date_time-unused_typedef-2.patch b/boost-1.54.0-date_time-unused_typedef-2.patch new file mode 100644 index 0000000..b39abe5 --- /dev/null +++ b/boost-1.54.0-date_time-unused_typedef-2.patch @@ -0,0 +1,13 @@ +diff -up boost_1_54_0/boost/date_time/gregorian/greg_facet.hpp\~ boost_1_54_0/boost/date_time/gregorian/greg_facet.hpp +--- boost_1_54_0/boost/date_time/gregorian/greg_facet.hpp~ 2008-11-23 12:13:35.000000000 +0100 ++++ boost_1_54_0/boost/date_time/gregorian/greg_facet.hpp 2013-07-22 23:44:42.834012788 +0200 +@@ -215,7 +215,6 @@ namespace gregorian { + { + std::istream_iterator, charT> beg(is), eos; + +- typedef boost::date_time::all_date_names_put facet_def; + d = from_stream(beg, eos); + return is; + } + +Diff finished. Mon Jul 22 23:44:50 2013 diff --git a/boost-1.54.0-locale-unused_typedef.patch b/boost-1.54.0-locale-unused_typedef.patch new file mode 100644 index 0000000..b7c9128 --- /dev/null +++ b/boost-1.54.0-locale-unused_typedef.patch @@ -0,0 +1,11 @@ +diff -urp boost_1_54_0-orig/boost/locale/boundary/segment.hpp boost_1_54_0/boost/locale/boundary/segment.hpp +--- boost_1_54_0-orig/boost/locale/boundary/segment.hpp 2013-07-23 00:47:27.020787174 +0200 ++++ boost_1_54_0/boost/locale/boundary/segment.hpp 2013-07-23 00:50:40.382959016 +0200 +@@ -27,7 +27,6 @@ namespace boundary { + int compare_text(LeftIterator l_begin,LeftIterator l_end,RightIterator r_begin,RightIterator r_end) + { + typedef LeftIterator left_iterator; +- typedef RightIterator right_iterator; + typedef typename std::iterator_traits::value_type char_type; + typedef std::char_traits traits; + while(l_begin!=l_end && r_begin!=r_end) { diff --git a/boost-1.54.0-mpi-unused_typedef.patch b/boost-1.54.0-mpi-unused_typedef.patch new file mode 100644 index 0000000..3a01d61 --- /dev/null +++ b/boost-1.54.0-mpi-unused_typedef.patch @@ -0,0 +1,11 @@ +diff -urp boost_1_54_0-orig/libs/mpi/src/communicator.cpp boost_1_54_0/libs/mpi/src/communicator.cpp +--- boost_1_54_0-orig/libs/mpi/src/communicator.cpp 2013-07-23 00:48:17.317091987 +0200 ++++ boost_1_54_0/libs/mpi/src/communicator.cpp 2013-07-23 00:50:40.722961078 +0200 +@@ -118,7 +118,6 @@ optional communicator::iprobe(in + + status communicator::probe(int source, int tag) const + { +- typedef optional result_type; + + status stat; + BOOST_MPI_CHECK_RESULT(MPI_Probe, diff --git a/boost-1.54.0-mpl-print.patch b/boost-1.54.0-mpl-print.patch new file mode 100644 index 0000000..6c27b14 --- /dev/null +++ b/boost-1.54.0-mpl-print.patch @@ -0,0 +1,37 @@ +Index: boost/mpl/print.hpp +=================================================================== +--- boost/mpl/print.hpp (revision 83411) ++++ boost/mpl/print.hpp (working copy) +@@ -45,22 +45,21 @@ + : mpl::identity + #if defined(__MWERKS__) + , aux::print_base +-#endif ++#endif + { + #if defined(BOOST_MSVC) + enum { n = sizeof(T) + -1 }; + #elif defined(__MWERKS__) + void f(int); +-#else +- enum { +- n = +-# if defined(__EDG_VERSION__) +- aux::dependent_unsigned::value > -1 +-# else +- sizeof(T) > -1 +-# endif +- }; +-#endif ++#elif defined(__EDG_VERSION__) ++ enum { n = aux::dependent_unsigned::value > -1 }; ++#elif defined(BOOST_GCC) ++ enum { n1 }; ++ enum { n2 }; ++ enum { n = n1 != n2 }; ++#else ++ enum { n = sizeof(T) > -1 }; ++#endif + }; + + #if defined(BOOST_MSVC) diff --git a/boost-1.54.0-property_tree-unused_typedef.patch b/boost-1.54.0-property_tree-unused_typedef.patch new file mode 100644 index 0000000..05158ef --- /dev/null +++ b/boost-1.54.0-property_tree-unused_typedef.patch @@ -0,0 +1,19 @@ +diff -urp boost_1_54_0-orig/boost/property_tree/detail/xml_parser_write.hpp boost_1_54_0/boost/property_tree/detail/xml_parser_write.hpp +--- boost_1_54_0-orig/boost/property_tree/detail/xml_parser_write.hpp 2013-07-23 00:47:43.731888449 +0200 ++++ boost_1_54_0/boost/property_tree/detail/xml_parser_write.hpp 2013-07-23 00:50:40.597960319 +0200 +@@ -35,7 +35,6 @@ namespace boost { namespace property_tre + const xml_writer_settings & settings + ) + { +- typedef typename std::basic_string Str; + if (separate_line) + write_xml_indent(stream,indent,settings); + stream << Ch('<') << Ch('!') << Ch('-') << Ch('-'); +@@ -69,7 +68,6 @@ namespace boost { namespace property_tre + { + + typedef typename Ptree::key_type::value_type Ch; +- typedef typename std::basic_string Str; + typedef typename Ptree::const_iterator It; + + bool want_pretty = settings.indent_count > 0; diff --git a/boost-1.54.0-spirit-unused_typedef-2.patch b/boost-1.54.0-spirit-unused_typedef-2.patch new file mode 100644 index 0000000..fdc9849 --- /dev/null +++ b/boost-1.54.0-spirit-unused_typedef-2.patch @@ -0,0 +1,22 @@ +diff -urp boost_1_54_0-orig/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp boost_1_54_0/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp +--- boost_1_54_0-orig/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp 2013-07-23 00:47:37.497850668 +0200 ++++ boost_1_54_0/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp 2013-07-23 00:50:40.662960713 +0200 +@@ -307,7 +307,6 @@ struct grammar_definition + #if !defined(BOOST_SPIRIT_SINGLE_GRAMMAR_INSTANCE) + typedef impl::grammar_helper_base helper_base_t; + typedef grammar_helper_list helper_list_t; +- typedef typename helper_list_t::vector_t::reverse_iterator iterator_t; + + helper_list_t& helpers = + # if !defined(__GNUC__) || (__GNUC__ > 2) +diff -urp boost_1_54_0-orig/boost/spirit/home/classic/tree/parse_tree.hpp boost_1_54_0/boost/spirit/home/classic/tree/parse_tree.hpp +--- boost_1_54_0-orig/boost/spirit/home/classic/tree/parse_tree.hpp 2013-07-23 00:47:37.407850122 +0200 ++++ boost_1_54_0/boost/spirit/home/classic/tree/parse_tree.hpp 2013-07-23 00:50:40.674960786 +0200 +@@ -76,7 +76,6 @@ struct pt_tree_policy : + template + static void concat(MatchAT& a, MatchBT const& b) + { +- typedef typename match_t::attr_t attr_t; + BOOST_SPIRIT_ASSERT(a && b); + + std::copy(b.trees.begin(), b.trees.end(), diff --git a/boost-1.54.0-unordered-unused_typedef.patch b/boost-1.54.0-unordered-unused_typedef.patch new file mode 100644 index 0000000..27e900a --- /dev/null +++ b/boost-1.54.0-unordered-unused_typedef.patch @@ -0,0 +1,14 @@ +diff -up boost_1_54_0/boost/unordered/detail/unique.hpp\~ boost_1_54_0/boost/unordered/detail/unique.hpp +--- boost_1_54_0/boost/unordered/detail/unique.hpp~ 2012-12-05 23:06:57.000000000 +0100 ++++ boost_1_54_0/boost/unordered/detail/unique.hpp 2013-07-22 23:54:29.222516306 +0200 +@@ -334,8 +334,6 @@ namespace boost { namespace unordered { + + value_type& operator[](key_type const& k) + { +- typedef typename value_type::second_type mapped_type; +- + std::size_t key_hash = this->hash(k); + iterator pos = this->find_node(key_hash, k); + + +Diff finished. Mon Jul 22 23:55:15 2013 diff --git a/boost-1.54.0-xpressive-unused_typedef.patch b/boost-1.54.0-xpressive-unused_typedef.patch new file mode 100644 index 0000000..60a4f5a --- /dev/null +++ b/boost-1.54.0-xpressive-unused_typedef.patch @@ -0,0 +1,11 @@ +diff -urp boost_1_54_0-orig/boost/xpressive/regex_algorithms.hpp boost_1_54_0/boost/xpressive/regex_algorithms.hpp +--- boost_1_54_0-orig/boost/xpressive/regex_algorithms.hpp 2013-07-23 00:47:50.804931313 +0200 ++++ boost_1_54_0/boost/xpressive/regex_algorithms.hpp 2013-07-23 00:50:40.721961072 +0200 +@@ -303,7 +303,6 @@ namespace detail + ) + { + typedef core_access access; +- typedef typename iterator_value::type char_type; + match_results &what = *state.context_.results_ptr_; + BOOST_ASSERT(0 != re.regex_id()); + diff --git a/boost.spec b/boost.spec index 741b26f..9e74228 100644 --- a/boost.spec +++ b/boost.spec @@ -138,24 +138,52 @@ Patch26: boost-1.54.0-static_warning-unused_typedef.patch 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 +Patch30: boost-1.53.0-math-unused_typedef-3.patch # https://svn.boost.org/trac/boost/ticket/8853 -Patch30: boost-1.54.0-tuple-unused_typedef.patch +Patch31: 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 +Patch32: 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 +Patch33: boost-1.54.0-date_time-unused_typedef.patch +Patch34: boost-1.54.0-date_time-unused_typedef-2.patch # https://svn.boost.org/trac/boost/ticket/8870 -Patch33: boost-1.54.0-spirit-unused_typedef.patch +Patch35: boost-1.54.0-spirit-unused_typedef.patch +Patch36: boost-1.54.0-spirit-unused_typedef-2.patch # https://svn.boost.org/trac/boost/ticket/8871 -Patch34: boost-1.54.0-numeric-unused_typedef.patch +Patch37: 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 +Patch38: boost-1.54.0-multiprecision-unused_typedef.patch + +# Backported from 1.54.0: +Patch39: boost-1.53.0-lexical_cast-unused_typedef.patch +Patch40: boost-1.53.0-regex-unused_typedef.patch + +# https://svn.boost.org/trac/boost/ticket/8874 +Patch41: boost-1.54.0-unordered-unused_typedef.patch + +# https://svn.boost.org/trac/boost/ticket/8876 +Patch42: boost-1.54.0-algorithm-unused_typedef.patch + +# https://svn.boost.org/trac/boost/ticket/8877 +Patch43: boost-1.53.0-graph-unused_typedef.patch + +# https://svn.boost.org/trac/boost/ticket/8878 +Patch44: boost-1.54.0-locale-unused_typedef.patch + +# https://svn.boost.org/trac/boost/ticket/8879 +Patch45: boost-1.54.0-property_tree-unused_typedef.patch + +# https://svn.boost.org/trac/boost/ticket/8880 +Patch46: boost-1.54.0-xpressive-unused_typedef.patch + +# https://svn.boost.org/trac/boost/ticket/8881 +Patch47: boost-1.54.0-mpi-unused_typedef.patch %bcond_with tests %bcond_with docs_generated @@ -574,12 +602,24 @@ a number of significant features and is now developed independently %patch27 -p1 %patch28 -p0 %patch29 -p1 -%patch30 -p0 +%patch30 -p1 %patch31 -p0 %patch32 -p0 -%patch33 -p1 +%patch33 -p0 %patch34 -p1 %patch35 -p1 +%patch36 -p1 +%patch37 -p1 +%patch38 -p1 +%patch39 -p1 +%patch40 -p1 +%patch41 -p1 +%patch42 -p1 +%patch43 -p1 +%patch44 -p1 +%patch45 -p1 +%patch46 -p1 +%patch47 -p1 # At least python2_version needs to be a macro so that it's visible in # %%install as well. @@ -1154,7 +1194,7 @@ 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 +- Add many 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, @@ -1162,12 +1202,24 @@ rm -rf $RPM_BUILD_ROOT 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-math-unused_typedef-3.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-date_time-unused_typedef-2.patch, boost-1.54.0-spirit-unused_typedef.patch, + boost-1.54.0-spirit-unused_typedef-2.patch, boost-1.54.0-numeric-unused_typedef.patch, - boost-1.54.0-multiprecision-unused_typedef.patch) + boost-1.54.0-multiprecision-unused_typedef.patch, + boost-1.53.0-lexical_cast-unused_typedef.patch, + boost-1.53.0-regex-unused_typedef.patch, + boost-1.54.0-unordered-unused_typedef.patch, + boost-1.54.0-algorithm-unused_typedef.patch, + boost-1.53.0-graph-unused_typedef.patch, + boost-1.54.0-locale-unused_typedef.patch, + boost-1.54.0-property_tree-unused_typedef.patch, + boost-1.54.0-xpressive-unused_typedef.patch, + boost-1.54.0-mpi-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) From 7fa0ea18d97649c5fb2b55c1408147c4c22817ab Mon Sep 17 00:00:00 2001 From: Petr Machata Date: Tue, 23 Jul 2013 17:07:03 +0200 Subject: [PATCH 5/6] Two more local typedef patches: Boost.Python and Boost.Thread - There's a bunch more in Python, but those probably need careful conversion to BOOST_STATIC_ASSERT. --- boost-1.53.0-thread-unused_typedef.patch | 21 +++++++++++++++++++ boost-1.54.0-python-unused_typedef.patch | 15 ++++++++++++++ boost.spec | 26 ++++++++++++++++-------- 3 files changed, 53 insertions(+), 9 deletions(-) create mode 100644 boost-1.53.0-thread-unused_typedef.patch create mode 100644 boost-1.54.0-python-unused_typedef.patch diff --git a/boost-1.53.0-thread-unused_typedef.patch b/boost-1.53.0-thread-unused_typedef.patch new file mode 100644 index 0000000..a1a3d40 --- /dev/null +++ b/boost-1.53.0-thread-unused_typedef.patch @@ -0,0 +1,21 @@ +diff -up boost_1_53_0/boost/thread/future.hpp\~ boost_1_53_0/boost/thread/future.hpp +--- boost_1_53_0/boost/thread/future.hpp~ 2012-12-16 20:01:45.000000000 +0100 ++++ boost_1_53_0/boost/thread/future.hpp 2013-07-23 16:50:27.044995968 +0200 +@@ -2913,7 +2913,6 @@ namespace boost + typedef packaged_task packaged_task_type; + + typedef detail::async_func::type> BF; +- typedef typename BF::result_type Rp; + + #endif + #else +@@ -2925,7 +2924,6 @@ namespace boost + typedef packaged_task packaged_task_type; + + typedef detail::async_func::type> BF; +- typedef typename BF::result_type Rp; + #endif + + if (int(policy) & int(launch::async)) + +Diff finished. Tue Jul 23 16:50:30 2013 diff --git a/boost-1.54.0-python-unused_typedef.patch b/boost-1.54.0-python-unused_typedef.patch new file mode 100644 index 0000000..8adf8ed --- /dev/null +++ b/boost-1.54.0-python-unused_typedef.patch @@ -0,0 +1,15 @@ +diff -up boost_1_53_0/boost/python/to_python_value.hpp\~ boost_1_53_0/boost/python/to_python_value.hpp +--- boost_1_53_0/boost/python/to_python_value.hpp~ 2007-12-16 11:12:07.000000000 +0100 ++++ boost_1_53_0/boost/python/to_python_value.hpp 2013-07-23 16:19:02.518904596 +0200 +@@ -147,8 +147,8 @@ namespace detail + template + inline PyObject* registry_to_python_value::operator()(argument_type x) const + { +- typedef converter::registered r; + # if BOOST_WORKAROUND(__GNUC__, < 3) ++ typedef converter::registered r; + // suppresses an ICE, somehow + (void)r::converters; + # endif + +Diff finished. Tue Jul 23 16:19:05 2013 diff --git a/boost.spec b/boost.spec index 9e74228..899b0e1 100644 --- a/boost.spec +++ b/boost.spec @@ -160,30 +160,34 @@ Patch37: boost-1.54.0-numeric-unused_typedef.patch # https://svn.boost.org/trac/boost/ticket/8872 Patch38: boost-1.54.0-multiprecision-unused_typedef.patch -# Backported from 1.54.0: +# These are already fixed in 1.54.0+ Patch39: boost-1.53.0-lexical_cast-unused_typedef.patch Patch40: boost-1.53.0-regex-unused_typedef.patch +Patch41: boost-1.53.0-thread-unused_typedef.patch # https://svn.boost.org/trac/boost/ticket/8874 -Patch41: boost-1.54.0-unordered-unused_typedef.patch +Patch42: boost-1.54.0-unordered-unused_typedef.patch # https://svn.boost.org/trac/boost/ticket/8876 -Patch42: boost-1.54.0-algorithm-unused_typedef.patch +Patch43: boost-1.54.0-algorithm-unused_typedef.patch # https://svn.boost.org/trac/boost/ticket/8877 -Patch43: boost-1.53.0-graph-unused_typedef.patch +Patch44: boost-1.53.0-graph-unused_typedef.patch # https://svn.boost.org/trac/boost/ticket/8878 -Patch44: boost-1.54.0-locale-unused_typedef.patch +Patch45: boost-1.54.0-locale-unused_typedef.patch # https://svn.boost.org/trac/boost/ticket/8879 -Patch45: boost-1.54.0-property_tree-unused_typedef.patch +Patch46: boost-1.54.0-property_tree-unused_typedef.patch # https://svn.boost.org/trac/boost/ticket/8880 -Patch46: boost-1.54.0-xpressive-unused_typedef.patch +Patch47: boost-1.54.0-xpressive-unused_typedef.patch # https://svn.boost.org/trac/boost/ticket/8881 -Patch47: boost-1.54.0-mpi-unused_typedef.patch +Patch48: boost-1.54.0-mpi-unused_typedef.patch + +# https://svn.boost.org/trac/boost/ticket/8888 +Patch49: boost-1.54.0-python-unused_typedef.patch %bcond_with tests %bcond_with docs_generated @@ -620,6 +624,8 @@ a number of significant features and is now developed independently %patch45 -p1 %patch46 -p1 %patch47 -p1 +%patch48 -p1 +%patch49 -p1 # At least python2_version needs to be a macro so that it's visible in # %%install as well. @@ -1213,13 +1219,15 @@ rm -rf $RPM_BUILD_ROOT boost-1.54.0-multiprecision-unused_typedef.patch, boost-1.53.0-lexical_cast-unused_typedef.patch, boost-1.53.0-regex-unused_typedef.patch, + boost-1.53.0-thread-unused_typedef.patch, boost-1.54.0-unordered-unused_typedef.patch, boost-1.54.0-algorithm-unused_typedef.patch, boost-1.53.0-graph-unused_typedef.patch, boost-1.54.0-locale-unused_typedef.patch, boost-1.54.0-property_tree-unused_typedef.patch, boost-1.54.0-xpressive-unused_typedef.patch, - boost-1.54.0-mpi-unused_typedef.patch) + boost-1.54.0-mpi-unused_typedef.patch, + boost-1.54.0-python-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) From b56c31ff13d418ddf1dd75bc8a5542614a5dab9a Mon Sep 17 00:00:00 2001 From: Petr Machata Date: Tue, 23 Jul 2013 17:55:01 +0200 Subject: [PATCH 6/6] Update thread patch --- boost-1.53.0-thread-unused_typedef.patch | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/boost-1.53.0-thread-unused_typedef.patch b/boost-1.53.0-thread-unused_typedef.patch index a1a3d40..3fd12c2 100644 --- a/boost-1.53.0-thread-unused_typedef.patch +++ b/boost-1.53.0-thread-unused_typedef.patch @@ -1,18 +1,23 @@ diff -up boost_1_53_0/boost/thread/future.hpp\~ boost_1_53_0/boost/thread/future.hpp --- boost_1_53_0/boost/thread/future.hpp~ 2012-12-16 20:01:45.000000000 +0100 +++ boost_1_53_0/boost/thread/future.hpp 2013-07-23 16:50:27.044995968 +0200 -@@ -2913,7 +2913,6 @@ namespace boost +@@ -2911,10 +2913,6 @@ namespace boost + { + typedef typename boost::result_of::type()>::type R; typedef packaged_task packaged_task_type; - - typedef detail::async_func::type> BF; +- +- typedef detail::async_func::type> BF; - typedef typename BF::result_type Rp; - +- #endif #else -@@ -2925,7 +2924,6 @@ namespace boost + template +@@ -2925,9 +2924,6 @@ namespace boost + { + typedef typename boost::result_of::type()>::type R; typedef packaged_task packaged_task_type; - - typedef detail::async_func::type> BF; +- +- typedef detail::async_func::type> BF; - typedef typename BF::result_type Rp; #endif