[packages/boost] - rel 3; bunch of upstream patches (taken and filtered by FC team)
arekm
arekm at pld-linux.org
Sat Sep 14 18:16:15 CEST 2013
commit 647f39b293bde17ba3cf3a5d5ff661a6acff71fd
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date: Sat Sep 14 18:16:11 2013 +0200
- rel 3; bunch of upstream patches (taken and filtered by FC team)
001-coroutine.patch | 19 ++
002-date-time.patch | 19 ++
003-log.patch | 16 ++
boost-1.54.0-algorithm-unused_typedef.patch | 43 ++++
boost-1.54.0-bind-static_assert.patch | 21 ++
boost-1.54.0-concept-unused_typedef.patch | 21 ++
boost-1.54.0-context-execstack.patch | 129 ++++++++++++
boost-1.54.0-date_time-unused_typedef-2.patch | 13 ++
boost-1.54.0-date_time-unused_typedef.patch | 100 +++++++++
boost-1.54.0-graph-unused_typedef.patch | 11 +
boost-1.54.0-lexical_cast-int128.patch | 61 ++++++
boost-1.54.0-locale-unused_typedef.patch | 11 +
boost-1.54.0-math-unused_typedef-2.patch | 52 +++++
boost-1.54.0-math-unused_typedef.patch | 15 ++
boost-1.54.0-mpi-unused_typedef.patch | 11 +
boost-1.54.0-mpl-print.patch | 37 ++++
boost-1.54.0-multiprecision-unused_typedef.patch | 148 ++++++++++++++
boost-1.54.0-numeric-unused_typedef.patch | 250 +++++++++++++++++++++++
boost-1.54.0-pool-test_linking.patch | 31 +++
boost-1.54.0-property_tree-unused_typedef.patch | 19 ++
boost-1.54.0-python-unused_typedef.patch | 15 ++
boost-1.54.0-random-unused_typedef.patch | 24 +++
boost-1.54.0-spirit-unused_typedef-2.patch | 22 ++
boost-1.54.0-spirit-unused_typedef.patch | 11 +
boost-1.54.0-static_warning-unused_typedef.patch | 23 +++
boost-1.54.0-thread-cond_variable_shadow.patch | 104 ++++++++++
boost-1.54.0-thread-link_atomic.patch | 51 +++++
boost-1.54.0-tuple-unused_typedef.patch | 12 ++
boost-1.54.0-unordered-unused_typedef.patch | 14 ++
boost-1.54.0-xpressive-unused_typedef.patch | 11 +
boost.spec | 95 ++++++++-
31 files changed, 1408 insertions(+), 1 deletion(-)
---
diff --git a/boost.spec b/boost.spec
index fc35a14..bfb80aa 100644
--- a/boost.spec
+++ b/boost.spec
@@ -11,13 +11,72 @@ Summary: The Boost C++ Libraries
Summary(pl.UTF-8): Biblioteki C++ "Boost"
Name: boost
Version: 1.54.0
-Release: 2
+Release: 3
License: Boost Software License and others
Group: Libraries
Source0: http://downloads.sourceforge.net/boost/%{name}_%{fver}.tar.bz2
# Source0-md5: 15cb8c0803064faef0c4ddf5bc5ca279
Patch0: %{name}-link.patch
Patch1: %{name}-stdint.patch
+
+# Upstream patches posted as release notes:
+# http://www.boost.org/users/history/version_1_54_0.html
+Patch100: 001-coroutine.patch
+Patch101: 002-date-time.patch
+Patch102: 003-log.patch
+
+# FC Patches:
+# https://svn.boost.org/trac/boost/ticket/8826
+Patch200: boost-1.54.0-context-execstack.patch
+# https://svn.boost.org/trac/boost/ticket/8844
+Patch201: boost-1.54.0-bind-static_assert.patch
+# https://svn.boost.org/trac/boost/ticket/8847
+Patch202: boost-1.54.0-concept-unused_typedef.patch
+# https://svn.boost.org/trac/boost/ticket/5637
+Patch203: boost-1.54.0-mpl-print.patch
+# https://svn.boost.org/trac/boost/ticket/8859
+Patch204: boost-1.54.0-static_warning-unused_typedef.patch
+# https://svn.boost.org/trac/boost/ticket/8855
+Patch205: boost-1.54.0-math-unused_typedef.patch
+Patch206: boost-1.54.0-math-unused_typedef-2.patch
+# https://svn.boost.org/trac/boost/ticket/8853
+Patch207: boost-1.54.0-tuple-unused_typedef.patch
+# https://svn.boost.org/trac/boost/ticket/8854
+Patch208: boost-1.54.0-random-unused_typedef.patch
+# https://svn.boost.org/trac/boost/ticket/8856
+Patch209: boost-1.54.0-date_time-unused_typedef.patch
+Patch210: boost-1.54.0-date_time-unused_typedef-2.patch
+# https://svn.boost.org/trac/boost/ticket/8870
+Patch211: boost-1.54.0-spirit-unused_typedef.patch
+Patch212: boost-1.54.0-spirit-unused_typedef-2.patch
+# https://svn.boost.org/trac/boost/ticket/8871
+Patch213: boost-1.54.0-numeric-unused_typedef.patch
+# https://svn.boost.org/trac/boost/ticket/8872
+Patch214: boost-1.54.0-multiprecision-unused_typedef.patch
+# https://svn.boost.org/trac/boost/ticket/8874
+Patch215: boost-1.54.0-unordered-unused_typedef.patch
+# https://svn.boost.org/trac/boost/ticket/8876
+Patch216: boost-1.54.0-algorithm-unused_typedef.patch
+# https://svn.boost.org/trac/boost/ticket/8877
+Patch217: boost-1.54.0-graph-unused_typedef.patch
+# https://svn.boost.org/trac/boost/ticket/8878
+Patch218: boost-1.54.0-locale-unused_typedef.patch
+# https://svn.boost.org/trac/boost/ticket/8879
+Patch219: boost-1.54.0-property_tree-unused_typedef.patch
+# https://svn.boost.org/trac/boost/ticket/8880
+Patch220: boost-1.54.0-xpressive-unused_typedef.patch
+# https://svn.boost.org/trac/boost/ticket/8881
+Patch221: boost-1.54.0-mpi-unused_typedef.patch
+# https://svn.boost.org/trac/boost/ticket/8888
+Patch222: boost-1.54.0-python-unused_typedef.patch
+# https://svn.boost.org/trac/boost/ticket/8941
+Patch223: boost-1.54.0-lexical_cast-int128.patch
+# https://svn.boost.org/trac/boost/ticket/9038
+Patch224: boost-1.54.0-pool-test_linking.patch
+# https://svn.boost.org/trac/boost/ticket/9037
+Patch225: boost-1.54.0-thread-cond_variable_shadow.patch
+# https://svn.boost.org/trac/boost/ticket/9041
+Patch226: boost-1.54.0-thread-link_atomic.patch
URL: http://www.boost.org/
BuildRequires: bzip2-devel
BuildRequires: expat-devel
@@ -30,6 +89,8 @@ BuildRequires: zlib-devel
BuildConflicts: gcc = 5:3.3.1
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+%define specflags -DBOOST_IOSTREAMS_USE_DEPRECATED=1
+
%description
The Boost web site provides free peer-reviewed portable C++ source
libraries. The emphasis is on libraries which work well with the C++
@@ -379,6 +440,38 @@ Dokumentacja dla biblioteki Boost C++.
%patch0 -p1
%patch1 -p2
+%patch100 -p1
+%patch101 -p1
+%patch102 -p1
+
+%patch200 -p1
+%patch201 -p1
+%patch202 -p1
+%patch203 -p0
+%patch204 -p1
+%patch205 -p1
+%patch206 -p0
+%patch207 -p0
+%patch208 -p0
+%patch209 -p0
+%patch210 -p1
+%patch211 -p1
+%patch212 -p1
+%patch213 -p1
+%patch214 -p1
+%patch215 -p1
+%patch216 -p1
+%patch217 -p1
+%patch218 -p1
+%patch219 -p1
+%patch220 -p1
+%patch221 -p1
+%patch222 -p1
+%patch223 -p0
+%patch224 -p1
+%patch225 -p1
+%patch226 -p1
+
# - don't know how to pass it through (b)jam -s (no way?)
# due to oversophisticated build flags system.
# - pass -fPIC due to <shared-linkable> removal.
diff --git a/001-coroutine.patch b/001-coroutine.patch
new file mode 100644
index 0000000..f9b3f4a
--- /dev/null
+++ b/001-coroutine.patch
@@ -0,0 +1,19 @@
+------------------------------------------------------------------------
+r84947 | danieljames | 2013-07-03 22:57:56 +0100 (Wed, 03 Jul 2013) | 4 lines
+
+coroutine: fix typo in Jamfile
+
+From [84622], by olli
+
+------------------------------------------------------------------------
+--- 1_54_0/libs/coroutine/build/Jamfile.v2 (revision 84946)
++++ 1_54_0/libs/coroutine/build/Jamfile.v2 (revision 84947)
+@@ -40,7 +40,7 @@
+ : detail/standard_stack_allocator_posix.cpp
+ ;
+
+-explicit yield_sources ;
++explicit allocator_sources ;
+
+ lib boost_coroutine
+ : allocator_sources
diff --git a/002-date-time.patch b/002-date-time.patch
new file mode 100644
index 0000000..a05efeb
--- /dev/null
+++ b/002-date-time.patch
@@ -0,0 +1,19 @@
+------------------------------------------------------------------------
+r84948 | danieljames | 2013-07-03 23:02:30 +0100 (Wed, 03 Jul 2013) | 4 lines
+
+In C++11 the shared_ptr -> bool conversion is explicit. In custom time zone code, make the cast explicit. Fixes compilation failure in C++11
+
+From [84626], by marshall.
+
+------------------------------------------------------------------------
+--- 1_54_0/boost/date_time/local_time/custom_time_zone.hpp (revision 84947)
++++ 1_54_0/boost/date_time/local_time/custom_time_zone.hpp (revision 84948)
+@@ -64,7 +64,7 @@
+ //! True if zone uses daylight savings adjustments
+ virtual bool has_dst() const
+ {
+- return (dst_calc_rules_); //if calc_rule is set the tz has dst
++ return (bool) dst_calc_rules_; //if calc_rule is set the tz has dst
+ }
+ //! Local time that DST starts -- NADT if has_dst is false
+ virtual posix_time::ptime dst_local_start_time(gregorian::greg_year y) const
diff --git a/003-log.patch b/003-log.patch
new file mode 100644
index 0000000..a67c91f
--- /dev/null
+++ b/003-log.patch
@@ -0,0 +1,16 @@
+------------------------------------------------------------------------
+r84966 | andysem | 2013-07-07 11:43:20 +0100 (Sun, 07 Jul 2013) | 1 line
+
+Backported fix for BOOST_LOG_ONCE_BLOCK_FLAG macro definition.
+------------------------------------------------------------------------
+--- 1_54_0/boost/log/utility/once_block.hpp (revision 84965)
++++ 1_54_0/boost/log/utility/once_block.hpp (revision 84966)
+@@ -176,7 +176,7 @@
+ * been executed.
+ */
+ #define BOOST_LOG_ONCE_BLOCK_FLAG(flag_var)\
+- BOOST_LOG_ONCE_BLOCK_INTERNAL(\
++ BOOST_LOG_ONCE_BLOCK_FLAG_INTERNAL(\
+ flag_var,\
+ BOOST_LOG_UNIQUE_IDENTIFIER_NAME(_boost_log_once_block_sentry_))
+
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<ForwardIteratorT> 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<ForwardIteratorT> result_type;
+
+ // Sanity check
+@@ -298,7 +296,6 @@ namespace boost {
+ ForwardIteratorT End,
+ unsigned int N) const
+ {
+- typedef ForwardIteratorT input_iterator_type;
+ typedef iterator_range<ForwardIteratorT> 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<ForwardIteratorT> result_type;
+
+ if ( (End<=Begin) || ( static_cast<unsigned int>(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<ForwardIteratorT> result_type;
+
+ if ( (End<=Begin) || ( static_cast<unsigned int>(End-Begin) < N ) )
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-context-execstack.patch b/boost-1.54.0-context-execstack.patch
new file mode 100644
index 0000000..8bf3eb1
--- /dev/null
+++ b/boost-1.54.0-context-execstack.patch
@@ -0,0 +1,129 @@
+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,"", at 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,"", at 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,"", at 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,"", at 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,"", at 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 at PLT @ exit application
+ .size make_fcontext,.-make_fcontext
++
++/* Mark that we don't need executable stack. */
++.section .note.GNU-stack,"", at 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 at PLT /* exit application */
+ hlt
+ .size make_fcontext,.-make_fcontext
++
++/* Mark that we don't need executable stack. */
++.section .note.GNU-stack,"", at 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,"", at 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
+@@ -109,3 +109,6 @@ finish:
+ li %r3, 0 # exit code is zero
+ bl _exit at plt # exit application
+ .size make_fcontext, .-make_fcontext
++
++/* Mark that we don't need executable stack. */
++.section .note.GNU-stack,"", at 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
+@@ -131,3 +131,6 @@ finish:
+ bl _exit # exit application
+ nop
+ .size .make_fcontext, .-.make_fcontext
++
++/* Mark that we don't need executable stack. */
++.section .note.GNU-stack,"", at progbits
+diff -up boost-1.54.0/libs/context/src/asm/make_sparc64_sysv_elf_gas.S~ boost-1.54.0/libs/context/src/asm/make_sparc64_sysv_elf_gas.S
+--- boost-1.54.0/libs/context/src/asm/make_sparc64_sysv_elf_gas.S~ 2013-02-12 04:55:22.000000000 -0800
++++ boost-1.54.0/libs/context/src/asm/make_sparc64_sysv_elf_gas.S 2013-07-15 11:12:41.643838416 -0700
+@@ -84,3 +84,6 @@ finish:
+ nop
+
+ .size make_fcontext,.-make_fcontext
++
++/* Mark that we don't need executable stack. */
++.section .note.GNU-stack,"", at progbits
+diff -up boost-1.54.0/libs/context/src/asm/make_sparc_sysv_elf_gas.S~ boost-1.54.0/libs/context/src/asm/make_sparc_sysv_elf_gas.S
+--- boost-1.54.0/libs/context/src/asm/make_sparc_sysv_elf_gas.S~ 2013-02-12 04:55:22.000000000 -0800
++++ boost-1.54.0/libs/context/src/asm/make_sparc_sysv_elf_gas.S 2013-07-15 11:12:48.733876794 -0700
+@@ -80,3 +80,6 @@ finish:
+ nop
+
+ .size make_fcontext,.-make_fcontext
++
++/* Mark that we don't need executable stack. */
++.section .note.GNU-stack,"", at 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,"", at 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<std::basic_string<charT>, charT> beg(is), eos;
+
+- typedef boost::date_time::all_date_names_put<greg_facet_config, charT> 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-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-graph-unused_typedef.patch b/boost-1.54.0-graph-unused_typedef.patch
new file mode 100644
index 0000000..62dee44
--- /dev/null
+++ b/boost-1.54.0-graph-unused_typedef.patch
@@ -0,0 +1,11 @@
+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<IncidenceGraph> ));
+ typedef graph_traits<IncidenceGraph> GTraits;
+ typedef typename GTraits::vertex_descriptor Vertex;
+- typedef typename GTraits::edge_descriptor Edge;
+ BOOST_CONCEPT_ASSERT(( BFSVisitorConcept<BFSVisitor, IncidenceGraph> ));
+ BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<ColorMap, Vertex> ));
+ typedef typename property_traits<ColorMap>::value_type ColorValue;
diff --git a/boost-1.54.0-lexical_cast-int128.patch b/boost-1.54.0-lexical_cast-int128.patch
new file mode 100644
index 0000000..8e6c63c
--- /dev/null
+++ b/boost-1.54.0-lexical_cast-int128.patch
@@ -0,0 +1,61 @@
+diff -up boost/lexical_cast.hpp\~ boost/lexical_cast.hpp
+--- boost/lexical_cast.hpp~ 2013-07-27 12:03:21.000000000 +0200
++++ boost/lexical_cast.hpp 2013-07-30 19:30:54.969548144 +0200
+@@ -69,11 +69,6 @@
+ throw_exception(bad_lexical_cast(typeid(Source), typeid(Target)))
+ #endif
+
+-#if (defined(BOOST_LCAST_HAS_INT128) && !defined(__GNUC__)) || GCC_VERSION > 40700
+-#define BOOST_LCAST_HAS_INT128
+-#endif
+-
+-
+ namespace boost
+ {
+ // exception used to indicate runtime lexical_cast failure
+@@ -316,7 +311,7 @@ namespace boost {
+ > {};
+ #endif
+
+-#ifdef BOOST_LCAST_HAS_INT128
++#ifdef BOOST_HAS_INT128
+ template <> struct stream_char_common< boost::int128_type >: public boost::mpl::identity< char > {};
+ template <> struct stream_char_common< boost::uint128_type >: public boost::mpl::identity< char > {};
+ #endif
+@@ -613,7 +608,7 @@ namespace boost {
+ BOOST_LCAST_DEF(unsigned __int64)
+ BOOST_LCAST_DEF( __int64)
+ #endif
+-#ifdef BOOST_LCAST_HAS_INT128
++#ifdef BOOST_HAS_INT128
+ BOOST_LCAST_DEF(boost::int128_type)
+ BOOST_LCAST_DEF(boost::uint128_type)
+ #endif
+@@ -1827,7 +1822,7 @@ namespace boost {
+ bool operator<<( __int64 n) { return shl_signed(n); }
+ #endif
+
+-#ifdef BOOST_LCAST_HAS_INT128
++#ifdef BOOST_HAS_INT128
+ bool operator<<(const boost::uint128_type& n) { start = lcast_put_unsigned<Traits>(n, finish); return true; }
+ bool operator<<(const boost::int128_type& n) { return shl_signed(n); }
+ #endif
+@@ -2039,7 +2034,7 @@ namespace boost {
+ bool operator>>(__int64& output) { return shr_signed(output); }
+ #endif
+
+-#ifdef BOOST_LCAST_HAS_INT128
++#ifdef BOOST_HAS_INT128
+ bool operator>>(boost::uint128_type& output) { return shr_unsigned(output); }
+ bool operator>>(boost::int128_type& output) { return shr_signed(output); }
+ #endif
+@@ -2719,7 +2714,6 @@ namespace boost {
+
+ #undef BOOST_LCAST_THROW_BAD_CAST
+ #undef BOOST_LCAST_NO_WCHAR_T
+-#undef BOOST_LCAST_HAS_INT128
+
+ #endif // BOOST_LEXICAL_CAST_INCLUDED
+
+
+Diff finished. Tue Jul 30 19:30:58 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<left_iterator>::value_type char_type;
+ typedef std::char_traits<char_type> traits;
+ while(l_begin!=l_end && r_begin!=r_end) {
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..d2ab628
--- /dev/null
+++ b/boost-1.54.0-math-unused_typedef-2.patch
@@ -0,0 +1,52 @@
+Index: boost/math/special_functions/airy.hpp
+===================================================================
+--- boost/math/special_functions/airy.hpp (revision 85073)
++++ boost/math/special_functions/airy.hpp (working copy)
+@@ -340,13 +340,6 @@
+ inline T airy_ai_zero(unsigned m, const Policy& pol)
+ {
+ BOOST_FPU_EXCEPTION_GUARD
+- typedef typename policies::evaluation<T, Policy>::type value_type;
+- typedef typename policies::normalise<
+- Policy,
+- policies::promote_float<false>,
+- policies::promote_double<false>,
+- policies::discrete_quantile<>,
+- policies::assert_undefined<> >::type forwarding_policy;
+ BOOST_STATIC_ASSERT_MSG(false == std::numeric_limits<T>::is_integer, "Airy return type must be a floating-point type.");
+ return policies::checked_narrowing_cast<T, Policy>(detail::airy_ai_zero_imp<T>(m, pol), "boost::math::airy_ai_zero<%1%>(unsigned)");
+ }
+@@ -388,13 +381,6 @@
+ inline T airy_bi_zero(unsigned m, const Policy& pol)
+ {
+ BOOST_FPU_EXCEPTION_GUARD
+- typedef typename policies::evaluation<T, Policy>::type value_type;
+- typedef typename policies::normalise<
+- Policy,
+- policies::promote_float<false>,
+- policies::promote_double<false>,
+- policies::discrete_quantile<>,
+- policies::assert_undefined<> >::type forwarding_policy;
+ BOOST_STATIC_ASSERT_MSG(false == std::numeric_limits<T>::is_integer, "Airy return type must be a floating-point type.");
+ return policies::checked_narrowing_cast<T, Policy>(detail::airy_bi_zero_imp<T>(m, pol), "boost::math::airy_bi_zero<%1%>(unsigned)");
+ }
+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-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<status> communicator::iprobe(in
+
+ status communicator::probe(int source, int tag) const
+ {
+- typedef optional<status> 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<T>
+ #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<T>::value > -1
+-# else
+- sizeof(T) > -1
+-# endif
+- };
+-#endif
++#elif defined(__EDG_VERSION__)
++ enum { n = aux::dependent_unsigned<T>::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-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-pool-test_linking.patch b/boost-1.54.0-pool-test_linking.patch
new file mode 100644
index 0000000..0f749f7
--- /dev/null
+++ b/boost-1.54.0-pool-test_linking.patch
@@ -0,0 +1,31 @@
+diff -up ./libs/pool/test/Jamfile.v2~ ./libs/pool/test/Jamfile.v2
+--- ./libs/pool/test/Jamfile.v2~ 2011-08-02 19:04:07.000000000 +0200
++++ ./libs/pool/test/Jamfile.v2 2013-08-22 11:48:34.907287286 +0200
+@@ -24,17 +24,17 @@ run valgrind_config_check.cpp : : : <tes
+ explicit valgrind_config_check ;
+
+ test-suite pool :
+- [ run test_simple_seg_storage.cpp ]
+- [ run test_pool_alloc.cpp ]
+- [ run pool_msvc_compiler_bug_test.cpp ]
+- [ run test_msvc_mem_leak_detect.cpp ]
+- [ run test_bug_3349.cpp ]
+- [ run test_bug_4960.cpp ]
+- [ run test_bug_1252.cpp ]
+- [ run test_bug_2696.cpp ]
+- [ run test_bug_5526.cpp ]
++ [ run test_simple_seg_storage.cpp : : : <library>/boost/system//boost_system ]
++ [ run test_pool_alloc.cpp : : : <library>/boost/system//boost_system ]
++ [ run pool_msvc_compiler_bug_test.cpp : : : <library>/boost/system//boost_system ]
++ [ run test_msvc_mem_leak_detect.cpp : : : <library>/boost/system//boost_system ]
++ [ run test_bug_3349.cpp : : : <library>/boost/system//boost_system ]
++ [ run test_bug_4960.cpp : : : <library>/boost/system//boost_system ]
++ [ run test_bug_1252.cpp : : : <library>/boost/system//boost_system ]
++ [ run test_bug_2696.cpp : : : <library>/boost/system//boost_system ]
++ [ run test_bug_5526.cpp : : : <library>/boost/system//boost_system ]
+ [ run test_threading.cpp : : : <threading>multi <library>/boost/thread//boost_thread <toolset>gcc:<cxxflags>-Wno-attributes <toolset>gcc:<cxxflags>-Wno-missing-field-initializers ]
+- [ run ../example/time_pool_alloc.cpp ]
++ [ run ../example/time_pool_alloc.cpp : : : <library>/boost/system//boost_system ]
+ [ compile test_poisoned_macros.cpp ]
+
+ #
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<Ch> & settings
+ )
+ {
+- typedef typename std::basic_string<Ch> 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<Ch> Str;
+ typedef typename Ptree::const_iterator It;
+
+ bool want_pretty = settings.indent_count > 0;
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 <class T>
+ inline PyObject* registry_to_python_value<T>::operator()(argument_type x) const
+ {
+- typedef converter::registered<argument_type> r;
+ # if BOOST_WORKAROUND(__GNUC__, < 3)
++ typedef converter::registered<argument_type> r;
+ // suppresses an ICE, somehow
+ (void)r::converters;
+ # endif
+
+Diff finished. Tue Jul 23 16:19:05 2013
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-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<GrammarT> helper_base_t;
+ typedef grammar_helper_list<GrammarT> 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<typename MatchAT, typename MatchBT>
+ 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-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-thread-cond_variable_shadow.patch b/boost-1.54.0-thread-cond_variable_shadow.patch
new file mode 100644
index 0000000..ba8cd01
--- /dev/null
+++ b/boost-1.54.0-thread-cond_variable_shadow.patch
@@ -0,0 +1,104 @@
+diff -up ./boost/thread/pthread/condition_variable.hpp~ ./boost/thread/pthread/condition_variable.hpp
+--- ./boost/thread/pthread/condition_variable.hpp~ 2013-01-14 18:17:50.000000000 +0100
++++ ./boost/thread/pthread/condition_variable.hpp 2013-08-22 11:47:48.330596804 +0200
+@@ -200,15 +200,15 @@ namespace boost
+
+ #if defined BOOST_THREAD_USES_DATETIME
+ template<typename lock_type>
+- bool timed_wait(lock_type& m,boost::system_time const& wait_until)
++ bool timed_wait(lock_type& m,boost::system_time const& a_wait_until)
+ {
+- struct timespec const timeout=detail::to_timespec(wait_until);
++ struct timespec const timeout=detail::to_timespec(a_wait_until);
+ return do_wait_until(m, timeout);
+ }
+ template<typename lock_type>
+- bool timed_wait(lock_type& m,xtime const& wait_until)
++ bool timed_wait(lock_type& m,xtime const& a_wait_until)
+ {
+- return timed_wait(m,system_time(wait_until));
++ return timed_wait(m,system_time(a_wait_until));
+ }
+
+ template<typename lock_type,typename duration_type>
+@@ -218,20 +218,20 @@ namespace boost
+ }
+
+ template<typename lock_type,typename predicate_type>
+- bool timed_wait(lock_type& m,boost::system_time const& wait_until,predicate_type pred)
++ bool timed_wait(lock_type& m,boost::system_time const& a_wait_until,predicate_type pred)
+ {
+ while (!pred())
+ {
+- if(!timed_wait(m, wait_until))
++ if(!timed_wait(m, a_wait_until))
+ return pred();
+ }
+ return true;
+ }
+
+ template<typename lock_type,typename predicate_type>
+- bool timed_wait(lock_type& m,xtime const& wait_until,predicate_type pred)
++ bool timed_wait(lock_type& m,xtime const& a_wait_until,predicate_type pred)
+ {
+- return timed_wait(m,system_time(wait_until),pred);
++ return timed_wait(m,system_time(a_wait_until),pred);
+ }
+
+ template<typename lock_type,typename duration_type,typename predicate_type>
+diff -up ./boost/thread/pthread/condition_variable_fwd.hpp~ ./boost/thread/pthread/condition_variable_fwd.hpp
+--- ./boost/thread/pthread/condition_variable_fwd.hpp~ 2013-01-14 18:17:50.000000000 +0100
++++ ./boost/thread/pthread/condition_variable_fwd.hpp 2013-08-22 11:46:26.579385366 +0200
+@@ -98,21 +98,21 @@ namespace boost
+ #if defined BOOST_THREAD_USES_DATETIME
+ inline bool timed_wait(
+ unique_lock<mutex>& m,
+- boost::system_time const& wait_until)
++ boost::system_time const& a_wait_until)
+ {
+ #if defined BOOST_THREAD_WAIT_BUG
+- struct timespec const timeout=detail::to_timespec(wait_until + BOOST_THREAD_WAIT_BUG);
++ struct timespec const timeout=detail::to_timespec(a_wait_until + BOOST_THREAD_WAIT_BUG);
+ return do_wait_until(m, timeout);
+ #else
+- struct timespec const timeout=detail::to_timespec(wait_until);
++ struct timespec const timeout=detail::to_timespec(a_wait_until);
+ return do_wait_until(m, timeout);
+ #endif
+ }
+ bool timed_wait(
+ unique_lock<mutex>& m,
+- xtime const& wait_until)
++ xtime const& a_wait_until)
+ {
+- return timed_wait(m,system_time(wait_until));
++ return timed_wait(m,system_time(a_wait_until));
+ }
+
+ template<typename duration_type>
+@@ -126,11 +126,11 @@ namespace boost
+ template<typename predicate_type>
+ bool timed_wait(
+ unique_lock<mutex>& m,
+- boost::system_time const& wait_until,predicate_type pred)
++ boost::system_time const& a_wait_until,predicate_type pred)
+ {
+ while (!pred())
+ {
+- if(!timed_wait(m, wait_until))
++ if(!timed_wait(m, a_wait_until))
+ return pred();
+ }
+ return true;
+@@ -139,9 +139,9 @@ namespace boost
+ template<typename predicate_type>
+ bool timed_wait(
+ unique_lock<mutex>& m,
+- xtime const& wait_until,predicate_type pred)
++ xtime const& a_wait_until,predicate_type pred)
+ {
+- return timed_wait(m,system_time(wait_until),pred);
++ return timed_wait(m,system_time(a_wait_until),pred);
+ }
+
+ template<typename duration_type,typename predicate_type>
diff --git a/boost-1.54.0-thread-link_atomic.patch b/boost-1.54.0-thread-link_atomic.patch
new file mode 100644
index 0000000..9bbb8f3
--- /dev/null
+++ b/boost-1.54.0-thread-link_atomic.patch
@@ -0,0 +1,51 @@
+diff -Nurp boost_1_54_0/libs/thread/build/has_atomic_flag_lockfree_test.cpp boost_1_54_0.pm/libs/thread/build/has_atomic_flag_lockfree_test.cpp
+--- boost_1_54_0/libs/thread/build/has_atomic_flag_lockfree_test.cpp 1970-01-01 01:00:00.000000000 +0100
++++ boost_1_54_0.pm/libs/thread/build/has_atomic_flag_lockfree_test.cpp 2013-08-23 19:51:52.706329968 +0200
+@@ -0,0 +1,14 @@
++// Copyright (c) 2013, Petr Machata, Red Hat Inc.
++//
++// Use modification and distribution are subject to the boost Software
++// License, Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
++
++#include "../../../boost/atomic.hpp"
++#include "../../../boost/static_assert.hpp"
++
++int
++main(int argc, char *argv[])
++{
++ BOOST_STATIC_ASSERT(BOOST_ATOMIC_FLAG_LOCK_FREE);
++ return 0;
++}
+diff -Nurp boost_1_54_0/libs/thread/build/Jamfile.v2 boost_1_54_0.pm/libs/thread/build/Jamfile.v2
+--- boost_1_54_0/libs/thread/build/Jamfile.v2 2013-06-15 12:35:45.000000000 +0200
++++ boost_1_54_0.pm/libs/thread/build/Jamfile.v2 2013-08-23 19:52:30.018613408 +0200
+@@ -36,6 +36,7 @@ import os ;
+ import feature ;
+ import indirect ;
+ import path ;
++import configure ;
+
+ project boost/thread
+ : source-location ../src
+@@ -140,6 +141,8 @@ local rule default_threadapi ( )
+ feature.feature threadapi : pthread win32 : propagated ;
+ feature.set-default threadapi : [ default_threadapi ] ;
+
++exe has_atomic_flag_lockfree : ../build/has_atomic_flag_lockfree_test.cpp ;
++
+ rule tag ( name : type ? : property-set )
+ {
+ local result = $(name) ;
+@@ -248,6 +251,12 @@ rule requirements ( properties * )
+ {
+ local result ;
+
++ if ! [ configure.builds has_atomic_flag_lockfree
++ : $(properties) : "lockfree boost::atomic_flag" ]
++ {
++ result += <library>/boost/atomic//boost_atomic ;
++ }
++
+ if <threadapi>pthread in $(properties)
+ {
+ result += <define>BOOST_THREAD_POSIX ;
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-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<BidiIter> access;
+- typedef typename iterator_value<BidiIter>::type char_type;
+ match_results<BidiIter> &what = *state.context_.results_ptr_;
+ BOOST_ASSERT(0 != re.regex_id());
+
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/boost.git/commitdiff/647f39b293bde17ba3cf3a5d5ff661a6acff71fd
More information about the pld-cvs-commit
mailing list