Merged update from upstream sources

This is an automated DistroBaker update from upstream sources.
If you do not know what this is about or would like to opt out,
contact the OSCI team.

Source: https://src.fedoraproject.org/rpms/boost.git#5c328ce476ac22eee141857a95476773645b25d2
This commit is contained in:
DistroBaker 2021-01-21 18:44:13 +00:00
parent 4deb382dad
commit 211c937ba3
12 changed files with 62 additions and 2218 deletions

View File

@ -1,22 +0,0 @@
diff --git a/libs/units/example/autoprefixes.cpp b/libs/units/example/autoprefixes.cpp
index 8b2bc43..d04f2fe 100644
--- a/libs/units/example/autoprefixes.cpp
+++ b/libs/units/example/autoprefixes.cpp
@@ -67,7 +67,7 @@ struct thing_base_unit : boost::units::base_unit<thing_base_unit, boost::units::
struct euro_base_unit : boost::units::base_unit<euro_base_unit, boost::units::dimensionless_type, 5>
{
static constexpr const char* name() { return("EUR"); }
- static constexpr const char* symbol() { return("€"); }
+ static constexpr const char* symbol() { return("€"); }
};
int main()
@@ -140,7 +140,7 @@ int main()
quantity<euro_base_unit::unit_type> ce = 2048. * euro_base_unit::unit_type();
cout << name_format << engineering_prefix << ce << endl; // 2.048 kiloEUR
- cout << symbol_format << engineering_prefix << ce << endl; // 2.048 k€
+ cout << symbol_format << engineering_prefix << ce << endl; // 2.048 kâ¬
return 0;

View File

@ -1,28 +0,0 @@
--- boost_1_69_0/boost/format/alt_sstream_impl.hpp~ 2020-03-30 15:20:18.565658757 +0100
+++ boost_1_69_0/boost/format/alt_sstream_impl.hpp 2020-03-30 15:20:33.768636162 +0100
@@ -40,8 +40,11 @@
#ifdef _RWSTD_NO_CLASS_PARTIAL_SPEC
void *vd_ptr = alloc_.allocate(sz, is_allocated_? eback() : 0);
Ch *new_ptr = static_cast<Ch *>(vd_ptr);
-#else
+#elif defined BOOST_NO_CXX11_ALLOCATOR
Ch *new_ptr = alloc_.allocate(sz, is_allocated_? eback() : 0);
+#else
+ Ch *new_ptr = std::allocator_traits<compat_allocator_type>::allocate(alloc_,
+ sz, is_allocated_? eback() : 0);
#endif
// if this didnt throw, we're safe, update the buffer
dealloc();
@@ -257,8 +260,11 @@
#ifdef _RWSTD_NO_CLASS_PARTIAL_SPEC
void *vdptr = alloc_.allocate(new_size, is_allocated_? oldptr : 0);
newptr = static_cast<Ch *>(vdptr);
-#else
+#elif defined BOOST_NO_CXX11_ALLOCATOR
newptr = alloc_.allocate(new_size, is_allocated_? oldptr : 0);
+#else
+ newptr = std::allocator_traits<compat_allocator_type>::allocate(alloc_,
+ new_size, is_allocated_? oldptr : 0);
#endif
}

View File

@ -1,27 +0,0 @@
From db6b98c72783351e0acd3c558691323a7a103ba9 Mon Sep 17 00:00:00 2001
From: Raffi Enficiaud <raffi.enficiaud@mines-paris.org>
Date: Sat, 9 May 2020 10:42:38 +0200
Subject: [PATCH] Fixing cast issue when logging wchar_t
---
include/boost/test/impl/test_tools.ipp | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/include/boost/test/impl/test_tools.ipp b/include/boost/test/impl/test_tools.ipp
index 025cd1a92a..bbee21fbbc 100644
--- a/include/boost/test/impl/test_tools.ipp
+++ b/include/boost/test/impl/test_tools.ipp
@@ -124,7 +124,12 @@ print_log_value<char const*>::operator()( std::ostream& ostr, char const* t )
void
print_log_value<wchar_t const*>::operator()( std::ostream& ostr, wchar_t const* t )
{
- ostr << ( t ? reinterpret_cast<const void*>(t) : "null string" );
+ if(t) {
+ ostr << static_cast<const void*>(t);
+ }
+ else {
+ ostr << "null w-string";
+ }
}
//____________________________________________________________________________//

View File

