C:/lo/online.build/workdir/UnpackedTarball/breakpad/src/client/windows/crash_generation/minidump_generator.cc(180): error C2653: 'stdext': is not a class or namespace name
C:/lo/online.build/workdir/UnpackedTarball/breakpad/src/client/windows/crash_generation/minidump_generator.cc(180): error C2059: syntax error: '>'
make[1]: *** [C:/lo/online/engine/solenv/gbuild/LinkTarget.mk:398: C:/lo/online.build/workdir/GenCxxObject/UnpackedTarball/breakpad/src/client/windows/crash_generation/minidump_generator.o] Error 2
As documented at https://learn.microsoft.com/en-us/cpp/porting/features-deprecated-in-visual-studio,
the class checked_array_iterator is dropped in MSVC 14.51 (it was deprecated since VS 2022 17.8).
Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: I29ad7dcf10a6ccc79e66dd21a96d80a69d8f0f99
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/2683
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 2450d80b2790bd47c534bdf45e0e839839e9cf64)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205370
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
...which I happened to run into when the breakpad code kicked in due to some
crash happening,
> src/client/linux/minidump_writer/minidump_writer.cc:721:12: runtime error: null pointer passed as argument 2, which is declared to never be null
/usr/include/string.h:44:28: note: nonnull attribute specified here
> src/client/linux/minidump_writer/minidump_writer.cc:763:14: runtime error: applying non-zero offset to non-null pointer 0x000000200000 produced null pointer
> src/client/linux/minidump_writer/minidump_writer.cc:772:64: runtime error: applying non-zero offset 3200848 to null pointer
(Unlike the changes in the existing external/breakpad/ubsan.patch, which is only
applied when doing sanitizer builds, these changes should be non-controversial
and OK to apply always, so they go into a different patch file.)
Change-Id: Ib1b3f87ba22f96d5fb93b8fcb9951ddc3c353697
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124245
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
(It apparently silently broke with something like
ff673ce838 "update breakpad to the current
chrome_m90 snapshot" and nobody doing ASan/UBSan builds with --enable-breakpad
in the meantime.)
Change-Id: Ic955e1725d2493d849b460a09dfa0238815e2c8d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124033
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
<https://sourceware.org/git/?p=glibc.git;a=commit;h=6c57d320484988e87e446e2e60ce42816bf51d53>
"sysconf: Add _SC_MINSIGSTKSZ/_SC_SIGSTKSZ [BZ #20305]" introduced
sysdeps/unix/sysv/linux/bits/sigstksz.h containing
> # define SIGSTKSZ sysconf (_SC_SIGSTKSZ)
so that SIGSTKSZ would have type long, causing
> src/client/linux/handler/exception_handler.cc: In function ‘void google_breakpad::{anonymous}::InstallAlternateStackLocked()’:
> src/client/linux/handler/exception_handler.cc:141:49: error: no matching function for call to ‘max(int, long int)’
> 141 | static const unsigned kSigStackSize = std::max(16384, SIGSTKSZ);
> | ~~~~~~~~^~~~~~~~~~~~~~~~~
when building ExternalProject_breakpad. At least SuS4 appears to be silent
about a required type of SIGSTKSZ defined in signal.h.
Change-Id: I4d87017e10825ef051721f4e9ca751a77bb0d5c8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123455
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
This allows to define the mapping once, and avoid modification in
multiple places each time a new VS version support is added
Change-Id: I93de4c9d78c3f67a0a2e157007e9d13b6f557937
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123163
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
This patch changes the configure.ac, so that LibreOffice compiles
with the latest VS 2022 preview.
The option --with-visual-studio=2022 should be added to the
autogen.input, in order to use VS 2022 preview.
Change-Id: Ia1d9bbeabbbd44ffe82af3624151b69d36c0a45c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122133
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
while self compiled one still segfaults frequently, it is a tad better
than the included one (and compiling froms source instead of using
precompiled binaries is a net win in any case)
Out of 50 attempts with the mergedlo.dll, the new compiled dump_syms
succeeded 11 times, the shipped one succeeded 7 times - so could still
be regular variance in that small sample size, but at least not
significantly worse either.
Change-Id: I86c213fe6aece58f1391d4c2bf9906b85eee9c57
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117056
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
We've been using a version from 2015. And it appears that most (all?)
crashreports generated on Windows have unusable backtraces, so maybe
this update helps with that.
Change-Id: Ied4a7943e6023c625bcd9060f18b4b90c00ad29b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113750
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
See instructions in solenv/gbuild/Trace.mk . This generates a file than
can be viewed e.g. in the Chromium tracing view.
Change-Id: I5f90647c58ca729375525b6daed2d4918adc8188
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88754
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
<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>
...so building against glibc-headers-2.30-4.fc31.x86_64 fails with
> src/client/linux/handler/exception_handler.cc:109:12: error: static declaration of 'tgkill' follows non-static declaration
> static int tgkill(pid_t tgid, pid_t tid, int sig) {
> ^
> /usr/include/bits/signal_ext.h:29:12: note: previous declaration is here
> extern int tgkill (__pid_t __tgid, __pid_t __tid, int __signal);
> ^
> 1 error generated.
Upstream commit <https://chromium.googlesource.com/breakpad/breakpad/+/
7e3c165000d44fa153a3270870ed500bc8bbb461%5E%21/> "Fix double declaration of
tgkill when using Android NDK Headers" looks like the perfect fit.
Change-Id: I1b4805886fb7c770cf9733f34a31296e6b859d92
Reviewed-on: https://gerrit.libreoffice.org/79661
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
As in, really disable, so that they do not even show. This moreover
avoids tons of D9025 warnings from MSVC about overriding -W4 with -w.
Change-Id: Ia2e72fd72d883d91bdd89e467ee42f259e2ae033
Reviewed-on: https://gerrit.libreoffice.org/72899
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
to old compilers that default to < C++11. (Explicitly passing CXXFLAGS_CXX11
into ExternalProject_breakpad wouldn't work well for now, as it would cause
-Wregister error with -std=c++17 at
workdir/UnpackedTarball/breakpad/src/common/dwarf/dwarf2reader.cc:878:43.)
Change-Id: I1d04e0f05e36e2f9622991fb477f430a062fee0b
SUSv4 merely claims that ucontext_t is defined as a structure type (in
<signal.h>), and at least /usr/include/sys/ucontext.h in
glibc-headers-2.26-15.fc27.x86_64 now defines it as
typedef struct ucontext_t { ... } ucontext_t;
instead of as
typedef struct ucontext { ... } ucontext_t;
as was done in older glibc, so referring to it as "struct ucontext" (C/C++) or
"ucontext" (C++) no longer works.
Change-Id: I3d515a4ce7e5a49d0277136cad2b982bdf799ac5
In OOo times, there'd originally been efforts to allow building on Windows with
MinGW. Later, in LO times, this has been shifted to an attempt of cross-
compiling for Windows on Linux. That attempt can be considered abandoned, and
the relevant code rotting.
Due to this heritage, there are now three kinds of MinGW-specific code in LO:
* Code from the original OOo native Windows effort that is no longer relevant
for the LO cross-compilation effort, but has never been removed properly.
* Code from the original OOo native Windows effort that is re-purposed for the
LO cross-compilation effort.
* Code that has been added specifially for the LO cross-compilation effort.
All three kinds of code are removed.
(An unrelated, remaining use of MinGW is for --enable-build-unowinreg, utilizing
--with-mingw-cross-compiler, MINGWCXX, and MINGWSTRIP.)
Change-Id: I49daad8669b4cbe49fa923050c4a4a6ff7dda568
Reviewed-on: https://gerrit.libreoffice.org/34127
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
...to avoid UBSan (on Linux) reporting a ODR violation between
google_breakpad::MinidumpDescriptor::kMicrodumpOnConsole (workdir/
UnpackedTarball/breakpad/src/client/linux/handler/minidump_descriptor.cc)
defined in both the crashreport and sofficeapp dynamic libs.
Change-Id: I686a6e2041c70f0aa17a774d705dc71d95d20183