1diff -ur misc/boost_1_55_0/boost/asio/ssl/impl/context.ipp misc/build/boost_1_55_0/boost/asio/ssl/impl/context.ipp 2--- misc/boost_1_55_0/boost/asio/ssl/impl/context.ipp 2013-10-26 16:25:53.000000000 -0700 3+++ misc/build/boost_1_55_0/boost/asio/ssl/impl/context.ipp 2016-03-23 01:11:12.425434000 -0700 4@@ -87,6 +87,14 @@ 5 handle_ = ::SSL_CTX_new(::SSLv2_server_method()); 6 break; 7 #endif // defined(OPENSSL_NO_SSL2) 8+#if defined(OPENSSL_NO_SSL3) 9+ case context::sslv3: 10+ case context::sslv3_client: 11+ case context::sslv3_server: 12+ boost::asio::detail::throw_error( 13+ boost::asio::error::invalid_argument, "context"); 14+ break; 15+#else // defined(OPENSSL_NO_SSL3) 16 case context::sslv3: 17 handle_ = ::SSL_CTX_new(::SSLv3_method()); 18 break; 19@@ -96,6 +104,7 @@ 20 case context::sslv3_server: 21 handle_ = ::SSL_CTX_new(::SSLv3_server_method()); 22 break; 23+#endif // defined(OPENSSL_NO_SSL3) 24 case context::tlsv1: 25 handle_ = ::SSL_CTX_new(::TLSv1_method()); 26 break; 27diff -ur misc/boost_1_55_0/boost/asio/ssl/old/detail/openssl_context_service.hpp misc/build/boost_1_55_0/boost/asio/ssl/old/detail/openssl_context_service.hpp 28--- misc/boost_1_55_0/boost/asio/ssl/old/detail/openssl_context_service.hpp 2013-05-20 05:32:20.000000000 -0700 29+++ misc/build/boost_1_55_0/boost/asio/ssl/old/detail/openssl_context_service.hpp 2016-03-23 01:11:12.426497000 -0700 30@@ -85,6 +85,13 @@ 31 impl = ::SSL_CTX_new(::SSLv2_server_method()); 32 break; 33 #endif // defined(OPENSSL_NO_SSL2) 34+#if defined(OPENSSL_NO_SSL3) 35+ case context_base::sslv3: 36+ case context_base::sslv3_client: 37+ case context_base::sslv3_server: 38+ boost::asio::detail::throw_error(boost::asio::error::invalid_argument); 39+ break; 40+#else // defined(OPENSSL_NO_SSL3) 41 case context_base::sslv3: 42 impl = ::SSL_CTX_new(::SSLv3_method()); 43 break; 44@@ -94,6 +101,7 @@ 45 case context_base::sslv3_server: 46 impl = ::SSL_CTX_new(::SSLv3_server_method()); 47 break; 48+#endif // defined(OPENSSL_NO_SSL3) 49 case context_base::tlsv1: 50 impl = ::SSL_CTX_new(::TLSv1_method()); 51 break; 52diff -ur misc/boost_1_55_0/boost/bind/arg.hpp misc/build/boost_1_55_0/boost/bind/arg.hpp 53--- misc/boost_1_55_0/boost/bind/arg.hpp 2007-11-25 10:07:19.000000000 -0800 54+++ misc/build/boost_1_55_0/boost/bind/arg.hpp 2016-03-23 01:11:12.421530000 -0700 55@@ -33,8 +33,7 @@ 56 57 template< class T > arg( T const & /* t */ ) 58 { 59- // static assert I == is_placeholder<T>::value 60- typedef char T_must_be_placeholder[ I == is_placeholder<T>::value? 1: -1 ]; 61+ BOOST_STATIC_ASSERT( I == is_placeholder<T>::value ); 62 } 63 }; 64 65diff -ur misc/boost_1_55_0/boost/concept/detail/general.hpp misc/build/boost_1_55_0/boost/concept/detail/general.hpp 66--- misc/boost_1_55_0/boost/concept/detail/general.hpp 2010-06-08 12:31:13.000000000 -0700 67+++ misc/build/boost_1_55_0/boost/concept/detail/general.hpp 2016-03-23 01:11:12.388374000 -0700 68@@ -65,10 +65,19 @@ 69 70 # endif 71 72+// Version check from https://svn.boost.org/trac/boost/changeset/82886 73+// (boost/static_assert.hpp) 74+#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7))) || defined(__clang__) 75+#define BOOST_CONCEPT_UNUSED_TYPEDEF __attribute__((unused)) 76+#else 77+#define BOOST_CONCEPT_UNUSED_TYPEDEF /**/ 78+#endif 79+ 80 # define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \ 81 typedef ::boost::concepts::detail::instantiate< \ 82 &::boost::concepts::requirement_<ModelFnPtr>::failed> \ 83- BOOST_PP_CAT(boost_concept_check,__LINE__) 84+ BOOST_PP_CAT(boost_concept_check,__LINE__) \ 85+ BOOST_CONCEPT_UNUSED_TYPEDEF 86 87 }} 88 89diff -ur misc/boost_1_55_0/boost/math/special_functions/fpclassify.hpp misc/build/boost_1_55_0/boost/math/special_functions/fpclassify.hpp 90--- misc/boost_1_55_0/boost/math/special_functions/fpclassify.hpp 2013-09-28 09:19:47.000000000 -0700 91+++ misc/build/boost_1_55_0/boost/math/special_functions/fpclassify.hpp 2016-03-23 01:11:12.392773000 -0700 92@@ -348,7 +348,7 @@ 93 { //!< \brief return true if floating-point type t is finite. 94 typedef detail::fp_traits<long double>::type traits; 95 typedef traits::method method; 96- typedef boost::is_floating_point<long double>::type fp_tag; 97+ //typedef boost::is_floating_point<long double>::type fp_tag; 98 typedef long double value_type; 99 return detail::isfinite_impl(static_cast<value_type>(x), method()); 100 } 101@@ -419,7 +419,7 @@ 102 { 103 typedef detail::fp_traits<long double>::type traits; 104 typedef traits::method method; 105- typedef boost::is_floating_point<long double>::type fp_tag; 106+ //typedef boost::is_floating_point<long double>::type fp_tag; 107 typedef long double value_type; 108 return detail::isnormal_impl(static_cast<value_type>(x), method()); 109 } 110@@ -508,7 +508,7 @@ 111 { 112 typedef detail::fp_traits<long double>::type traits; 113 typedef traits::method method; 114- typedef boost::is_floating_point<long double>::type fp_tag; 115+ //typedef boost::is_floating_point<long double>::type fp_tag; 116 typedef long double value_type; 117 return detail::isinf_impl(static_cast<value_type>(x), method()); 118 } 119@@ -594,7 +594,7 @@ 120 { //!< \brief return true if floating-point type t is NaN (Not A Number). 121 typedef detail::fp_traits<long double>::type traits; 122 typedef traits::method method; 123- typedef boost::is_floating_point<long double>::type fp_tag; 124+ //typedef boost::is_floating_point<long double>::type fp_tag; 125 return detail::isnan_impl(x, method()); 126 } 127 #endif 128diff -ur misc/boost_1_55_0/boost/spirit/home/classic/core/primitives/primitives.hpp misc/build/boost_1_55_0/boost/spirit/home/classic/core/primitives/primitives.hpp 129--- misc/boost_1_55_0/boost/spirit/home/classic/core/primitives/primitives.hpp 2008-06-22 08:05:38.000000000 -0700 130+++ misc/build/boost_1_55_0/boost/spirit/home/classic/core/primitives/primitives.hpp 2016-03-23 01:11:12.407415000 -0700 131@@ -47,7 +47,6 @@ 132 typename parser_result<self_t, ScannerT>::type 133 parse(ScannerT const& scan) const 134 { 135- typedef typename parser_result<self_t, ScannerT>::type result_t; 136 typedef typename ScannerT::value_t value_t; 137 typedef typename ScannerT::iterator_t iterator_t; 138 139diff -ur misc/boost_1_55_0/boost/static_assert.hpp misc/build/boost_1_55_0/boost/static_assert.hpp 140--- misc/boost_1_55_0/boost/static_assert.hpp 2013-09-21 13:17:00.000000000 -0700 141+++ misc/build/boost_1_55_0/boost/static_assert.hpp 2016-03-23 01:11:12.430683000 -0700 142@@ -67,7 +67,7 @@ 143 // 144 // If the compiler warns about unused typedefs then enable this: 145 // 146-#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7))) 147+#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7))) || defined(__clang__) 148 # define BOOST_STATIC_ASSERT_UNUSED_ATTRIBUTE __attribute__((unused)) 149 #else 150 # define BOOST_STATIC_ASSERT_UNUSED_ATTRIBUTE 151diff -ur misc/boost_1_55_0/boost/tuple/detail/tuple_basic.hpp misc/build/boost_1_55_0/boost/tuple/detail/tuple_basic.hpp 152--- misc/boost_1_55_0/boost/tuple/detail/tuple_basic.hpp 2011-01-02 12:25:11.000000000 -0800 153+++ misc/build/boost_1_55_0/boost/tuple/detail/tuple_basic.hpp 2016-03-23 01:11:12.435344000 -0700 154@@ -225,7 +225,6 @@ 155 get(const cons<HT, TT>& c BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) { 156 typedef BOOST_DEDUCED_TYPENAME detail::drop_front<N>::BOOST_NESTED_TEMPLATE 157 apply<cons<HT, TT> > impl; 158- typedef BOOST_DEDUCED_TYPENAME impl::type cons_element; 159 return impl::call(c).head; 160 } 161 162diff -ur misc/boost_1_55_0/boost/unordered/detail/equivalent.hpp misc/build/boost_1_55_0/boost/unordered/detail/equivalent.hpp 163--- misc/boost_1_55_0/boost/unordered/detail/equivalent.hpp 2012-12-05 14:06:57.000000000 -0800 164+++ misc/build/boost_1_55_0/boost/unordered/detail/equivalent.hpp 2016-03-23 01:04:46.934774000 -0700 165@@ -534,11 +534,11 @@ 166 } 167 168 node_pointer first_node = static_cast<node_pointer>(prev->next_); 169- link_pointer end = first_node->group_prev_->next_; 170+ link_pointer end_var = first_node->group_prev_->next_; 171 172- std::size_t count = this->delete_nodes(prev, end); 173+ std::size_t count_var = this->delete_nodes(prev, end_var); 174 this->fix_bucket(bucket_index, prev); 175- return count; 176+ return count_var; 177 } 178 179 iterator erase(c_iterator r) 180@@ -557,21 +557,21 @@ 181 return iterator(r2.node_); 182 } 183 184- link_pointer erase_nodes(node_pointer begin, node_pointer end) 185+ link_pointer erase_nodes(node_pointer begin_arg, node_pointer end_arg) 186 { 187- std::size_t bucket_index = this->hash_to_bucket(begin->hash_); 188+ std::size_t bucket_index = this->hash_to_bucket(begin_arg->hash_); 189 190- // Split the groups containing 'begin' and 'end'. 191+ // Split the groups containing 'begin_arg' and 'end_arg'. 192 // And get the pointer to the node before begin while 193 // we're at it. 194- link_pointer prev = split_groups(begin, end); 195+ link_pointer prev = split_groups(begin_arg, end_arg); 196 197- // If we don't have a 'prev' it means that begin is at the 198+ // If we don't have a 'prev' it means that begin_arg is at the 199 // beginning of a block, so search through the blocks in the 200 // same bucket. 201 if (!prev) { 202 prev = this->get_previous_start(bucket_index); 203- while (prev->next_ != begin) 204+ while (prev->next_ != begin_arg) 205 prev = static_cast<node_pointer>(prev->next_)->group_prev_; 206 } 207 208@@ -581,24 +581,24 @@ 209 static_cast<node_pointer>(prev->next_)->group_prev_->next_; 210 this->delete_nodes(prev, group_end); 211 bucket_index = this->fix_bucket(bucket_index, prev); 212- } while(prev->next_ != end); 213+ } while(prev->next_ != end_arg); 214 215 return prev; 216 } 217 218- static link_pointer split_groups(node_pointer begin, node_pointer end) 219+ static link_pointer split_groups(node_pointer begin_arg, node_pointer end_arg) 220 { 221- node_pointer prev = begin->group_prev_; 222- if (prev->next_ != begin) prev = node_pointer(); 223+ node_pointer prev = begin_arg->group_prev_; 224+ if (prev->next_ != begin_arg) prev = node_pointer(); 225 226- if (end) { 227- node_pointer first = end; 228- while (first != begin && first->group_prev_->next_ == first) { 229+ if (end_arg) { 230+ node_pointer first = end_arg; 231+ while (first != begin_arg && first->group_prev_->next_ == first) { 232 first = first->group_prev_; 233 } 234 235- boost::swap(first->group_prev_, end->group_prev_); 236- if (first == begin) return prev; 237+ boost::swap(first->group_prev_, end_arg->group_prev_); 238+ if (first == begin_arg) return prev; 239 } 240 241 if (prev) { 242@@ -606,7 +606,7 @@ 243 while (first->group_prev_->next_ == first) { 244 first = first->group_prev_; 245 } 246- boost::swap(first->group_prev_, begin->group_prev_); 247+ boost::swap(first->group_prev_, begin_arg->group_prev_); 248 } 249 250 return prev; 251diff -ur misc/boost_1_55_0/boost/unordered/detail/table.hpp misc/build/boost_1_55_0/boost/unordered/detail/table.hpp 252--- misc/boost_1_55_0/boost/unordered/detail/table.hpp 2013-08-18 02:44:14.000000000 -0700 253+++ misc/build/boost_1_55_0/boost/unordered/detail/table.hpp 2016-03-23 01:04:46.936005000 -0700 254@@ -257,9 +257,9 @@ 255 return prev ? iterator(prev->next_) : iterator(); 256 } 257 258- std::size_t hash_to_bucket(std::size_t hash) const 259+ std::size_t hash_to_bucket(std::size_t hash_arg) const 260 { 261- return policy::to_bucket(bucket_count_, hash); 262+ return policy::to_bucket(bucket_count_, hash_arg); 263 } 264 265 float load_factor() const 266@@ -655,8 +655,8 @@ 267 // assign_nodes takes ownership of the container's elements, 268 // assigning to them if possible, and deleting any that are 269 // left over. 270- assign_nodes<table> assign(*this); 271- table_impl::fill_buckets(x.begin(), *this, assign); 272+ assign_nodes<table> assign_var(*this); 273+ table_impl::fill_buckets(x.begin(), *this, assign_var); 274 } 275 276 void assign(table const& x, true_type) 277@@ -730,9 +730,9 @@ 278 // move_assign_nodes takes ownership of the container's 279 // elements, assigning to them if possible, and deleting 280 // any that are left over. 281- move_assign_nodes<table> assign(*this); 282+ move_assign_nodes<table> assign_var(*this); 283 node_holder<node_allocator> nodes(x); 284- table_impl::fill_buckets(nodes.begin(), *this, assign); 285+ table_impl::fill_buckets(nodes.begin(), *this, assign_var); 286 } 287 } 288 289diff -ur misc/boost_1_55_0/boost/unordered/detail/unique.hpp misc/build/boost_1_55_0/boost/unordered/detail/unique.hpp 290--- misc/boost_1_55_0/boost/unordered/detail/unique.hpp 2013-08-18 02:44:14.000000000 -0700 291+++ misc/build/boost_1_55_0/boost/unordered/detail/unique.hpp 2016-03-23 01:04:46.937066000 -0700 292@@ -529,9 +529,9 @@ 293 294 link_pointer end = static_cast<node_pointer>(prev->next_)->next_; 295 296- std::size_t count = this->delete_nodes(prev, end); 297+ std::size_t count_var = this->delete_nodes(prev, end); 298 this->fix_bucket(bucket_index, prev); 299- return count; 300+ return count_var; 301 } 302 303 iterator erase(c_iterator r) 304@@ -550,19 +550,19 @@ 305 return iterator(r2.node_); 306 } 307 308- void erase_nodes(node_pointer begin, node_pointer end) 309+ void erase_nodes(node_pointer begin_arg, node_pointer end_arg) 310 { 311- std::size_t bucket_index = this->hash_to_bucket(begin->hash_); 312+ std::size_t bucket_index = this->hash_to_bucket(begin_arg->hash_); 313 314- // Find the node before begin. 315+ // Find the node before begin_arg 316 link_pointer prev = this->get_previous_start(bucket_index); 317- while(prev->next_ != begin) prev = prev->next_; 318+ while(prev->next_ != begin_arg) prev = prev->next_; 319 320 // Delete the nodes. 321 do { 322 this->delete_node(prev); 323 bucket_index = this->fix_bucket(bucket_index, prev); 324- } while (prev->next_ != end); 325+ } while (prev->next_ != end_arg); 326 } 327 328 //////////////////////////////////////////////////////////////////////// 329diff -ur misc/boost_1_55_0/boost/config/compiler/gcc.hpp misc/build/boost_1_55_0/boost/config/compiler/gcc.hpp 330--- misc/boost_1_55_0/boost/config/compiler/gcc.hpp 2013-09-17 09:55:51.000000000 -0700 331+++ misc/build/boost_1_55_0/boost/config/compiler/gcc.hpp 2019-11-04 09:59:20.741944674 -0800 332@@ -137,14 +137,18 @@ 333 334 // C++0x features in 4.3.n and later 335 // 336-#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 2)) && defined(__GXX_EXPERIMENTAL_CXX0X__) 337+#if ((__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 2)) && defined(__GXX_EXPERIMENTAL_CXX0X__)) || (__cplusplus >= 201103L) 338 // C++0x features are only enabled when -std=c++0x or -std=gnu++0x are 339 // passed on the command line, which in turn defines 340 // __GXX_EXPERIMENTAL_CXX0X__. 341 # define BOOST_HAS_DECLTYPE 342 # define BOOST_HAS_RVALUE_REFS 343 # define BOOST_HAS_STATIC_ASSERT 344-# define BOOST_HAS_VARIADIC_TMPL 345+# if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 4)) 346+# define BOOST_HAS_VARIADIC_TMPL 347+# else 348+# define BOOST_NO_CXX11_VARIADIC_TEMPLATES 349+# endif 350 #else 351 # define BOOST_NO_CXX11_DECLTYPE 352 # define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS 353@@ -153,7 +157,7 @@ 354 355 // Variadic templates compiler: 356 // http://www.generic-programming.org/~dgregor/cpp/variadic-templates.html 357-# if defined(__VARIADIC_TEMPLATES) || (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4) && defined(__GXX_EXPERIMENTAL_CXX0X__)) 358+# if defined(__VARIADIC_TEMPLATES) 359 # define BOOST_HAS_VARIADIC_TMPL 360 # else 361 # define BOOST_NO_CXX11_VARIADIC_TEMPLATES 362--- misc/boost_1_55_0/boost/tr1/detail/config_all.hpp 2020-11-21 14:07:48.895886290 +0100 363+++ misc/build/boost_1_55_0/boost/tr1/detail/config_all.hpp 2020-11-21 14:10:16.895419939 +0100 364@@ -95,6 +95,11 @@ 365 // compiler version: 366 # define BOOST_TR1_STD_HEADER(name) <../4.0.0/name> 367 /* 368+ * After version 6 the include path consists of the major number only 369+ */ 370+# elif (__GNUC__ > 6) 371+# define BOOST_TR1_STD_HEADER(name) <../__GNUC__/name> 372+ /* 373 * Before version 3.4.0 the 0 patch level was not part of the include path: 374 */ 375 # elif defined (__GNUC_PATCHLEVEL__) && ((__GNUC_PATCHLEVEL__ > 0) || \ 376