diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2019-10-28 08:31:17 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2019-10-28 10:41:37 +0100 |
commit | 677c8de4fa79cd9b278b142013ba7f1c9e4e41c3 (patch) | |
tree | 875903e32cc36408cc10ccab69551e418cf05e20 | |
parent | 245c2c463186189636f548d278250ca71beee21c (diff) |
external/boost: Adapt to std::allocator parts removed in C++20
<http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0174r2.html#4.2>
"Deprecating Vestigial Library Parts in C++17" deprecated, among others,
std::allocator::rebind and std::allocator::allocate's hint parameter, and
<http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0619r4.html#3.9>
"Reviewing Deprecated Facilities of C++17 for C++20" removed them completely.
(And <https://gcc.gnu.org/git/?p=gcc.git;a=commit;
h=954026a7a4e6a1affd1ac5db237ccd75a3316760> "Remove redundant std::allocator
members for C++20" removed them from libstdc++ now for -std=c++2a.)
The change to boost/bimap/detail/bimap_core.hpp was necessary in
Library_pdfimport:
> In file included from workdir/UnpackedTarball/boost/boost/bimap/bimap.hpp:61,
> from external/boost/include/boost/bimap/bimap.hpp:30,
> from sdext/source/pdfimport/inc/pdfiprocessor.hxx:49,
> from sdext/source/pdfimport/pdfiadaptor.cxx:27:
> workdir/UnpackedTarball/boost/boost/bimap/detail/bimap_core.hpp: In instantiation of ‘class boost::bimaps::detail::bimap_core<boost::bimaps::unordered_set_of<pdfi::GraphicsContext, pdfi::GraphicsContextHash>, boost::bimaps::unordered_set_of<int>, mpl_::na, mpl_::na, mpl_::na>’:
> workdir/UnpackedTarball/boost/boost/bimap/bimap.hpp:133:7: required from ‘class boost::bimaps::bimap<boost::bimaps::unordered_set_of<pdfi::GraphicsContext, pdfi::GraphicsContextHash>, boost::bimaps::unordered_set_of<int> >’
> sdext/source/pdfimport/inc/pdfiprocessor.hxx:190:44: required from here
> workdir/UnpackedTarball/boost/boost/bimap/detail/bimap_core.hpp:410:7: error: no class template named ‘rebind’ in ‘boost::bimaps::detail::manage_additional_parameters<mpl_::na, mpl_::na, mpl_::na>::case_NNN::allocator’ {aka ‘class std::allocator<void>’}
> 410 | > core_type;
> | ^~~~~~~~~
[...]
The change to boost/format/alt_sstream_impl.hpp was necessary in
ExternalProject_libpagemaker:
> In file included from libpagemaker_utils.h:22,
> from geometry.h:20,
> from OutputShape.h:17,
> from OutputShape.cpp:10:
> external/boost/include/boost/cstdint.hpp:30:2: warning: #include_next is a GCC extension
> 30 | #include_next <boost/cstdint.hpp>
> | ^~~~~~~~~~~~
> In file included from workdir/UnpackedTarball/boost/boost/format/alt_sstream.hpp:174,
> from workdir/UnpackedTarball/boost/boost/format/internals.hpp:24,
> from workdir/UnpackedTarball/boost/boost/format.hpp:38,
> from PMDExceptions.h:15,
> from OutputShape.h:16,
> from OutputShape.cpp:10:
> workdir/UnpackedTarball/boost/boost/format/alt_sstream_impl.hpp: In instantiation of ‘boost::io::basic_altstringbuf<Ch, Tr, Alloc>::int_type boost::io::basic_altstringbuf<Ch, Tr, Alloc>::overflow(boost::io::basic_altstringbuf<Ch, Tr, Alloc>::int_type) [with Ch = char; Tr = std::char_traits<char>; Alloc = std::allocator<char>; boost::io::basic_altstringbuf<Ch, Tr, Alloc>::int_type = int]’:
> workdir/UnpackedTarball/boost/boost/format/alt_sstream_impl.hpp:227:9: required from here
> workdir/UnpackedTarball/boost/boost/format/alt_sstream_impl.hpp:261:45: error: no matching function for call to ‘std::allocator<char>::allocate(std::size_t&, char*)’
> 261 | newptr = alloc_.allocate(new_size, is_allocated_? oldptr : 0);
> | ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from gcc/trunk/inst/include/c++/10.0.0/memory:64,
> from OutputShape.h:13,
> from OutputShape.cpp:10:
> gcc/trunk/inst/include/c++/10.0.0/bits/allocator.h:164:7: note: candidate: ‘constexpr _Tp* std::allocator< <template-parameter-1-1> >::allocate(std::size_t) [with _Tp = char; std::size_t = long unsigned int]’
> 164 | allocate(size_t __n)
> | ^~~~~~~~
> gcc/trunk/inst/include/c++/10.0.0/bits/allocator.h:164:7: note: candidate expects 1 argument, 2 provided
Change-Id: Id423f7597fe2e84e57df1d48a2ecc4d636c4a913
Reviewed-on: https://gerrit.libreoffice.org/81584
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
-rw-r--r-- | external/boost/UnpackedTarball_boost.mk | 2 | ||||
-rw-r--r-- | external/boost/c++20-allocator.patch.0 | 24 |
2 files changed, 26 insertions, 0 deletions
diff --git a/external/boost/UnpackedTarball_boost.mk b/external/boost/UnpackedTarball_boost.mk index 86f52ded439e..33f2f2cd9b50 100644 --- a/external/boost/UnpackedTarball_boost.mk +++ b/external/boost/UnpackedTarball_boost.mk @@ -40,6 +40,8 @@ boost_patches += msvc2017.patch.0 boost_patches += sse.patch.0 +boost_patches += c++20-allocator.patch.0 + $(eval $(call gb_UnpackedTarball_UnpackedTarball,boost)) $(eval $(call gb_UnpackedTarball_set_tarball,boost,$(BOOST_TARBALL))) diff --git a/external/boost/c++20-allocator.patch.0 b/external/boost/c++20-allocator.patch.0 new file mode 100644 index 000000000000..30a34e1b216d --- /dev/null +++ b/external/boost/c++20-allocator.patch.0 @@ -0,0 +1,24 @@ +--- boost/bimap/detail/bimap_core.hpp ++++ boost/bimap/detail/bimap_core.hpp +@@ -404,8 +404,8 @@ + < + relation, + core_indices, +- BOOST_DEDUCED_TYPENAME parameters::allocator:: +- BOOST_NESTED_TEMPLATE rebind<relation>::other ++ typename std::allocator_traits<BOOST_DEDUCED_TYPENAME parameters::allocator>:: ++ BOOST_NESTED_TEMPLATE rebind_alloc<relation> + + > core_type; + +--- boost/format/alt_sstream_impl.hpp ++++ boost/format/alt_sstream_impl.hpp +@@ -258,7 +258,7 @@ + void *vdptr = alloc_.allocate(new_size, is_allocated_? oldptr : 0); + newptr = static_cast<Ch *>(vdptr); + #else +- newptr = alloc_.allocate(new_size, is_allocated_? oldptr : 0); ++ newptr = std::allocator_traits<compat_allocator_type>::allocate(alloc_, new_size, is_allocated_? oldptr : 0); + #endif + } + |