@ -1,23 +0,0 @@
From aafbceccc76dccb75963dd4f596fd1f10ee34b03 Mon Sep 17 00:00:00 2001
From: Jonathan Wakely <boost@kayari.org>
Date: Fri, 5 Jun 2020 19:29:27 +0100
Subject: [PATCH] Make index::detail::rtree::visitors::insert base class public
Fixes #721
---
include/boost/geometry/index/detail/rtree/visitors/insert.hpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/boost/geometry/index/detail/rtree/visitors/insert.hpp b/include/boost/geometry/index/detail/rtree/visitors/insert.hpp
index 2d324cb7f4..5709a930cc 100644
--- a/boost/geometry/index/detail/rtree/visitors/insert.hpp
+++ b/boost/geometry/index/detail/rtree/visitors/insert.hpp
@@ -265,7 +265,7 @@ struct insert_traverse_data
// Default insert visitor
template <typename Element, typename MembersHolder>
class insert
- : MembersHolder::visitor
+ : public MembersHolder::visitor
{
protected:
typedef typename MembersHolder::box_type box_type;

View File

@ -1,534 +0,0 @@
From 28a73eac54fbc7cfebfd3b2231ee607284233a00 Mon Sep 17 00:00:00 2001
From: Florian Weik <fweik@icp.uni-stuttgart.de>
Date: Wed, 10 Jun 2020 10:18:21 +0200
Subject: [PATCH 1/4] fixed ub access to first element of empty vectors
---
include/boost/mpi/collectives/all_reduce.hpp | 2 +-
include/boost/mpi/collectives/all_to_all.hpp | 12 ++++++------
include/boost/mpi/collectives/gatherv.hpp | 8 ++++----
include/boost/mpi/collectives/reduce.hpp | 4 ++--
include/boost/mpi/collectives/scatter.hpp | 2 +-
include/boost/mpi/collectives/scatterv.hpp | 4 ++--
.../mpi/detail/binary_buffer_iprimitive.hpp | 4 ++--
.../mpi/detail/binary_buffer_oprimitive.hpp | 2 +-
.../mpi/detail/mpi_datatype_primitive.hpp | 2 +-
include/boost/mpi/detail/packed_iprimitive.hpp | 4 ++--
include/boost/mpi/detail/packed_oprimitive.hpp | 4 ++--
include/boost/mpi/detail/request_handlers.hpp | 4 ++--
include/boost/mpi/graph_communicator.hpp | 4 ++--
include/boost/mpi/group.hpp | 9 +++++----
include/boost/mpi/nonblocking.hpp | 18 +++++++++---------
src/cartesian_communicator.cpp | 3 ++-
16 files changed, 44 insertions(+), 42 deletions(-)
diff --git a/include/boost/mpi/collectives/all_reduce.hpp b/include/boost/mpi/collectives/all_reduce.hpp
index e6ce93c8..302430ff 100644
--- a/boost/mpi/collectives/all_reduce.hpp
+++ b/boost/mpi/collectives/all_reduce.hpp
@@ -77,7 +77,7 @@ namespace detail {
// implementation in this case.
// it's not clear how/if we can avoid the copy.
std::vector<T> tmp_in( out_values, out_values + n);
- reduce(comm, &(tmp_in[0]), n, out_values, op, 0);
+ reduce(comm, detail::c_data(tmp_in), n, out_values, op, 0);
} else {
reduce(comm, in_values, n, out_values, op, 0);
}
diff --git a/include/boost/mpi/collectives/all_to_all.hpp b/include/boost/mpi/collectives/all_to_all.hpp
index 4f20be73..a0af5ff3 100644
--- a/boost/mpi/collectives/all_to_all.hpp
+++ b/boost/mpi/collectives/all_to_all.hpp
@@ -91,10 +91,10 @@ namespace detail {
// Transmit the actual data
BOOST_MPI_CHECK_RESULT(MPI_Alltoallv,
- (&outgoing[0], &send_sizes[0],
- &send_disps[0], MPI_PACKED,
- &incoming[0], &recv_sizes[0],
- &recv_disps[0], MPI_PACKED,
+ (detail::c_data(outgoing), detail::c_data(send_sizes),
+ detail::c_data(send_disps), MPI_PACKED,
+ detail::c_data(incoming), detail::c_data(recv_sizes),
+ detail::c_data(recv_disps), MPI_PACKED,
comm));
// Deserialize data from the iarchive
@@ -126,7 +126,7 @@ all_to_all(const communicator& comm, const std::vector<T>& in_values,
{
BOOST_ASSERT((int)in_values.size() == comm.size());
out_values.resize(comm.size());
- ::boost::mpi::all_to_all(comm, &in_values[0], &out_values[0]);
+ ::boost::mpi::all_to_all(comm, detail::c_data(in_values), detail::c_data(out_values));
}
template<typename T>
@@ -143,7 +143,7 @@ all_to_all(const communicator& comm, const std::vector<T>& in_values, int n,
{
BOOST_ASSERT((int)in_values.size() == comm.size() * n);
out_values.resize(comm.size() * n);
- ::boost::mpi::all_to_all(comm, &in_values[0], n, &out_values[0]);
+ ::boost::mpi::all_to_all(comm, detail::c_data(in_values), n, detail::c_data(out_values));
}
} } // end namespace boost::mpi
diff --git a/include/boost/mpi/collectives/gatherv.hpp b/include/boost/mpi/collectives/gatherv.hpp
index 6b8d706f..5fae9942 100644
--- a/boost/mpi/collectives/gatherv.hpp
+++ b/boost/mpi/collectives/gatherv.hpp
@@ -87,7 +87,7 @@ gatherv(const communicator& comm, const T* in_values, int in_size,
{
if (comm.rank() == root)
detail::gatherv_impl(comm, in_values, in_size,
- out_values, &sizes[0], &displs[0],
+ out_values, detail::c_data(sizes), detail::c_data(displs),
root, is_mpi_datatype<T>());
else
detail::gatherv_impl(comm, in_values, in_size, root, is_mpi_datatype<T>());
@@ -99,7 +99,7 @@ gatherv(const communicator& comm, const std::vector<T>& in_values,
T* out_values, const std::vector<int>& sizes, const std::vector<int>& displs,
int root)
{
- ::boost::mpi::gatherv(comm, &in_values[0], in_values.size(), out_values, sizes, displs, root);
+ ::boost::mpi::gatherv(comm, detail::c_data(in_values), in_values.size(), out_values, sizes, displs, root);
}
template<typename T>
@@ -113,7 +113,7 @@ template<typename T>
void gatherv(const communicator& comm, const std::vector<T>& in_values, int root)
{
BOOST_ASSERT(comm.rank() != root);
- detail::gatherv_impl(comm, &in_values[0], in_values.size(), root, is_mpi_datatype<T>());
+ detail::gatherv_impl(comm, detail::c_data(in_values), in_values.size(), root, is_mpi_datatype<T>());
}
///////////////////////
@@ -139,7 +139,7 @@ void
gatherv(const communicator& comm, const std::vector<T>& in_values,
T* out_values, const std::vector<int>& sizes, int root)
{
- ::boost::mpi::gatherv(comm, &in_values[0], in_values.size(), out_values, sizes, root);
+ ::boost::mpi::gatherv(comm, detail::c_data(in_values), in_values.size(), out_values, sizes, root);
}
} } // end namespace boost::mpi
diff --git a/include/boost/mpi/collectives/reduce.hpp b/include/boost/mpi/collectives/reduce.hpp
index 3248e324..76a28212 100644
--- a/boost/mpi/collectives/reduce.hpp
+++ b/boost/mpi/collectives/reduce.hpp
@@ -335,7 +335,7 @@ void
reduce(const communicator & comm, std::vector<T> const & in_values, Op op,
int root)
{
- reduce(comm, &in_values.front(), in_values.size(), op, root);
+ reduce(comm, detail::c_data(in_values), in_values.size(), op, root);
}
template<typename T, typename Op>
@@ -344,7 +344,7 @@ reduce(const communicator & comm, std::vector<T> const & in_values,
std::vector<T> & out_values, Op op, int root)
{
if (root == comm.rank()) out_values.resize(in_values.size());
- reduce(comm, &in_values.front(), in_values.size(), &out_values.front(), op,
+ reduce(comm, detail::c_data(in_values), in_values.size(), detail::c_data(out_values), op,
root);
}
diff --git a/include/boost/mpi/collectives/scatter.hpp b/include/boost/mpi/collectives/scatter.hpp
index ae3adcbc..f967060a 100644
--- a/boost/mpi/collectives/scatter.hpp
+++ b/boost/mpi/collectives/scatter.hpp
@@ -188,7 +188,7 @@ void
scatter(const communicator& comm, const std::vector<T>& in_values,
T* out_values, int n, int root)
{
- ::boost::mpi::scatter(comm, &in_values[0], out_values, n, root);
+ ::boost::mpi::scatter(comm, detail::c_data(in_values), out_values, n, root);
}
template<typename T>
diff --git a/include/boost/mpi/collectives/scatterv.hpp b/include/boost/mpi/collectives/scatterv.hpp
index f53f704b..7f2fd129 100644
--- a/boost/mpi/collectives/scatterv.hpp
+++ b/boost/mpi/collectives/scatterv.hpp
@@ -142,7 +142,7 @@ void
scatterv(const communicator& comm, const std::vector<T>& in_values,
const std::vector<int>& sizes, T* out_values, int root)
{
- ::boost::mpi::scatterv(comm, &in_values[0], sizes, out_values, root);
+ ::boost::mpi::scatterv(comm, detail::c_data(in_values), sizes, out_values, root);
}
template<typename T>
@@ -159,7 +159,7 @@ void
scatterv(const communicator& comm, const std::vector<T>& in_values,
T* out_values, int out_size, int root)
{
- ::boost::mpi::scatterv(comm, &in_values[0], out_values, out_size, root);
+ ::boost::mpi::scatterv(comm, detail::c_data(in_values), out_values, out_size, root);
}
} } // end namespace boost::mpi
diff --git a/include/boost/mpi/detail/binary_buffer_iprimitive.hpp b/include/boost/mpi/detail/binary_buffer_iprimitive.hpp
index 388cd44c..087d8529 100644
--- a/boost/mpi/detail/binary_buffer_iprimitive.hpp
+++ b/boost/mpi/detail/binary_buffer_iprimitive.hpp
@@ -41,12 +41,12 @@ class BOOST_MPI_DECL binary_buffer_iprimitive
void* address ()
{
- return &buffer_.front();
+ return detail::c_data(buffer_);
}
void const* address () const
{
- return &buffer_.front();
+ return detail::c_data(buffer_);
}
const std::size_t& size() const
diff --git a/include/boost/mpi/detail/binary_buffer_oprimitive.hpp b/include/boost/mpi/detail/binary_buffer_oprimitive.hpp
index 313097b7..fa0645d7 100644
--- a/boost/mpi/detail/binary_buffer_oprimitive.hpp
+++ b/boost/mpi/detail/binary_buffer_oprimitive.hpp
@@ -40,7 +40,7 @@ class BOOST_MPI_DECL binary_buffer_oprimitive
void const * address() const
{
- return &buffer_.front();
+ return detail::c_data(buffer_);
}
const std::size_t& size() const
diff --git a/include/boost/mpi/detail/mpi_datatype_primitive.hpp b/include/boost/mpi/detail/mpi_datatype_primitive.hpp
index fc05d786..5b3cdf54 100644
--- a/boost/mpi/detail/mpi_datatype_primitive.hpp
+++ b/boost/mpi/detail/mpi_datatype_primitive.hpp
@@ -133,7 +133,7 @@ class mpi_datatype_primitive
template <class T>
static T* get_data(std::vector<T>& v)
{
- return v.empty() ? 0 : &(v[0]);
+ return detail::c_data(v);
}
std::vector<MPI_Aint> addresses;
diff --git a/include/boost/mpi/detail/packed_iprimitive.hpp b/include/boost/mpi/detail/packed_iprimitive.hpp
index 85a4010f..e402a20a 100644
--- a/boost/mpi/detail/packed_iprimitive.hpp
+++ b/boost/mpi/detail/packed_iprimitive.hpp
@@ -39,12 +39,12 @@ class BOOST_MPI_DECL packed_iprimitive
void* address ()
{
- return &buffer_[0];
+ return detail::c_data(buffer_);
}
void const* address () const
{
- return &buffer_[0];
+ return detail::c_data(buffer_);
}
const std::size_t& size() const
diff --git a/include/boost/mpi/detail/packed_oprimitive.hpp b/include/boost/mpi/detail/packed_oprimitive.hpp
index 4ca8e072..c9ce44dc 100644
--- a/boost/mpi/detail/packed_oprimitive.hpp
+++ b/boost/mpi/detail/packed_oprimitive.hpp
@@ -38,7 +38,7 @@ class BOOST_MPI_DECL packed_oprimitive
void const * address() const
{
- return &buffer_[0];
+ return detail::c_data(buffer_);
}
const std::size_t& size() const
@@ -114,7 +114,7 @@ class BOOST_MPI_DECL packed_oprimitive
static buffer_type::value_type* get_data(buffer_type& b)
{
- return b.empty() ? 0 : &(b[0]);
+ return detail::c_data(b);
}
buffer_type& buffer_;
diff --git a/include/boost/mpi/detail/request_handlers.hpp b/include/boost/mpi/detail/request_handlers.hpp
index 50a22ec3..8283918b 100644
--- a/boost/mpi/detail/request_handlers.hpp
+++ b/boost/mpi/detail/request_handlers.hpp
@@ -456,7 +456,7 @@ class request::legacy_dynamic_primitive_array_handler
// Resize our buffer and get ready to receive its data
this->extra::m_values.resize(this->extra::m_count);
BOOST_MPI_CHECK_RESULT(MPI_Irecv,
- (&(this->extra::m_values[0]), this->extra::m_values.size(), get_mpi_datatype<T>(),
+ (detail::c_data(this->extra::m_values), this->extra::m_values.size(), get_mpi_datatype<T>(),
stat.source(), stat.tag(),
MPI_Comm(m_comm), m_requests + 1));
}
@@ -478,7 +478,7 @@ class request::legacy_dynamic_primitive_array_handler
// Resize our buffer and get ready to receive its data
this->extra::m_values.resize(this->extra::m_count);
BOOST_MPI_CHECK_RESULT(MPI_Irecv,
- (&(this->extra::m_values[0]), this->extra::m_values.size(), get_mpi_datatype<T>(),
+ (detail::c_data(this->extra::m_values), this->extra::m_values.size(), get_mpi_datatype<T>(),
stat.source(), stat.tag(),
MPI_Comm(m_comm), m_requests + 1));
} else
diff --git a/include/boost/mpi/graph_communicator.hpp b/include/boost/mpi/graph_communicator.hpp
index d49703eb..5bd1cf28 100644
--- a/boost/mpi/graph_communicator.hpp
+++ b/boost/mpi/graph_communicator.hpp
@@ -235,8 +235,8 @@ graph_communicator::setup_graph(const communicator& comm, const Graph& graph,
BOOST_MPI_CHECK_RESULT(MPI_Graph_create,
((MPI_Comm)comm,
nvertices,
- &indices[0],
- edges.empty()? (int*)0 : &edges[0],
+ detail::c_data(indices),
+ detail::c_data(edges),
reorder,
&newcomm));
this->comm_ptr.reset(new MPI_Comm(newcomm), comm_free());
diff --git a/include/boost/mpi/group.hpp b/include/boost/mpi/group.hpp
index 103b35a1..7be24df1 100644
--- a/boost/mpi/group.hpp
+++ b/boost/mpi/group.hpp
@@ -16,6 +16,7 @@
#define BOOST_MPI_GROUP_HPP
#include <boost/mpi/exception.hpp>
+#include <boost/mpi/detail/antiques.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/optional.hpp>
#include <vector>
@@ -272,9 +273,9 @@ group::translate_ranks(InputIterator first, InputIterator last,
BOOST_MPI_CHECK_RESULT(MPI_Group_translate_ranks,
((MPI_Group)*this,
in_array.size(),
- &in_array[0],
+ detail::c_data(in_array),
(MPI_Group)to_group,
- &out_array[0]));
+ detail::c_data(out_array)));
for (std::vector<int>::size_type i = 0, n = out_array.size(); i < n; ++i)
*out++ = out_array[i];
@@ -300,7 +301,7 @@ group group::include(InputIterator first, InputIterator last)
std::vector<int> ranks(first, last);
MPI_Group result;
BOOST_MPI_CHECK_RESULT(MPI_Group_incl,
- ((MPI_Group)*this, ranks.size(), &ranks[0], &result));
+ ((MPI_Group)*this, ranks.size(), detail::c_data(ranks), &result));
return group(result, /*adopt=*/true);
}
@@ -322,7 +323,7 @@ group group::exclude(InputIterator first, InputIterator last)
std::vector<int> ranks(first, last);
MPI_Group result;
BOOST_MPI_CHECK_RESULT(MPI_Group_excl,
- ((MPI_Group)*this, ranks.size(), &ranks[0], &result));
+ ((MPI_Group)*this, ranks.size(), detail::c_data(ranks), &result));
return group(result, /*adopt=*/true);
}
diff --git a/include/boost/mpi/nonblocking.hpp b/include/boost/mpi/nonblocking.hpp
index fe944be8..5ffd00f7 100644
--- a/boost/mpi/nonblocking.hpp
+++ b/boost/mpi/nonblocking.hpp
@@ -91,7 +91,7 @@ wait_any(ForwardIterator first, ForwardIterator last)
int index;
status stat;
BOOST_MPI_CHECK_RESULT(MPI_Waitany,
- (n, &requests[0], &index, &stat.m_status));
+ (n, detail::c_data(requests), &index, &stat.m_status));
// We don't have a notion of empty requests or status objects,
// so this is an error.
@@ -222,8 +222,8 @@ wait_all(ForwardIterator first, ForwardIterator last, OutputIterator out)
// Let MPI wait until all of these operations completes.
std::vector<MPI_Status> stats(num_outstanding_requests);
BOOST_MPI_CHECK_RESULT(MPI_Waitall,
- (num_outstanding_requests, &requests[0],
- &stats[0]));
+ (num_outstanding_requests, detail::c_data(requests),
+ detail::c_data(stats)));
for (std::vector<MPI_Status>::iterator i = stats.begin();
i != stats.end(); ++i, ++out) {
@@ -289,7 +289,7 @@ wait_all(ForwardIterator first, ForwardIterator last)
// Let MPI wait until all of these operations completes.
BOOST_MPI_CHECK_RESULT(MPI_Waitall,
- (num_outstanding_requests, &requests[0],
+ (num_outstanding_requests, detail::c_data(requests),
MPI_STATUSES_IGNORE));
// Signal completion
@@ -346,7 +346,7 @@ test_all(ForwardIterator first, ForwardIterator last, OutputIterator out)
int flag = 0;
int n = requests.size();
std::vector<MPI_Status> stats(n);
- BOOST_MPI_CHECK_RESULT(MPI_Testall, (n, &requests[0], &flag, &stats[0]));
+ BOOST_MPI_CHECK_RESULT(MPI_Testall, (n, detail::c_data(requests), &flag, detail::c_data(stats)));
if (flag) {
for (int i = 0; i < n; ++i, ++out) {
status stat;
@@ -379,7 +379,7 @@ test_all(ForwardIterator first, ForwardIterator last)
int flag = 0;
int n = requests.size();
BOOST_MPI_CHECK_RESULT(MPI_Testall,
- (n, &requests[0], &flag, MPI_STATUSES_IGNORE));
+ (n, detail::c_data(requests), &flag, MPI_STATUSES_IGNORE));
return flag != 0;
}
@@ -483,8 +483,8 @@ wait_some(BidirectionalIterator first, BidirectionalIterator last,
// Let MPI wait until some of these operations complete.
int num_completed;
BOOST_MPI_CHECK_RESULT(MPI_Waitsome,
- (n, &requests[0], &num_completed, &indices[0],
- &stats[0]));
+ (n, detail::c_data(requests), &num_completed, detail::c_data(indices),
+ detail::c_data(stats)));
// Translate the index-based result of MPI_Waitsome into a
// partitioning on the requests.
@@ -591,7 +591,7 @@ wait_some(BidirectionalIterator first, BidirectionalIterator last)
// Let MPI wait until some of these operations complete.
int num_completed;
BOOST_MPI_CHECK_RESULT(MPI_Waitsome,
- (n, &requests[0], &num_completed, &indices[0],
+ (n, detail::c_data(requests), &num_completed, detail::c_data(indices),
MPI_STATUSES_IGNORE));
// Translate the index-based result of MPI_Waitsome into a
diff --git a/src/cartesian_communicator.cpp b/src/cartesian_communicator.cpp
index a46f0bc2..3b15eb0d 100644
--- a/libs/mpi/src/cartesian_communicator.cpp
+++ b/libs/mpi/src/cartesian_communicator.cpp
@@ -10,12 +10,13 @@
#include <cassert>
#include <boost/mpi/cartesian_communicator.hpp>
+#include <boost/mpi/detail/antiques.hpp>
namespace boost { namespace mpi {
namespace {
template <typename T, typename A>
- T* c_data(std::vector<T,A>& v) { return &(v[0]); }
+ T* c_data(std::vector<T,A>& v) { return c_data(v); }
}
std::ostream&
From 5a8e9efe89ba00e32713fd777a82bc8f30a0900d Mon Sep 17 00:00:00 2001
From: Florian Weik <fweik@icp.uni-stuttgart.de>
Date: Wed, 10 Jun 2020 11:04:23 +0200
Subject: [PATCH 2/4] added test with empty vector
---
test/block_nonblock_test.cpp | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/test/block_nonblock_test.cpp b/test/block_nonblock_test.cpp
index 3088b655..2ec02256 100644
--- a/libs/mpi/test/block_nonblock_test.cpp
+++ b/libs/mpi/test/block_nonblock_test.cpp
@@ -82,7 +82,12 @@ BOOST_AUTO_TEST_CASE(non_blocking)
fmt << "S" << i;
strings[i] = fmt.str();
}
-
+
+ std::vector<int> empty;
+
+ BOOST_CHECK(test(world, empty, false, true));
+ BOOST_CHECK(test(world, empty, false, false));
+
BOOST_CHECK(test(world, integers, true, true));
BOOST_CHECK(test(world, integers, true, false));
BOOST_CHECK(test(world, strings, true, true));
From 5e8edd184cb0d5af842392eb58dd797a23241615 Mon Sep 17 00:00:00 2001
From: Florian Weik <fweik@icp.uni-stuttgart.de>
Date: Thu, 11 Jun 2020 14:59:45 +0200
Subject: [PATCH 4/4] fixed cartesian communicator
---
src/cartesian_communicator.cpp | 17 ++++++-----------
1 file changed, 6 insertions(+), 11 deletions(-)
diff --git a/src/cartesian_communicator.cpp b/src/cartesian_communicator.cpp
index 3b15eb0d..946d41fd 100644
--- a/libs/mpi/src/cartesian_communicator.cpp
+++ b/libs/mpi/src/cartesian_communicator.cpp
@@ -14,11 +14,6 @@
namespace boost { namespace mpi {
-namespace {
- template <typename T, typename A>
- T* c_data(std::vector<T,A>& v) { return c_data(v); }
-}
-
std::ostream&
operator<<(std::ostream& out, cartesian_dimension const& d) {
out << '(' << d.size << ',';
@@ -64,7 +59,7 @@ cartesian_communicator::cartesian_communicator(const communicator& comm,
MPI_Comm newcomm;
BOOST_MPI_CHECK_RESULT(MPI_Cart_create,
((MPI_Comm)comm, dims.size(),
- c_data(dims), c_data(periodic),
+ detail::c_data(dims), detail::c_data(periodic),
int(reorder), &newcomm));
if(newcomm != MPI_COMM_NULL) {
comm_ptr.reset(new MPI_Comm(newcomm), comm_free());
@@ -86,7 +81,7 @@ cartesian_communicator::cartesian_communicator(const cartesian_communicator& com
MPI_Comm newcomm;
BOOST_MPI_CHECK_RESULT(MPI_Cart_sub,
- ((MPI_Comm)comm, c_data(bitset), &newcomm));
+ ((MPI_Comm)comm, detail::c_data(bitset), &newcomm));
if(newcomm != MPI_COMM_NULL) {
comm_ptr.reset(new MPI_Comm(newcomm), comm_free());
}
@@ -105,7 +100,7 @@ cartesian_communicator::rank(const std::vector<int>& coords ) const {
int r = -1;
assert(int(coords.size()) == ndims());
BOOST_MPI_CHECK_RESULT(MPI_Cart_rank,
- (MPI_Comm(*this), c_data(const_cast<std::vector<int>&>(coords)),
+ (MPI_Comm(*this), detail::c_data(const_cast<std::vector<int>&>(coords)),
&r));
return r;
}
@@ -123,7 +118,7 @@ std::vector<int>
cartesian_communicator::coordinates(int rk) const {
std::vector<int> cbuf(ndims());
BOOST_MPI_CHECK_RESULT(MPI_Cart_coords,
- (MPI_Comm(*this), rk, cbuf.size(), c_data(cbuf) ));
+ (MPI_Comm(*this), rk, cbuf.size(), detail::c_data(cbuf) ));
return cbuf;
}
@@ -136,7 +131,7 @@ cartesian_communicator::topology( cartesian_topology& topo,
std::vector<int> cdims(ndims);
std::vector<int> cperiods(ndims);
BOOST_MPI_CHECK_RESULT(MPI_Cart_get,
- (MPI_Comm(*this), ndims, c_data(cdims), c_data(cperiods), c_data(coords)));
+ (MPI_Comm(*this), ndims, detail::c_data(cdims), detail::c_data(cperiods), detail::c_data(coords)));
cartesian_topology res(cdims.begin(), cperiods.begin(), ndims);
topo.swap(res);
}
@@ -173,7 +168,7 @@ cartesian_dimensions(int sz, std::vector<int>& dims) {
int leftover = sz % min;
BOOST_MPI_CHECK_RESULT(MPI_Dims_create,
- (sz-leftover, dims.size(), c_data(dims)));
+ (sz-leftover, dims.size(), detail::c_data(dims)));
return dims;
}

File diff suppressed because it is too large Load Diff

View File

@ -1,24 +0,0 @@
From 9f414ea58264fe0a62172a06f4653adc7556c164 Mon Sep 17 00:00:00 2001
From: "Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)"
<spamtrap@nedprod.com>
Date: Mon, 27 Apr 2020 12:00:22 +0100
Subject: [PATCH] Fix https://github.com/ned14/outcome/issues/223 where in
debug builds, cloning a status_code_ptr causes a segfault.
---
include/status_code_ptr.hpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/status_code_ptr.hpp b/include/status_code_ptr.hpp
index 0f5efa1..bd5c278 100644
--- boost_1_73_0/boost/outcome/experimental/status-code/status_code_ptr.hpp
+++ boost_1_73_0/boost/outcome/experimental/status-code/status_code_ptr.hpp
@@ -97,7 +97,7 @@ namespace detail
#endif
virtual void _do_erased_copy(status_code<void> &dst, const status_code<void> &src, size_t /*unused*/) const override // NOLINT
{
- assert(dst.domain() == *this);
+ // Note that dst will not have its domain set
assert(src.domain() == *this);
auto &d = static_cast<_mycode &>(dst); // NOLINT
const auto &_s = static_cast<const _mycode &>(src); // NOLINT

View File

@ -1,24 +1,26 @@
--- boost_1_73_0/tools/build/src/tools/gcc.jam~ 2020-03-31 21:50:30.687635266 +0100
+++ boost_1_73_0/tools/build/src/tools/gcc.jam 2020-03-31 21:50:32.943632779 +0100
@@ -571,7 +571,7 @@
diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam
index ff3209f7b..1d8e7cbfe 100644
--- a/tools/build/src/tools/gcc.jam
+++ b/tools/build/src/tools/gcc.jam
@@ -577,7 +577,7 @@ rule compile.fortran ( targets * : sources * : properties * )
actions compile.c++ bind PCH_FILE
{
- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -c -o "$(<:W)" "$(>:W)"
+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -c -o "$(<:W)" "$(>:W)"
- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -c -o "$(<:W)" "$(>:W)"
+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -c -o "$(<:W)" "$(>:W)"
}
actions compile.c bind PCH_FILE
@@ -581,7 +581,7 @@
@@ -587,7 +587,7 @@ actions compile.c bind PCH_FILE
actions compile.c++.preprocess bind PCH_FILE
{
- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" "$(>:W)" -E >"$(<:W)"
+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" "$(>:W)" -E >"$(<:W)"
- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)"
+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)"
}
actions compile.c.preprocess bind PCH_FILE
@@ -704,20 +704,20 @@
@@ -704,20 +704,20 @@ actions compile.c.pch
###
# Declare flags and action for compilation.
@ -47,9 +49,12 @@
+toolset.flags gcc.compile OPTIONS <warnings>off : ;
+toolset.flags gcc.compile OPTIONS <warnings>on : ;
+toolset.flags gcc.compile OPTIONS <warnings>all : ;
+toolset.flags gcc.compile OPTIONS <warnings>extra : ;
+toolset.flags gcc.compile OPTIONS <warnings>pedantic : ;
+toolset.flags gcc.compile OPTIONS <warnings-as-errors>on : ;
+toolset.flags gcc.compile OPTIONS <warnings>extra : ;
+toolset.flags gcc.compile OPTIONS <warnings>pedantic : ;
+toolset.flags gcc.compile OPTIONS <warnings-as-errors>on : ;
toolset.flags gcc.compile OPTIONS <debug-symbols>on : -g ;
toolset.flags gcc.compile OPTIONS <profiling>on : -pg ;
--
2.26.2

View File

@ -1,6 +1,14 @@
--- boost_1_66_0/tools/build/src/tools/gcc.jam~ 2018-01-19 13:23:45.361330881 +0000
+++ boost_1_66_0/tools/build/src/tools/gcc.jam 2018-01-19 13:23:45.362330880 +0000
@@ -1191,7 +1191,7 @@ rule link ( targets * : sources * : prop
diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam
index 02dc154cf..c076f70f4 100644
--- a/tools/build/src/tools/gcc.jam
+++ b/tools/build/src/tools/gcc.jam
@@ -1132,17 +1132,17 @@ actions link.mingw bind LIBRARIES
actions link.dll.mingw bind LIBRARIES
{
- "$(CONFIG_COMMAND)" -L"$(LINKPATH)" "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" -shared @"@($(<[-1]:T).rsp:E=$(START-GROUP) "$(>:T)" "$(LIBRARIES:T)" $(FINDLIBS-ST-PFX:T) -l$(FINDLIBS-ST:T) $(FINDLIBS-SA-PFX:T) -l$(FINDLIBS-SA:T) $(END-GROUP))" $(OPTIONS) $(USER_OPTIONS)
+ "$(CONFIG_COMMAND)" -L"$(LINKPATH)" "$(.IMPLIB-COMMAND)$(<[0])" -o "$(<[-1])" -shared @"@($(<[-1]:T).rsp:E=$(START-GROUP) "$(>:T)" "$(LIBRARIES:T)" $(FINDLIBS-ST-PFX:T) -l$(FINDLIBS-ST:T) $(FINDLIBS-SA-PFX:T) -l$(FINDLIBS-SA:T) $(END-GROUP))" $(OPTIONS) $(USER_OPTIONS)
}
actions link bind LIBRARIES
{
@ -8,9 +16,6 @@
+ "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -o "$(<)" $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)
}
rule link.dll ( targets * : sources * : properties * )
@@ -1204,7 +1204,7 @@ rule link.dll ( targets * : sources * :
# Differs from 'link' above only by -shared.
actions link.dll bind LIBRARIES
{
- "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,$(RPATH) "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=) -shared $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)

View File

@ -1,19 +0,0 @@
*** tools/build/CMake/BoostCore.cmake.orig 2010-01-12 20:01:46.006547352 -0800
--- tools/build/CMake/BoostCore.cmake 2010-01-12 20:02:54.222546929 -0800
*************** macro(boost_library_variant LIBNAME)
*** 755,761 ****
if (BUILD_SOVERSIONED)
set_target_properties(${VARIANT_LIBNAME}
PROPERTIES
! SOVERSION "${BOOST_VERSION}"
)
endif()
endif ()
--- 755,761 ----
if (BUILD_SOVERSIONED)
set_target_properties(${VARIANT_LIBNAME}
PROPERTIES
! SOVERSION "_FEDORA_SONAME"
)
endif()
endif ()

View File

@ -41,8 +41,8 @@
Name: boost
%global real_name boost
Summary: The free peer-reviewed portable C++ source libraries
Version: 1.73.0
Release: 11%{?dist}
Version: 1.75.0
Release: 1%{?dist}
License: Boost and MIT and Python
# Replace each . with _ in %%{version}
@ -54,8 +54,7 @@ License: Boost and MIT and Python
%global toplev_dirname %{real_name}_%{version_enc}
URL: http://www.boost.org
Source0: https://sourceforge.net/projects/%%{name}/files/%{name}/%{version}/%{toplev_dirname}.tar.bz2
#Source0: https://dl.bintray.com/boostorg/master/%%{name}_%%{version_enc}.tar.gz
Source0: https://dl.bintray.com/boostorg/release/%{version}/source/%{name}_%%{version_enc}.tar.bz2
Source1: libboost_thread.so
# Add a manual page for b2, based on the online documentation:
# http://www.boost.org/boost-build2/doc/html/bbv2/overview.html
@ -125,9 +124,6 @@ BuildRequires: libquadmath-devel
%endif
BuildRequires: bison
# https://svn.boost.org/trac/boost/ticket/6150
Patch4: boost-1.50.0-fix-non-utf8-files.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=828856
# https://bugzilla.redhat.com/show_bug.cgi?id=828857
# https://svn.boost.org/trac/boost/ticket/6701
@ -136,37 +132,18 @@ Patch15: boost-1.58.0-pool.patch
# https://svn.boost.org/trac/boost/ticket/9038
Patch51: boost-1.58.0-pool-test_linking.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1190039
Patch65: boost-1.73.0-build-optflags.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1541035
Patch96: boost-1.75.0-build-optflags.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1318383
Patch82: boost-1.66.0-no-rpath.patch
Patch97: boost-1.75.0-no-rpath.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1541035
Patch83: boost-1.73.0-b2-build-flags.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1818723
Patch86: boost-1.69-format-allocator.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1832639
Patch87: boost-1.69.0-test-cxx20.patch
# https://lists.boost.org/Archives/boost/2020/04/248812.php
Patch88: boost-1.73.0-cmakedir.patch
# https://github.com/ned14/outcome/issues/223
Patch89: boost-1.73.0-outcome-assert.patch
# https://github.com/boostorg/beast/pull/1927
Patch90: boost-1.73.0-beast-coroutines.patch
# https://github.com/boostorg/geometry/issues/721
Patch91: boost-1.73-geometry-issue721.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1843105
# https://github.com/boostorg/mpi/pull/119
Patch92: boost-1.73-mpi-vector-data.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1896382
# https://github.com/boostorg/python/issues/325
Patch93: boost-1.73-python3.10.patch
@ -293,6 +270,15 @@ Summary: Run-time component of boost iostreams library
Run-time support for Boost.Iostreams, a framework for defining streams,
stream buffers and i/o filters.
%package json
Summary: Run-time component of boost json library
%description json
Run-time support for Boost.Json, a portable C++ library which provides
containers and algorithms that implement JavaScript Object Notation, or
simply "JSON"
%package locale
Summary: Run-time component of boost locale library
Requires: %{name}-chrono%{?_isa} = %{version}-%{release}
@ -678,23 +664,17 @@ a number of significant features and is now developed independently.
%setup -q -n %{toplev_dirname}
find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x
%patch4 -p1
%patch15 -p0
%patch51 -p1
%patch65 -p1
%patch82 -p1
%patch96 -p1
%patch97 -p1
%patch83 -p1
%patch86 -p1
%patch87 -p2
%patch88 -p1
%patch89 -p1
%patch90 -p1
%patch91 -p1
%patch92 -p1
%patch93 -p1
%patch94 -p1
%build
%set_build_flags
# Dump the versions being used into the build logs.
%if %{with python3}
PYTHON3_ABIFLAGS=$(/usr/bin/python3-config --abiflags)
@ -713,7 +693,7 @@ import os ;
local RPM_OPT_FLAGS = [ os.environ RPM_OPT_FLAGS ] ;
local RPM_LD_FLAGS = [ os.environ RPM_LD_FLAGS ] ;
using gcc : : : <compileflags>$(RPM_OPT_FLAGS) <linkflags>$(RPM_LD_FLAGS) ;
using %{toolchain} : : : <compileflags>$(RPM_OPT_FLAGS) <linkflags>$(RPM_LD_FLAGS) ;
%if %{with openmpi} || %{with mpich}
using mpi ;
%endif
@ -725,7 +705,7 @@ using python : %{python3_version} : /usr/bin/python3 : /usr/include/python%{pyth
EOF
%endif
./bootstrap.sh --with-toolset=gcc --with-icu
./bootstrap.sh --with-toolset=%{toolchain} --with-icu
# N.B. When we build the following with PCH, parts of boost (math
# library in particular) end up being built second time during
@ -797,7 +777,7 @@ export PATH=/bin${PATH:+:}$PATH
echo ============================= build Boost.Build ==================
(cd tools/build
./bootstrap.sh --with-toolset=gcc)
./bootstrap.sh --with-toolset=%{toolchain})
%check
:
@ -839,11 +819,6 @@ rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_numpy*
# Remove cmake files (some of these are duplicates of the generic bits anyway).
rm -r ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake
# Remove the useless libboost_foo.so.1.NN and libboost_foo.so.1 symlinks.
version=%{version}
rm ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_*.so.${version%%.*}
rm ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_*.so.${version%%%%.*}
%{_openmpi_unload}
export PATH=/bin${PATH:+:}$PATH
%endif
@ -873,11 +848,6 @@ rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_numpy*
# Remove cmake files (some of these are duplicates of the generic bits anyway).
rm -r ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake
# Remove the useless libboost_foo.so.1.NN and libboost_foo.so.1 symlinks.
version=%{version}
rm ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_*.so.${version%%.*}
rm ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_*.so.${version%%%%.*}
%{_mpich_unload}
export PATH=/bin${PATH:+:}$PATH
%endif
@ -906,11 +876,6 @@ install -p -m 644 $(basename %{SOURCE1}) $RPM_BUILD_ROOT%{_libdir}/
# Remove cmake files until we know somebody wants them.
rm -r $RPM_BUILD_ROOT/%{_libdir}/cmake
# Remove the useless libboost_foo.so.1.NN and libboost_foo.so.1 symlinks.
version=%{version}
rm $RPM_BUILD_ROOT%{_libdir}/libboost_*.so.${version%%.*}
rm $RPM_BUILD_ROOT%{_libdir}/libboost_*.so.${version%%%%.*}
echo ============================= install Boost.Build ==================
(cd tools/build
./b2 --prefix=$RPM_BUILD_ROOT%{_prefix} install
@ -1074,6 +1039,10 @@ fi
%license LICENSE_1_0.txt
%{_libdir}/libboost_iostreams.so.%{sonamever}
%files json
%license LICENSE_1_0.txt
%{_libdir}/libboost_json.so.%{sonamever}
%files locale
%license LICENSE_1_0.txt
%{_libdir}/libboost_locale.so.%{sonamever}
@ -1184,6 +1153,7 @@ fi
%{_libdir}/libboost_filesystem.so
%{_libdir}/libboost_graph.so
%{_libdir}/libboost_iostreams.so
%{_libdir}/libboost_json.so
%{_libdir}/libboost_locale.so
%{_libdir}/libboost_log.so
%{_libdir}/libboost_log_setup.so
@ -1303,6 +1273,13 @@ fi
%{_mandir}/man1/b2.1*
%changelog
* Mon Jan 11 2021 Thomas Rodgers <trodgers@redhat.com> - 1.75.0-1
- Rebase to 1.75.0
- Add boost-json subpackage
* Fri Jan 8 14:14:00 CET 2021 Tomas Hrnciar <thrnciar@redhat.com> - 1.73.0-12
- Patch Boost.Python for Python 3.10 - replace _Py_fopen() with fopen() (#1912903)
* Fri Nov 20 2020 Jonathan Wakely <jwakely@redhat.com> - 1.73.0-11
- Patch Boost.Locale to not access empty vector (#1899888)

View File

@ -1 +1 @@
SHA512 (boost_1_73_0.tar.bz2) = 86c296511c0766145097625a62bf099c3d155284d250ad6e528e788bc90b2945838498dfe473c6c6c78d1694b6fba8e19f7dee0d064a043841e6231603fff668
SHA512 (boost_1_75_0.tar.bz2) = d86f060245e98dca5c7f3f831c98ea9ccbfa8310f20830dd913d9d4c939fbe7cb94accd35f1128e7c4faf6c27adb6f4bb54e5477a6bde983dfc7aa33c4eed03a