99 lines
3.3 KiB
Diff
99 lines
3.3 KiB
Diff
From 31dd92c4c1934894b9aef2c85075c539ad5fc104 Mon Sep 17 00:00:00 2001
|
|
From: Jon Turney <jon.turney@dronecode.org.uk>
|
|
Date: Thu, 8 Oct 2015 02:11:41 +0100
|
|
Subject: [PATCH 07/19] Fix building client library and upload tools for MinGW
|
|
|
|
This is the rest of https://breakpad.appspot.com/548002/, brought up to date
|
|
|
|
v2:
|
|
Refine MinGW changes in HTTPUpload::GetFileContents so it closes file after use
|
|
|
|
v3:
|
|
For consistency, write conditionals in terms of _MSC_VER, not __MINGW32__
|
|
|
|
v4:
|
|
Use fd rather than FILE * in HTTPUpload::GetFileContents
|
|
|
|
It appears that constructing a stdio_filebuf from a FILE * does a fflush(0),
|
|
which has been seen to occasionally fail EBADF (on at least W7 x64).
|
|
|
|
Both of these things seem like they might be bugs
|
|
|
|
Workaround for the moment by constructing stdio_filebuf from a fd instead.
|
|
|
|
v5:
|
|
Drop HTTPUpload::GetFileContents() changes as upstream now uses WideTOMBCP()
|
|
Drop changes to avoid stdext::checked_array_iterator, as upstream
|
|
|
|
Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
|
|
---
|
|
Makefile.am | 2 --
|
|
src/client/windows/crash_generation/client_info.cc | 4 ++++
|
|
.../tests/crash_generation_app/crash_generation_app.cc | 6 ++++++
|
|
3 files changed, 10 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/Makefile.am b/Makefile.am
|
|
index 712a2fd5..0eddd5ec 100644
|
|
--- a/Makefile.am
|
|
+++ b/Makefile.am
|
|
@@ -356,13 +356,11 @@ bin_PROGRAMS += \
|
|
src/processor/minidump_stackwalk
|
|
endif !DISABLE_PROCESSOR
|
|
|
|
-if !MINGW_HOST
|
|
if !DISABLE_TOOLS
|
|
bin_PROGRAMS += \
|
|
src/tools/linux/symupload/minidump_upload \
|
|
src/tools/linux/symupload/sym_upload
|
|
endif
|
|
-endif
|
|
|
|
if LINUX_HOST
|
|
EXTRA_PROGRAMS += \
|
|
diff --git a/src/client/windows/crash_generation/client_info.cc b/src/client/windows/crash_generation/client_info.cc
|
|
index ed312638..30a48db0 100644
|
|
--- a/src/client/windows/crash_generation/client_info.cc
|
|
+++ b/src/client/windows/crash_generation/client_info.cc
|
|
@@ -176,7 +176,11 @@ void ClientInfo::SetProcessUptime() {
|
|
|
|
// Convert it to a string.
|
|
wchar_t* value = custom_info_entries_.get()[custom_client_info_.count].value;
|
|
+#ifdef _MSC_VER
|
|
_i64tow_s(delay, value, CustomInfoEntry::kValueMaxLength, 10);
|
|
+#else
|
|
+ _i64tow(delay, value, 10);
|
|
+#endif
|
|
}
|
|
|
|
bool ClientInfo::PopulateCustomInfo() {
|
|
diff --git a/src/client/windows/tests/crash_generation_app/crash_generation_app.cc b/src/client/windows/tests/crash_generation_app/crash_generation_app.cc
|
|
index 0d837e52..52736768 100644
|
|
--- a/src/client/windows/tests/crash_generation_app/crash_generation_app.cc
|
|
+++ b/src/client/windows/tests/crash_generation_app/crash_generation_app.cc
|
|
@@ -42,6 +42,10 @@
|
|
|
|
#include "client/windows/tests/crash_generation_app/abstract_class.h"
|
|
|
|
+#ifndef _MSC_VER
|
|
+#define swprintf_s swprintf
|
|
+#endif
|
|
+
|
|
namespace google_breakpad {
|
|
|
|
const int kMaxLoadString = 100;
|
|
@@ -480,9 +484,11 @@ int APIENTRY _tWinMain(HINSTANCE instance,
|
|
CustomClientInfo custom_info = {kCustomInfoEntries, kCustomInfoCount};
|
|
|
|
CrashServerStart();
|
|
+#ifdef _MSC_VER
|
|
// This is needed for CRT to not show dialog for invalid param
|
|
// failures and instead let the code handle it.
|
|
_CrtSetReportMode(_CRT_ASSERT, 0);
|
|
+#endif
|
|
handler = new ExceptionHandler(L"C:\\dumps\\",
|
|
NULL,
|
|
google_breakpad::ShowDumpResults,
|
|
--
|
|
2.28.0
|
|
|