office-gobmx/external/breakpad/UnpackedTarball_breakpad.mk
Stephan Bergmann 245c2c4631 external/breakpad: 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::pointer, 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 it completely.
(And <https://gcc.gnu.org/git/?p=gcc.git;a=commit;
h=954026a7a4e6a1affd1ac5db237ccd75a3316760> "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<int>’:
> gcc/trunk/inst/include/c++/10.0.0/bits/stl_vector.h:84:21:   required from ‘struct std::__cxx1998::_Vector_base<int, google_breakpad::PageStdAllocator<int> >’
> gcc/trunk/inst/include/c++/10.0.0/bits/stl_vector.h:386:11:   required from ‘class std::__cxx1998::vector<int, google_breakpad::PageStdAllocator<int> >’
> gcc/trunk/inst/include/c++/10.0.0/debug/vector:118:11:   required from ‘class std::__debug::vector<int, google_breakpad::PageStdAllocator<int> >’
> workdir/UnpackedTarball/breakpad/src/common/memory.h:197:7:   required from ‘class google_breakpad::wasteful_vector<int>’
> 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<int>’
>   165 |   typedef typename std::allocator<T>::pointer pointer;
>       |                                               ^~~~~~~

Change-Id: Id7559456cc75311837aaa9f3a531f8820d5f593d
Reviewed-on: https://gerrit.libreoffice.org/81585
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-28 10:32:18 +01:00

38 lines
1.5 KiB
Makefile

# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
#
# This file is part of the LibreOffice project.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
$(eval $(call gb_UnpackedTarball_UnpackedTarball,breakpad))
$(eval $(call gb_UnpackedTarball_set_patchlevel,breakpad,0))
$(eval $(call gb_UnpackedTarball_set_tarball,breakpad,$(BREAKPAD_TARBALL)))
# external/breakpad/0001-Handle-race-between-ExceptionHandler-SignalHandler-a.patch upstreamed at
# <https://chromium-review.googlesource.com/c/breakpad/breakpad/+/1176811> "Handle race between
# ExceptionHandler::SignalHandler and ~ExceptionHandler":
$(eval $(call gb_UnpackedTarball_add_patches,breakpad,\
external/breakpad/breakpad-use-correct-http-header.patch.1 \
external/breakpad/breakpad-wshadow.patch.1 \
external/breakpad/breakpad-wshadow2.patch.1 \
external/breakpad/breakpad-stackwalk.patch.1 \
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)
ifneq ($(filter -fsanitize=%,$(CC)),)
$(eval $(call gb_UnpackedTarball_add_patches,breakpad, \
external/breakpad/ubsan.patch \
))
endif
endif
# vim: set noet sw=4 ts=4: