From 245c2c463186189636f548d278250ca71beee21c Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Mon, 28 Oct 2019 09:26:41 +0100 Subject: external/breakpad: Adapt to std::allocator parts removed in C++20 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit "Deprecating Vestigial Library Parts in C++17" deprecated, among others, std::allocator::pointer, and "Reviewing Deprecated Facilities of C++17 for C++20" removed it completely. (And "Remove redundant std::allocator members for C++20" removed it from libstdc++ now for -std=c++2a.) The change to src/common/memory.h was necessary in Library_crashreport: > In file included from workdir/UnpackedTarball/breakpad/src/client/linux/dump_writer_common/thread_info.h:37, > from workdir/UnpackedTarball/breakpad/src/client/linux/minidump_writer/linux_dumper.h:51, > from workdir/UnpackedTarball/breakpad/src/client/linux/minidump_writer/minidump_writer.h:41, > from workdir/UnpackedTarball/breakpad/src/client/linux/handler/exception_handler.h:42, > from desktop/source/app/crashreport.cxx:29: > workdir/UnpackedTarball/breakpad/src/common/memory.h: In instantiation of ‘struct google_breakpad::PageStdAllocator’: > gcc/trunk/inst/include/c++/10.0.0/bits/stl_vector.h:84:21: required from ‘struct std::__cxx1998::_Vector_base >’ > gcc/trunk/inst/include/c++/10.0.0/bits/stl_vector.h:386:11: required from ‘class std::__cxx1998::vector >’ > gcc/trunk/inst/include/c++/10.0.0/debug/vector:118:11: required from ‘class std::__debug::vector >’ > workdir/UnpackedTarball/breakpad/src/common/memory.h:197:7: required from ‘class google_breakpad::wasteful_vector’ > workdir/UnpackedTarball/breakpad/src/client/linux/minidump_writer/linux_dumper.h:187:26: required from here > workdir/UnpackedTarball/breakpad/src/common/memory.h:165:47: error: no type named ‘pointer’ in ‘class std::allocator’ > 165 | typedef typename std::allocator::pointer pointer; > | ^~~~~~~ Change-Id: Id7559456cc75311837aaa9f3a531f8820d5f593d Reviewed-on: https://gerrit.libreoffice.org/81585 Tested-by: Jenkins Reviewed-by: Stephan Bergmann --- external/breakpad/UnpackedTarball_breakpad.mk | 1 + external/breakpad/c++20-allocator.patch | 11 +++++++++++ 2 files changed, 12 insertions(+) create mode 100644 external/breakpad/c++20-allocator.patch diff --git a/external/breakpad/UnpackedTarball_breakpad.mk b/external/breakpad/UnpackedTarball_breakpad.mk index 633574cd34a7..b9e14874d72d 100644 --- a/external/breakpad/UnpackedTarball_breakpad.mk +++ b/external/breakpad/UnpackedTarball_breakpad.mk @@ -24,6 +24,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,breakpad,\ external/breakpad/ucontext.patch \ external/breakpad/0001-Handle-race-between-ExceptionHandler-SignalHandler-a.patch.1 \ external/breakpad/0001-Fix-double-declaration-of-tgkill-when-using-Android-.patch.1 \ + external/breakpad/c++20-allocator.patch \ )) ifeq ($(COM_IS_CLANG),TRUE) diff --git a/external/breakpad/c++20-allocator.patch b/external/breakpad/c++20-allocator.patch new file mode 100644 index 000000000000..588d7db4dc7c --- /dev/null +++ b/external/breakpad/c++20-allocator.patch @@ -0,0 +1,11 @@ +--- src/common/memory.h ++++ src/common/memory.h +@@ -162,7 +162,7 @@ + // Wrapper to use with STL containers + template + struct PageStdAllocator : public std::allocator { +- typedef typename std::allocator::pointer pointer; ++ typedef T* pointer; + typedef typename std::allocator::size_type size_type; + + explicit PageStdAllocator(PageAllocator& allocator): allocator_(allocator) {} -- cgit