summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2016-05-27 16:24:33 +0200
committerMichael Stahl <mstahl@redhat.com>2016-05-30 15:34:51 +0000
commite5c6574f5df8d2a5914beb03dce604beb8d62ee8 (patch)
tree0fe9ab88e396c5f1c5d1ee91be48690cb110bd85
parent0002249b15d0d3aa89b7eafe0791921c0427abea (diff)
boost: warning-patch-ectomy
Upstream maintainers, with few exceptions, generally don't care about warnings in boost headers, hence we re-base our warning fix patches on every upgrade, which is a pointless exercise in frustration. Most of the patches are for GCC/Clang warnings, where we could use -isystem to suppress the warnings (with corresponding hacks in the build system, because -isystem also disables dependency generation) - but clang-cl does not support -isystem. So generate a bunch of wrapper headers into external/boost/include, that disable all known warnings and use #include_next to get the real boost header. This allows us to get rid of most of the existing patches. There is however a bug in GCC that preprocessor warnings like -Wundef cannot be disabled with a #pragma, so those patches cannot be removed. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53431 Change-Id: I2992bf4a463015f1140489df867bd80757f84541 Reviewed-on: https://gerrit.libreoffice.org/25563 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
-rw-r--r--RepositoryExternal.mk1
-rw-r--r--configure.ac7
-rw-r--r--external/boost/UnpackedTarball_boost.mk46
-rw-r--r--external/boost/boost.3780.aliasing.patch23
-rw-r--r--external/boost/boost.6369.warnings.patch305
-rw-r--r--external/boost/boost.date_time.Wshadow.warnings.patch19
-rw-r--r--external/boost/boost.date_time.Wshadow.warnings.patch.1117
-rw-r--r--external/boost/boost.gcc47679.patch63
-rw-r--r--external/boost/boost.multi_array.Wunused-local-typedefs.warnings.patch21
-rw-r--r--external/boost/boost.preprocessor.Wundef.warnings.patch125
-rw-r--r--external/boost/boost.property_tree.Wshadow.warnings.patch.1320
-rw-r--r--external/boost/boost.spirit.Wshadow.warnings.patch71
-rw-r--r--external/boost/boost.spirit.Wunused-local-typedefs.warnings.patch28
-rw-r--r--external/boost/boost.spirit.Wunused-parameter.warnings.patch47
-rw-r--r--external/boost/boost.type_index.Wundef.warnings.patch12
-rw-r--r--external/boost/boost.wdeprecated-auto_ptr.patch.046
-rw-r--r--external/boost/boost.wunused.patch20
-rw-r--r--external/boost/boost_1_44_0-unused-parameters.patch1169
-rw-r--r--external/boost/boost_1_59_0.iostreams.wshadow.patch197
-rw-r--r--external/boost/boost_1_59_0.iostreams.wunused.patch12
-rw-r--r--external/boost/boost_1_59_0.multi_array.wshadow.patch484
-rw-r--r--external/boost/boost_1_59_0.property_tree.wreturn-type.patch2
-rw-r--r--external/boost/boost_1_59_0.property_tree.wshadow.patch104
-rw-r--r--external/boost/boost_1_59_0.property_tree.wtype-limits.patch19
-rw-r--r--external/boost/boost_1_59_0.rational.wshadow.patch12
-rw-r--r--[-rwxr-xr-x]external/boost/clang-cl.patch.00
-rw-r--r--external/boost/fallthrough.patch.046
-rw-r--r--external/boost/gcc6-warnings.patch.065
-rw-r--r--external/boost/include/boost/algorithm/string.hpp23
-rw-r--r--external/boost/include/boost/algorithm/string/case_conv.hpp23
-rw-r--r--external/boost/include/boost/algorithm/string/classification.hpp23
-rw-r--r--external/boost/include/boost/algorithm/string/predicate.hpp23
-rw-r--r--external/boost/include/boost/algorithm/string/split.hpp23
-rw-r--r--external/boost/include/boost/any.hpp23
-rw-r--r--external/boost/include/boost/archive/iterators/base64_from_binary.hpp23
-rw-r--r--external/boost/include/boost/archive/iterators/binary_from_base64.hpp23
-rw-r--r--external/boost/include/boost/archive/iterators/remove_whitespace.hpp23
-rw-r--r--external/boost/include/boost/archive/iterators/transform_width.hpp23
-rw-r--r--external/boost/include/boost/asio.hpp23
-rw-r--r--external/boost/include/boost/assign.hpp23
-rw-r--r--external/boost/include/boost/bind.hpp23
-rw-r--r--external/boost/include/boost/cast.hpp23
-rw-r--r--external/boost/include/boost/checked_delete.hpp23
-rw-r--r--external/boost/include/boost/container/deque.hpp23
-rw-r--r--external/boost/include/boost/cstdint.hpp23
-rw-r--r--external/boost/include/boost/current_function.hpp23
-rw-r--r--external/boost/include/boost/date_time.hpp23
-rw-r--r--external/boost/include/boost/date_time/posix_time/posix_time.hpp23
-rw-r--r--external/boost/include/boost/enable_shared_from_this.hpp23
-rw-r--r--external/boost/include/boost/filesystem.hpp23
-rw-r--r--external/boost/include/boost/filesystem/path.hpp23
-rw-r--r--external/boost/include/boost/foreach.hpp23
-rw-r--r--external/boost/include/boost/format.hpp23
-rw-r--r--external/boost/include/boost/function.hpp23
-rw-r--r--external/boost/include/boost/functional/hash.hpp23
-rw-r--r--external/boost/include/boost/fusion/adapted/std_pair.hpp23
-rw-r--r--external/boost/include/boost/fusion/include/adapt_struct.hpp23
-rw-r--r--external/boost/include/boost/intrusive/circular_list_algorithms.hpp23
-rw-r--r--external/boost/include/boost/intrusive_ptr.hpp23
-rw-r--r--external/boost/include/boost/io/ios_state.hpp23
-rw-r--r--external/boost/include/boost/iostreams/device/file_descriptor.hpp23
-rw-r--r--external/boost/include/boost/iostreams/filter/gzip.hpp23
-rw-r--r--external/boost/include/boost/iostreams/filtering_stream.hpp23
-rw-r--r--external/boost/include/boost/iterator/iterator_facade.hpp23
-rw-r--r--external/boost/include/boost/lexical_cast.hpp23
-rw-r--r--external/boost/include/boost/logic/tribool.hpp23
-rw-r--r--external/boost/include/boost/make_shared.hpp23
-rw-r--r--external/boost/include/boost/math/special_functions/expm1.hpp23
-rw-r--r--external/boost/include/boost/math/special_functions/log1p.hpp23
-rw-r--r--external/boost/include/boost/math/special_functions/sinc.hpp23
-rw-r--r--external/boost/include/boost/multi_array.hpp23
-rw-r--r--external/boost/include/boost/noncopyable.hpp23
-rw-r--r--external/boost/include/boost/none.hpp23
-rw-r--r--external/boost/include/boost/numeric/conversion/cast.hpp23
-rw-r--r--external/boost/include/boost/operators.hpp23
-rw-r--r--external/boost/include/boost/optional.hpp23
-rw-r--r--external/boost/include/boost/optional/optional.hpp23
-rw-r--r--external/boost/include/boost/preprocessor/stringize.hpp23
-rw-r--r--external/boost/include/boost/program_options.hpp23
-rw-r--r--external/boost/include/boost/property_tree/json_parser.hpp23
-rw-r--r--external/boost/include/boost/property_tree/ptree.hpp23
-rw-r--r--external/boost/include/boost/ptr_container/ptr_vector.hpp23
-rw-r--r--external/boost/include/boost/range/adaptor/reversed.hpp23
-rw-r--r--external/boost/include/boost/range/iterator_range.hpp23
-rw-r--r--external/boost/include/boost/rational.hpp23
-rw-r--r--external/boost/include/boost/ref.hpp23
-rw-r--r--external/boost/include/boost/scoped_array.hpp23
-rw-r--r--external/boost/include/boost/scoped_ptr.hpp23
-rw-r--r--external/boost/include/boost/shared_array.hpp23
-rw-r--r--external/boost/include/boost/shared_ptr.hpp23
-rw-r--r--external/boost/include/boost/spirit.hpp23
-rw-r--r--external/boost/include/boost/spirit/include/classic.hpp23
-rw-r--r--external/boost/include/boost/spirit/include/classic_core.hpp23
-rw-r--r--external/boost/include/boost/spirit/include/classic_error_handling.hpp23
-rw-r--r--external/boost/include/boost/spirit/include/classic_file_iterator.hpp23
-rw-r--r--external/boost/include/boost/spirit/include/classic_utility.hpp23
-rw-r--r--external/boost/include/boost/spirit/include/classic_while.hpp23
-rw-r--r--external/boost/include/boost/spirit/include/phoenix.hpp23
-rw-r--r--external/boost/include/boost/spirit/include/qi.hpp23
-rw-r--r--external/boost/include/boost/spirit/include/qi_attr.hpp23
-rw-r--r--external/boost/include/boost/spirit/include/qi_lit.hpp23
-rw-r--r--external/boost/include/boost/spirit/include/qi_optional.hpp23
-rw-r--r--external/boost/include/boost/spirit/include/qi_parse_attr.hpp23
-rw-r--r--external/boost/include/boost/spirit/include/qi_sequence.hpp23
-rw-r--r--external/boost/include/boost/spirit/include/qi_symbols.hpp23
-rw-r--r--external/boost/include/boost/static_assert.hpp23
-rw-r--r--external/boost/include/boost/system/error_code.hpp23
-rw-r--r--external/boost/include/boost/unordered_map.hpp23
-rw-r--r--external/boost/include/boost/unordered_set.hpp23
-rw-r--r--external/boost/include/boost/uuid/sha1.hpp23
-rw-r--r--external/boost/include/boost/uuid/uuid_generators.hpp23
-rw-r--r--external/boost/include/boost/uuid/uuid_io.hpp23
-rw-r--r--external/boost/include/boost/variant.hpp23
-rw-r--r--external/boost/include/boost/variant/recursive_variant.hpp23
-rw-r--r--external/boost/include/boost/version.hpp23
-rw-r--r--external/boost/include/boost/weak_ptr.hpp23
-rw-r--r--external/boost/rtti.patch.02
-rw-r--r--external/boost/ubsan.patch.02
118 files changed, 2051 insertions, 3358 deletions
diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index 8d03be3009e5..938bfc07dfc4 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -715,6 +715,7 @@ endef
define gb_LinkTarget__use_boost_headers
$(call gb_LinkTarget_use_unpacked,$(1),boost)
$(call gb_LinkTarget_set_include,$(1),\
+ $(if $(or $(COM_IS_CLANG),$(filter GCC,$(COM))),-I$(SRCDIR)/external/boost/include) \
-I$(call gb_UnpackedTarball_get_dir,boost) \
$$(INCLUDE) \
)
diff --git a/configure.ac b/configure.ac
index 97056e744cea..70fabf4818a8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -8838,7 +8838,12 @@ else
AC_MSG_RESULT([internal])
BUILD_TYPE="$BUILD_TYPE BOOST"
SYSTEM_BOOST=
- BOOST_CPPFLAGS="-I${WORKDIR}/UnpackedTarball/boost"
+ if test "${COM}" = "GCC" -o "${COM_IS_CLANG}" = "TRUE"; then
+ # use warning-suppressing wrapper headers
+ BOOST_CPPFLAGS="-I$(SRCDIR)/external/boost/include -I${WORKDIR}/UnpackedTarball/boost"
+ else
+ BOOST_CPPFLAGS="-I${WORKDIR}/UnpackedTarball/boost"
+ fi
fi
AC_SUBST(SYSTEM_BOOST)
diff --git a/external/boost/UnpackedTarball_boost.mk b/external/boost/UnpackedTarball_boost.mk
index bedfc9ad4810..60d4a0385d15 100644
--- a/external/boost/UnpackedTarball_boost.mk
+++ b/external/boost/UnpackedTarball_boost.mk
@@ -8,77 +8,35 @@
#
boost_patches :=
-#https://svn.boost.org/trac/boost/ticket/3780
-boost_patches += boost.3780.aliasing.patch
-#http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47679
-boost_patches += boost.gcc47679.patch
-#https://svn.boost.org/trac/boost/ticket/6369
-boost_patches += boost.6369.warnings.patch
+
#https://svn.boost.org/trac/boost/ticket/6142
boost_patches += boost.6142.warnings.patch.1
-# https://svn.boost.org/trac/boost/ticket/9882
-boost_patches += boost.date_time.Wshadow.warnings.patch
# https://svn.boost.org/trac/boost/ticket/9885
boost_patches += boost.multi_array.C4510.warnings.patch
-# https://svn.boost.org/trac/boost/ticket/9888
-boost_patches += boost.multi_array.Wunused-local-typedefs.warnings.patch
-# https://svn.boost.org/trac/boost/ticket/9891
-boost_patches += boost.preprocessor.Wundef.warnings.patch
-# https://svn.boost.org/trac/boost/ticket/9892
-boost_patches += boost.property_tree.Wshadow.warnings.patch.1
-# https://svn.boost.org/trac/boost/ticket/9900
-boost_patches += boost.spirit.Wshadow.warnings.patch
-# https://svn.boost.org/trac/boost/ticket/9901
-boost_patches += boost.spirit.Wunused-local-typedefs.warnings.patch
-# to-do: submit upstream
-boost_patches += boost.spirit.Wunused-parameter.warnings.patch
-boost_patches += boost.date_time.Wshadow.warnings.patch.1
# https://svn.boost.org/trac/boost/ticket/9903
boost_patches += boost.utility.Wundef.warnings.patch
-# Help static analysis tools (see SAL_UNUSED_PARAMETER in sal/types.h):
-ifeq (GCC,$(COM))
-boost_patches += boost_1_44_0-unused-parameters.patch
-endif
+boost_patches += boost.type_index.Wundef.warnings.patch
boost_patches += boost.auto_link.patch
-boost_patches += boost.wunused.patch
boost_patches += ubsan.patch.0
boost_patches += rtti.patch.0
# https://svn.boost.org/trac/boost/ticket/11505
boost_patches += boost_1_59_0.mpl.config.wundef.patch
-# https://svn.boost.org/trac/boost/ticket/11502
-boost_patches += boost_1_59_0.property_tree.wtype-limits.patch
-# https://svn.boost.org/trac/boost/ticket/11507
-boost_patches += boost_1_59_0.property_tree.wshadow.patch
-# https://svn.boost.org/trac/boost/ticket/11508
-boost_patches += boost_1_59_0.iostreams.wshadow.patch
-# https://svn.boost.org/trac/boost/ticket/11509
-boost_patches += boost_1_59_0.iostreams.wunused.patch
-# https://svn.boost.org/trac/boost/ticket/11506
-boost_patches += boost_1_59_0.rational.wshadow.patch
-# https://svn.boost.org/trac/boost/ticket/11511
-boost_patches += boost_1_59_0.multi_array.wshadow.patch
# https://svn.boost.org/trac/boost/ticket/11501
boost_patches += boost_1_59_0.property_tree.wreturn-type.patch
boost_patches += clang-cl.patch.0
-boost_patches += gcc6-warnings.patch.0
# This patch was already applied upstream
# https://github.com/boostorg/math/commit/74ff2db959c5fa75bec770c41ed2951a740fe936
boost_patches += boost_1_60_0.quadmath.patch
boost_patches += boost_1_60_0.undef.warning.patch
-boost_patches += boost.wdeprecated-auto_ptr.patch.0
boost_patches += boost_1_60_0.android.undef.warning.patch
-# <https://github.com/boostorg/format/pull/11> "BOOST_FALLTHROUGH to silence
-# Clang -Wimplicit-fallthrough":
-boost_patches += fallthrough.patch.0
-
$(eval $(call gb_UnpackedTarball_UnpackedTarball,boost))
$(eval $(call gb_UnpackedTarball_set_tarball,boost,$(BOOST_TARBALL)))
diff --git a/external/boost/boost.3780.aliasing.patch b/external/boost/boost.3780.aliasing.patch
deleted file mode 100644
index d9cff1b7aa99..000000000000
--- a/external/boost/boost.3780.aliasing.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- misc/boost_1_44_0/boost/function/function_base.hpp
-+++ misc/build/boost_1_44_0/boost/function/function_base.hpp
-@@ -314,17 +322,17 @@
- {
- if (op == clone_functor_tag || op == move_functor_tag) {
- const functor_type* in_functor =
-- reinterpret_cast<const functor_type*>(&in_buffer.data);
-+ static_cast<const functor_type*>(static_cast<void*>(&in_buffer.data));
- new (reinterpret_cast<void*>(&out_buffer.data)) functor_type(*in_functor);
-
- if (op == move_functor_tag) {
-- functor_type* f = reinterpret_cast<functor_type*>(&in_buffer.data);
-+ functor_type* f = static_cast<functor_type*>(static_cast<void*>(&in_buffer.data));
- (void)f; // suppress warning about the value of f not being used (MSVC)
- f->~Functor();
- }
- } else if (op == destroy_functor_tag) {
- // Some compilers (Borland, vc6, ...) are unhappy with ~functor_type.
-- functor_type* f = reinterpret_cast<functor_type*>(&out_buffer.data);
-+ functor_type* f = static_cast<functor_type*>(static_cast<void*>(&out_buffer.data));
- (void)f; // suppress warning about the value of f not being used (MSVC)
- f->~Functor();
- } else if (op == check_functor_type_tag) {
diff --git a/external/boost/boost.6369.warnings.patch b/external/boost/boost.6369.warnings.patch
deleted file mode 100644
index 545f9c09c8c4..000000000000
--- a/external/boost/boost.6369.warnings.patch
+++ /dev/null
@@ -1,305 +0,0 @@
---- misc/boost_1_44_0/boost/date_time/gregorian/gregorian_io.hpp 2012-01-08 20:16:41.321760852 +0000
-+++ misc/build/boost_1_44_0/boost/date_time/gregorian/gregorian_io.hpp 2012-01-08 20:25:43.233484675 +0000
-@@ -77,14 +77,14 @@
- typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false);
- if (strm_sentry) {
- try {
-- typedef typename date_time::date_input_facet<date, CharT> date_input_facet;
-+ typedef typename date_time::date_input_facet<date, CharT> lcl_date_input_facet;
-
- std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
-- if(std::has_facet<date_input_facet>(is.getloc())) {
-- std::use_facet<date_input_facet>(is.getloc()).get(sit, str_end, is, d);
-+ if(std::has_facet<lcl_date_input_facet>(is.getloc())) {
-+ std::use_facet<lcl_date_input_facet>(is.getloc()).get(sit, str_end, is, d);
- }
- else {
-- date_input_facet* f = new date_input_facet();
-+ lcl_date_input_facet* f = new lcl_date_input_facet();
- std::locale l = std::locale(is.getloc(), f);
- is.imbue(l);
- f->get(sit, str_end, is, d);
-@@ -138,14 +138,14 @@
- typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false);
- if (strm_sentry) {
- try {
-- typedef typename date_time::date_input_facet<date, CharT> date_input_facet;
-+ typedef typename date_time::date_input_facet<date, CharT> lcl_date_input_facet;
-
- std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
-- if(std::has_facet<date_input_facet>(is.getloc())) {
-- std::use_facet<date_input_facet>(is.getloc()).get(sit, str_end, is, dd);
-+ if(std::has_facet<lcl_date_input_facet>(is.getloc())) {
-+ std::use_facet<lcl_date_input_facet>(is.getloc()).get(sit, str_end, is, dd);
- }
- else {
-- date_input_facet* f = new date_input_facet();
-+ lcl_date_input_facet* f = new lcl_date_input_facet();
- std::locale l = std::locale(is.getloc(), f);
- is.imbue(l);
- f->get(sit, str_end, is, dd);
-@@ -202,14 +202,14 @@
- typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false);
- if (strm_sentry) {
- try {
-- typedef typename date_time::date_input_facet<date, CharT> date_input_facet;
-+ typedef typename date_time::date_input_facet<date, CharT> lcl_date_input_facet;
-
- std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
-- if(std::has_facet<date_input_facet>(is.getloc())) {
-- std::use_facet<date_input_facet>(is.getloc()).get(sit, str_end, is, dp);
-+ if(std::has_facet<lcl_date_input_facet>(is.getloc())) {
-+ std::use_facet<lcl_date_input_facet>(is.getloc()).get(sit, str_end, is, dp);
- }
- else {
-- date_input_facet* f = new date_input_facet();
-+ lcl_date_input_facet* f = new lcl_date_input_facet();
- std::locale l = std::locale(is.getloc(), f);
- is.imbue(l);
- f->get(sit, str_end, is, dp);
-@@ -261,14 +261,14 @@
- typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false);
- if (strm_sentry) {
- try {
-- typedef typename date_time::date_input_facet<date, CharT> date_input_facet;
-+ typedef typename date_time::date_input_facet<date, CharT> lcl_date_input_facet;
-
- std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
-- if(std::has_facet<date_input_facet>(is.getloc())) {
-- std::use_facet<date_input_facet>(is.getloc()).get(sit, str_end, is, m);
-+ if(std::has_facet<lcl_date_input_facet>(is.getloc())) {
-+ std::use_facet<lcl_date_input_facet>(is.getloc()).get(sit, str_end, is, m);
- }
- else {
-- date_input_facet* f = new date_input_facet();
-+ lcl_date_input_facet* f = new lcl_date_input_facet();
- std::locale l = std::locale(is.getloc(), f);
- is.imbue(l);
- f->get(sit, str_end, is, m);
-@@ -318,14 +318,14 @@
- typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false);
- if (strm_sentry) {
- try {
-- typedef typename date_time::date_input_facet<date, CharT> date_input_facet;
-+ typedef typename date_time::date_input_facet<date, CharT> lcl_date_input_facet;
-
- std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
-- if(std::has_facet<date_input_facet>(is.getloc())) {
-- std::use_facet<date_input_facet>(is.getloc()).get(sit, str_end, is, wd);
-+ if(std::has_facet<lcl_date_input_facet>(is.getloc())) {
-+ std::use_facet<lcl_date_input_facet>(is.getloc()).get(sit, str_end, is, wd);
- }
- else {
-- date_input_facet* f = new date_input_facet();
-+ lcl_date_input_facet* f = new lcl_date_input_facet();
- std::locale l = std::locale(is.getloc(), f);
- is.imbue(l);
- f->get(sit, str_end, is, wd);
-@@ -359,14 +359,14 @@
- typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false);
- if (strm_sentry) {
- try {
-- typedef typename date_time::date_input_facet<date, CharT> date_input_facet;
-+ typedef typename date_time::date_input_facet<date, CharT> lcl_date_input_facet;
-
- std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
-- if(std::has_facet<date_input_facet>(is.getloc())) {
-- std::use_facet<date_input_facet>(is.getloc()).get(sit, str_end, is, gd);
-+ if(std::has_facet<lcl_date_input_facet>(is.getloc())) {
-+ std::use_facet<lcl_date_input_facet>(is.getloc()).get(sit, str_end, is, gd);
- }
- else {
-- date_input_facet* f = new date_input_facet();
-+ lcl_date_input_facet* f = new lcl_date_input_facet();
- std::locale l = std::locale(is.getloc(), f);
- is.imbue(l);
- f->get(sit, str_end, is, gd);
-@@ -400,14 +400,14 @@
- typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false);
- if (strm_sentry) {
- try {
-- typedef typename date_time::date_input_facet<date, CharT> date_input_facet;
-+ typedef typename date_time::date_input_facet<date, CharT> lcl_date_input_facet;
-
- std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
-- if(std::has_facet<date_input_facet>(is.getloc())) {
-- std::use_facet<date_input_facet>(is.getloc()).get(sit, str_end, is, gy);
-+ if(std::has_facet<lcl_date_input_facet>(is.getloc())) {
-+ std::use_facet<lcl_date_input_facet>(is.getloc()).get(sit, str_end, is, gy);
- }
- else {
-- date_input_facet* f = new date_input_facet();
-+ lcl_date_input_facet* f = new lcl_date_input_facet();
- std::locale l = std::locale(is.getloc(), f);
- is.imbue(l);
- f->get(sit, str_end, is, gy);
-@@ -458,14 +458,14 @@
- typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false);
- if (strm_sentry) {
- try {
-- typedef typename date_time::date_input_facet<date, CharT> date_input_facet;
-+ typedef typename date_time::date_input_facet<date, CharT> lcl_date_input_facet;
-
- std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
-- if(std::has_facet<date_input_facet>(is.getloc())) {
-- std::use_facet<date_input_facet>(is.getloc()).get(sit, str_end, is, pd);
-+ if(std::has_facet<lcl_date_input_facet>(is.getloc())) {
-+ std::use_facet<lcl_date_input_facet>(is.getloc()).get(sit, str_end, is, pd);
- }
- else {
-- date_input_facet* f = new date_input_facet();
-+ lcl_date_input_facet* f = new lcl_date_input_facet();
- std::locale l = std::locale(is.getloc(), f);
- is.imbue(l);
- f->get(sit, str_end, is, pd);
-@@ -515,14 +515,14 @@
- typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false);
- if (strm_sentry) {
- try {
-- typedef typename date_time::date_input_facet<date, CharT> date_input_facet;
-+ typedef typename date_time::date_input_facet<date, CharT> lcl_date_input_facet;
-
- std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
-- if(std::has_facet<date_input_facet>(is.getloc())) {
-- std::use_facet<date_input_facet>(is.getloc()).get(sit, str_end, is, nday);
-+ if(std::has_facet<lcl_date_input_facet>(is.getloc())) {
-+ std::use_facet<lcl_date_input_facet>(is.getloc()).get(sit, str_end, is, nday);
- }
- else {
-- date_input_facet* f = new date_input_facet();
-+ lcl_date_input_facet* f = new lcl_date_input_facet();
- std::locale l = std::locale(is.getloc(), f);
- is.imbue(l);
- f->get(sit, str_end, is, nday);
-@@ -573,14 +573,14 @@
- typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false);
- if (strm_sentry) {
- try {
-- typedef typename date_time::date_input_facet<date, CharT> date_input_facet;
-+ typedef typename date_time::date_input_facet<date, CharT> lcl_date_input_facet;
-
- std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
-- if(std::has_facet<date_input_facet>(is.getloc())) {
-- std::use_facet<date_input_facet>(is.getloc()).get(sit, str_end, is, fkd);
-+ if(std::has_facet<lcl_date_input_facet>(is.getloc())) {
-+ std::use_facet<lcl_date_input_facet>(is.getloc()).get(sit, str_end, is, fkd);
- }
- else {
-- date_input_facet* f = new date_input_facet();
-+ lcl_date_input_facet* f = new lcl_date_input_facet();
- std::locale l = std::locale(is.getloc(), f);
- is.imbue(l);
- f->get(sit, str_end, is, fkd);
-@@ -631,14 +631,14 @@
- typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false);
- if (strm_sentry) {
- try {
-- typedef typename date_time::date_input_facet<date, CharT> date_input_facet;
-+ typedef typename date_time::date_input_facet<date, CharT> lcl_date_input_facet;
-
- std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
-- if(std::has_facet<date_input_facet>(is.getloc())) {
-- std::use_facet<date_input_facet>(is.getloc()).get(sit, str_end, is, lkd);
-+ if(std::has_facet<lcl_date_input_facet>(is.getloc())) {
-+ std::use_facet<lcl_date_input_facet>(is.getloc()).get(sit, str_end, is, lkd);
- }
- else {
-- date_input_facet* f = new date_input_facet();
-+ lcl_date_input_facet* f = new lcl_date_input_facet();
- std::locale l = std::locale(is.getloc(), f);
- is.imbue(l);
- f->get(sit, str_end, is, lkd);
-@@ -690,14 +690,14 @@
- typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false);
- if (strm_sentry) {
- try {
-- typedef typename date_time::date_input_facet<date, CharT> date_input_facet;
-+ typedef typename date_time::date_input_facet<date, CharT> lcl_date_input_facet;
-
- std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
-- if(std::has_facet<date_input_facet>(is.getloc())) {
-- std::use_facet<date_input_facet>(is.getloc()).get(sit, str_end, is, fka);
-+ if(std::has_facet<lcl_date_input_facet>(is.getloc())) {
-+ std::use_facet<lcl_date_input_facet>(is.getloc()).get(sit, str_end, is, fka);
- }
- else {
-- date_input_facet* f = new date_input_facet();
-+ lcl_date_input_facet* f = new lcl_date_input_facet();
- std::locale l = std::locale(is.getloc(), f);
- is.imbue(l);
- f->get(sit, str_end, is, fka);
-@@ -749,14 +749,14 @@
- typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false);
- if (strm_sentry) {
- try {
-- typedef typename date_time::date_input_facet<date, CharT> date_input_facet;
-+ typedef typename date_time::date_input_facet<date, CharT> lcl_date_input_facet;
-
- std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
-- if(std::has_facet<date_input_facet>(is.getloc())) {
-- std::use_facet<date_input_facet>(is.getloc()).get(sit, str_end, is, fkb);
-+ if(std::has_facet<lcl_date_input_facet>(is.getloc())) {
-+ std::use_facet<lcl_date_input_facet>(is.getloc()).get(sit, str_end, is, fkb);
- }
- else {
-- date_input_facet* f = new date_input_facet();
-+ lcl_date_input_facet* f = new lcl_date_input_facet();
- std::locale l = std::locale(is.getloc(), f);
- is.imbue(l);
- f->get(sit, str_end, is, fkb);
---- misc/boost_1_44_0/boost/date_time/posix_time/posix_time_io.hpp 2012-01-08 20:16:41.342761072 +0000
-+++ misc/build/boost_1_44_0/boost/date_time/posix_time/posix_time_io.hpp 2012-01-09 09:47:25.426730124 +0000
-@@ -75,13 +75,13 @@
- typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false);
- if (strm_sentry) {
- try {
-- typedef typename date_time::time_input_facet<ptime, CharT> time_input_facet;
-+ typedef typename date_time::time_input_facet<ptime, CharT> lcl_time_input_facet;
- std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
-- if(std::has_facet<time_input_facet>(is.getloc())) {
-- std::use_facet<time_input_facet>(is.getloc()).get(sit, str_end, is, pt);
-+ if(std::has_facet<lcl_time_input_facet>(is.getloc())) {
-+ std::use_facet<lcl_time_input_facet>(is.getloc()).get(sit, str_end, is, pt);
- }
- else {
-- time_input_facet* f = new time_input_facet();
-+ lcl_time_input_facet* f = new lcl_time_input_facet();
- std::locale l = std::locale(is.getloc(), f);
- is.imbue(l);
- f->get(sit, str_end, is, pt);
-@@ -143,13 +143,13 @@
- typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false);
- if (strm_sentry) {
- try {
-- typedef typename date_time::time_input_facet<ptime, CharT> time_input_facet;
-+ typedef typename date_time::time_input_facet<ptime, CharT> lcl_time_input_facet;
- std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
-- if(std::has_facet<time_input_facet>(is.getloc())) {
-- std::use_facet<time_input_facet>(is.getloc()).get(sit, str_end, is, tp);
-+ if(std::has_facet<lcl_time_input_facet>(is.getloc())) {
-+ std::use_facet<lcl_time_input_facet>(is.getloc()).get(sit, str_end, is, tp);
- }
- else {
-- time_input_facet* f = new time_input_facet();
-+ lcl_time_input_facet* f = new lcl_time_input_facet();
- std::locale l = std::locale(is.getloc(), f);
- is.imbue(l);
- f->get(sit, str_end, is, tp);
-@@ -208,13 +208,13 @@
- typename std::basic_istream<CharT, Traits>::sentry strm_sentry(is, false);
- if (strm_sentry) {
- try {
-- typedef typename date_time::time_input_facet<ptime, CharT> time_input_facet;
-+ typedef typename date_time::time_input_facet<ptime, CharT> lcl_time_input_facet;
- std::istreambuf_iterator<CharT,Traits> sit(is), str_end;
-- if(std::has_facet<time_input_facet>(is.getloc())) {
-- std::use_facet<time_input_facet>(is.getloc()).get(sit, str_end, is, td);
-+ if(std::has_facet<lcl_time_input_facet>(is.getloc())) {
-+ std::use_facet<lcl_time_input_facet>(is.getloc()).get(sit, str_end, is, td);
- }
- else {
-- time_input_facet* f = new time_input_facet();
-+ lcl_time_input_facet* f = new lcl_time_input_facet();
- std::locale l = std::locale(is.getloc(), f);
- is.imbue(l);
- f->get(sit, str_end, is, td);
diff --git a/external/boost/boost.date_time.Wshadow.warnings.patch b/external/boost/boost.date_time.Wshadow.warnings.patch
deleted file mode 100644
index 578159a2998a..000000000000
--- a/external/boost/boost.date_time.Wshadow.warnings.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- misc/boost_1_44_0/boost/date_time/date_names_put.hpp 2008-02-27 21:00:24.000000000 +0100
-+++ misc/build/boost_1_44_0/boost/date_time/date_names_put.hpp 2011-10-05 16:58:58.413575307 +0200
-@@ -218,14 +218,14 @@
- const charT* const weekday_long_names[],
- charT separator_char = '-',
- ymd_order_spec order_spec = ymd_order_iso,
-- month_format_spec month_format = month_as_short_string) :
-+ month_format_spec month_format_ = month_as_short_string) :
- month_short_names_(month_short_names),
- month_long_names_(month_long_names),
- special_value_names_(special_value_names),
- weekday_short_names_(weekday_short_names),
- weekday_long_names_(weekday_long_names),
- order_spec_(order_spec),
-- month_format_spec_(month_format)
-+ month_format_spec_(month_format_)
- {
- separator_char_[0] = separator_char;
- separator_char_[1] = '\0';
diff --git a/external/boost/boost.date_time.Wshadow.warnings.patch.1 b/external/boost/boost.date_time.Wshadow.warnings.patch.1
deleted file mode 100644
index 4b7a91188ff0..000000000000
--- a/external/boost/boost.date_time.Wshadow.warnings.patch.1
+++ /dev/null
@@ -1,117 +0,0 @@
---- a/boost/date_time/time_facet.hpp
-+++ b/boost/date_time/time_facet.hpp
-@@ -439,31 +439,31 @@
- time_dur_arg.get_rep().as_special());
- }
-
-- string_type format(m_time_duration_format);
-+ string_type local_format(m_time_duration_format);
- if (time_dur_arg.is_negative()) {
- // replace %- with minus sign. Should we use the numpunct facet?
-- boost::algorithm::replace_all(format,
-+ boost::algorithm::replace_all(local_format,
- duration_sign_negative_only,
- negative_sign);
- // remove all the %+ in the string with '-'
-- boost::algorithm::replace_all(format,
-+ boost::algorithm::replace_all(local_format,
- duration_sign_always,
- negative_sign);
- }
- else { //duration is positive
- // remove all the %- combos from the string
-- boost::algorithm::erase_all(format, duration_sign_negative_only);
-+ boost::algorithm::erase_all(local_format, duration_sign_negative_only);
- // remove all the %+ in the string with '+'
-- boost::algorithm::replace_all(format,
-+ boost::algorithm::replace_all(local_format,
- duration_sign_always,
- positive_sign);
- }
-
- // %T and %R have to be replaced here since they are not standard
-- boost::algorithm::replace_all(format,
-+ boost::algorithm::replace_all(local_format,
- boost::as_literal(formats_type::full_24_hour_time_format),
- boost::as_literal(formats_type::full_24_hour_time_expanded_format));
-- boost::algorithm::replace_all(format,
-+ boost::algorithm::replace_all(local_format,
- boost::as_literal(formats_type::short_24_hour_time_format),
- boost::as_literal(formats_type::short_24_hour_time_expanded_format));
-
-@@ -476,22 +476,22 @@
- * here ourself.
- */
- string_type hours_str;
-- if (format.find(unrestricted_hours_format) != string_type::npos) {
-+ if (local_format.find(unrestricted_hours_format) != string_type::npos) {
- hours_str = hours_as_string(time_dur_arg);
-- boost::algorithm::replace_all(format, unrestricted_hours_format, hours_str);
-+ boost::algorithm::replace_all(local_format, unrestricted_hours_format, hours_str);
- }
- // We still have to process restricted hours format specifier. In order to
- // support parseability of durations in ISO format (%H%M%S), we'll have to
- // restrict the stringified hours length to 2 characters.
-- if (format.find(hours_format) != string_type::npos) {
-+ if (local_format.find(hours_format) != string_type::npos) {
- if (hours_str.empty())
- hours_str = hours_as_string(time_dur_arg);
- BOOST_ASSERT(hours_str.length() <= 2);
-- boost::algorithm::replace_all(format, hours_format, hours_str);
-+ boost::algorithm::replace_all(local_format, hours_format, hours_str);
- }
-
- string_type frac_str;
-- if (format.find(seconds_with_fractional_seconds_format) != string_type::npos) {
-+ if (local_format.find(seconds_with_fractional_seconds_format) != string_type::npos) {
- // replace %s with %S.nnn
- frac_str =
- fractional_seconds_as_string(time_dur_arg, false);
-@@ -500,21 +500,21 @@
- string_type replace_string(seconds_format);
- replace_string += sep;
- replace_string += frac_str;
-- boost::algorithm::replace_all(format,
-+ boost::algorithm::replace_all(local_format,
- seconds_with_fractional_seconds_format,
- replace_string);
- }
-- if (format.find(fractional_seconds_format) != string_type::npos) {
-+ if (local_format.find(fractional_seconds_format) != string_type::npos) {
- // replace %f with nnnnnnn
- if (!frac_str.size()) {
- frac_str = fractional_seconds_as_string(time_dur_arg, false);
- }
-- boost::algorithm::replace_all(format,
-+ boost::algorithm::replace_all(local_format,
- fractional_seconds_format,
- frac_str);
- }
-
-- if (format.find(fractional_seconds_or_none_format) != string_type::npos) {
-+ if (local_format.find(fractional_seconds_or_none_format) != string_type::npos) {
- // replace %F with nnnnnnn or nothing if fs == 0
- frac_str =
- fractional_seconds_as_string(time_dur_arg, true);
-@@ -523,18 +523,18 @@
- string_type replace_string;
- replace_string += sep;
- replace_string += frac_str;
-- boost::algorithm::replace_all(format,
-+ boost::algorithm::replace_all(local_format,
- fractional_seconds_or_none_format,
- replace_string);
- }
- else {
-- boost::algorithm::erase_all(format,
-+ boost::algorithm::erase_all(local_format,
- fractional_seconds_or_none_format);
- }
- }
-
- return this->do_put_tm(next_arg, ios_arg, fill_arg,
-- to_tm(time_dur_arg), format);
-+ to_tm(time_dur_arg), local_format);
- }
-
- OutItrT put(OutItrT next, std::ios_base& ios_arg,
diff --git a/external/boost/boost.gcc47679.patch b/external/boost/boost.gcc47679.patch
deleted file mode 100644
index 06cbd0f10729..000000000000
--- a/external/boost/boost.gcc47679.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-diff -ru boost.orig/boost/optional/optional.hpp boost/boost/optional/optional.hpp
---- foo/misc/boost.orig/boost/optional/optional.hpp 2015-07-18 11:27:36.168127029 +0200
-+++ foo/misc/boost/boost/optional/optional.hpp 2015-07-18 20:36:13.777997833 +0200
-@@ -53,6 +53,8 @@
-
- #include <boost/optional/optional_fwd.hpp>
-
-+#include <string.h>
-+
- #if (defined BOOST_NO_CXX11_RVALUE_REFERENCES) || (defined BOOST_OPTIONAL_CONFIG_NO_RVALUE_REFERENCES)
- #define BOOST_OPTIONAL_DETAIL_NO_RVALUE_REFERENCES
- #endif
-@@ -134,6 +136,11 @@
-
- public:
-
-+ aligned_storage()
-+ {
-+ memset(&dummy_, 0, sizeof(dummy_));
-+ }
-+
- #if defined(BOOST_OPTIONAL_DETAIL_USE_ATTRIBUTE_MAY_ALIAS)
- void const* address() const { return &dummy_; }
- void * address() { return &dummy_; }
-diff -ru boost.orig/boost/spirit/home/classic/core/primitives/impl/numerics.ipp boost/boost/spirit/home/classic/core/primitives/impl/numerics.ipp
---- foo/misc/boost.orig/boost/spirit/home/classic/core/primitives/impl/numerics.ipp 2015-07-18 11:27:36.169127029 +0200
-+++ foo/misc/boost/boost/spirit/home/classic/core/primitives/impl/numerics.ipp 2015-07-18 20:34:32.110998976 +0200
-@@ -218,6 +218,19 @@
- }
- }
- };
-+ template <int Radix>
-+ struct negative_accumulate<unsigned char, Radix>
-+ {
-+ // Use this accumulator if number is negative
-+ static bool add(unsigned char& n, unsigned digit)
-+ {
-+ n *= Radix;
-+ if (n < digit)
-+ return false;
-+ n -= digit;
-+ return true;
-+ }
-+ };
-
- template <int MaxDigits>
- inline bool allow_more_digits(std::size_t i)
-diff -ru boost.orig/boost/utility/compare_pointees.hpp boost/boost/utility/compare_pointees.hpp
---- foo/misc/boost.orig/boost/utility/compare_pointees.hpp 2015-02-27 07:26:11.000000000 +0100
-+++ foo/misc/boost/boost/utility/compare_pointees.hpp 2015-07-18 20:20:41.388988458 +0200
-@@ -29,7 +29,11 @@
- inline
- bool equal_pointees ( OptionalPointee const& x, OptionalPointee const& y )
- {
-- return (!x) != (!y) ? false : ( !x ? true : (*x) == (*y) ) ;
-+ if (!x && !y)
-+ return true;
-+ if (!x || !y)
-+ return false;
-+ return (*x) == (*y);
- }
-
- template<class OptionalPointee>
diff --git a/external/boost/boost.multi_array.Wunused-local-typedefs.warnings.patch b/external/boost/boost.multi_array.Wunused-local-typedefs.warnings.patch
deleted file mode 100644
index 3edcfccbce40..000000000000
--- a/external/boost/boost.multi_array.Wunused-local-typedefs.warnings.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -ru boost.orig/boost/multi_array/concept_checks.hpp boost/boost/multi_array/concept_checks.hpp
---- foo/misc/boost.orig/boost/multi_array/concept_checks.hpp 2015-07-18 21:20:26.353996242 +0200
-+++ foo/misc/boost/boost/multi_array/concept_checks.hpp 2015-07-18 21:21:05.202995805 +0200
-@@ -39,8 +39,6 @@
-
- template <typename Array, typename IdxGen, typename Call_Type>
- static void call(Array& a, const IdxGen& idgen, Call_Type c) {
-- typedef typename Array::index_range index_range;
-- typedef typename Array::index index;
- idgen_helper<N-1>::call(a,idgen[c],c);
- }
- };
-@@ -50,8 +48,6 @@
-
- template <typename Array, typename IdxGen, typename Call_Type>
- static void call(Array& a, const IdxGen& idgen, Call_Type) {
-- typedef typename Array::index_range index_range;
-- typedef typename Array::index index;
- a[ idgen ];
- }
- };
diff --git a/external/boost/boost.preprocessor.Wundef.warnings.patch b/external/boost/boost.preprocessor.Wundef.warnings.patch
deleted file mode 100644
index 26d28454b4e5..000000000000
--- a/external/boost/boost.preprocessor.Wundef.warnings.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-diff -ur boost.orig/boost/preprocessor/tuple/detail/is_single_return.hpp boost/boost/preprocessor/tuple/detail/is_single_return.hpp
---- foo/misc/boost.orig/boost/preprocessor/tuple/detail/is_single_return.hpp 2015-03-28 09:19:20.000000000 +0100
-+++ foo/misc/boost/boost/preprocessor/tuple/detail/is_single_return.hpp 2015-07-16 07:57:29.881981198 +0200
-@@ -16,7 +16,7 @@
- #
- # /* BOOST_PP_TUPLE_IS_SINGLE_RETURN */
- #
--# if BOOST_PP_VARIADICS && BOOST_PP_VARIADICS_MSVC
-+# if BOOST_PP_VARIADICS && defined(BOOST_PP_VARIADICS_MSVC) && BOOST_PP_VARIADICS_MSVC
- # include <boost/preprocessor/control/iif.hpp>
- # include <boost/preprocessor/facilities/is_1.hpp>
- # include <boost/preprocessor/tuple/size.hpp>
-diff -ur boost.orig/boost/preprocessor/tuple/elem.hpp boost/boost/preprocessor/tuple/elem.hpp
---- foo/misc/boost.orig/boost/preprocessor/tuple/elem.hpp 2015-03-28 09:19:20.000000000 +0100
-+++ foo/misc/boost/boost/preprocessor/tuple/elem.hpp 2015-07-16 07:49:08.509986833 +0200
-@@ -24,7 +24,7 @@
- # include <boost/preprocessor/tuple/detail/is_single_return.hpp>
- #
- # if BOOST_PP_VARIADICS
--# if BOOST_PP_VARIADICS_MSVC
-+# if defined(BOOST_PP_VARIADICS_MSVC) && BOOST_PP_VARIADICS_MSVC
- # define BOOST_PP_TUPLE_ELEM(...) BOOST_PP_TUPLE_ELEM_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_ELEM_O_, __VA_ARGS__), (__VA_ARGS__))
- # define BOOST_PP_TUPLE_ELEM_I(m, args) BOOST_PP_TUPLE_ELEM_II(m, args)
- # define BOOST_PP_TUPLE_ELEM_II(m, args) BOOST_PP_CAT(m ## args,)
-diff -ur boost.orig/boost/preprocessor/tuple/rem.hpp boost/boost/preprocessor/tuple/rem.hpp
---- foo/misc/boost.orig/boost/preprocessor/tuple/rem.hpp 2015-03-28 09:19:20.000000000 +0100
-+++ foo/misc/boost/boost/preprocessor/tuple/rem.hpp 2015-07-16 07:59:19.084979971 +0200
-@@ -22,7 +22,7 @@
- # /* BOOST_PP_REM */
- #
- # if BOOST_PP_VARIADICS
--# if BOOST_PP_VARIADICS_MSVC
-+# if defined(BOOST_PP_VARIADICS_MSVC) && BOOST_PP_VARIADICS_MSVC
- /* To be used internally when __VA_ARGS__ could be empty ( or is a single element ) */
- # define BOOST_PP_REM_CAT(...) BOOST_PP_CAT(__VA_ARGS__,)
- # endif
-@@ -36,8 +36,8 @@
- /*
- VC++8.0 cannot handle the variadic version of BOOST_PP_TUPLE_REM(size)
- */
--# if BOOST_PP_VARIADICS && !(BOOST_PP_VARIADICS_MSVC && _MSC_VER <= 1400)
--# if BOOST_PP_VARIADICS_MSVC
-+# if BOOST_PP_VARIADICS && !(defined(BOOST_PP_VARIADICS_MSVC) && BOOST_PP_VARIADICS_MSVC && _MSC_VER <= 1400)
-+# if defined(BOOST_PP_VARIADICS_MSVC) && BOOST_PP_VARIADICS_MSVC
- /* To be used internally when the size could be 0 ( or 1 ) */
- # define BOOST_PP_TUPLE_REM_CAT(size) BOOST_PP_REM_CAT
- # endif
-@@ -120,7 +120,7 @@
- # /* BOOST_PP_TUPLE_REM_CTOR */
- #
- # if BOOST_PP_VARIADICS
--# if BOOST_PP_VARIADICS_MSVC
-+# if defined(BOOST_PP_VARIADICS_MSVC) && BOOST_PP_VARIADICS_MSVC
- # define BOOST_PP_TUPLE_REM_CTOR(...) BOOST_PP_TUPLE_REM_CTOR_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_REM_CTOR_O_, __VA_ARGS__), (__VA_ARGS__))
- # define BOOST_PP_TUPLE_REM_CTOR_I(m, args) BOOST_PP_TUPLE_REM_CTOR_II(m, args)
- # define BOOST_PP_TUPLE_REM_CTOR_II(m, args) BOOST_PP_CAT(m ## args,)
-diff -ur boost.orig/boost/preprocessor/tuple/size.hpp boost/boost/preprocessor/tuple/size.hpp
---- foo/misc/boost.orig/boost/preprocessor/tuple/size.hpp 2015-03-28 09:19:20.000000000 +0100
-+++ foo/misc/boost/boost/preprocessor/tuple/size.hpp 2015-07-16 07:58:30.296980519 +0200
-@@ -18,7 +18,7 @@
- # include <boost/preprocessor/variadic/size.hpp>
- #
- # if BOOST_PP_VARIADICS
--# if BOOST_PP_VARIADICS_MSVC
-+# if defined(BOOST_PP_VARIADICS_MSVC) && BOOST_PP_VARIADICS_MSVC
- # define BOOST_PP_TUPLE_SIZE(tuple) BOOST_PP_CAT(BOOST_PP_VARIADIC_SIZE tuple,)
- # else
- # define BOOST_PP_TUPLE_SIZE(tuple) BOOST_PP_VARIADIC_SIZE tuple
-diff -ur boost.orig/boost/preprocessor/tuple/to_list.hpp boost/boost/preprocessor/tuple/to_list.hpp
---- foo/misc/boost.orig/boost/preprocessor/tuple/to_list.hpp 2015-03-28 09:19:20.000000000 +0100
-+++ foo/misc/boost/boost/preprocessor/tuple/to_list.hpp 2015-07-16 07:51:25.693985291 +0200
-@@ -24,7 +24,7 @@
- # /* BOOST_PP_TUPLE_TO_LIST */
- #
- # if BOOST_PP_VARIADICS
--# if BOOST_PP_VARIADICS_MSVC
-+# if defined(BOOST_PP_VARIADICS_MSVC) && BOOST_PP_VARIADICS_MSVC
- # define BOOST_PP_TUPLE_TO_LIST(...) BOOST_PP_TUPLE_TO_LIST_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_TO_LIST_O_, __VA_ARGS__), (__VA_ARGS__))
- # define BOOST_PP_TUPLE_TO_LIST_I(m, args) BOOST_PP_TUPLE_TO_LIST_II(m, args)
- # define BOOST_PP_TUPLE_TO_LIST_II(m, args) BOOST_PP_CAT(m ## args,)
-diff -ur boost.orig/boost/preprocessor/variadic/elem.hpp boost/boost/preprocessor/variadic/elem.hpp
---- foo/misc/boost.orig/boost/preprocessor/variadic/elem.hpp 2015-03-28 09:19:20.000000000 +0100
-+++ foo/misc/boost/boost/preprocessor/variadic/elem.hpp 2015-07-16 07:54:03.513983517 +0200
-@@ -19,7 +19,7 @@
- # /* BOOST_PP_VARIADIC_ELEM */
- #
- # if BOOST_PP_VARIADICS
--# if BOOST_PP_VARIADICS_MSVC
-+# if defined(BOOST_PP_VARIADICS_MSVC) && BOOST_PP_VARIADICS_MSVC
- # define BOOST_PP_VARIADIC_ELEM(n, ...) BOOST_PP_VARIADIC_ELEM_I(n,__VA_ARGS__)
- # define BOOST_PP_VARIADIC_ELEM_I(n, ...) BOOST_PP_CAT(BOOST_PP_CAT(BOOST_PP_VARIADIC_ELEM_, n)(__VA_ARGS__,),)
- # else
-diff -ur boost.orig/boost/preprocessor/variadic/size.hpp boost/boost/preprocessor/variadic/size.hpp
---- foo/misc/boost.orig/boost/preprocessor/variadic/size.hpp 2015-03-28 09:19:20.000000000 +0100
-+++ foo/misc/boost/boost/preprocessor/variadic/size.hpp 2015-07-16 07:52:45.303984396 +0200
-@@ -19,7 +19,7 @@
- # /* BOOST_PP_VARIADIC_SIZE */
- #
- # if BOOST_PP_VARIADICS
--# if BOOST_PP_VARIADICS_MSVC
-+# if defined(BOOST_PP_VARIADICS_MSVC) && BOOST_PP_VARIADICS_MSVC
- # define BOOST_PP_VARIADIC_SIZE(...) BOOST_PP_CAT(BOOST_PP_VARIADIC_SIZE_I(__VA_ARGS__, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,),)
- # else
- # define BOOST_PP_VARIADIC_SIZE(...) BOOST_PP_VARIADIC_SIZE_I(__VA_ARGS__, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,)
-diff -ur boost.orig/boost/tuple/detail/tuple_basic.hpp boost/boost/tuple/detail/tuple_basic.hpp
---- foo/misc/boost.orig/boost/tuple/detail/tuple_basic.hpp 2014-05-12 01:27:34.000000000 +0200
-+++ foo/misc/boost/boost/tuple/detail/tuple_basic.hpp 2015-07-16 08:00:29.269979182 +0200
-@@ -41,7 +41,7 @@
-
- #include "boost/detail/workaround.hpp" // needed for BOOST_WORKAROUND
-
--#if BOOST_GCC >= 40700
-+#if defined(BOOST_GCC) && BOOST_GCC >= 40700
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wunused-local-typedefs"
- #endif
-@@ -979,7 +979,7 @@
- } // end of namespace boost
-
-
--#if BOOST_GCC >= 40700
-+#if defined(BOOST_GCC) && BOOST_GCC >= 40700
- #pragma GCC diagnostic pop
- #endif
-
diff --git a/external/boost/boost.property_tree.Wshadow.warnings.patch.1 b/external/boost/boost.property_tree.Wshadow.warnings.patch.1
deleted file mode 100644
index 64d020bc65e9..000000000000
--- a/external/boost/boost.property_tree.Wshadow.warnings.patch.1
+++ /dev/null
@@ -1,320 +0,0 @@
-diff -ru boost.orig/boost/property_tree/detail/json_parser_error.hpp boost/boost/property_tree/detail/json_parser_error.hpp
---- boost.orig/boost/property_tree/detail/json_parser_error.hpp 2015-07-07 14:20:48.000000000 +0200
-+++ boost/boost/property_tree/detail/json_parser_error.hpp 2015-07-19 11:16:35.699957767 +0200
-@@ -20,10 +20,10 @@
- class json_parser_error: public file_parser_error
- {
- public:
-- json_parser_error(const std::string &message,
-- const std::string &filename,
-- unsigned long line):
-- file_parser_error(message, filename, line)
-+ json_parser_error(const std::string &message_,
-+ const std::string &filename_,
-+ unsigned long line_):
-+ file_parser_error(message_, filename_, line_)
- {
- }
- };
-diff -ru boost.orig/boost/property_tree/detail/ptree_implementation.hpp boost/boost/property_tree/detail/ptree_implementation.hpp
---- boost.orig/boost/property_tree/detail/ptree_implementation.hpp 2015-07-07 14:20:48.000000000 +0200
-+++ boost/boost/property_tree/detail/ptree_implementation.hpp 2015-07-18 23:33:04.165906803 +0200
-@@ -568,48 +568,48 @@
-
- template<class K, class D, class C>
- basic_ptree<K, D, C> &
-- basic_ptree<K, D, C>::get_child(const path_type &path)
-+ basic_ptree<K, D, C>::get_child(const path_type &path_)
- {
-- path_type p(path);
-+ path_type p(path_);
- self_type *n = walk_path(p);
- if (!n) {
-- BOOST_PROPERTY_TREE_THROW(ptree_bad_path("No such node", path));
-+ BOOST_PROPERTY_TREE_THROW(ptree_bad_path("No such node", path_));
- }
- return *n;
- }
-
- template<class K, class D, class C> inline
- const basic_ptree<K, D, C> &
-- basic_ptree<K, D, C>::get_child(const path_type &path) const
-+ basic_ptree<K, D, C>::get_child(const path_type &path_) const
- {
-- return const_cast<self_type*>(this)->get_child(path);
-+ return const_cast<self_type*>(this)->get_child(path_);
- }
-
- template<class K, class D, class C> inline
- basic_ptree<K, D, C> &
-- basic_ptree<K, D, C>::get_child(const path_type &path,
-+ basic_ptree<K, D, C>::get_child(const path_type &path_,
- self_type &default_value)
- {
-- path_type p(path);
-+ path_type p(path_);
- self_type *n = walk_path(p);
- return n ? *n : default_value;
- }
-
- template<class K, class D, class C> inline
- const basic_ptree<K, D, C> &
-- basic_ptree<K, D, C>::get_child(const path_type &path,
-+ basic_ptree<K, D, C>::get_child(const path_type &path_,
- const self_type &default_value) const
- {
-- return const_cast<self_type*>(this)->get_child(path,
-+ return const_cast<self_type*>(this)->get_child(path_,
- const_cast<self_type&>(default_value));
- }
-
-
- template<class K, class D, class C>
- optional<basic_ptree<K, D, C> &>
-- basic_ptree<K, D, C>::get_child_optional(const path_type &path)
-+ basic_ptree<K, D, C>::get_child_optional(const path_type &path_)
- {
-- path_type p(path);
-+ path_type p(path_);
- self_type *n = walk_path(p);
- if (!n) {
- return optional<self_type&>();
-@@ -619,9 +619,9 @@
-
- template<class K, class D, class C>
- optional<const basic_ptree<K, D, C> &>
-- basic_ptree<K, D, C>::get_child_optional(const path_type &path) const
-+ basic_ptree<K, D, C>::get_child_optional(const path_type &path_) const
- {
-- path_type p(path);
-+ path_type p(path_);
- self_type *n = walk_path(p);
- if (!n) {
- return optional<const self_type&>();
-@@ -631,10 +631,10 @@
-
- template<class K, class D, class C>
- basic_ptree<K, D, C> &
-- basic_ptree<K, D, C>::put_child(const path_type &path,
-+ basic_ptree<K, D, C>::put_child(const path_type &path_,
- const self_type &value)
- {
-- path_type p(path);
-+ path_type p(path_);
- self_type &parent = force_path(p);
- // Got the parent. Now get the correct child.
- key_type fragment = p.reduce();
-@@ -649,10 +649,10 @@
-
- template<class K, class D, class C>
- basic_ptree<K, D, C> &
-- basic_ptree<K, D, C>::add_child(const path_type &path,
-+ basic_ptree<K, D, C>::add_child(const path_type &path_,
- const self_type &value)
- {
-- path_type p(path);
-+ path_type p(path_);
- self_type &parent = force_path(p);
- // Got the parent.
- key_type fragment = p.reduce();
-@@ -738,26 +738,26 @@
- template<class K, class D, class C>
- template<class Type, class Translator> inline
- typename boost::enable_if<detail::is_translator<Translator>, Type>::type
-- basic_ptree<K, D, C>::get(const path_type &path,
-+ basic_ptree<K, D, C>::get(const path_type &path_,
- Translator tr) const
- {
-- return get_child(path).BOOST_NESTED_TEMPLATE get_value<Type>(tr);
-+ return get_child(path_).BOOST_NESTED_TEMPLATE get_value<Type>(tr);
- }
-
- template<class K, class D, class C>
- template<class Type> inline
-- Type basic_ptree<K, D, C>::get(const path_type &path) const
-+ Type basic_ptree<K, D, C>::get(const path_type &path_) const
- {
-- return get_child(path).BOOST_NESTED_TEMPLATE get_value<Type>();
-+ return get_child(path_).BOOST_NESTED_TEMPLATE get_value<Type>();
- }
-
- template<class K, class D, class C>
- template<class Type, class Translator> inline
-- Type basic_ptree<K, D, C>::get(const path_type &path,
-+ Type basic_ptree<K, D, C>::get(const path_type &path_,
- const Type &default_value,
- Translator tr) const
- {
-- return get_optional<Type>(path, tr).get_value_or(default_value);
-+ return get_optional<Type>(path_, tr).get_value_or(default_value);
- }
-
- template<class K, class D, class C>
-@@ -767,18 +767,18 @@
- std::basic_string<Ch>
- >::type
- basic_ptree<K, D, C>::get(
-- const path_type &path, const Ch *default_value, Translator tr) const
-+ const path_type &path_, const Ch *default_value, Translator tr) const
- {
-- return get<std::basic_string<Ch>, Translator>(path, default_value, tr);
-+ return get<std::basic_string<Ch>, Translator>(path_, default_value, tr);
- }
-
- template<class K, class D, class C>
- template<class Type> inline
- typename boost::disable_if<detail::is_translator<Type>, Type>::type
-- basic_ptree<K, D, C>::get(const path_type &path,
-+ basic_ptree<K, D, C>::get(const path_type &path_,
- const Type &default_value) const
- {
-- return get_optional<Type>(path).get_value_or(default_value);
-+ return get_optional<Type>(path_).get_value_or(default_value);
- }
-
- template<class K, class D, class C>
-@@ -788,17 +788,17 @@
- std::basic_string<Ch>
- >::type
- basic_ptree<K, D, C>::get(
-- const path_type &path, const Ch *default_value) const
-+ const path_type &path_, const Ch *default_value) const
- {
-- return get< std::basic_string<Ch> >(path, default_value);
-+ return get< std::basic_string<Ch> >(path_, default_value);
- }
-
- template<class K, class D, class C>
- template<class Type, class Translator>
-- optional<Type> basic_ptree<K, D, C>::get_optional(const path_type &path,
-+ optional<Type> basic_ptree<K, D, C>::get_optional(const path_type &path_,
- Translator tr) const
- {
-- if (optional<const self_type&> child = get_child_optional(path))
-+ if (optional<const self_type&> child = get_child_optional(path_))
- return child.get().
- BOOST_NESTED_TEMPLATE get_value_optional<Type>(tr);
- else
-@@ -808,9 +808,9 @@
- template<class K, class D, class C>
- template<class Type>
- optional<Type> basic_ptree<K, D, C>::get_optional(
-- const path_type &path) const
-+ const path_type &path_) const
- {
-- if (optional<const self_type&> child = get_child_optional(path))
-+ if (optional<const self_type&> child = get_child_optional(path_))
- return child.get().BOOST_NESTED_TEMPLATE get_value_optional<Type>();
- else
- return optional<Type>();
-@@ -839,13 +839,13 @@
- template<class K, class D, class C>
- template<class Type, typename Translator>
- basic_ptree<K, D, C> & basic_ptree<K, D, C>::put(
-- const path_type &path, const Type &value, Translator tr)
-+ const path_type &path_, const Type &value, Translator tr)
- {
-- if(optional<self_type &> child = get_child_optional(path)) {
-+ if(optional<self_type &> child = get_child_optional(path_)) {
- child.get().put_value(value, tr);
- return *child;
- } else {
-- self_type &child2 = put_child(path, self_type());
-+ self_type &child2 = put_child(path_, self_type());
- child2.put_value(value, tr);
- return child2;
- }
-@@ -854,18 +854,18 @@
- template<class K, class D, class C>
- template<class Type> inline
- basic_ptree<K, D, C> & basic_ptree<K, D, C>::put(
-- const path_type &path, const Type &value)
-+ const path_type &path_, const Type &value)
- {
-- return put(path, value,
-+ return put(path_, value,
- typename translator_between<data_type, Type>::type());
- }
-
- template<class K, class D, class C>
- template<class Type, typename Translator> inline
- basic_ptree<K, D, C> & basic_ptree<K, D, C>::add(
-- const path_type &path, const Type &value, Translator tr)
-+ const path_type &path_, const Type &value, Translator tr)
- {
-- self_type &child = add_child(path, self_type());
-+ self_type &child = add_child(path_, self_type());
- child.put_value(value, tr);
- return child;
- }
-@@ -873,9 +873,9 @@
- template<class K, class D, class C>
- template<class Type> inline
- basic_ptree<K, D, C> & basic_ptree<K, D, C>::add(
-- const path_type &path, const Type &value)
-+ const path_type &path_, const Type &value)
- {
-- return add(path, value,
-+ return add(path_, value,
- typename translator_between<data_type, Type>::type());
- }
-
-diff -ru boost.orig/boost/property_tree/string_path.hpp boost/boost/property_tree/string_path.hpp
---- boost.orig/boost/property_tree/string_path.hpp 2015-07-07 14:20:48.000000000 +0200
-+++ boost/boost/property_tree/string_path.hpp 2015-07-18 23:33:41.749906380 +0200
-@@ -88,14 +88,14 @@
- typedef typename String::value_type char_type;
-
- /// Create an empty path.
-- explicit string_path(char_type separator = char_type('.'));
-+ explicit string_path(char_type separator_ = char_type('.'));
- /// Create a path by parsing the given string.
- /// @param value A sequence, possibly with separators, that describes
- /// the path, e.g. "one.two.three".
- /// @param separator The separator used in parsing. Defaults to '.'.
- /// @param tr The translator used by this path to convert the individual
- /// parts to keys.
-- string_path(const String &value, char_type separator = char_type('.'),
-+ string_path(const String &value, char_type separator_ = char_type('.'),
- Translator tr = Translator());
- /// Create a path by parsing the given string.
- /// @param value A zero-terminated array of values. Only use if zero-
-@@ -106,7 +106,7 @@
- /// @param tr The translator used by this path to convert the individual
- /// parts to keys.
- string_path(const char_type *value,
-- char_type separator = char_type('.'),
-+ char_type separator_ = char_type('.'),
- Translator tr = Translator());
-
- // Default copying doesn't do the right thing with the iterator
-@@ -162,23 +162,23 @@
- };
-
- template <typename String, typename Translator> inline
-- string_path<String, Translator>::string_path(char_type separator)
-- : m_separator(separator), m_start(m_value.begin())
-+ string_path<String, Translator>::string_path(char_type separator_)
-+ : m_separator(separator_), m_start(m_value.begin())
- {}
-
- template <typename String, typename Translator> inline
- string_path<String, Translator>::string_path(const String &value,
-- char_type separator,
-+ char_type separator_,
- Translator tr)
-- : m_value(value), m_separator(separator),
-+ : m_value(value), m_separator(separator_),
- m_tr(tr), m_start(m_value.begin())
- {}
-
- template <typename String, typename Translator> inline
- string_path<String, Translator>::string_path(const char_type *value,
-- char_type separator,
-+ char_type separator_,
- Translator tr)
-- : m_value(value), m_separator(separator),
-+ : m_value(value), m_separator(separator_),
- m_tr(tr), m_start(m_value.begin())
- {}
-
diff --git a/external/boost/boost.spirit.Wshadow.warnings.patch b/external/boost/boost.spirit.Wshadow.warnings.patch
deleted file mode 100644
index ab8a526241c8..000000000000
--- a/external/boost/boost.spirit.Wshadow.warnings.patch
+++ /dev/null
@@ -1,71 +0,0 @@
---- misc/boost_1_44_0/boost/spirit/home/classic/symbols/symbols.hpp 2008-06-22 17:05:38.000000000 +0200
-+++ misc/build/boost_1_44_0/boost/spirit/home/classic/symbols/symbols.hpp 2011-02-04 16:39:19.000000000 +0100
-@@ -102,13 +102,13 @@
- {
- typedef typename ScannerT::iterator_t iterator_t;
- iterator_t first = scan.first;
-- typename SetT::search_info result = SetT::find(scan);
-+ typename SetT::search_info result_ = SetT::find(scan);
-
-- if (result.data)
-+ if (result_.data)
- return scan.
- create_match(
-- result.length,
-- symbol_ref_t(*result.data),
-+ result_.length,
-+ symbol_ref_t(*result_.data),
- first,
- scan.first);
- else
---- misc/boost_1_44_0/boost/spirit/home/classic/core/non_terminal/subrule.hpp 2011-02-08 09:24:50.817320629 +0000
-+++ misc/build/boost_1_44_0/boost/spirit/home/classic/core/non_terminal/subrule.hpp 2011-02-08 09:25:20.496639901 +0000
-@@ -210,7 +210,7 @@
- subrule_list<
- subrule_parser<ID2, DefT2, ContextT2>,
- nil_t> >
-- operator,(subrule_parser<ID2, DefT2, ContextT2> const& rhs) const
-+ operator,(subrule_parser<ID2, DefT2, ContextT2> const& rhs_) const
- {
- return subrule_list<
- self_t,
-@@ -220,7 +220,7 @@
- *this,
- subrule_list<
- subrule_parser<ID2, DefT2, ContextT2>, nil_t>(
-- rhs, nil_t()));
-+ rhs_, nil_t()));
- }
-
- typename DefT::embed_t rhs;
---- misc/boost_1_44_0/boost/spirit/home/classic/debug/impl/parser_names.ipp 2012-04-10 21:23:48.599238472 +0100
-+++ misc/build/boost_1_44_0/boost/spirit/home/classic/debug/impl/parser_names.ipp 2012-04-10 21:24:02.752394878 +0100
-@@ -395,13 +395,13 @@
- }
-
- bool register_node(void const *r, char const *name_to_register,
-- bool trace_node)
-+ bool trace_node_)
- {
- if (infos.find(r) != infos.end())
- return false;
-
- return infos.insert(rule_infos::value_type(r,
-- rule_info(std::string(name_to_register), trace_node))
-+ rule_info(std::string(name_to_register), trace_node_))
- ).second;
- }
-
---- a/a/boost/boost/spirit/home/classic/error_handling/exceptions.hpp 2013-05-17 15:57:23.722638823 +0200
-+++ a/a/boost/boost/spirit/home/classic/error_handling/exceptions.hpp 2013-05-17 15:26:32.319247352 +0200
-@@ -126,8 +126,8 @@
- typedef unary<ParserT, parser<self_t> > base_t;
- typedef unary_parser_category parser_category_t;
-
-- assertive_parser(ParserT const& parser, ErrorDescrT descriptor_)
-- : base_t(parser), descriptor(descriptor_) {}
-+ assertive_parser(ParserT const& parser_, ErrorDescrT descriptor_)
-+ : base_t(parser_), descriptor(descriptor_) {}
-
- template <typename ScannerT>
- struct result
diff --git a/external/boost/boost.spirit.Wunused-local-typedefs.warnings.patch b/external/boost/boost.spirit.Wunused-local-typedefs.warnings.patch
deleted file mode 100644
index 78a4cb07b931..000000000000
--- a/external/boost/boost.spirit.Wunused-local-typedefs.warnings.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff -ru boost.orig/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp boost/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp
---- foo/misc/boost.orig/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp 2015-07-18 21:46:45.774978491 +0200
-+++ foo/misc/boost/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp 2015-07-18 21:59:52.339969650 +0200
-@@ -282,12 +282,12 @@
- #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 =
- grammartract_helper_list::do_(self);
-
- # if defined(BOOST_INTEL_CXX_VERSION)
-+ typedef typename helper_list_t::vector_t::reverse_iterator iterator_t;
- for (iterator_t i = helpers.rbegin(); i != helpers.rend(); ++i)
- (*i)->undefine(self);
- # else
-diff -ru boost.orig/boost/spirit/home/classic/error_handling/exceptions.hpp boost/boost/spirit/home/classic/error_handling/exceptions.hpp
---- foo/misc/boost.orig/boost/spirit/home/classic/error_handling/exceptions.hpp 2015-07-18 21:46:45.768978491 +0200
-+++ foo/misc/boost/boost/spirit/home/classic/error_handling/exceptions.hpp 2015-07-18 22:00:33.396969189 +0200
-@@ -140,7 +140,6 @@
- parse(ScannerT const& scan) const
- {
- typedef typename parser_result<ParserT, ScannerT>::type result_t;
-- typedef typename ScannerT::iterator_t iterator_t;
-
- result_t hit = this->subject().parse(scan);
- if (!hit)
diff --git a/external/boost/boost.spirit.Wunused-parameter.warnings.patch b/external/boost/boost.spirit.Wunused-parameter.warnings.patch
deleted file mode 100644
index 3487394694fd..000000000000
--- a/external/boost/boost.spirit.Wunused-parameter.warnings.patch
+++ /dev/null
@@ -1,47 +0,0 @@
---- a/b/boost/boost/spirit/home/classic/debug/impl/parser_names.ipp
-+++ a/b/boost/boost/spirit/home/classic/debug/impl/parser_names.ipp
-@@ -95,7 +95,7 @@
- // from numerics.hpp
- template <typename T, int Radix, unsigned MinDigits, int MaxDigits>
- inline std::string
-- parser_name(uint_parser<T, Radix, MinDigits, MaxDigits> const& p)
-+ parser_name(uint_parser<T, Radix, MinDigits, MaxDigits> const&)
- {
- BOOST_SPIRIT_SSTREAM stream;
- stream << Radix << ", " << MinDigits << ", " << MaxDigits;
-@@ -106,7 +106,7 @@
-
- template <typename T, int Radix, unsigned MinDigits, int MaxDigits>
- inline std::string
-- parser_name(int_parser<T, Radix, MinDigits, MaxDigits> const& p)
-+ parser_name(int_parser<T, Radix, MinDigits, MaxDigits> const&)
- {
- BOOST_SPIRIT_SSTREAM stream;
- stream << Radix << ", " << MinDigits << ", " << MaxDigits;
-@@ -117,7 +117,7 @@
-
- template <typename T, typename RealPoliciesT>
- inline std::string
-- parser_name(real_parser<T, RealPoliciesT> const& p)
-+ parser_name(real_parser<T, RealPoliciesT> const&)
- {
- return std::string("real_parser");
- }
-@@ -218,7 +218,7 @@
- // from parser.hpp
- template <typename DerivedT>
- inline std::string
-- parser_name(parser<DerivedT> const& p)
-+ parser_name(parser<DerivedT> const&)
- {
- return std::string("parser");
- }
-@@ -227,7 +227,7 @@
- // from primitives.hpp
- template <typename DerivedT>
- inline std::string
-- parser_name(char_parser<DerivedT> const &p)
-+ parser_name(char_parser<DerivedT> const &)
- {
- return std::string("char_parser");
- }
diff --git a/external/boost/boost.type_index.Wundef.warnings.patch b/external/boost/boost.type_index.Wundef.warnings.patch
new file mode 100644
index 000000000000..c542924239b7
--- /dev/null
+++ b/external/boost/boost.type_index.Wundef.warnings.patch
@@ -0,0 +1,12 @@
+diff -ru boost.orig/boost/type_index/stl_type_index.hpp boost/boost/type_index/stl_type_index.hpp
+--- foo/misc/boost.orig/boost/type_index/stl_type_index.hpp 2015-06-21 22:16:46.000000000 +0200
++++ foo/misc/boost/boost/type_index/stl_type_index.hpp 2015-07-16 22:55:42.886944806 +0200
+@@ -174,7 +174,7 @@
+
+
+ inline std::size_t stl_type_index::hash_code() const BOOST_NOEXCEPT {
+-#if _MSC_VER > 1600 || (__GNUC__ == 4 && __GNUC_MINOR__ > 5 && defined(__GXX_EXPERIMENTAL_CXX0X__))
++#if (defined(_MSC_VER) && _MSC_VER > 1600) || (__GNUC__ == 4 && __GNUC_MINOR__ > 5 && defined(__GXX_EXPERIMENTAL_CXX0X__))
+ return data_->hash_code();
+ #else
+ return boost::hash_range(raw_name(), raw_name() + std::strlen(raw_name()));
diff --git a/external/boost/boost.wdeprecated-auto_ptr.patch.0 b/external/boost/boost.wdeprecated-auto_ptr.patch.0
deleted file mode 100644
index cf5842929697..000000000000
--- a/external/boost/boost.wdeprecated-auto_ptr.patch.0
+++ /dev/null
@@ -1,46 +0,0 @@
---- boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp.orig2 2015-12-15 18:24:31.318854561 +0100
-+++ boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp 2015-12-15 18:26:19.804853629 +0100
-@@ -11,6 +11,11 @@
- #if !defined BOOST_SPIRIT_GRAMMAR_IPP
- #define BOOST_SPIRIT_GRAMMAR_IPP
-
-+#if defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 406) || defined(__clang__)
-+# pragma GCC diagnostic push
-+# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-+#endif
-+
- #if !defined(BOOST_SPIRIT_SINGLE_GRAMMAR_INSTANCE)
- #include <boost/spirit/home/classic/core/non_terminal/impl/object_with_id.ipp>
- #include <algorithm>
-@@ -368,4 +373,8 @@
-
- }} // namespace boost::spirit
-
-+#if defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 406) || defined(__clang__)
-+# pragma GCC diagnostic pop
-+#endif
-+
- #endif
---- boost/spirit/home/classic/symbols/impl/tst.ipp.orig 2015-12-15 19:08:48.978831726 +0100
-+++ boost/spirit/home/classic/symbols/impl/tst.ipp 2015-12-15 19:09:35.064831330 +0100
-@@ -9,6 +9,11 @@
- #ifndef BOOST_SPIRIT_TST_IPP
- #define BOOST_SPIRIT_TST_IPP
-
-+#if defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 406) || defined(__clang__)
-+# pragma GCC diagnostic push
-+# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-+#endif
-+
- ///////////////////////////////////////////////////////////////////////////////
- #include <memory> // for std::auto_ptr
- #include <boost/spirit/home/classic/core/assert.hpp>
-@@ -278,4 +283,8 @@
-
- }} // namespace boost::spirit
-
-+#if defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 406) || defined(__clang__)
-+# pragma GCC diagnostic pop
-+#endif
-+
- #endif
diff --git a/external/boost/boost.wunused.patch b/external/boost/boost.wunused.patch
deleted file mode 100644
index 8a7cab40f2a3..000000000000
--- a/external/boost/boost.wunused.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- foo/foo/foo/boost/multi_array/base.hpp
-+++ foo/foo/foo/boost/multi_array/base.hpp
-@@ -501,6 +501,7 @@
- // the "far side" of the range (the top if stride is positive, the bottom
- // if stride is negative).
- index bound_adjustment = stride < 0 ? 1 : 0;
-+ (void) bound_adjustment;
- BOOST_ASSERT(((index_bases[n] - bound_adjustment) <= finish) &&
- (finish <= (index_bases[n] + index(extents[n]) - bound_adjustment)));
- #endif // BOOST_DISABLE_ASSERTS
---- foo/foo/foo/boost/unordered/detail/table.hpp
-+++ foo/foo/foo/boost/unordered/detail/table.hpp
-@@ -458,6 +458,7 @@
- // According to 23.2.1.8, if propagate_on_container_swap is
- // false the behaviour is undefined unless the allocators
- // are equal.
-+ (void) other;
- BOOST_ASSERT(node_alloc() == other.node_alloc());
- }
-
diff --git a/external/boost/boost_1_44_0-unused-parameters.patch b/external/boost/boost_1_44_0-unused-parameters.patch
deleted file mode 100644
index 2fd02cf4f089..000000000000
--- a/external/boost/boost_1_44_0-unused-parameters.patch
+++ /dev/null
@@ -1,1169 +0,0 @@
-diff -ru boost.orig/boost/bind/bind.hpp boost/boost/bind/bind.hpp
---- foo/misc/boost.orig/boost/bind/bind.hpp 2015-05-04 00:08:08.000000000 +0200
-+++ foo/misc/boost/boost/bind/bind.hpp 2015-07-16 22:47:55.972950054 +0200
-@@ -145,7 +145,7 @@
-
- template<class F> struct unwrapper
- {
-- static inline F & unwrap( F & f, long )
-+ static inline F & unwrap( F & f, __attribute__ ((unused)) long )
- {
- return f;
- }
-@@ -228,7 +228,7 @@
-
- A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
-
-- A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
-+ A1 operator[] (__attribute__ ((unused)) boost::arg<1> (*) ()) const { return base_type::a1_; }
-
- template<class T> T & operator[] ( _bi::value<T> & v ) const { return v.get(); }
-
-@@ -240,22 +240,22 @@
-
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
-
-- template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
-+ template<class R, class F, class A> R operator()(type<R>, F & f, A & a, __attribute__ ((unused)) long)
- {
- return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_]);
- }
-
-- template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
-+ template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, __attribute__ ((unused)) long) const
- {
- return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_]);
- }
-
-- template<class F, class A> void operator()(type<void>, F & f, A & a, int)
-+ template<class F, class A> void operator()(type<void>, F & f, A & a, __attribute__ ((unused)) int)
- {
- unwrapper<F>::unwrap(f, 0)(a[base_type::a1_]);
- }
-
-- template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
-+ template<class F, class A> void operator()(type<void>, F const & f, A & a, __attribute__ ((unused)) int) const
- {
- unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_]);
- }
-@@ -284,11 +284,11 @@
-
- list2( A1 a1, A2 a2 ): base_type( a1, a2 ) {}
-
-- A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
-- A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
-+ A1 operator[] (__attribute__ ((unused)) boost::arg<1>) const { return base_type::a1_; }
-+ A2 operator[] (__attribute__ ((unused)) boost::arg<2>) const { return base_type::a2_; }
-
-- A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
-- A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
-+ A1 operator[] (__attribute__ ((unused)) boost::arg<1> (*) ()) const { return base_type::a1_; }
-+ A2 operator[] (__attribute__ ((unused)) boost::arg<2> (*) ()) const { return base_type::a2_; }
-
- template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
-
-@@ -300,42 +300,42 @@
-
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
-
-- template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
-+ template<class R, class F, class A> R operator()(type<R>, F & f, A & a, __attribute__ ((unused)) long)
- {
- return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
- }
-
-- template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
-+ template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, __attribute__ ((unused)) long) const
- {
- return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
- }
-
-- template<class F, class A> void operator()(type<void>, F & f, A & a, int)
-+ template<class F, class A> void operator()(type<void>, F & f, A & a, __attribute__ ((unused)) int)
- {
- unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
- }
-
-- template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
-+ template<class F, class A> void operator()(type<void>, F const & f, A & a, __attribute__ ((unused)) int) const
- {
- unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
- }
-
-- template<class A> bool operator()( type<bool>, logical_and & /*f*/, A & a, int )
-+ template<class A> bool operator()( type<bool>, logical_and & /*f*/, A & a, __attribute__ ((unused)) int )
- {
- return a[ base_type::a1_ ] && a[ base_type::a2_ ];
- }
-
-- template<class A> bool operator()( type<bool>, logical_and const & /*f*/, A & a, int ) const
-+ template<class A> bool operator()( type<bool>, logical_and const & /*f*/, A & a, __attribute__ ((unused)) int ) const
- {
- return a[ base_type::a1_ ] && a[ base_type::a2_ ];
- }
-
-- template<class A> bool operator()( type<bool>, logical_or & /*f*/, A & a, int )
-+ template<class A> bool operator()( type<bool>, logical_or & /*f*/, A & a, __attribute__ ((unused)) int )
- {
- return a[ base_type::a1_ ] || a[ base_type::a2_ ];
- }
-
-- template<class A> bool operator()( type<bool>, logical_or const & /*f*/, A & a, int ) const
-+ template<class A> bool operator()( type<bool>, logical_or const & /*f*/, A & a, __attribute__ ((unused)) int ) const
- {
- return a[ base_type::a1_ ] || a[ base_type::a2_ ];
- }
-@@ -361,13 +361,13 @@
-
- list3( A1 a1, A2 a2, A3 a3 ): base_type( a1, a2, a3 ) {}
-
-- A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
-- A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
-- A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
--
-- A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
-- A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
-- A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
-+ A1 operator[] (__attribute__ ((unused)) boost::arg<1>) const { return base_type::a1_; }
-+ A2 operator[] (__attribute__ ((unused)) boost::arg<2>) const { return base_type::a2_; }
-+ A3 operator[] (__attribute__ ((unused)) boost::arg<3>) const { return base_type::a3_; }
-+
-+ A1 operator[] (__attribute__ ((unused)) boost::arg<1> (*) ()) const { return base_type::a1_; }
-+ A2 operator[] (__attribute__ ((unused)) boost::arg<2> (*) ()) const { return base_type::a2_; }
-+ A3 operator[] (__attribute__ ((unused)) boost::arg<3> (*) ()) const { return base_type::a3_; }
-
- template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
-
-@@ -379,22 +379,22 @@
-
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
-
-- template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
-+ template<class R, class F, class A> R operator()(type<R>, F & f, A & a, __attribute__ ((unused)) long)
- {
- return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);
- }
-
-- template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
-+ template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, __attribute__ ((unused)) long) const
- {
- return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);
- }
-
-- template<class F, class A> void operator()(type<void>, F & f, A & a, int)
-+ template<class F, class A> void operator()(type<void>, F & f, A & a, __attribute__ ((unused)) int)
- {
- unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);
- }
-
-- template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
-+ template<class F, class A> void operator()(type<void>, F const & f, A & a, __attribute__ ((unused)) int) const
- {
- unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);
- }
-@@ -424,15 +424,15 @@
-
- list4( A1 a1, A2 a2, A3 a3, A4 a4 ): base_type( a1, a2, a3, a4 ) {}
-
-- A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
-- A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
-- A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
-- A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
--
-- A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
-- A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
-- A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
-- A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }
-+ A1 operator[] (__attribute__ ((unused)) boost::arg<1>) const { return base_type::a1_; }
-+ A2 operator[] (__attribute__ ((unused)) boost::arg<2>) const { return base_type::a2_; }
-+ A3 operator[] (__attribute__ ((unused)) boost::arg<3>) const { return base_type::a3_; }
-+ A4 operator[] (__attribute__ ((unused)) boost::arg<4>) const { return base_type::a4_; }
-+
-+ A1 operator[] (__attribute__ ((unused)) boost::arg<1> (*) ()) const { return base_type::a1_; }
-+ A2 operator[] (__attribute__ ((unused)) boost::arg<2> (*) ()) const { return base_type::a2_; }
-+ A3 operator[] (__attribute__ ((unused)) boost::arg<3> (*) ()) const { return base_type::a3_; }
-+ A4 operator[] (__attribute__ ((unused)) boost::arg<4> (*) ()) const { return base_type::a4_; }
-
- template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
-
-@@ -444,22 +444,22 @@
-
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
-
-- template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
-+ template<class R, class F, class A> R operator()(type<R>, F & f, A & a, __attribute__ ((unused)) long)
- {
- return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);
- }
-
-- template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
-+ template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, __attribute__ ((unused)) long) const
- {
- return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);
- }
-
-- template<class F, class A> void operator()(type<void>, F & f, A & a, int)
-+ template<class F, class A> void operator()(type<void>, F & f, A & a, __attribute__ ((unused)) int)
- {
- unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);
- }
-
-- template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
-+ template<class F, class A> void operator()(type<void>, F const & f, A & a, __attribute__ ((unused)) int) const
- {
- unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);
- }
-@@ -490,11 +490,11 @@
-
- list5( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5 ): base_type( a1, a2, a3, a4, a5 ) {}
-
-- A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
-- A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
-- A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
-- A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
-- A5 operator[] (boost::arg<5>) const { return base_type::a5_; }
-+ A1 operator[] (__attribute__ ((unused)) boost::arg<1>) const { return base_type::a1_; }
-+ A2 operator[] (__attribute__ ((unused)) boost::arg<2>) const { return base_type::a2_; }
-+ A3 operator[] (__attribute__ ((unused)) boost::arg<3>) const { return base_type::a3_; }
-+ A4 operator[] (__attribute__ ((unused)) boost::arg<4>) const { return base_type::a4_; }
-+ A5 operator[] (__attribute__ ((unused)) boost::arg<5>) const { return base_type::a5_; }
-
- A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
- A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
-@@ -512,12 +512,12 @@
-
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
-
-- template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
-+ template<class R, class F, class A> R operator()(type<R>, F & f, A & a, __attribute__ ((unused)) long)
- {
- return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);
- }
-
-- template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
-+ template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, __attribute__ ((unused)) long) const
- {
- return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);
- }
-@@ -527,7 +527,7 @@
- unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);
- }
-
-- template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
-+ template<class F, class A> void operator()(type<void>, F const & f, A & a, __attribute__ ((unused)) int) const
- {
- unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);
- }
-@@ -559,19 +559,19 @@
-
- list6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6 ): base_type( a1, a2, a3, a4, a5, a6 ) {}
-
-- A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
-- A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
-- A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
-- A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
-- A5 operator[] (boost::arg<5>) const { return base_type::a5_; }
-- A6 operator[] (boost::arg<6>) const { return base_type::a6_; }
--
-- A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
-- A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
-- A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
-- A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }
-- A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }
-- A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; }
-+ A1 operator[] (__attribute__ ((unused)) boost::arg<1>) const { return base_type::a1_; }
-+ A2 operator[] (__attribute__ ((unused)) boost::arg<2>) const { return base_type::a2_; }
-+ A3 operator[] (__attribute__ ((unused)) boost::arg<3>) const { return base_type::a3_; }
-+ A4 operator[] (__attribute__ ((unused)) boost::arg<4>) const { return base_type::a4_; }
-+ A5 operator[] (__attribute__ ((unused)) boost::arg<5>) const { return base_type::a5_; }
-+ A6 operator[] (__attribute__ ((unused)) boost::arg<6>) const { return base_type::a6_; }
-+
-+ A1 operator[] (__attribute__ ((unused)) boost::arg<1> (*) ()) const { return base_type::a1_; }
-+ A2 operator[] (__attribute__ ((unused)) boost::arg<2> (*) ()) const { return base_type::a2_; }
-+ A3 operator[] (__attribute__ ((unused)) boost::arg<3> (*) ()) const { return base_type::a3_; }
-+ A4 operator[] (__attribute__ ((unused)) boost::arg<4> (*) ()) const { return base_type::a4_; }
-+ A5 operator[] (__attribute__ ((unused)) boost::arg<5> (*) ()) const { return base_type::a5_; }
-+ A6 operator[] (__attribute__ ((unused)) boost::arg<6> (*) ()) const { return base_type::a6_; }
-
- template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
-
-@@ -583,12 +583,12 @@
-
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
-
-- template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
-+ template<class R, class F, class A> R operator()(type<R>, F & f, A & a, __attribute__ ((unused)) long)
- {
- return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);
- }
-
-- template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
-+ template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, __attribute__ ((unused)) long) const
- {
- return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);
- }
-@@ -598,7 +598,7 @@
- unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);
- }
-
-- template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
-+ template<class F, class A> void operator()(type<void>, F const & f, A & a, __attribute__ ((unused)) int) const
- {
- unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);
- }
-@@ -631,21 +631,21 @@
-
- list7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7 ): base_type( a1, a2, a3, a4, a5, a6, a7 ) {}
-
-- A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
-- A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
-- A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
-- A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
-- A5 operator[] (boost::arg<5>) const { return base_type::a5_; }
-- A6 operator[] (boost::arg<6>) const { return base_type::a6_; }
-- A7 operator[] (boost::arg<7>) const { return base_type::a7_; }
--
-- A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
-- A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
-- A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
-- A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }
-- A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }
-- A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; }
-- A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; }
-+ A1 operator[] (__attribute__ ((unused)) boost::arg<1>) const { return base_type::a1_; }
-+ A2 operator[] (__attribute__ ((unused)) boost::arg<2>) const { return base_type::a2_; }
-+ A3 operator[] (__attribute__ ((unused)) boost::arg<3>) const { return base_type::a3_; }
-+ A4 operator[] (__attribute__ ((unused)) boost::arg<4>) const { return base_type::a4_; }
-+ A5 operator[] (__attribute__ ((unused)) boost::arg<5>) const { return base_type::a5_; }
-+ A6 operator[] (__attribute__ ((unused)) boost::arg<6>) const { return base_type::a6_; }
-+ A7 operator[] (__attribute__ ((unused)) boost::arg<7>) const { return base_type::a7_; }
-+
-+ A1 operator[] (__attribute__ ((unused)) boost::arg<1> (*) ()) const { return base_type::a1_; }
-+ A2 operator[] (__attribute__ ((unused)) boost::arg<2> (*) ()) const { return base_type::a2_; }
-+ A3 operator[] (__attribute__ ((unused)) boost::arg<3> (*) ()) const { return base_type::a3_; }
-+ A4 operator[] (__attribute__ ((unused)) boost::arg<4> (*) ()) const { return base_type::a4_; }
-+ A5 operator[] (__attribute__ ((unused)) boost::arg<5> (*) ()) const { return base_type::a5_; }
-+ A6 operator[] (__attribute__ ((unused)) boost::arg<6> (*) ()) const { return base_type::a6_; }
-+ A7 operator[] (__attribute__ ((unused)) boost::arg<7> (*) ()) const { return base_type::a7_; }
-
- template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
-
-@@ -657,22 +657,22 @@
-
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
-
-- template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
-+ template<class R, class F, class A> R operator()(type<R>, F & f, A & a, __attribute__ ((unused)) long)
- {
- return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);
- }
-
-- template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
-+ template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, __attribute__ ((unused)) long) const
- {
- return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);
- }
-
-- template<class F, class A> void operator()(type<void>, F & f, A & a, int)
-+ template<class F, class A> void operator()(type<void>, F & f, A & a, __attribute__ ((unused)) int)
- {
- unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);
- }
-
-- template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
-+ template<class F, class A> void operator()(type<void>, F const & f, A & a, __attribute__ ((unused)) int) const
- {
- unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);
- }
-@@ -706,23 +706,23 @@
-
- list8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8 ): base_type( a1, a2, a3, a4, a5, a6, a7, a8 ) {}
-
-- A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
-- A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
-- A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
-- A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
-- A5 operator[] (boost::arg<5>) const { return base_type::a5_; }
-- A6 operator[] (boost::arg<6>) const { return base_type::a6_; }
-- A7 operator[] (boost::arg<7>) const { return base_type::a7_; }
-- A8 operator[] (boost::arg<8>) const { return base_type::a8_; }
--
-- A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
-- A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
-- A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
-- A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }
-- A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }
-- A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; }
-- A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; }
-- A8 operator[] (boost::arg<8> (*) ()) const { return base_type::a8_; }
-+ A1 operator[] (__attribute__ ((unused)) boost::arg<1>) const { return base_type::a1_; }
-+ A2 operator[] (__attribute__ ((unused)) boost::arg<2>) const { return base_type::a2_; }
-+ A3 operator[] (__attribute__ ((unused)) boost::arg<3>) const { return base_type::a3_; }
-+ A4 operator[] (__attribute__ ((unused)) boost::arg<4>) const { return base_type::a4_; }
-+ A5 operator[] (__attribute__ ((unused)) boost::arg<5>) const { return base_type::a5_; }
-+ A6 operator[] (__attribute__ ((unused)) boost::arg<6>) const { return base_type::a6_; }
-+ A7 operator[] (__attribute__ ((unused)) boost::arg<7>) const { return base_type::a7_; }
-+ A8 operator[] (__attribute__ ((unused)) boost::arg<8>) const { return base_type::a8_; }
-+
-+ A1 operator[] (__attribute__ ((unused)) boost::arg<1> (*) ()) const { return base_type::a1_; }
-+ A2 operator[] (__attribute__ ((unused)) boost::arg<2> (*) ()) const { return base_type::a2_; }
-+ A3 operator[] (__attribute__ ((unused)) boost::arg<3> (*) ()) const { return base_type::a3_; }
-+ A4 operator[] (__attribute__ ((unused)) boost::arg<4> (*) ()) const { return base_type::a4_; }
-+ A5 operator[] (__attribute__ ((unused)) boost::arg<5> (*) ()) const { return base_type::a5_; }
-+ A6 operator[] (__attribute__ ((unused)) boost::arg<6> (*) ()) const { return base_type::a6_; }
-+ A7 operator[] (__attribute__ ((unused)) boost::arg<7> (*) ()) const { return base_type::a7_; }
-+ A8 operator[] (__attribute__ ((unused)) boost::arg<8> (*) ()) const { return base_type::a8_; }
-
- template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
-
-@@ -734,22 +734,22 @@
-
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
-
-- template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
-+ template<class R, class F, class A> R operator()(type<R>, F & f, A & a, __attribute__ ((unused)) long)
- {
- return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);
- }
-
-- template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
-+ template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, __attribute__ ((unused)) long) const
- {
- return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);
- }
-
-- template<class F, class A> void operator()(type<void>, F & f, A & a, int)
-+ template<class F, class A> void operator()(type<void>, F & f, A & a, __attribute__ ((unused)) int)
- {
- unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);
- }
-
-- template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
-+ template<class F, class A> void operator()(type<void>, F const & f, A & a, __attribute__ ((unused)) int) const
- {
- unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);
- }
-@@ -784,25 +784,25 @@
-
- list9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9 ): base_type( a1, a2, a3, a4, a5, a6, a7, a8, a9 ) {}
-
-- A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
-- A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
-- A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
-- A4 operator[] (boost::arg<4>) const { return base_type::a4_; }
-- A5 operator[] (boost::arg<5>) const { return base_type::a5_; }
-- A6 operator[] (boost::arg<6>) const { return base_type::a6_; }
-- A7 operator[] (boost::arg<7>) const { return base_type::a7_; }
-- A8 operator[] (boost::arg<8>) const { return base_type::a8_; }
-- A9 operator[] (boost::arg<9>) const { return base_type::a9_; }
--
-- A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
-- A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
-- A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }
-- A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }
-- A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }
-- A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; }
-- A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; }
-- A8 operator[] (boost::arg<8> (*) ()) const { return base_type::a8_; }
-- A9 operator[] (boost::arg<9> (*) ()) const { return base_type::a9_; }
-+ A1 operator[] (__attribute__ ((unused)) boost::arg<1>) const { return base_type::a1_; }
-+ A2 operator[] (__attribute__ ((unused)) boost::arg<2>) const { return base_type::a2_; }
-+ A3 operator[] (__attribute__ ((unused)) boost::arg<3>) const { return base_type::a3_; }
-+ A4 operator[] (__attribute__ ((unused)) boost::arg<4>) const { return base_type::a4_; }
-+ A5 operator[] (__attribute__ ((unused)) boost::arg<5>) const { return base_type::a5_; }
-+ A6 operator[] (__attribute__ ((unused)) boost::arg<6>) const { return base_type::a6_; }
-+ A7 operator[] (__attribute__ ((unused)) boost::arg<7>) const { return base_type::a7_; }
-+ A8 operator[] (__attribute__ ((unused)) boost::arg<8>) const { return base_type::a8_; }
-+ A9 operator[] (__attribute__ ((unused)) boost::arg<9>) const { return base_type::a9_; }
-+
-+ A1 operator[] (__attribute__ ((unused)) boost::arg<1> (*) ()) const { return base_type::a1_; }
-+ A2 operator[] (__attribute__ ((unused)) boost::arg<2> (*) ()) const { return base_type::a2_; }
-+ A3 operator[] (__attribute__ ((unused)) boost::arg<3> (*) ()) const { return base_type::a3_; }
-+ A4 operator[] (__attribute__ ((unused)) boost::arg<4> (*) ()) const { return base_type::a4_; }
-+ A5 operator[] (__attribute__ ((unused)) boost::arg<5> (*) ()) const { return base_type::a5_; }
-+ A6 operator[] (__attribute__ ((unused)) boost::arg<6> (*) ()) const { return base_type::a6_; }
-+ A7 operator[] (__attribute__ ((unused)) boost::arg<7> (*) ()) const { return base_type::a7_; }
-+ A8 operator[] (__attribute__ ((unused)) boost::arg<8> (*) ()) const { return base_type::a8_; }
-+ A9 operator[] (__attribute__ ((unused)) boost::arg<9> (*) ()) const { return base_type::a9_; }
-
- template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
-
-@@ -814,22 +814,22 @@
-
- template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
-
-- template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
-+ template<class R, class F, class A> R operator()(type<R>, F & f, A & a, __attribute__ ((unused)) long)
- {
- return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);
- }
-
-- template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
-+ template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, __attribute__ ((unused)) long) const
- {
- return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);
- }
-
-- template<class F, class A> void operator()(type<void>, F & f, A & a, int)
-+ template<class F, class A> void operator()(type<void>, F & f, A & a, __attribute__ ((unused)) int)
- {
- unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);
- }
-
-- template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
-+ template<class F, class A> void operator()(type<void>, F const & f, A & a, __attribute__ ((unused)) int) const
- {
- unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);
- }
-diff -ru boost.orig/boost/bind/mem_fn.hpp boost/boost/bind/mem_fn.hpp
---- foo/misc/boost.orig/boost/bind/mem_fn.hpp 2015-05-04 00:08:08.000000000 +0200
-+++ foo/misc/boost/boost/bind/mem_fn.hpp 2015-07-16 21:54:24.695986146 +0200
-@@ -328,7 +328,7 @@
- return (u.*f_);
- }
-
-- template<class U> R const & call(U & u, void const *) const
-+ template<class U> R const & call(U & u, __attribute__ ((unused)) void const *) const
- {
- return (get_pointer(u)->*f_);
- }
-diff -ru boost.orig/boost/bind/mem_fn_template.hpp boost/boost/bind/mem_fn_template.hpp
---- foo/misc/boost.orig/boost/bind/mem_fn_template.hpp 2015-05-04 00:08:08.000000000 +0200
-+++ foo/misc/boost/boost/bind/mem_fn_template.hpp 2015-07-16 21:58:25.008983445 +0200
-@@ -35,7 +35,7 @@
- BOOST_MEM_FN_RETURN (u.*f_)();
- }
-
-- template<class U> R call(U & u, void const *) const
-+ template<class U> R call(U & u, __attribute__ ((unused)) void const *) const
- {
- BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)();
- }
-@@ -100,7 +100,7 @@
- BOOST_MEM_FN_RETURN (u.*f_)();
- }
-
-- template<class U> R call(U & u, void const *) const
-+ template<class U> R call(U & u, __attribute__ ((unused)) void const *) const
- {
- BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)();
- }
-@@ -146,12 +146,12 @@
- BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1))
- F f_;
-
-- template<class U, class B1> R call(U & u, T const *, B1 & b1) const
-+ template<class U, class B1> R call(U & u, __attribute__ ((unused)) T const *, B1 & b1) const
- {
- BOOST_MEM_FN_RETURN (u.*f_)(b1);
- }
-
-- template<class U, class B1> R call(U & u, void const *, B1 & b1) const
-+ template<class U, class B1> R call(U & u, __attribute__ ((unused)) void const *, B1 & b1) const
- {
- BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1);
- }
-@@ -217,7 +217,7 @@
- BOOST_MEM_FN_RETURN (u.*f_)(b1);
- }
-
-- template<class U, class B1> R call(U & u, void const *, B1 & b1) const
-+ template<class U, class B1> R call(U & u, __attribute__ ((unused)) void const *, B1 & b1) const
- {
- BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1);
- }
-@@ -266,7 +266,7 @@
- BOOST_MEM_FN_RETURN (u.*f_)(b1, b2);
- }
-
-- template<class U, class B1, class B2> R call(U & u, void const *, B1 & b1, B2 & b2) const
-+ template<class U, class B1, class B2> R call(U & u, __attribute__ ((unused)) void const *, B1 & b1, B2 & b2) const
- {
- BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2);
- }
-@@ -379,7 +379,7 @@
- BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3);
- }
-
-- template<class U, class B1, class B2, class B3> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3) const
-+ template<class U, class B1, class B2, class B3> R call(U & u, __attribute__ ((unused)) void const *, B1 & b1, B2 & b2, B3 & b3) const
- {
- BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3);
- }
-@@ -492,7 +492,7 @@
- BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4);
- }
-
-- template<class U, class B1, class B2, class B3, class B4> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const
-+ template<class U, class B1, class B2, class B3, class B4> R call(U & u, __attribute__ ((unused)) void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const
- {
- BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4);
- }
-@@ -556,7 +556,7 @@
- BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4);
- }
-
-- template<class U, class B1, class B2, class B3, class B4> R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const
-+ template<class U, class B1, class B2, class B3, class B4> R call(U & u, __attribute__ ((unused)) void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const
- {
- BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4);
- }
-diff -ru boost.orig/boost/foreach.hpp boost/boost/foreach.hpp
---- foo/misc/boost.orig/boost/foreach.hpp 2015-03-04 21:36:38.000000000 +0100
-+++ foo/misc/boost/boost/foreach.hpp 2015-07-16 22:01:53.617981100 +0200
-@@ -633,7 +633,7 @@
- }
-
- template<typename T>
--inline auto_any<T *> contain(T &t, boost::mpl::false_ *) // lvalue
-+inline auto_any<T *> contain(T &t, __attribute__ ((unused)) boost::mpl::false_ *) // lvalue
- {
- // Cannot seem to get sunpro to handle addressof() with array types.
- #if BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x570))
-@@ -665,7 +665,7 @@
-
- template<typename T, typename C>
- inline auto_any<BOOST_DEDUCED_TYPENAME foreach_iterator<T, C>::type>
--begin(auto_any_t col, type2type<T, C> *, boost::mpl::false_ *) // lvalue
-+begin(auto_any_t col, __attribute__ ((unused)) type2type<T, C> *, __attribute__ ((unused)) boost::mpl::false_ *) // lvalue
- {
- typedef BOOST_DEDUCED_TYPENAME type2type<T, C>::type type;
- typedef BOOST_DEDUCED_TYPENAME foreach_iterator<T, C>::type iterator;
-@@ -754,7 +754,7 @@
- // next
- //
- template<typename T, typename C>
--inline void next(auto_any_t cur, type2type<T, C> *)
-+inline void next(auto_any_t cur, __attribute__ ((unused)) type2type<T, C> *)
- {
- typedef BOOST_DEDUCED_TYPENAME foreach_iterator<T, C>::type iter_t;
- ++auto_any_cast<iter_t, boost::mpl::false_>(cur);
-@@ -765,7 +765,7 @@
- //
- template<typename T, typename C>
- inline BOOST_DEDUCED_TYPENAME foreach_reference<T, C>::type
--deref(auto_any_t cur, type2type<T, C> *)
-+deref(auto_any_t cur, __attribute__ ((unused)) type2type<T, C> *)
- {
- typedef BOOST_DEDUCED_TYPENAME foreach_iterator<T, C>::type iter_t;
- return *auto_any_cast<iter_t, boost::mpl::false_>(cur);
-@@ -784,7 +784,7 @@
-
- template<typename T, typename C>
- inline auto_any<BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, C>::type>
--rbegin(auto_any_t col, type2type<T, C> *, boost::mpl::false_ *) // lvalue
-+rbegin(auto_any_t col, __attribute__ ((unused)) type2type<T, C> *, __attribute__ ((unused)) boost::mpl::false_ *) // lvalue
- {
- typedef BOOST_DEDUCED_TYPENAME type2type<T, C>::type type;
- typedef BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, C>::type iterator;
-diff -ru boost.orig/boost/function/function_template.hpp boost/boost/function/function_template.hpp
---- foo/misc/boost.orig/boost/function/function_template.hpp 2015-07-22 19:33:01.000000000 +0200
-+++ foo/misc/boost/boost/function/function_template.hpp 2015-08-27 10:14:49.023960640 +0200
-@@ -717,7 +717,7 @@
- template<typename Functor>
- BOOST_FUNCTION_FUNCTION(Functor BOOST_FUNCTION_TARGET_FIX(const &) f
- #ifndef BOOST_NO_SFINAE
-- ,typename boost::enable_if_c<
-+ ,__attribute__ ((unused)) typename boost::enable_if_c<
- !(is_integral<Functor>::value),
- int>::type = 0
- #endif // BOOST_NO_SFINAE
-@@ -729,7 +729,7 @@
- template<typename Functor,typename Allocator>
- BOOST_FUNCTION_FUNCTION(Functor BOOST_FUNCTION_TARGET_FIX(const &) f, Allocator a
- #ifndef BOOST_NO_SFINAE
-- ,typename boost::enable_if_c<
-+ ,__attribute__ ((unused)) typename boost::enable_if_c<
- !(is_integral<Functor>::value),
- int>::type = 0
- #endif // BOOST_NO_SFINAE
-@@ -1065,7 +1065,7 @@
- template<typename Functor>
- function(Functor f
- #ifndef BOOST_NO_SFINAE
-- ,typename boost::enable_if_c<
-+ ,__attribute__ ((unused)) typename boost::enable_if_c<
- !(is_integral<Functor>::value),
- int>::type = 0
- #endif
-@@ -1076,7 +1076,7 @@
- template<typename Functor,typename Allocator>
- function(Functor f, Allocator a
- #ifndef BOOST_NO_SFINAE
-- ,typename boost::enable_if_c<
-+ ,__attribute__ ((unused)) typename boost::enable_if_c<
- !(is_integral<Functor>::value),
- int>::type = 0
- #endif
-diff -ru boost.orig/boost/iterator/reverse_iterator.hpp boost/boost/iterator/reverse_iterator.hpp
---- foo/misc/boost.orig/boost/iterator/reverse_iterator.hpp 2014-09-06 19:18:28.000000000 +0200
-+++ foo/misc/boost/boost/iterator/reverse_iterator.hpp 2015-07-16 22:04:18.012979478 +0200
-@@ -34,7 +34,7 @@
- template<class OtherIterator>
- reverse_iterator(
- reverse_iterator<OtherIterator> const& r
-- , typename enable_if_convertible<OtherIterator, Iterator>::type* = 0
-+ , __attribute__ ((unused)) typename enable_if_convertible<OtherIterator, Iterator>::type* = 0
- )
- : super_t(r.base())
- {}
-diff -ru boost.orig/boost/optional/optional.hpp boost/boost/optional/optional.hpp
---- foo/misc/boost.orig/boost/optional/optional.hpp 2015-07-09 00:01:02.000000000 +0200
-+++ foo/misc/boost/boost/optional/optional.hpp 2015-07-16 22:06:21.657978088 +0200
-@@ -634,7 +634,7 @@
- // Converting constructions of optional<T> from optional<U> uses this function with
- // 'Expr' being of type 'U' and relying on a converting constructor of T from U.
- template<class Expr>
-- void construct ( Expr const& expr, void const* )
-+ void construct ( Expr const& expr, __attribute__ ((unused)) void const* )
- {
- new (m_storage.address()) internal_type(expr) ;
- m_initialized = true ;
-@@ -645,7 +645,7 @@
- // Converting assignments of optional<T> from optional<U> uses this function with
- // 'Expr' being of type 'U' and relying on a converting assignment of T from U.
- template<class Expr>
-- void assign_expr_to_initialized ( Expr const& expr, void const* )
-+ void assign_expr_to_initialized ( Expr const& expr, __attribute__ ((unused)) void const* )
- {
- assign_value(expr, is_reference_predicate());
- }
-@@ -1424,17 +1424,17 @@
-
- template<class T>
- inline
--bool operator == ( none_t , optional<T> const& y ) BOOST_NOEXCEPT
-+bool operator == ( __attribute__ ((unused)) none_t , optional<T> const& y ) BOOST_NOEXCEPT
- { return !y; }
-
- template<class T>
- inline
--bool operator < ( none_t , optional<T> const& y )
-+bool operator < ( __attribute__ ((unused)) none_t , optional<T> const& y )
- { return less_pointees(optional<T>() ,y); }
-
- template<class T>
- inline
--bool operator != ( none_t, optional<T> const& y ) BOOST_NOEXCEPT
-+bool operator != ( __attribute__ ((unused)) none_t, optional<T> const& y ) BOOST_NOEXCEPT
- { return bool(y); }
-
- template<class T>
-diff -ru boost.orig/boost/spirit/home/classic/actor/ref_const_ref_actor.hpp boost/boost/spirit/home/classic/actor/ref_const_ref_actor.hpp
---- foo/misc/boost.orig/boost/spirit/home/classic/actor/ref_const_ref_actor.hpp 2015-05-17 14:17:51.000000000 +0200
-+++ foo/misc/boost/boost/spirit/home/classic/actor/ref_const_ref_actor.hpp 2015-07-16 22:07:32.910977287 +0200
-@@ -63,8 +63,8 @@
-
- template<typename IteratorT>
- void operator()(
-- IteratorT const& /*first*/,
-- IteratorT const& /*last*/
-+ __attribute__ ((unused)) IteratorT const& /*first*/,
-+ __attribute__ ((unused)) IteratorT const& /*last*/
- ) const
- {
- this->act(ref,value_ref); // defined in ActionT
-diff -ru boost.orig/boost/spirit/home/classic/core/composite/impl/directives.ipp boost/boost/spirit/home/classic/core/composite/impl/directives.ipp
---- foo/misc/boost.orig/boost/spirit/home/classic/core/composite/impl/directives.ipp 2015-05-17 14:17:51.000000000 +0200
-+++ foo/misc/boost/boost/spirit/home/classic/core/composite/impl/directives.ipp 2015-07-16 22:12:36.614973874 +0200
-@@ -41,7 +41,7 @@
- contiguous_parser_parse(
- ST const& s,
- ScannerT const& scan,
-- skipper_iteration_policy<BaseT> const&)
-+ __attribute__ ((unused)) skipper_iteration_policy<BaseT> const&)
- {
- typedef scanner_policies<
- no_skipper_iteration_policy<
-@@ -61,7 +61,7 @@
- contiguous_parser_parse(
- ST const& s,
- ScannerT const& scan,
-- no_skipper_iteration_policy<BaseT> const&)
-+ __attribute__ ((unused)) no_skipper_iteration_policy<BaseT> const&)
- {
- return s.parse(scan);
- }
-@@ -85,7 +85,7 @@
- implicit_lexeme_parse(
- ParserT const& p,
- ScannerT const& scan,
-- skipper_iteration_policy<BaseT> const&)
-+ __attribute__ ((unused)) skipper_iteration_policy<BaseT> const&)
- {
- typedef scanner_policies<
- no_skipper_iteration_policy<
-@@ -129,7 +129,7 @@
- inhibit_case_parser_parse(
- ST const& s,
- ScannerT const& scan,
-- iteration_policy const&)
-+ __attribute__ ((unused)) iteration_policy const&)
- {
- typedef scanner_policies<
- inhibit_case_iteration_policy<
-diff -ru boost.orig/boost/spirit/home/classic/core/composite/no_actions.hpp boost/boost/spirit/home/classic/core/composite/no_actions.hpp
---- foo/misc/boost.orig/boost/spirit/home/classic/core/composite/no_actions.hpp 2015-05-17 14:17:51.000000000 +0200
-+++ foo/misc/boost/boost/spirit/home/classic/core/composite/no_actions.hpp 2015-07-16 22:08:22.699976727 +0200
-@@ -38,10 +38,10 @@
- template<typename ActorT, typename AttrT, typename IteratorT>
- void
- do_action(
-- ActorT const& actor,
-- AttrT& val,
-- IteratorT const& first,
-- IteratorT const& last) const
-+ __attribute__ ((unused)) ActorT const& actor,
-+ __attribute__ ((unused)) AttrT& val,
-+ __attribute__ ((unused)) IteratorT const& first,
-+ __attribute__ ((unused)) IteratorT const& last) const
- {}
- };
-
-diff -ru boost.orig/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp boost/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp
---- foo/misc/boost.orig/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp 2015-05-17 14:17:51.000000000 +0200
-+++ foo/misc/boost/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp 2015-07-16 22:13:57.708972962 +0200
-@@ -69,7 +69,7 @@
- { // Does _not_ copy the helpers member !
- }
-
-- grammar_helper_list& operator=(grammar_helper_list const& x)
-+ grammar_helper_list& operator=(__attribute__ ((unused)) grammar_helper_list const& x)
- { // Does _not_ copy the helpers member !
- return *this;
- }
-diff -ru boost.orig/boost/spirit/home/classic/core/non_terminal/parser_context.hpp boost/boost/spirit/home/classic/core/non_terminal/parser_context.hpp
---- foo/misc/boost.orig/boost/spirit/home/classic/core/non_terminal/parser_context.hpp 2015-05-17 14:17:51.000000000 +0200
-+++ foo/misc/boost/boost/spirit/home/classic/core/non_terminal/parser_context.hpp 2015-07-16 22:17:08.977970813 +0200
-@@ -51,15 +51,15 @@
- typedef parser_context_linker<parser_context<AttrT> > context_linker_t;
-
- template <typename ParserT>
-- parser_context(ParserT const&) {}
-+ parser_context(__attribute__ ((unused)) ParserT const&) {}
-
- template <typename ParserT, typename ScannerT>
- void
-- pre_parse(ParserT const&, ScannerT const&) {}
-+ pre_parse(__attribute__ ((unused)) ParserT const&, __attribute__ ((unused)) ScannerT const&) {}
-
- template <typename ResultT, typename ParserT, typename ScannerT>
- ResultT&
-- post_parse(ResultT& hit, ParserT const&, ScannerT const&)
-+ post_parse(__attribute__ ((unused)) ResultT& hit, __attribute__ ((unused)) ParserT const&, __attribute__ ((unused)) ScannerT const&)
- { return hit; }
- };
-
-diff -ru boost.orig/boost/spirit/home/classic/core/primitives/impl/numerics.ipp boost/boost/spirit/home/classic/core/primitives/impl/numerics.ipp
---- foo/misc/boost.orig/boost/spirit/home/classic/core/primitives/impl/numerics.ipp 2015-05-17 14:17:51.000000000 +0200
-+++ foo/misc/boost/boost/spirit/home/classic/core/primitives/impl/numerics.ipp 2015-07-16 22:17:53.303970314 +0200
-@@ -226,7 +226,7 @@
- }
-
- template <>
-- inline bool allow_more_digits<-1>(std::size_t)
-+ inline bool allow_more_digits<-1>(__attribute__ ((unused)) std::size_t)
- {
- return true;
- }
-diff -ru boost.orig/boost/spirit/home/classic/core/primitives/primitives.hpp boost/boost/spirit/home/classic/core/primitives/primitives.hpp
---- foo/misc/boost.orig/boost/spirit/home/classic/core/primitives/primitives.hpp 2015-05-17 14:17:51.000000000 +0200
-+++ foo/misc/boost/boost/spirit/home/classic/core/primitives/primitives.hpp 2015-07-16 22:18:27.942969925 +0200
-@@ -316,7 +316,7 @@
- anychar_parser() {}
-
- template <typename CharT>
-- bool test(CharT) const
-+ bool test(__attribute__ ((unused)) CharT) const
- {
- return true;
- }
-diff -ru boost.orig/boost/spirit/home/classic/core/scanner/impl/skipper.ipp boost/boost/spirit/home/classic/core/scanner/impl/skipper.ipp
---- foo/misc/boost.orig/boost/spirit/home/classic/core/scanner/impl/skipper.ipp 2015-05-17 14:17:51.000000000 +0200
-+++ foo/misc/boost/boost/spirit/home/classic/core/scanner/impl/skipper.ipp 2015-07-16 22:19:06.409969493 +0200
-@@ -122,7 +122,7 @@
- IteratorT const& first_,
- IteratorT const& last,
- ParserT const& p,
-- space_parser const&)
-+ __attribute__ ((unused)) space_parser const&)
- {
- typedef skipper_iteration_policy<> iter_policy_t;
- typedef scanner_policies<iter_policy_t> scanner_policies_t;
-diff -ru boost.orig/boost/spirit/home/classic/core/scanner/scanner.hpp boost/boost/spirit/home/classic/core/scanner/scanner.hpp
---- foo/misc/boost.orig/boost/spirit/home/classic/core/scanner/scanner.hpp 2015-05-17 14:17:51.000000000 +0200
-+++ foo/misc/boost/boost/spirit/home/classic/core/scanner/scanner.hpp 2015-07-16 22:20:18.232968685 +0200
-@@ -82,18 +82,18 @@
- create_match(
- std::size_t length,
- AttrT const& val,
-- IteratorT const& /*first*/,
-- IteratorT const& /*last*/) const
-+ __attribute__ ((unused)) IteratorT const& /*first*/,
-+ __attribute__ ((unused)) IteratorT const& /*last*/) const
- {
- return match<AttrT>(length, val);
- }
-
- template <typename MatchT, typename IteratorT>
- void group_match(
-- MatchT& /*m*/,
-- parser_id const& /*id*/,
-- IteratorT const& /*first*/,
-- IteratorT const& /*last*/) const {}
-+ __attribute__ ((unused)) MatchT& /*m*/,
-+ __attribute__ ((unused)) parser_id const& /*id*/,
-+ __attribute__ ((unused)) IteratorT const& /*first*/,
-+ __attribute__ ((unused)) IteratorT const& /*last*/) const {}
-
- template <typename Match1T, typename Match2T>
- void concat_match(Match1T& l, Match2T const& r) const
-@@ -126,8 +126,8 @@
- call(
- ActorT const& actor,
- AttrT& val,
-- IteratorT const&,
-- IteratorT const&)
-+ __attribute__ ((unused)) IteratorT const&,
-+ __attribute__ ((unused)) IteratorT const&)
- {
- actor(val);
- }
-diff -ru boost.orig/boost/spirit/home/classic/core/scanner/skipper.hpp boost/boost/spirit/home/classic/core/scanner/skipper.hpp
---- foo/misc/boost.orig/boost/spirit/home/classic/core/scanner/skipper.hpp 2015-05-17 14:17:51.000000000 +0200
-+++ foo/misc/boost/boost/spirit/home/classic/core/scanner/skipper.hpp 2015-07-16 22:20:47.695968354 +0200
-@@ -82,7 +82,7 @@
-
- template <typename ScannerT>
- void
-- skip(ScannerT const& /*scan*/) const {}
-+ skip(__attribute__ ((unused)) ScannerT const& /*scan*/) const {}
- };
-
- ///////////////////////////////////////////////////////////////////////////
-diff -ru boost.orig/boost/spirit/home/classic/meta/impl/refactoring.ipp boost/boost/spirit/home/classic/meta/impl/refactoring.ipp
---- foo/misc/boost.orig/boost/spirit/home/classic/meta/impl/refactoring.ipp 2015-05-17 14:17:51.000000000 +0200
-+++ foo/misc/boost/boost/spirit/home/classic/meta/impl/refactoring.ipp 2015-07-16 22:23:33.840966487 +0200
-@@ -92,7 +92,7 @@
-
- template <typename ParserT, typename ScannerT, typename BinaryT>
- static typename parser_result<ParserT, ScannerT>::type
-- parse(ParserT const &, ScannerT const& scan, BinaryT const& binary)
-+ parse(__attribute__ ((unused)) ParserT const &, ScannerT const& scan, BinaryT const& binary)
- {
- return binary.parse(scan);
- }
-@@ -140,7 +140,7 @@
- template <typename ParserT, typename ScannerT, typename BinaryT>
- static typename parser_result<ParserT, ScannerT>::type
- parse(ParserT const &p, ScannerT const& scan, BinaryT const& binary,
-- non_nested_refactoring const&)
-+ __attribute__ ((unused)) non_nested_refactoring const&)
- {
- typedef
- typename BinaryT::left_t::parser_category_t
-@@ -205,7 +205,7 @@
- typename NestedT
- >
- static typename parser_result<ParserT, ScannerT>::type
-- parse(ParserT const &, ScannerT const& scan, BinaryT const& binary,
-+ parse(__attribute__ ((unused)) ParserT const &, ScannerT const& scan, BinaryT const& binary,
- NestedT const& nested_d)
- {
- typedef typename BinaryT::parser_generator_t binary_gen_t;
-@@ -324,7 +324,7 @@
- >
- static typename parser_result<ParserT, ScannerT>::type
- parse(ParserT const &, ScannerT const& scan, ActionT const &action,
-- NestedT const& nested_d)
-+ __attribute__ ((unused)) NestedT const& nested_d)
- {
- return action.parse(scan);
- }
-diff -ru boost.orig/boost/spirit/home/classic/phoenix/tuples.hpp boost/boost/spirit/home/classic/phoenix/tuples.hpp
---- foo/misc/boost.orig/boost/spirit/home/classic/phoenix/tuples.hpp 2015-05-17 14:17:51.000000000 +0200
-+++ foo/misc/boost/boost/spirit/home/classic/phoenix/tuples.hpp 2015-07-16 22:35:37.780958351 +0200
-@@ -207,7 +207,7 @@
- typedef nil_t& rtype;
- typedef nil_t const& crtype;
-
-- static nil_t get(TupleT const& t) { return nil_t(); }
-+ static nil_t get(__attribute__ ((unused)) TupleT const& t) { return nil_t(); }
- };
-
- //////////////////////////////////
-diff -ru boost.orig/boost/spirit/home/classic/utility/impl/chset.ipp boost/boost/spirit/home/classic/utility/impl/chset.ipp
---- foo/misc/boost.orig/boost/spirit/home/classic/utility/impl/chset.ipp 2015-05-17 14:17:51.000000000 +0200
-+++ foo/misc/boost/boost/spirit/home/classic/utility/impl/chset.ipp 2015-07-16 22:29:45.156962314 +0200
-@@ -97,7 +97,7 @@
- }
-
- template <typename CharT>
--inline chset<CharT>::chset(nothing_parser /*arg_*/)
-+inline chset<CharT>::chset(__attribute__ ((unused)) nothing_parser /*arg_*/)
- : ptr(new basic_chset<CharT>()) {}
-
- template <typename CharT>
-@@ -146,7 +146,7 @@
-
- template <typename CharT>
- inline chset<CharT>&
--chset<CharT>::operator=(anychar_parser /*rhs*/)
-+chset<CharT>::operator=(__attribute__ ((unused)) anychar_parser /*rhs*/)
- {
- utility::impl::detach_clear(ptr);
- ptr->set(
-@@ -158,7 +158,7 @@
-
- template <typename CharT>
- inline chset<CharT>&
--chset<CharT>::operator=(nothing_parser /*rhs*/)
-+chset<CharT>::operator=(__attribute__ ((unused)) nothing_parser /*rhs*/)
- {
- utility::impl::detach_clear(ptr);
- return *this;
-diff -ru boost.orig/boost/spirit/home/classic/utility/impl/chset_operators.ipp boost/boost/spirit/home/classic/utility/impl/chset_operators.ipp
---- foo/misc/boost.orig/boost/spirit/home/classic/utility/impl/chset_operators.ipp 2015-05-17 14:17:51.000000000 +0200
-+++ foo/misc/boost/boost/spirit/home/classic/utility/impl/chset_operators.ipp 2015-07-16 22:31:03.363961435 +0200
-@@ -502,7 +502,7 @@
- //////////////////////////////////
- template <typename CharT>
- inline chset<CharT>
--operator-(anychar_parser, chset<CharT> const& b)
-+operator-(__attribute__ ((unused)) anychar_parser, chset<CharT> const& b)
- {
- return ~b;
- }
-diff -ru boost.orig/boost/spirit/home/classic/utility/impl/lists.ipp boost/boost/spirit/home/classic/utility/impl/lists.ipp
---- foo/misc/boost.orig/boost/spirit/home/classic/utility/impl/lists.ipp 2015-05-17 14:17:51.000000000 +0200
-+++ foo/misc/boost/boost/spirit/home/classic/utility/impl/lists.ipp 2015-07-16 22:34:55.728958823 +0200
-@@ -64,8 +64,8 @@
- typename ItemT, typename DelimT
- >
- static typename parser_result<ParserT, ScannerT>::type
-- parse(ScannerT const& scan, ParserT const& /*p*/,
-- ItemT const &item, DelimT const &delim, no_list_endtoken const&)
-+ parse(ScannerT const& scan, __attribute__ ((unused)) ParserT const& /*p*/,
-+ ItemT const &item, DelimT const &delim, __attribute__ ((unused)) no_list_endtoken const&)
- {
- typedef refactor_action_gen<refactor_unary_gen<> > refactor_t;
- const refactor_t refactor_item_d = refactor_t(refactor_unary_d);
-@@ -112,8 +112,8 @@
- typename ItemT, typename DelimT
- >
- static typename parser_result<ParserT, ScannerT>::type
-- parse(ScannerT const& scan, ParserT const& /*p*/,
-- ItemT const &item, DelimT const &delim, no_list_endtoken const&)
-+ parse(ScannerT const& scan, __attribute__ ((unused)) ParserT const& /*p*/,
-+ ItemT const &item, DelimT const &delim, __attribute__ ((unused)) no_list_endtoken const&)
- {
- return (
- (item - delim)
-diff -ru boost.orig/boost/throw_exception.hpp boost/boost/throw_exception.hpp
---- foo/misc/boost.orig/boost/throw_exception.hpp 2014-06-08 22:17:48.000000000 +0200
-+++ foo/misc/boost/boost/throw_exception.hpp 2015-07-16 22:36:06.940958023 +0200
-@@ -57,7 +57,7 @@
-
- #else
-
--inline void throw_exception_assert_compatibility( std::exception const & ) { }
-+inline void throw_exception_assert_compatibility( __attribute__ ((unused)) std::exception const & ) { }
-
- template<class E> BOOST_NORETURN inline void throw_exception( E const & e )
- {
-diff -ru boost.orig/boost/type_index/stl_type_index.hpp boost/boost/type_index/stl_type_index.hpp
---- foo/misc/boost.orig/boost/type_index/stl_type_index.hpp 2015-06-21 22:16:46.000000000 +0200
-+++ foo/misc/boost/boost/type_index/stl_type_index.hpp 2015-07-16 22:55:42.886944806 +0200
-@@ -174,7 +174,7 @@
-
-
- inline std::size_t stl_type_index::hash_code() const BOOST_NOEXCEPT {
--#if _MSC_VER > 1600 || (__GNUC__ == 4 && __GNUC_MINOR__ > 5 && defined(__GXX_EXPERIMENTAL_CXX0X__))
-+#if (defined(_MSC_VER) && _MSC_VER > 1600) || (__GNUC__ == 4 && __GNUC_MINOR__ > 5 && defined(__GXX_EXPERIMENTAL_CXX0X__))
- return data_->hash_code();
- #else
- return boost::hash_range(raw_name(), raw_name() + std::strlen(raw_name()));
-diff -ru boost.orig/boost/variant/detail/visitation_impl.hpp boost/boost/variant/detail/visitation_impl.hpp
---- foo/misc/boost.orig/boost/variant/detail/visitation_impl.hpp 2015-06-25 23:53:21.000000000 +0200
-+++ foo/misc/boost/boost/variant/detail/visitation_impl.hpp 2015-07-16 22:40:41.528954937 +0200
-@@ -105,7 +105,7 @@
- inline
- BOOST_VARIANT_AUX_GENERIC_RESULT_TYPE(typename Visitor::result_type)
- visitation_impl_invoke_impl(
-- int, Visitor& visitor, VoidPtrCV storage, T*
-+ int, Visitor& visitor, VoidPtrCV storage, __attribute__ ((unused)) T*
- , mpl::true_// never_uses_backup
- )
- {
-@@ -181,9 +181,9 @@
- inline
- BOOST_VARIANT_AUX_GENERIC_RESULT_TYPE(typename Visitor::result_type)
- visitation_impl(
-- int, int, Visitor&, VPCV
-+ __attribute__ ((unused)) int, __attribute__ ((unused)) int, __attribute__ ((unused)) Visitor&, VPCV
- , mpl::true_ // is_apply_visitor_unrolled
-- , NBF, W* = 0, S* = 0
-+ , NBF, __attribute__ ((unused)) W* = 0, __attribute__ ((unused)) S* = 0
- )
- {
- // should never be here at runtime!
-@@ -203,7 +203,7 @@
- , Visitor& visitor, VoidPtrCV storage
- , mpl::false_ // is_apply_visitor_unrolled
- , NoBackupFlag no_backup_flag
-- , Which* = 0, step0* = 0
-+ , __attribute__ ((unused)) Which* = 0, __attribute__ ((unused)) step0* = 0
- )
- {
- // Typedef apply_visitor_unrolled steps and associated types...
-diff -ru boost.orig/boost/variant/get.hpp boost/boost/variant/get.hpp
---- foo/misc/boost.orig/boost/variant/get.hpp 2015-06-25 23:53:21.000000000 +0200
-+++ foo/misc/boost/boost/variant/get.hpp 2015-07-16 22:41:42.159954255 +0200
-@@ -80,7 +80,7 @@
- }
-
- template <typename U>
-- pointer operator()(const U&) const BOOST_NOEXCEPT
-+ pointer operator()(__attribute__ ((unused)) const U&) const BOOST_NOEXCEPT
- {
- return static_cast<pointer>(0);
- }
-diff -ru boost.orig/boost/variant/variant.hpp boost/boost/variant/variant.hpp
---- foo/misc/boost.orig/boost/variant/variant.hpp 2015-06-25 23:53:21.000000000 +0200
-+++ foo/misc/boost/boost/variant/variant.hpp 2015-07-16 22:44:37.631952283 +0200
-@@ -312,7 +312,7 @@
-
- template <typename T>
- BOOST_VARIANT_AUX_RETURN_VOID_TYPE
-- internal_visit(T& operand, int) const BOOST_NOEXCEPT
-+ internal_visit(T& operand, __attribute__ ((unused)) int) const BOOST_NOEXCEPT
- {
- operand.~T(); // must be noexcept
-
-@@ -392,7 +392,7 @@
-
- template <typename T>
- BOOST_VARIANT_AUX_RETURN_VOID_TYPE
-- internal_visit(const T& operand, int) const
-+ internal_visit(const T& operand, __attribute__ ((unused)) int) const
- {
- new(storage_) T(operand);
- BOOST_VARIANT_AUX_RETURN_VOID;
-@@ -539,7 +539,7 @@
-
- template <typename T>
- BOOST_VARIANT_AUX_RETURN_VOID_TYPE
-- internal_visit(T& lhs_content, int) const
-+ internal_visit(T& lhs_content, __attribute__ ((unused)) int) const
- {
- // NOTE TO USER :
- // Compile error here indicates one of variant's bounded types does
-@@ -585,7 +585,7 @@
- }
-
- template <typename U>
-- bool operator()(U&) BOOST_NOEXCEPT
-+ bool operator()(__attribute__ ((unused)) U&) BOOST_NOEXCEPT
- {
- return false;
- }
diff --git a/external/boost/boost_1_59_0.iostreams.wshadow.patch b/external/boost/boost_1_59_0.iostreams.wshadow.patch
deleted file mode 100644
index 20390643172e..000000000000
--- a/external/boost/boost_1_59_0.iostreams.wshadow.patch
+++ /dev/null
@@ -1,197 +0,0 @@
-diff -ru boost.orig/boost/iostreams/detail/buffer.hpp boost/boost/iostreams/detail/buffer.hpp
---- foo/misc/boost.orig/boost/iostreams/detail/buffer.hpp 2015-07-19 12:06:22.159924201 +0200
-+++ foo/misc/boost/boost/iostreams/detail/buffer.hpp 2015-07-19 12:07:32.000923416 +0200
-@@ -179,9 +179,9 @@
- : basic_buffer<Ch, Alloc>(buffer_size) { }
-
- template<typename Ch, typename Alloc>
--inline void buffer<Ch, Alloc>::set(std::streamsize ptr, std::streamsize end)
-+inline void buffer<Ch, Alloc>::set(std::streamsize ptr_arg, std::streamsize end)
- {
-- ptr_ = data() + ptr;
-+ ptr_ = data() + ptr_arg;
- eptr_ = data() + end;
- }
-
-diff -ru boost.orig/boost/iostreams/filter/gzip.hpp boost/boost/iostreams/filter/gzip.hpp
---- foo/misc/boost.orig/boost/iostreams/filter/gzip.hpp 2015-01-25 20:33:40.000000000 +0100
-+++ foo/misc/boost/boost/iostreams/filter/gzip.hpp 2015-07-19 12:23:11.208912860 +0200
-@@ -135,16 +135,16 @@
- struct gzip_params : zlib_params {
-
- // Non-explicit constructor.
-- gzip_params( int level = gzip::default_compression,
-- int method = gzip::deflated,
-- int window_bits = gzip::default_window_bits,
-- int mem_level = gzip::default_mem_level,
-- int strategy = gzip::default_strategy,
-- std::string file_name = "",
-- std::string comment = "",
-- std::time_t mtime = 0 )
-- : zlib_params(level, method, window_bits, mem_level, strategy),
-- file_name(file_name), comment(comment), mtime(mtime)
-+ gzip_params( int level_ = gzip::default_compression,
-+ int method_ = gzip::deflated,
-+ int window_bits_ = gzip::default_window_bits,
-+ int mem_level_ = gzip::default_mem_level,
-+ int strategy_ = gzip::default_strategy,
-+ std::string file_name_ = "",
-+ std::string comment_ = "",
-+ std::time_t mtime_ = 0 )
-+ : zlib_params(level_, method_, window_bits_, mem_level_, strategy_),
-+ file_name(file_name_), comment(comment_), mtime(mtime_)
- { }
- std::string file_name;
- std::string comment;
-@@ -160,9 +160,9 @@
- //
- class gzip_error : public BOOST_IOSTREAMS_FAILURE {
- public:
-- explicit gzip_error(int error)
-+ explicit gzip_error(int error_arg)
- : BOOST_IOSTREAMS_FAILURE("gzip error"),
-- error_(error), zlib_error_code_(zlib::okay) { }
-+ error_(error_arg), zlib_error_code_(zlib::okay) { }
- explicit gzip_error(const zlib_error& e)
- : BOOST_IOSTREAMS_FAILURE("gzip error"),
- error_(gzip::zlib_error), zlib_error_code_(e.error())
-@@ -505,8 +505,8 @@
- if (footer_.done()) {
- if (footer_.crc() != this->crc())
- boost::throw_exception(gzip_error(gzip::bad_crc));
-- int c = boost::iostreams::get(peek);
-- if (traits_type::is_eof(c)) {
-+ int c2 = boost::iostreams::get(peek);
-+ if (traits_type::is_eof(c2)) {
- state_ = s_done;
- } else {
- peek.putback(c);
-@@ -567,8 +567,8 @@
- struct peekable_source {
- typedef char char_type;
- struct category : source_tag, peekable_tag { };
-- explicit peekable_source(Source& src, const string_type& putback = "")
-- : src_(src), putback_(putback), offset_(0)
-+ explicit peekable_source(Source& src, const string_type& putback_arg = "")
-+ : src_(src), putback_(putback_arg), offset_(0)
- { }
- std::streamsize read(char* s, std::streamsize n)
- {
-diff -ru boost.orig/boost/iostreams/filter/symmetric.hpp boost/boost/iostreams/filter/symmetric.hpp
---- foo/misc/boost.orig/boost/iostreams/filter/symmetric.hpp 2015-01-25 20:33:40.000000000 +0100
-+++ foo/misc/boost/boost/iostreams/filter/symmetric.hpp 2015-07-19 12:11:10.202920964 +0200
-@@ -102,7 +102,7 @@
- if (!(state() & f_read))
- begin_read();
-
-- buffer_type& buf = pimpl_->buf_;
-+ buffer_type& buf_l = pimpl_->buf_;
- int status = (state() & f_eof) != 0 ? f_eof : f_good;
- char_type *next_s = s,
- *end_s = s + n;
-@@ -110,12 +110,12 @@
- {
- // Invoke filter if there are unconsumed characters in buffer or if
- // filter must be flushed.
-- bool flush = status == f_eof;
-- if (buf.ptr() != buf.eptr() || flush) {
-- const char_type* next = buf.ptr();
-+ bool flush_l = status == f_eof;
-+ if (buf_l.ptr() != buf_l.eptr() || flush_l) {
-+ const char_type* next = buf_l.ptr();
- bool done =
-- !filter().filter(next, buf.eptr(), next_s, end_s, flush);
-- buf.ptr() = buf.data() + (next - buf.data());
-+ !filter().filter(next, buf_l.eptr(), next_s, end_s, flush_l);
-+ buf_l.ptr() = buf_l.data() + (next - buf_l.data());
- if (done)
- return detail::check_eof(
- static_cast<std::streamsize>(next_s - s)
-@@ -124,7 +124,7 @@
-
- // If no more characters are available without blocking, or
- // if read request has been satisfied, return.
-- if ( (status == f_would_block && buf.ptr() == buf.eptr()) ||
-+ if ( (status == f_would_block && buf_l.ptr() == buf_l.eptr()) ||
- next_s == end_s )
- {
- return static_cast<std::streamsize>(next_s - s);
-@@ -142,12 +142,12 @@
- if (!(state() & f_write))
- begin_write();
-
-- buffer_type& buf = pimpl_->buf_;
-+ buffer_type& buf_l = pimpl_->buf_;
- const char_type *next_s, *end_s;
- for (next_s = s, end_s = s + n; next_s != end_s; ) {
-- if (buf.ptr() == buf.eptr() && !flush(snk))
-+ if (buf_l.ptr() == buf_l.eptr() && !flush(snk))
- break;
-- if(!filter().filter(next_s, end_s, buf.ptr(), buf.eptr(), false)) {
-+ if(!filter().filter(next_s, end_s, buf_l.ptr(), buf_l.eptr(), false)) {
- flush(snk);
- break;
- }
-@@ -165,14 +165,14 @@
-
- // Repeatedly invoke filter() with no input.
- try {
-- buffer_type& buf = pimpl_->buf_;
-+ buffer_type& buf_l = pimpl_->buf_;
- char_type dummy;
- const char_type* end = &dummy;
- bool again = true;
- while (again) {
-- if (buf.ptr() != buf.eptr())
-- again = filter().filter( end, end, buf.ptr(),
-- buf.eptr(), true );
-+ if (buf_l.ptr() != buf_l.eptr())
-+ again = filter().filter( end, end, buf_l.ptr(),
-+ buf_l.eptr(), true );
- flush(snk);
- }
- } catch (...) {
-diff -ru boost.orig/boost/iostreams/filter/zlib.hpp boost/boost/iostreams/filter/zlib.hpp
---- foo/misc/boost.orig/boost/iostreams/filter/zlib.hpp 2015-01-25 20:33:40.000000000 +0100
-+++ foo/misc/boost/boost/iostreams/filter/zlib.hpp 2015-07-19 12:13:59.995919056 +0200
-@@ -110,16 +110,16 @@
- struct zlib_params {
-
- // Non-explicit constructor.
-- zlib_params( int level = zlib::default_compression,
-- int method = zlib::deflated,
-- int window_bits = zlib::default_window_bits,
-- int mem_level = zlib::default_mem_level,
-- int strategy = zlib::default_strategy,
-- bool noheader = zlib::default_noheader,
-- bool calculate_crc = zlib::default_crc )
-- : level(level), method(method), window_bits(window_bits),
-- mem_level(mem_level), strategy(strategy),
-- noheader(noheader), calculate_crc(calculate_crc)
-+ zlib_params( int level_ = zlib::default_compression,
-+ int method_ = zlib::deflated,
-+ int window_bits_ = zlib::default_window_bits,
-+ int mem_level_ = zlib::default_mem_level,
-+ int strategy_ = zlib::default_strategy,
-+ bool noheader_ = zlib::default_noheader,
-+ bool calculate_crc_ = zlib::default_crc )
-+ : level(level_), method(method_), window_bits(window_bits_),
-+ mem_level(mem_level_), strategy(strategy_),
-+ noheader(noheader_), calculate_crc(calculate_crc_)
- { }
- int level;
- int method;
-diff -ru boost.orig/libs/iostreams/src/zlib.cpp boost/libs/iostreams/src/zlib.cpp
---- foo/misc/boost.orig/libs/iostreams/src/zlib.cpp 2015-01-25 20:33:40.000000000 +0100
-+++ foo/misc/boost/libs/iostreams/src/zlib.cpp 2015-07-19 12:14:51.815918473 +0200
-@@ -67,8 +67,8 @@
-
- //------------------Implementation of zlib_error------------------------------//
-
--zlib_error::zlib_error(int error)
-- : BOOST_IOSTREAMS_FAILURE("zlib error"), error_(error)
-+zlib_error::zlib_error(int error_arg)
-+ : BOOST_IOSTREAMS_FAILURE("zlib error"), error_(error_arg)
- { }
-
- void zlib_error::check BOOST_PREVENT_MACRO_SUBSTITUTION(int error)
diff --git a/external/boost/boost_1_59_0.iostreams.wunused.patch b/external/boost/boost_1_59_0.iostreams.wunused.patch
deleted file mode 100644
index a05dd1ca39ed..000000000000
--- a/external/boost/boost_1_59_0.iostreams.wunused.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ru boost.orig/boost/iostreams/filter/gzip.hpp boost/boost/iostreams/filter/gzip.hpp
---- foo/misc/boost.orig/boost/iostreams/filter/gzip.hpp 2015-07-22 20:58:35.758990022 +0200
-+++ foo/misc/boost/boost/iostreams/filter/gzip.hpp 2015-07-22 21:20:50.982997292 +0200
-@@ -279,7 +279,7 @@
- boost::iostreams::put(next, static_cast<char>(0xFF & (n >> 24)));
- }
- template<typename Sink>
-- static void write_long(long n, Sink& next, boost::mpl::false_)
-+ static void write_long(long, Sink&, boost::mpl::false_)
- {
- }
- template<typename Sink>
diff --git a/external/boost/boost_1_59_0.multi_array.wshadow.patch b/external/boost/boost_1_59_0.multi_array.wshadow.patch
deleted file mode 100644
index c988a9be7949..000000000000
--- a/external/boost/boost_1_59_0.multi_array.wshadow.patch
+++ /dev/null
@@ -1,484 +0,0 @@
-diff -ru boost.orig/boost/multi_array/concept_checks.hpp boost/boost/multi_array/concept_checks.hpp
---- foo/misc/boost.orig/boost/multi_array/concept_checks.hpp 2015-07-19 21:08:27.605982202 +0200
-+++ foo/misc/boost/boost/multi_array/concept_checks.hpp 2015-07-19 21:18:59.330975102 +0200
-@@ -162,27 +162,27 @@
- const_constraints(a);
- }
-
-- void const_constraints(const Array& a) {
-+ void const_constraints(const Array& a_) {
-
- // value_type vt = a[ id ];
-
- // Test slicing, keeping only the first dimension, losing the rest
-- detail::idgen_helper<NumDims-1>::call(a,idgen[range],id);
-+ detail::idgen_helper<NumDims-1>::call(a_,idgen[range],id);
-
- // Test slicing, keeping all dimensions.
-- detail::idgen_helper<NumDims-1>::call(a,idgen[range],range);
-+ detail::idgen_helper<NumDims-1>::call(a_,idgen[range],range);
-
-- st = a.size();
-- st = a.num_dimensions();
-- st = a.num_elements();
-- stp = a.shape();
-- idp = a.strides();
-- idp = a.index_bases();
-- cit = a.begin();
-- cit = a.end();
-- crit = a.rbegin();
-- crit = a.rend();
-- eltp = a.origin();
-+ st = a_.size();
-+ st = a_.num_dimensions();
-+ st = a_.num_elements();
-+ stp = a_.shape();
-+ idp = a_.strides();
-+ idp = a_.index_bases();
-+ cit = a_.begin();
-+ cit = a_.end();
-+ crit = a_.rbegin();
-+ crit = a_.rend();
-+ eltp = a_.origin();
- }
-
- typedef typename Array::value_type value_type;
-diff -ru boost.orig/boost/multi_array/extent_range.hpp boost/boost/multi_array/extent_range.hpp
---- foo/misc/boost.orig/boost/multi_array/extent_range.hpp 2014-04-23 17:36:51.000000000 +0200
-+++ foo/misc/boost/boost/multi_array/extent_range.hpp 2015-07-19 21:14:52.850977872 +0200
-@@ -26,11 +26,11 @@
- typedef Extent index;
- typedef SizeType size_type;
-
-- extent_range(index start, index finish) :
-- super_type(start,finish) { }
-+ extent_range(index start_, index finish_) :
-+ super_type(start_,finish_) { }
-
-- extent_range(index finish) :
-- super_type(0,finish) { }
-+ extent_range(index finish_) :
-+ super_type(0,finish_) { }
-
- extent_range() : super_type(0,0) { }
-
-diff -ru boost.orig/boost/multi_array/index_range.hpp boost/boost/multi_array/index_range.hpp
---- foo/misc/boost.orig/boost/multi_array/index_range.hpp 2014-04-23 17:36:51.000000000 +0200
-+++ foo/misc/boost/boost/multi_array/index_range.hpp 2015-07-19 21:17:06.618976369 +0200
-@@ -60,8 +60,8 @@
- degenerate_ = true;
- }
-
-- explicit index_range(index start, index finish, index stride=1)
-- : start_(start), finish_(finish), stride_(stride),
-+ explicit index_range(index start_arg, index finish_arg, index stride_arg=1)
-+ : start_(start_arg), finish_(finish_arg), stride_(stride_arg),
- degenerate_(false)
- { }
-
-@@ -107,11 +107,11 @@
-
- index stride() const { return stride_; }
-
-- void set_index_range(index start, index finish, index stride=1)
-+ void set_index_range(index start_arg, index finish_arg, index stride_arg=1)
- {
-- start_ = start;
-- finish_ = finish;
-- stride_ = stride;
-+ start_ = start_arg;
-+ finish_ = finish_arg;
-+ stride_ = stride_arg;
- }
-
- static index_range all()
-diff -ru boost.orig/boost/multi_array/multi_array_ref.hpp boost/boost/multi_array/multi_array_ref.hpp
---- foo/misc/boost.orig/boost/multi_array/multi_array_ref.hpp 2014-04-23 17:36:51.000000000 +0200
-+++ foo/misc/boost/boost/multi_array/multi_array_ref.hpp 2015-07-19 21:26:35.935969970 +0200
-@@ -125,13 +125,13 @@
- }
-
- template <class InputIterator>
-- void assign(InputIterator begin, InputIterator end) {
-+ void assign(InputIterator begin_, InputIterator end_) {
- boost::function_requires<InputIteratorConcept<InputIterator> >();
-
-- InputIterator in_iter = begin;
-+ InputIterator in_iter = begin_;
- T* out_iter = base_;
- std::size_t copy_count=0;
-- while (in_iter != end && copy_count < num_elements_) {
-+ while (in_iter != end_ && copy_count < num_elements_) {
- *out_iter++ = *in_iter++;
- copy_count++;
- }
-@@ -324,15 +324,15 @@
- explicit
- const_multi_array_ref(TPtr base,
- const storage_order_type& so,
-- const index * index_bases,
-+ const index * index_bases_,
- const size_type* extents) :
- base_(base), storage_(so), origin_offset_(0), directional_offset_(0)
- {
- // If index_bases or extents is null, then initialize the corresponding
- // private data to zeroed lists.
-- if(index_bases) {
-+ if(index_bases_) {
- boost::detail::multi_array::
-- copy_n(index_bases,NumDims,index_base_list_.begin());
-+ copy_n(index_bases_,NumDims,index_base_list_.begin());
- } else {
- std::fill_n(index_base_list_.begin(),NumDims,0);
- }
-@@ -611,9 +611,9 @@
- // This is only supplied to support multi_array's default constructor
- explicit multi_array_ref(T* base,
- const storage_order_type& so,
-- const index* index_bases,
-+ const index* index_bases_arg,
- const size_type* extents) :
-- super_type(base,so,index_bases,extents) { }
-+ super_type(base,so,index_bases_arg,extents) { }
-
- };
-
-diff -ru boost.orig/boost/multi_array/storage_order.hpp boost/boost/multi_array/storage_order.hpp
---- foo/misc/boost.orig/boost/multi_array/storage_order.hpp 2014-04-23 17:36:51.000000000 +0200
-+++ foo/misc/boost/boost/multi_array/storage_order.hpp 2015-07-19 21:23:07.040972318 +0200
-@@ -34,10 +34,10 @@
- public:
- typedef detail::multi_array::size_type size_type;
- template <typename OrderingIter, typename AscendingIter>
-- general_storage_order(OrderingIter ordering,
-- AscendingIter ascending) {
-- boost::detail::multi_array::copy_n(ordering,NumDims,ordering_.begin());
-- boost::detail::multi_array::copy_n(ascending,NumDims,ascending_.begin());
-+ general_storage_order(OrderingIter ordering_arg,
-+ AscendingIter ascending_arg) {
-+ boost::detail::multi_array::copy_n(ordering_arg,NumDims,ordering_.begin());
-+ boost::detail::multi_array::copy_n(ascending_arg,NumDims,ascending_.begin());
- }
-
- // RG - ideally these would not be necessary, but some compilers
-diff -ru boost.orig/boost/multi_array/subarray.hpp boost/boost/multi_array/subarray.hpp
---- foo/misc/boost.orig/boost/multi_array/subarray.hpp 2014-04-23 17:36:51.000000000 +0200
-+++ foo/misc/boost/boost/multi_array/subarray.hpp 2015-07-19 21:25:51.521970469 +0200
-@@ -177,9 +177,9 @@
-
- const_sub_array (TPtr base,
- const size_type* extents,
-- const index* strides,
-+ const index* strides_arg,
- const index* index_base) :
-- base_(base), extents_(extents), strides_(strides),
-+ base_(base), extents_(extents), strides_(strides_arg),
- index_base_(index_base) {
- }
-
-@@ -357,9 +357,9 @@
-
- sub_array (T* base,
- const size_type* extents,
-- const index* strides,
-+ const index* strides_arg,
- const index* index_base) :
-- super_type(base,extents,strides,index_base) {
-+ super_type(base,extents,strides_arg,index_base) {
- }
-
- };
-diff -ru boost.orig/boost/multi_array/view.hpp boost/boost/multi_array/view.hpp
---- foo/misc/boost.orig/boost/multi_array/view.hpp 2014-04-23 17:36:51.000000000 +0200
-+++ foo/misc/boost/boost/multi_array/view.hpp 2015-07-19 21:25:28.396970729 +0200
-@@ -228,7 +228,7 @@
- template <typename ExtentList, typename Index>
- explicit const_multi_array_view(TPtr base,
- const ExtentList& extents,
-- const boost::array<Index,NumDims>& strides):
-+ const boost::array<Index,NumDims>& strides_):
- base_(base), origin_offset_(0) {
-
- index_base_list_.assign(0);
-@@ -237,7 +237,7 @@
- boost::detail::multi_array::
- copy_n(extents.begin(),NumDims,extent_list_.begin());
- boost::detail::multi_array::
-- copy_n(strides.begin(),NumDims,stride_list_.begin());
-+ copy_n(strides_.begin(),NumDims,stride_list_.begin());
-
- // Calculate the array size
- num_elements_ = std::accumulate(extent_list_.begin(),extent_list_.end(),
-@@ -430,8 +430,8 @@
- template <typename ExtentList, typename Index>
- explicit multi_array_view(T* base,
- const ExtentList& extents,
-- const boost::array<Index,NumDims>& strides) :
-- super_type(base,extents,strides) { }
-+ const boost::array<Index,NumDims>& strides_) :
-+ super_type(base,extents,strides_) { }
-
- };
-
-diff -ru boost.org/boost/multi_array/multi_array_ref.hpp boost/boost/multi_array/multi_array_ref.hpp
---- foo/misc/boost.org/boost/multi_array/multi_array_ref.hpp 2015-07-21 23:15:13.897990987 +0200
-+++ foo/misc/boost/boost/multi_array/multi_array_ref.hpp 2015-07-22 07:41:54.348055865 +0200
-@@ -87,24 +87,24 @@
- num_elements_(other.num_elements_) { }
-
- template <typename ExtentList>
-- explicit const_multi_array_ref(TPtr base, const ExtentList& extents) :
-+ explicit const_multi_array_ref(TPtr base, const ExtentList& extents_arg) :
- base_(base), storage_(c_storage_order()) {
- boost::function_requires<
- CollectionConcept<ExtentList> >();
-
- index_base_list_.assign(0);
-- init_multi_array_ref(extents.begin());
-+ init_multi_array_ref(extents_arg.begin());
- }
-
- template <typename ExtentList>
-- explicit const_multi_array_ref(TPtr base, const ExtentList& extents,
-+ explicit const_multi_array_ref(TPtr base, const ExtentList& extents_arg,
- const general_storage_order<NumDims>& so) :
- base_(base), storage_(so) {
- boost::function_requires<
- CollectionConcept<ExtentList> >();
-
- index_base_list_.assign(0);
-- init_multi_array_ref(extents.begin());
-+ init_multi_array_ref(extents_arg.begin());
- }
-
- explicit const_multi_array_ref(TPtr base,
-@@ -162,14 +162,14 @@
- }
-
- template <typename SizeList>
-- void reshape(const SizeList& extents) {
-+ void reshape(const SizeList& extents_arg) {
- boost::function_requires<
- CollectionConcept<SizeList> >();
- BOOST_ASSERT(num_elements_ ==
-- std::accumulate(extents.begin(),extents.end(),
-+ std::accumulate(extents_arg.begin(),extents_arg.end(),
- size_type(1),std::multiplies<size_type>()));
-
-- std::copy(extents.begin(),extents.end(),extent_list_.begin());
-+ std::copy(extents_arg.begin(),extents_arg.end(),extent_list_.begin());
- this->compute_strides(stride_list_,extent_list_,storage_);
-
- origin_offset_ =
-@@ -209,11 +209,11 @@
- }
-
- template <typename IndexList>
-- const element& operator()(IndexList indices) const {
-+ const element& operator()(IndexList indices_arg) const {
- boost::function_requires<
- CollectionConcept<IndexList> >();
- return super_type::access_element(boost::type<const element&>(),
-- indices,origin(),
-+ indices_arg,origin(),
- shape(),strides(),index_bases());
- }
-
-@@ -228,12 +228,12 @@
- template <int NDims>
- typename const_array_view<NDims>::type
- operator[](const detail::multi_array::
-- index_gen<NumDims,NDims>& indices)
-+ index_gen<NumDims,NDims>& indices_arg)
- const {
- typedef typename const_array_view<NDims>::type return_type;
- return
- super_type::generate_array_view(boost::type<return_type>(),
-- indices,
-+ indices_arg,
- shape(),
- strides(),
- index_bases(),
-@@ -325,7 +325,7 @@
- const_multi_array_ref(TPtr base,
- const storage_order_type& so,
- const index * index_bases_,
-- const size_type* extents) :
-+ const size_type* extents_arg) :
- base_(base), storage_(so), origin_offset_(0), directional_offset_(0)
- {
- // If index_bases or extents is null, then initialize the corresponding
-@@ -336,8 +336,8 @@
- } else {
- std::fill_n(index_base_list_.begin(),NumDims,0);
- }
-- if(extents) {
-- init_multi_array_ref(extents);
-+ if(extents_arg) {
-+ init_multi_array_ref(extents_arg);
- } else {
- boost::array<index,NumDims> extent_list;
- extent_list.assign(0);
-@@ -371,12 +371,12 @@
- boost::mem_fun_ref(&extent_range::start));
-
- // calculate the extents
-- extent_list extents;
-+ extent_list extents_local;
- std::transform(ranges.ranges_.begin(),ranges.ranges_.end(),
-- extents.begin(),
-+ extents_local.begin(),
- boost::mem_fun_ref(&extent_range::size));
-
-- init_multi_array_ref(extents.begin());
-+ init_multi_array_ref(extents_local.begin());
- }
-
-
-@@ -442,16 +442,16 @@
- };
-
- template <class ExtentList>
-- explicit multi_array_ref(T* base, const ExtentList& extents) :
-- super_type(base,extents) {
-+ explicit multi_array_ref(T* base, const ExtentList& extents_arg) :
-+ super_type(base,extents_arg) {
- boost::function_requires<
- CollectionConcept<ExtentList> >();
- }
-
- template <class ExtentList>
-- explicit multi_array_ref(T* base, const ExtentList& extents,
-+ explicit multi_array_ref(T* base, const ExtentList& extents_arg,
- const general_storage_order<NumDims>& so) :
-- super_type(base,extents,so) {
-+ super_type(base,extents_arg,so) {
- boost::function_requires<
- CollectionConcept<ExtentList> >();
- }
-@@ -506,11 +506,11 @@
- element* data() { return super_type::base_; }
-
- template <class IndexList>
-- element& operator()(const IndexList& indices) {
-+ element& operator()(const IndexList& indices_arg) {
- boost::function_requires<
- CollectionConcept<IndexList> >();
- return super_type::access_element(boost::type<element&>(),
-- indices,origin(),
-+ indices_arg,origin(),
- this->shape(),this->strides(),
- this->index_bases());
- }
-@@ -528,11 +528,11 @@
- template <int NDims>
- typename array_view<NDims>::type
- operator[](const detail::multi_array::
-- index_gen<NumDims,NDims>& indices) {
-+ index_gen<NumDims,NDims>& indices_arg) {
- typedef typename array_view<NDims>::type return_type;
- return
- super_type::generate_array_view(boost::type<return_type>(),
-- indices,
-+ indices_arg,
- this->shape(),
- this->strides(),
- this->index_bases(),
-@@ -569,10 +569,10 @@
- const element* data() const { return super_type::data(); }
-
- template <class IndexList>
-- const element& operator()(const IndexList& indices) const {
-+ const element& operator()(const IndexList& indices_arg) const {
- boost::function_requires<
- CollectionConcept<IndexList> >();
-- return super_type::operator()(indices);
-+ return super_type::operator()(indices_arg);
- }
-
- const_reference operator[](index idx) const {
-@@ -586,9 +586,9 @@
- template <int NDims>
- typename const_array_view<NDims>::type
- operator[](const detail::multi_array::
-- index_gen<NumDims,NDims>& indices)
-+ index_gen<NumDims,NDims>& indices_arg)
- const {
-- return super_type::operator[](indices);
-+ return super_type::operator[](indices_arg);
- }
-
- const_iterator begin() const {
-@@ -612,8 +612,8 @@
- explicit multi_array_ref(T* base,
- const storage_order_type& so,
- const index* index_bases_arg,
-- const size_type* extents) :
-- super_type(base,so,index_bases_arg,extents) { }
-+ const size_type* extents_arg) :
-+ super_type(base,so,index_bases_arg,extents_arg) { }
-
- };
-
-diff -ru boost.org/boost/multi_array.hpp boost/boost/multi_array.hpp
---- foo/misc/boost.org/boost/multi_array.hpp 2014-04-23 17:36:51.000000000 +0200
-+++ foo/misc/boost/boost/multi_array.hpp 2015-07-22 07:42:38.361058726 +0200
-@@ -145,14 +145,14 @@
-
- template <class ExtentList>
- explicit multi_array(
-- ExtentList const& extents
-+ ExtentList const& extents_arg
- #ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
- , typename mpl::if_<
- detail::multi_array::is_multi_array_impl<ExtentList>,
- int&,int>::type* = 0
- #endif
- ) :
-- super_type((T*)initial_base_,extents) {
-+ super_type((T*)initial_base_,extents_arg) {
- boost::function_requires<
- detail::multi_array::CollectionConcept<ExtentList> >();
- allocate_space();
-@@ -160,19 +160,19 @@
-
-
- template <class ExtentList>
-- explicit multi_array(ExtentList const& extents,
-+ explicit multi_array(ExtentList const& extents_arg,
- const general_storage_order<NumDims>& so) :
-- super_type((T*)initial_base_,extents,so) {
-+ super_type((T*)initial_base_,extents_arg,so) {
- boost::function_requires<
- detail::multi_array::CollectionConcept<ExtentList> >();
- allocate_space();
- }
-
- template <class ExtentList>
-- explicit multi_array(ExtentList const& extents,
-+ explicit multi_array(ExtentList const& extents_arg,
- const general_storage_order<NumDims>& so,
- Allocator const& alloc) :
-- super_type((T*)initial_base_,extents,so), allocator_(alloc) {
-+ super_type((T*)initial_base_,extents_arg,so), allocator_(alloc) {
- boost::function_requires<
- detail::multi_array::CollectionConcept<ExtentList> >();
- allocate_space();
-@@ -381,7 +381,7 @@
-
-
- template <typename ExtentList>
-- multi_array& resize(const ExtentList& extents) {
-+ multi_array& resize(const ExtentList& extents_arg) {
- boost::function_requires<
- detail::multi_array::CollectionConcept<ExtentList> >();
-
-@@ -390,7 +390,7 @@
-
- for (int i=0; i != NumDims; ++i) {
- typedef typename gen_type::range range_type;
-- ranges.ranges_[i] = range_type(0,extents[i]);
-+ ranges.ranges_[i] = range_type(0,extents_arg[i]);
- }
-
- return this->resize(ranges);
diff --git a/external/boost/boost_1_59_0.property_tree.wreturn-type.patch b/external/boost/boost_1_59_0.property_tree.wreturn-type.patch
index d795bd67fd15..bc718ef8fc23 100644
--- a/external/boost/boost_1_59_0.property_tree.wreturn-type.patch
+++ b/external/boost/boost_1_59_0.property_tree.wreturn-type.patch
@@ -1,3 +1,5 @@
+aka MSVC warning C4715: not all control paths return a value
+
diff -ru boost.org/boost/property_tree/detail/json_parser/standard_callbacks.hpp boost/boost/property_tree/detail/json_parser/standard_callbacks.hpp
--- foo/misc/boost.org/boost/property_tree/detail/json_parser/standard_callbacks.hpp 2015-07-07 14:20:48.000000000 +0200
+++ foo/misc/boost/boost/property_tree/detail/json_parser/standard_callbacks.hpp 2015-07-22 08:35:07.764263463 +0200
diff --git a/external/boost/boost_1_59_0.property_tree.wshadow.patch b/external/boost/boost_1_59_0.property_tree.wshadow.patch
deleted file mode 100644
index 3b93bba33f07..000000000000
--- a/external/boost/boost_1_59_0.property_tree.wshadow.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-diff -ru boost.orig/boost/property_tree/detail/json_parser/parser.hpp boost/boost/property_tree/detail/json_parser/parser.hpp
---- foo/misc/boost.orig/boost/property_tree/detail/json_parser/parser.hpp 2015-07-07 14:20:48.000000000 +0200
-+++ foo/misc/boost/boost/property_tree/detail/json_parser/parser.hpp 2015-07-19 12:36:35.481903821 +0200
-@@ -22,12 +22,12 @@
- code_unit;
- typedef bool (Encoding::*encoding_predicate)(code_unit c) const;
-
-- explicit source(Encoding& encoding) : encoding(encoding) {}
-+ explicit source(Encoding& encoding_) : encoding(encoding_) {}
-
- template <typename Range>
-- void set_input(const std::string& filename, const Range& r)
-+ void set_input(const std::string& filename_, const Range& r)
- {
-- this->filename = filename;
-+ this->filename = filename_;
- cur = r.begin();
- end = r.end();
- line = 1;
-@@ -107,9 +107,9 @@
- class number_callback_adapter
- {
- public:
-- number_callback_adapter(Callbacks& callbacks, Encoding& encoding,
-- Iterator& cur)
-- : callbacks(callbacks), encoding(encoding), first(cur), cur(cur)
-+ number_callback_adapter(Callbacks& callbacks_, Encoding& encoding_,
-+ Iterator& cur_)
-+ : callbacks(callbacks_), encoding(encoding_), first(cur_), cur(cur_)
- {}
-
- void operator ()(typename Encoding::external_char) {}
-@@ -132,9 +132,9 @@
- std::input_iterator_tag>
- {
- public:
-- number_callback_adapter(Callbacks& callbacks, Encoding& encoding,
-+ number_callback_adapter(Callbacks& callbacks_, Encoding& encoding_,
- Iterator&)
-- : callbacks(callbacks), encoding(encoding), first(true)
-+ : callbacks(callbacks_), encoding(encoding_), first(true)
- {}
-
- void operator ()(typename Encoding::external_char c) {
-@@ -162,10 +162,10 @@
- class string_callback_adapter
- {
- public:
-- string_callback_adapter(Callbacks& callbacks, Encoding& encoding,
-- Iterator& cur)
-- : callbacks(callbacks), encoding(encoding), cur(cur),
-- run_begin(cur)
-+ string_callback_adapter(Callbacks& callbacks_, Encoding& encoding_,
-+ Iterator& cur_)
-+ : callbacks(callbacks_), encoding(encoding_), cur(cur_),
-+ run_begin(cur_)
- {}
-
- void start_run() {
-@@ -195,9 +195,9 @@
- std::input_iterator_tag>
- {
- public:
-- string_callback_adapter(Callbacks& callbacks, Encoding& encoding,
-- Iterator& cur)
-- : callbacks(callbacks), encoding(encoding), cur(cur)
-+ string_callback_adapter(Callbacks& callbacks_, Encoding& encoding_,
-+ Iterator& cur_)
-+ : callbacks(callbacks_), encoding(encoding_), cur(cur_)
- {}
-
- void start_run() {}
-@@ -232,8 +232,8 @@
- typedef typename source::code_unit code_unit;
-
- public:
-- parser(Callbacks& callbacks, Encoding& encoding)
-- : callbacks(callbacks), encoding(encoding), src(encoding)
-+ parser(Callbacks& callbacks_, Encoding& encoding_)
-+ : callbacks(callbacks_), encoding(encoding_), src(encoding_)
- {}
-
- template <typename Range>
-diff -ru boost.org/boost/property_tree/detail/json_parser/wide_encoding.hpp boost/boost/property_tree/detail/json_parser/wide_encoding.hpp
---- foo/misc/boost.org/boost/property_tree/detail/json_parser/wide_encoding.hpp 2015-07-07 14:20:48.000000000 +0200
-+++ foo/misc/boost/boost/property_tree/detail/json_parser/wide_encoding.hpp 2015-07-22 06:51:07.089598136 +0200
-@@ -104,7 +104,7 @@
-
- template <typename Iterator, typename Sentinel, typename TranscodedFn,
- typename EncodingErrorFn>
-- void transcode_codepoint(Iterator& cur, Sentinel end,
-+ void transcode_codepoint(Iterator& cur, Sentinel,
- TranscodedFn transcoded_fn,
- EncodingErrorFn error_fn,
- is_utf16<false>) const {
-@@ -117,7 +117,7 @@
- }
- template <typename Iterator, typename Sentinel, typename TranscodedFn,
- typename EncodingErrorFn>
-- void transcode_codepoint(Iterator& cur, Sentinel end,
-+ void transcode_codepoint(Iterator& cur, Sentinel,
- TranscodedFn transcoded_fn,
- EncodingErrorFn error_fn,
- is_utf16<true>) const {
diff --git a/external/boost/boost_1_59_0.property_tree.wtype-limits.patch b/external/boost/boost_1_59_0.property_tree.wtype-limits.patch
deleted file mode 100644
index d8426c3224b5..000000000000
--- a/external/boost/boost_1_59_0.property_tree.wtype-limits.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-This patch fixes the following warning, issued by GCC 4.8.1 20130909 compiler:
-
-In member function ‘char boost::property_tree::json_parser::detail::utf8_utf8_encoding::to_internal_trivial(char) const’:
-workdir/UnpackedTarball/boost/boost/property_tree/detail/json_parser/narrow_encoding.hpp:71:25: warning:
-comparison is always true due to limited range of data type [-Wtype-limits]
- assert(c <= 0x7f);
-
-diff -ru boost.orig/boost/property_tree/detail/json_parser/narrow_encoding.hpp boost/boost/property_tree/detail/json_parser/narrow_encoding.hpp
---- foo/misc/boost.orig/boost/property_tree/detail/json_parser/narrow_encoding.hpp 2015-07-07 14:20:48.000000000 +0200
-+++ foo/misc/boost/boost/property_tree/detail/json_parser/narrow_encoding.hpp 2015-07-19 11:55:28.268931551 +0200
-@@ -68,7 +68,7 @@
- }
-
- char to_internal_trivial(char c) const {
-- assert(c <= 0x7f);
-+ //assert(c <= 0x7f);
- return c;
- }
-
diff --git a/external/boost/boost_1_59_0.rational.wshadow.patch b/external/boost/boost_1_59_0.rational.wshadow.patch
deleted file mode 100644
index dcca867aede8..000000000000
--- a/external/boost/boost_1_59_0.rational.wshadow.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ru boost.orig/boost/rational.hpp boost/boost/rational.hpp
---- foo/misc/boost.orig/boost/rational.hpp 2015-01-29 15:06:21.000000000 +0100
-+++ foo/misc/boost/boost/rational.hpp 2015-07-19 12:45:44.193897654 +0200
-@@ -110,7 +110,7 @@
- {
- public:
- explicit bad_rational() : std::domain_error("bad rational: zero denominator") {}
-- explicit bad_rational( char const *what ) : std::domain_error( what ) {}
-+ explicit bad_rational( char const *what_ ) : std::domain_error( what_ ) {}
- };
-
- template <typename IntType>
diff --git a/external/boost/clang-cl.patch.0 b/external/boost/clang-cl.patch.0
index 2dcabfe17711..2dcabfe17711 100755..100644
--- a/external/boost/clang-cl.patch.0
+++ b/external/boost/clang-cl.patch.0
diff --git a/external/boost/fallthrough.patch.0 b/external/boost/fallthrough.patch.0
deleted file mode 100644
index 8b0fb1d0a123..000000000000
--- a/external/boost/fallthrough.patch.0
+++ /dev/null
@@ -1,46 +0,0 @@
---- boost/format/parsing.hpp
-+++ boost/format/parsing.hpp
-@@ -19,6 +19,7 @@
- #include <boost/format/exceptions.hpp>
- #include <boost/throw_exception.hpp>
- #include <boost/assert.hpp>
-+#include <boost/config.hpp>
-
-
- namespace boost {
-@@ -267,6 +268,7 @@
- switch ( wrap_narrow(fac, *start, 0) ) {
- case 'X':
- fpar->fmtstate_.flags_ |= std::ios_base::uppercase;
-+ BOOST_FALLTHROUGH;
- case 'p': // pointer => set hex.
- case 'x':
- fpar->fmtstate_.flags_ &= ~std::ios_base::basefield;
-@@ -280,6 +282,7 @@
-
- case 'E':
- fpar->fmtstate_.flags_ |= std::ios_base::uppercase;
-+ BOOST_FALLTHROUGH;
- case 'e':
- fpar->fmtstate_.flags_ &= ~std::ios_base::floatfield;
- fpar->fmtstate_.flags_ |= std::ios_base::scientific;
-@@ -291,6 +294,7 @@
- case 'f':
- fpar->fmtstate_.flags_ &= ~std::ios_base::floatfield;
- fpar->fmtstate_.flags_ |= std::ios_base::fixed;
-+ BOOST_FALLTHROUGH;
- case 'u':
- case 'd':
- case 'i':
---- ./boost/property_tree/detail/json_parser/standard_callbacks.hpp
-+++ ./boost/property_tree/detail/json_parser/standard_callbacks.hpp
-@@ -116,8 +116,8 @@
- return *stack.back().t;
- }
- case object:
-- assert(false); // must start with string, i.e. call new_value
- case key: {
-+ assert(l.k != object); // must start with string, i.e. call new_value
- l.t->push_back(std::make_pair(key_buffer, Ptree()));
- l.k = object;
- layer nl = {leaf, &l.t->back().second};
diff --git a/external/boost/gcc6-warnings.patch.0 b/external/boost/gcc6-warnings.patch.0
deleted file mode 100644
index 66ea135c0a16..000000000000
--- a/external/boost/gcc6-warnings.patch.0
+++ /dev/null
@@ -1,65 +0,0 @@
---- boost/function/function_base.hpp
-+++ boost/function/function_base.hpp
-@@ -305,7 +305,21 @@
- if (op == clone_functor_tag || op == move_functor_tag) {
- const functor_type* in_functor =
- static_cast<const functor_type*>(static_cast<void*>(&in_buffer.data));
-+#if defined __GNUC__
-+#pragma GCC diagnostic push
-+#if defined __clang__
-+#if __has_warning("-Wplacement-new")
-+#pragma GCC diagnostic ignored "-Wplacement-new"
-+#endif
-+#else
-+#pragma GCC diagnostic ignored "-Wpragmas"
-+#pragma GCC diagnostic ignored "-Wplacement-new"
-+#endif
-+#endif
- new (reinterpret_cast<void*>(&out_buffer.data)) functor_type(*in_functor);
-+#if defined __GNUC__
-+#pragma GCC diagnostic pop
-+#endif
-
- if (op == move_functor_tag) {
- functor_type* f = static_cast<functor_type*>(static_cast<void*>(&in_buffer.data));
---- boost/function/function_template.hpp
-+++ boost/function/function_template.hpp
-@@ -569,7 +569,21 @@
- void
- assign_functor(FunctionObj f, function_buffer& functor, mpl::true_) const
- {
-+#if defined __GNUC__
-+#pragma GCC diagnostic push
-+#if defined __clang__
-+#if __has_warning("-Wplacement-new")
-+#pragma GCC diagnostic ignored "-Wplacement-new"
-+#endif
-+#else
-+#pragma GCC diagnostic ignored "-Wpragmas"
-+#pragma GCC diagnostic ignored "-Wplacement-new"
-+#endif
-+#endif
- new (reinterpret_cast<void*>(&functor.data)) FunctionObj(f);
-+#if defined __GNUC__
-+#pragma GCC diagnostic pop
-+#endif
- }
- template<typename FunctionObj,typename Allocator>
- void
---- boost/multi_index/detail/index_node_base.hpp
-+++ boost/multi_index/detail/index_node_base.hpp
-@@ -51,7 +51,14 @@
-
- value_type& value()
- {
-+#if defined __GNUC__
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
-+#endif
- return *reinterpret_cast<value_type*>(&this->space);
-+#if defined __GNUC__
-+#pragma GCC diagnostic pop
-+#endif
- }
-
- const value_type& value()const
diff --git a/external/boost/include/boost/algorithm/string.hpp b/external/boost/include/boost/algorithm/string.hpp
new file mode 100644
index 000000000000..7f44ca663685
--- /dev/null
+++ b/external/boost/include/boost/algorithm/string.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/algorithm/string.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/algorithm/string/case_conv.hpp b/external/boost/include/boost/algorithm/string/case_conv.hpp
new file mode 100644
index 000000000000..e0229b7f623d
--- /dev/null
+++ b/external/boost/include/boost/algorithm/string/case_conv.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/algorithm/string/case_conv.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/algorithm/string/classification.hpp b/external/boost/include/boost/algorithm/string/classification.hpp
new file mode 100644
index 000000000000..ee6fb5f0b816
--- /dev/null
+++ b/external/boost/include/boost/algorithm/string/classification.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/algorithm/string/classification.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/algorithm/string/predicate.hpp b/external/boost/include/boost/algorithm/string/predicate.hpp
new file mode 100644
index 000000000000..def1d376cab6
--- /dev/null
+++ b/external/boost/include/boost/algorithm/string/predicate.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/algorithm/string/predicate.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/algorithm/string/split.hpp b/external/boost/include/boost/algorithm/string/split.hpp
new file mode 100644
index 000000000000..13bce67e65d0
--- /dev/null
+++ b/external/boost/include/boost/algorithm/string/split.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/algorithm/string/split.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/any.hpp b/external/boost/include/boost/any.hpp
new file mode 100644
index 000000000000..ea0518b4a616
--- /dev/null
+++ b/external/boost/include/boost/any.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/any.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/archive/iterators/base64_from_binary.hpp b/external/boost/include/boost/archive/iterators/base64_from_binary.hpp
new file mode 100644
index 000000000000..3f67dbcffb03
--- /dev/null
+++ b/external/boost/include/boost/archive/iterators/base64_from_binary.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/archive/iterators/base64_from_binary.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/archive/iterators/binary_from_base64.hpp b/external/boost/include/boost/archive/iterators/binary_from_base64.hpp
new file mode 100644
index 000000000000..9565488ec6fe
--- /dev/null
+++ b/external/boost/include/boost/archive/iterators/binary_from_base64.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/archive/iterators/binary_from_base64.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/archive/iterators/remove_whitespace.hpp b/external/boost/include/boost/archive/iterators/remove_whitespace.hpp
new file mode 100644
index 000000000000..957b8223fdbe
--- /dev/null
+++ b/external/boost/include/boost/archive/iterators/remove_whitespace.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/archive/iterators/remove_whitespace.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/archive/iterators/transform_width.hpp b/external/boost/include/boost/archive/iterators/transform_width.hpp
new file mode 100644
index 000000000000..e3baa9396429
--- /dev/null
+++ b/external/boost/include/boost/archive/iterators/transform_width.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/archive/iterators/transform_width.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/asio.hpp b/external/boost/include/boost/asio.hpp
new file mode 100644
index 000000000000..e3843632c969
--- /dev/null
+++ b/external/boost/include/boost/asio.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/asio.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/assign.hpp b/external/boost/include/boost/assign.hpp
new file mode 100644
index 000000000000..4dca6fba6293
--- /dev/null
+++ b/external/boost/include/boost/assign.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/assign.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/bind.hpp b/external/boost/include/boost/bind.hpp
new file mode 100644
index 000000000000..304d19dd2453
--- /dev/null
+++ b/external/boost/include/boost/bind.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/bind.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/cast.hpp b/external/boost/include/boost/cast.hpp
new file mode 100644
index 000000000000..82e631fa3d9b
--- /dev/null
+++ b/external/boost/include/boost/cast.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/cast.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/checked_delete.hpp b/external/boost/include/boost/checked_delete.hpp
new file mode 100644
index 000000000000..1fb5927e8945
--- /dev/null
+++ b/external/boost/include/boost/checked_delete.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/checked_delete.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/container/deque.hpp b/external/boost/include/boost/container/deque.hpp
new file mode 100644
index 000000000000..cfcf86b0cb0f
--- /dev/null
+++ b/external/boost/include/boost/container/deque.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/container/deque.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/cstdint.hpp b/external/boost/include/boost/cstdint.hpp
new file mode 100644
index 000000000000..bc15138192ec
--- /dev/null
+++ b/external/boost/include/boost/cstdint.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/cstdint.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/current_function.hpp b/external/boost/include/boost/current_function.hpp
new file mode 100644
index 000000000000..e73a150a723c
--- /dev/null
+++ b/external/boost/include/boost/current_function.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/current_function.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/date_time.hpp b/external/boost/include/boost/date_time.hpp
new file mode 100644
index 000000000000..239bdc677193
--- /dev/null
+++ b/external/boost/include/boost/date_time.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/date_time.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/date_time/posix_time/posix_time.hpp b/external/boost/include/boost/date_time/posix_time/posix_time.hpp
new file mode 100644
index 000000000000..0d2d980a2db5
--- /dev/null
+++ b/external/boost/include/boost/date_time/posix_time/posix_time.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/date_time/posix_time/posix_time.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/enable_shared_from_this.hpp b/external/boost/include/boost/enable_shared_from_this.hpp
new file mode 100644
index 000000000000..54aa713c866a
--- /dev/null
+++ b/external/boost/include/boost/enable_shared_from_this.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/enable_shared_from_this.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/filesystem.hpp b/external/boost/include/boost/filesystem.hpp
new file mode 100644
index 000000000000..f588b5622e9f
--- /dev/null
+++ b/external/boost/include/boost/filesystem.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/filesystem.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/filesystem/path.hpp b/external/boost/include/boost/filesystem/path.hpp
new file mode 100644
index 000000000000..89fa0e7658be
--- /dev/null
+++ b/external/boost/include/boost/filesystem/path.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/filesystem/path.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/foreach.hpp b/external/boost/include/boost/foreach.hpp
new file mode 100644
index 000000000000..63897c499380
--- /dev/null
+++ b/external/boost/include/boost/foreach.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/foreach.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/format.hpp b/external/boost/include/boost/format.hpp
new file mode 100644
index 000000000000..c267a54295ff
--- /dev/null
+++ b/external/boost/include/boost/format.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/format.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/function.hpp b/external/boost/include/boost/function.hpp
new file mode 100644
index 000000000000..e953251eca68
--- /dev/null
+++ b/external/boost/include/boost/function.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/function.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/functional/hash.hpp b/external/boost/include/boost/functional/hash.hpp
new file mode 100644
index 000000000000..ae6a57d94521
--- /dev/null
+++ b/external/boost/include/boost/functional/hash.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/functional/hash.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/fusion/adapted/std_pair.hpp b/external/boost/include/boost/fusion/adapted/std_pair.hpp
new file mode 100644
index 000000000000..9de388b55895
--- /dev/null
+++ b/external/boost/include/boost/fusion/adapted/std_pair.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/fusion/adapted/std_pair.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/fusion/include/adapt_struct.hpp b/external/boost/include/boost/fusion/include/adapt_struct.hpp
new file mode 100644
index 000000000000..8f0915fbe4c2
--- /dev/null
+++ b/external/boost/include/boost/fusion/include/adapt_struct.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/fusion/include/adapt_struct.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/intrusive/circular_list_algorithms.hpp b/external/boost/include/boost/intrusive/circular_list_algorithms.hpp
new file mode 100644
index 000000000000..9c2292374f58
--- /dev/null
+++ b/external/boost/include/boost/intrusive/circular_list_algorithms.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/intrusive/circular_list_algorithms.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/intrusive_ptr.hpp b/external/boost/include/boost/intrusive_ptr.hpp
new file mode 100644
index 000000000000..a5103ea47e4f
--- /dev/null
+++ b/external/boost/include/boost/intrusive_ptr.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/intrusive_ptr.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/io/ios_state.hpp b/external/boost/include/boost/io/ios_state.hpp
new file mode 100644
index 000000000000..bb973c4bc794
--- /dev/null
+++ b/external/boost/include/boost/io/ios_state.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/io/ios_state.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/iostreams/device/file_descriptor.hpp b/external/boost/include/boost/iostreams/device/file_descriptor.hpp
new file mode 100644
index 000000000000..9ca6303af77a
--- /dev/null
+++ b/external/boost/include/boost/iostreams/device/file_descriptor.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/iostreams/device/file_descriptor.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/iostreams/filter/gzip.hpp b/external/boost/include/boost/iostreams/filter/gzip.hpp
new file mode 100644
index 000000000000..ee63702ed46a
--- /dev/null
+++ b/external/boost/include/boost/iostreams/filter/gzip.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/iostreams/filter/gzip.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/iostreams/filtering_stream.hpp b/external/boost/include/boost/iostreams/filtering_stream.hpp
new file mode 100644
index 000000000000..255da38e3f46
--- /dev/null
+++ b/external/boost/include/boost/iostreams/filtering_stream.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/iostreams/filtering_stream.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/iterator/iterator_facade.hpp b/external/boost/include/boost/iterator/iterator_facade.hpp
new file mode 100644
index 000000000000..79192b8991b1
--- /dev/null
+++ b/external/boost/include/boost/iterator/iterator_facade.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/iterator/iterator_facade.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/lexical_cast.hpp b/external/boost/include/boost/lexical_cast.hpp
new file mode 100644
index 000000000000..50ec97a65fb0
--- /dev/null
+++ b/external/boost/include/boost/lexical_cast.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/lexical_cast.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/logic/tribool.hpp b/external/boost/include/boost/logic/tribool.hpp
new file mode 100644
index 000000000000..a313aa864689
--- /dev/null
+++ b/external/boost/include/boost/logic/tribool.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/logic/tribool.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/make_shared.hpp b/external/boost/include/boost/make_shared.hpp
new file mode 100644
index 000000000000..ebe1c5650c11
--- /dev/null
+++ b/external/boost/include/boost/make_shared.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/make_shared.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/math/special_functions/expm1.hpp b/external/boost/include/boost/math/special_functions/expm1.hpp
new file mode 100644
index 000000000000..4be9fef32d44
--- /dev/null
+++ b/external/boost/include/boost/math/special_functions/expm1.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/math/special_functions/expm1.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/math/special_functions/log1p.hpp b/external/boost/include/boost/math/special_functions/log1p.hpp
new file mode 100644
index 000000000000..d0edd4605ee2
--- /dev/null
+++ b/external/boost/include/boost/math/special_functions/log1p.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/math/special_functions/log1p.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/math/special_functions/sinc.hpp b/external/boost/include/boost/math/special_functions/sinc.hpp
new file mode 100644
index 000000000000..5251bff5ef5a
--- /dev/null
+++ b/external/boost/include/boost/math/special_functions/sinc.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/math/special_functions/sinc.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/multi_array.hpp b/external/boost/include/boost/multi_array.hpp
new file mode 100644
index 000000000000..7044700fcbbd
--- /dev/null
+++ b/external/boost/include/boost/multi_array.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/multi_array.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/noncopyable.hpp b/external/boost/include/boost/noncopyable.hpp
new file mode 100644
index 000000000000..7406fcce5a33
--- /dev/null
+++ b/external/boost/include/boost/noncopyable.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/noncopyable.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/none.hpp b/external/boost/include/boost/none.hpp
new file mode 100644
index 000000000000..279a1792d5ba
--- /dev/null
+++ b/external/boost/include/boost/none.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/none.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/numeric/conversion/cast.hpp b/external/boost/include/boost/numeric/conversion/cast.hpp
new file mode 100644
index 000000000000..6a543e13c7c5
--- /dev/null
+++ b/external/boost/include/boost/numeric/conversion/cast.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/numeric/conversion/cast.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/operators.hpp b/external/boost/include/boost/operators.hpp
new file mode 100644
index 000000000000..946e890903a5
--- /dev/null
+++ b/external/boost/include/boost/operators.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/operators.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/optional.hpp b/external/boost/include/boost/optional.hpp
new file mode 100644
index 000000000000..dd2a61f29f0f
--- /dev/null
+++ b/external/boost/include/boost/optional.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/optional.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/optional/optional.hpp b/external/boost/include/boost/optional/optional.hpp
new file mode 100644
index 000000000000..b5e6b31012db
--- /dev/null
+++ b/external/boost/include/boost/optional/optional.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/optional/optional.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/preprocessor/stringize.hpp b/external/boost/include/boost/preprocessor/stringize.hpp
new file mode 100644
index 000000000000..aea886c4729d
--- /dev/null
+++ b/external/boost/include/boost/preprocessor/stringize.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/preprocessor/stringize.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/program_options.hpp b/external/boost/include/boost/program_options.hpp
new file mode 100644
index 000000000000..e5e837dbd80a
--- /dev/null
+++ b/external/boost/include/boost/program_options.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/program_options.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/property_tree/json_parser.hpp b/external/boost/include/boost/property_tree/json_parser.hpp
new file mode 100644
index 000000000000..a1e0ab9a908d
--- /dev/null
+++ b/external/boost/include/boost/property_tree/json_parser.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/property_tree/json_parser.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/property_tree/ptree.hpp b/external/boost/include/boost/property_tree/ptree.hpp
new file mode 100644
index 000000000000..61d7564ae38e
--- /dev/null
+++ b/external/boost/include/boost/property_tree/ptree.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/property_tree/ptree.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/ptr_container/ptr_vector.hpp b/external/boost/include/boost/ptr_container/ptr_vector.hpp
new file mode 100644
index 000000000000..cfb19cb6e0bb
--- /dev/null
+++ b/external/boost/include/boost/ptr_container/ptr_vector.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/ptr_container/ptr_vector.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/range/adaptor/reversed.hpp b/external/boost/include/boost/range/adaptor/reversed.hpp
new file mode 100644
index 000000000000..09a4e6793c34
--- /dev/null
+++ b/external/boost/include/boost/range/adaptor/reversed.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/range/adaptor/reversed.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/range/iterator_range.hpp b/external/boost/include/boost/range/iterator_range.hpp
new file mode 100644
index 000000000000..f7e6b8515f1b
--- /dev/null
+++ b/external/boost/include/boost/range/iterator_range.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/range/iterator_range.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/rational.hpp b/external/boost/include/boost/rational.hpp
new file mode 100644
index 000000000000..4e25e55a5bde
--- /dev/null
+++ b/external/boost/include/boost/rational.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/rational.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/ref.hpp b/external/boost/include/boost/ref.hpp
new file mode 100644
index 000000000000..d7bd9f0f8ced
--- /dev/null
+++ b/external/boost/include/boost/ref.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/ref.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/scoped_array.hpp b/external/boost/include/boost/scoped_array.hpp
new file mode 100644
index 000000000000..ee8f53e3ce7e
--- /dev/null
+++ b/external/boost/include/boost/scoped_array.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/scoped_array.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/scoped_ptr.hpp b/external/boost/include/boost/scoped_ptr.hpp
new file mode 100644
index 000000000000..f46b8ca5d876
--- /dev/null
+++ b/external/boost/include/boost/scoped_ptr.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/scoped_ptr.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/shared_array.hpp b/external/boost/include/boost/shared_array.hpp
new file mode 100644
index 000000000000..8645042a17c8
--- /dev/null
+++ b/external/boost/include/boost/shared_array.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/shared_array.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/shared_ptr.hpp b/external/boost/include/boost/shared_ptr.hpp
new file mode 100644
index 000000000000..be612c7e3c2b
--- /dev/null
+++ b/external/boost/include/boost/shared_ptr.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/shared_ptr.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/spirit.hpp b/external/boost/include/boost/spirit.hpp
new file mode 100644
index 000000000000..0622d8a8fc7e
--- /dev/null
+++ b/external/boost/include/boost/spirit.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/spirit.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/spirit/include/classic.hpp b/external/boost/include/boost/spirit/include/classic.hpp
new file mode 100644
index 000000000000..be23d44e5639
--- /dev/null
+++ b/external/boost/include/boost/spirit/include/classic.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/spirit/include/classic.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/spirit/include/classic_core.hpp b/external/boost/include/boost/spirit/include/classic_core.hpp
new file mode 100644
index 000000000000..53cc556579c6
--- /dev/null
+++ b/external/boost/include/boost/spirit/include/classic_core.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/spirit/include/classic_core.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/spirit/include/classic_error_handling.hpp b/external/boost/include/boost/spirit/include/classic_error_handling.hpp
new file mode 100644
index 000000000000..b802ee0d94db
--- /dev/null
+++ b/external/boost/include/boost/spirit/include/classic_error_handling.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/spirit/include/classic_error_handling.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/spirit/include/classic_file_iterator.hpp b/external/boost/include/boost/spirit/include/classic_file_iterator.hpp
new file mode 100644
index 000000000000..23a6d2300a1b
--- /dev/null
+++ b/external/boost/include/boost/spirit/include/classic_file_iterator.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/spirit/include/classic_file_iterator.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/spirit/include/classic_utility.hpp b/external/boost/include/boost/spirit/include/classic_utility.hpp
new file mode 100644
index 000000000000..e1336166b1e7
--- /dev/null
+++ b/external/boost/include/boost/spirit/include/classic_utility.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/spirit/include/classic_utility.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/spirit/include/classic_while.hpp b/external/boost/include/boost/spirit/include/classic_while.hpp
new file mode 100644
index 000000000000..245a0a964193
--- /dev/null
+++ b/external/boost/include/boost/spirit/include/classic_while.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/spirit/include/classic_while.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/spirit/include/phoenix.hpp b/external/boost/include/boost/spirit/include/phoenix.hpp
new file mode 100644
index 000000000000..5194af0fb0ca
--- /dev/null
+++ b/external/boost/include/boost/spirit/include/phoenix.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/spirit/include/phoenix.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/spirit/include/qi.hpp b/external/boost/include/boost/spirit/include/qi.hpp
new file mode 100644
index 000000000000..38d205454a1d
--- /dev/null
+++ b/external/boost/include/boost/spirit/include/qi.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/spirit/include/qi.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/spirit/include/qi_attr.hpp b/external/boost/include/boost/spirit/include/qi_attr.hpp
new file mode 100644
index 000000000000..18db033bda76
--- /dev/null
+++ b/external/boost/include/boost/spirit/include/qi_attr.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/spirit/include/qi_attr.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/spirit/include/qi_lit.hpp b/external/boost/include/boost/spirit/include/qi_lit.hpp
new file mode 100644
index 000000000000..da35a4f1c161
--- /dev/null
+++ b/external/boost/include/boost/spirit/include/qi_lit.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/spirit/include/qi_lit.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/spirit/include/qi_optional.hpp b/external/boost/include/boost/spirit/include/qi_optional.hpp
new file mode 100644
index 000000000000..7500ea74967f
--- /dev/null
+++ b/external/boost/include/boost/spirit/include/qi_optional.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/spirit/include/qi_optional.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/spirit/include/qi_parse_attr.hpp b/external/boost/include/boost/spirit/include/qi_parse_attr.hpp
new file mode 100644
index 000000000000..e2852b5e125a
--- /dev/null
+++ b/external/boost/include/boost/spirit/include/qi_parse_attr.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/spirit/include/qi_parse_attr.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/spirit/include/qi_sequence.hpp b/external/boost/include/boost/spirit/include/qi_sequence.hpp
new file mode 100644
index 000000000000..4cc670aa1e02
--- /dev/null
+++ b/external/boost/include/boost/spirit/include/qi_sequence.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/spirit/include/qi_sequence.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/spirit/include/qi_symbols.hpp b/external/boost/include/boost/spirit/include/qi_symbols.hpp
new file mode 100644
index 000000000000..48b1b3bbc393
--- /dev/null
+++ b/external/boost/include/boost/spirit/include/qi_symbols.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/spirit/include/qi_symbols.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/static_assert.hpp b/external/boost/include/boost/static_assert.hpp
new file mode 100644
index 000000000000..80c85f130860
--- /dev/null
+++ b/external/boost/include/boost/static_assert.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/static_assert.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/system/error_code.hpp b/external/boost/include/boost/system/error_code.hpp
new file mode 100644
index 000000000000..08598f88290f
--- /dev/null
+++ b/external/boost/include/boost/system/error_code.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/system/error_code.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/unordered_map.hpp b/external/boost/include/boost/unordered_map.hpp
new file mode 100644
index 000000000000..96bc353ebe28
--- /dev/null
+++ b/external/boost/include/boost/unordered_map.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/unordered_map.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/unordered_set.hpp b/external/boost/include/boost/unordered_set.hpp
new file mode 100644
index 000000000000..c8775fe3acae
--- /dev/null
+++ b/external/boost/include/boost/unordered_set.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/unordered_set.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/uuid/sha1.hpp b/external/boost/include/boost/uuid/sha1.hpp
new file mode 100644
index 000000000000..e3d8f0c3d12b
--- /dev/null
+++ b/external/boost/include/boost/uuid/sha1.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/uuid/sha1.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/uuid/uuid_generators.hpp b/external/boost/include/boost/uuid/uuid_generators.hpp
new file mode 100644
index 000000000000..8d51f4bb552d
--- /dev/null
+++ b/external/boost/include/boost/uuid/uuid_generators.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/uuid/uuid_generators.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/uuid/uuid_io.hpp b/external/boost/include/boost/uuid/uuid_io.hpp
new file mode 100644
index 000000000000..b6e9421f9e94
--- /dev/null
+++ b/external/boost/include/boost/uuid/uuid_io.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/uuid/uuid_io.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/variant.hpp b/external/boost/include/boost/variant.hpp
new file mode 100644
index 000000000000..c168c79da0d0
--- /dev/null
+++ b/external/boost/include/boost/variant.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/variant.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/variant/recursive_variant.hpp b/external/boost/include/boost/variant/recursive_variant.hpp
new file mode 100644
index 000000000000..3b572bc36060
--- /dev/null
+++ b/external/boost/include/boost/variant/recursive_variant.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/variant/recursive_variant.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/version.hpp b/external/boost/include/boost/version.hpp
new file mode 100644
index 000000000000..5196b83e6d95
--- /dev/null
+++ b/external/boost/include/boost/version.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/version.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/include/boost/weak_ptr.hpp b/external/boost/include/boost/weak_ptr.hpp
new file mode 100644
index 000000000000..5dcc7502d9ff
--- /dev/null
+++ b/external/boost/include/boost/weak_ptr.hpp
@@ -0,0 +1,23 @@
+/* generated by bin/gen-boost-headers, do not edit! */
+#pragma once
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunknown-pragmas" /* first! for clang */
+#pragma GCC diagnostic ignored "-Wpragmas" /* second! for GCC */
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#pragma GCC diagnostic ignored "-Wextra"
+#pragma GCC diagnostic ignored "-Wignored-qualifiers"
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#pragma GCC diagnostic ignored "-Winvalid-constexpr"
+#pragma GCC diagnostic ignored "-Wplacement-new"
+#pragma GCC diagnostic ignored "-Wreturn-type"
+#pragma GCC diagnostic ignored "-Wshadow"
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare"
+#pragma GCC diagnostic ignored "-Wtype-limits"
+#pragma GCC diagnostic ignored "-Wundef"
+#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+#pragma GCC diagnostic ignored "-Wunused-macros"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#include_next <boost/weak_ptr.hpp>
+#pragma GCC diagnostic pop
diff --git a/external/boost/rtti.patch.0 b/external/boost/rtti.patch.0
index fb689edd1503..09fc95ced444 100644
--- a/external/boost/rtti.patch.0
+++ b/external/boost/rtti.patch.0
@@ -1,3 +1,5 @@
+Visible function type RTTI for Clang -fsanitize=function
+
--- boost/function/function_base.hpp
+++ boost/function/function_base.hpp
@@ -97,7 +97,7 @@
diff --git a/external/boost/ubsan.patch.0 b/external/boost/ubsan.patch.0
index 5f378c0b749e..6ff6649dd1ee 100644
--- a/external/boost/ubsan.patch.0
+++ b/external/boost/ubsan.patch.0
@@ -1,3 +1,5 @@
+Work around -fsanitize=bool
+
--- boost/algorithm/string/find_iterator.hpp
+++ boost/algorithm/string/find_iterator.hpp
@@ -240,7 +240,7 @@