From 3ad1ee65ad7c666de093fc35b64d70e2068e01ba Mon Sep 17 00:00:00 2001
From: Lioncash <mathew1800@gmail.com>
Date: Thu, 19 Jul 2018 09:03:30 -0400
Subject: [PATCH 1/2] Port #709 from yuzu: "common/misc: Deduplicate code in
 GetLastErrorMsg()"

---
 src/common/common_funcs.h |  4 +++-
 src/common/misc.cpp       | 16 +++++-----------
 2 files changed, 8 insertions(+), 12 deletions(-)

diff --git a/src/common/common_funcs.h b/src/common/common_funcs.h
index ecb71224c..459d51740 100644
--- a/src/common/common_funcs.h
+++ b/src/common/common_funcs.h
@@ -4,6 +4,8 @@
 
 #pragma once
 
+#include <string>
+
 #if !defined(ARCHITECTURE_x86_64)
 #include <cstdlib> // for exit
 #endif
@@ -95,4 +97,4 @@ __declspec(dllimport) void __stdcall DebugBreak(void);
 // Call directly after the command or use the error num.
 // This function might change the error code.
 // Defined in Misc.cpp.
-const char* GetLastErrorMsg();
+std::string GetLastErrorMsg();
diff --git a/src/common/misc.cpp b/src/common/misc.cpp
index 7be2235b0..217a87098 100644
--- a/src/common/misc.cpp
+++ b/src/common/misc.cpp
@@ -4,34 +4,28 @@
 
 #include <cstddef>
 #ifdef _WIN32
-#include <windows.h>
+#include <Windows.h>
 #else
 #include <cerrno>
 #include <cstring>
 #endif
 
-// Neither Android nor OS X support TLS
-#if defined(__APPLE__) || (ANDROID && __clang__)
-#define __thread
-#endif
+#include "common/common_funcs.h"
 
 // Generic function to get last error message.
 // Call directly after the command or use the error num.
 // This function might change the error code.
-const char* GetLastErrorMsg() {
+std::string GetLastErrorMsg() {
     static const size_t buff_size = 255;
+    char err_str[buff_size];
 
 #ifdef _WIN32
-    static __declspec(thread) char err_str[buff_size] = {};
-
     FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM, nullptr, GetLastError(),
                    MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), err_str, buff_size, nullptr);
 #else
-    static __thread char err_str[buff_size] = {};
-
     // Thread safe (XSI-compliant)
     strerror_r(errno, err_str, buff_size);
 #endif
 
-    return err_str;
+    return std::string(err_str, buff_size);
 }

From b0c35c54cae00fa5d7e06f0a94a5e1abd0dbd641 Mon Sep 17 00:00:00 2001
From: fearlessTobi <thm.frey@gmail.com>
Date: Mon, 30 Jul 2018 14:50:23 +0200
Subject: [PATCH 2/2] Fix travis MinGW build

---
 src/common/misc.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/common/misc.cpp b/src/common/misc.cpp
index 217a87098..3fa8a3bc4 100644
--- a/src/common/misc.cpp
+++ b/src/common/misc.cpp
@@ -4,7 +4,7 @@
 
 #include <cstddef>
 #ifdef _WIN32
-#include <Windows.h>
+#include <windows.h>
 #else
 #include <cerrno>
 #include <cstring>