pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

lldb-netbsd: Add llvm::call_once patch



Module Name:	pkgsrc-wip
Committed By:	Kamil Rytarowski <n54%gmx.com@localhost>
Pushed By:	kamil
Date:		Sat Feb 4 22:28:44 2017 +0100
Changeset:	81b2e7b3278e611f591dc33c8d0c67d3b3791fb8

Modified Files:
	lldb-netbsd/distinfo
	lldb-netbsd/patches/patch-source_Host_linux_HostInfoLinux.cpp
	lldb-netbsd/patches/patch-source_Plugins_Process_NetBSD_NativeProcessNetBSD.cpp
Added Files:
	lldb-netbsd/patches/patch-include_lldb_Core_Debugger.h
	lldb-netbsd/patches/patch-source_Commands_CommandObjectPlatform.cpp
	lldb-netbsd/patches/patch-source_Core_Debugger.cpp
	lldb-netbsd/patches/patch-source_Core_ModuleList.cpp
	lldb-netbsd/patches/patch-source_Host_common_Editline.cpp
	lldb-netbsd/patches/patch-source_Host_common_HostInfoBase.cpp
	lldb-netbsd/patches/patch-source_Host_windows_HostInfoWindows.cpp
	lldb-netbsd/patches/patch-source_Plugins_ExpressionParser_Clang_ClangModulesDeclVendor.cpp
	lldb-netbsd/patches/patch-source_Plugins_Language_CPlusPlus_CPlusPlusLanguage.cpp
	lldb-netbsd/patches/patch-source_Plugins_Language_Go_GoLanguage.cpp
	lldb-netbsd/patches/patch-source_Plugins_Language_Java_JavaLanguage.cpp
	lldb-netbsd/patches/patch-source_Plugins_Language_ObjC_ObjCLanguage.cpp
	lldb-netbsd/patches/patch-source_Plugins_Platform_MacOSX_PlatformAppleSimulator.cpp
	lldb-netbsd/patches/patch-source_Plugins_Platform_MacOSX_PlatformDarwin.cpp
	lldb-netbsd/patches/patch-source_Plugins_Process_FreeBSD_ProcessFreeBSD.cpp
	lldb-netbsd/patches/patch-source_Plugins_Process_Linux_NativeProcessLinux.cpp
	lldb-netbsd/patches/patch-source_Plugins_Process_MacOSX-Kernel_ProcessKDP.cpp
	lldb-netbsd/patches/patch-source_Plugins_Process_POSIX_ProcessPOSIXLog.cpp
	lldb-netbsd/patches/patch-source_Plugins_Process_Windows_Common_ProcessWindows.cpp
	lldb-netbsd/patches/patch-source_Plugins_Process_Windows_Common_ProcessWindowsLog.cpp
	lldb-netbsd/patches/patch-source_Plugins_Process_elf-core_ProcessElfCore.cpp
	lldb-netbsd/patches/patch-source_Plugins_Process_gdb-remote_GDBRemoteCommunicationServerPlatform.cpp
	lldb-netbsd/patches/patch-source_Plugins_Process_gdb-remote_ProcessGDBRemote.cpp
	lldb-netbsd/patches/patch-source_Plugins_Process_gdb-remote_ProcessGDBRemoteLog.cpp
	lldb-netbsd/patches/patch-source_Plugins_Process_mach-core_ProcessMachCore.cpp
	lldb-netbsd/patches/patch-source_Plugins_Process_minidump_ProcessMinidump.cpp
	lldb-netbsd/patches/patch-source_Plugins_ScriptInterpreter_None_ScriptInterpreterNone.cpp
	lldb-netbsd/patches/patch-source_Plugins_ScriptInterpreter_Python_ScriptInterpreterPython.cpp
	lldb-netbsd/patches/patch-source_Plugins_SymbolFile_DWARF_SymbolFileDWARF.cpp
	lldb-netbsd/patches/patch-source_Plugins_SymbolFile_DWARF_SymbolFileDWARF.h
	lldb-netbsd/patches/patch-source_Symbol_ClangASTContext.cpp
	lldb-netbsd/patches/patch-source_Symbol_GoASTContext.cpp
	lldb-netbsd/patches/patch-source_Target_Language.cpp
	lldb-netbsd/patches/patch-source_Utility_ConstString.cpp
	lldb-netbsd/patches/patch-tools_debugserver_source_MacOSX_DarwinLog_DarwinLogCollector.cpp

Log Message:
lldb-netbsd: Add llvm::call_once patch

Include the patch for call_once switch here to test in the context of Process
Plugin for NetBSD.

Sponsored by <The NetBSD Foundation>

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=81b2e7b3278e611f591dc33c8d0c67d3b3791fb8

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 lldb-netbsd/distinfo                               |  39 ++++-
 .../patches/patch-include_lldb_Core_Debugger.h     |  22 +++
 ...patch-source_Commands_CommandObjectPlatform.cpp |  23 +++
 lldb-netbsd/patches/patch-source_Core_Debugger.cpp |  21 +++
 .../patches/patch-source_Core_ModuleList.cpp       |  24 +++
 .../patches/patch-source_Host_common_Editline.cpp  |  24 +++
 .../patch-source_Host_common_HostInfoBase.cpp      | 179 +++++++++++++++++++++
 .../patch-source_Host_linux_HostInfoLinux.cpp      |  29 +---
 .../patch-source_Host_windows_HostInfoWindows.cpp  |  23 +++
 ...pressionParser_Clang_ClangModulesDeclVendor.cpp |  24 +++
 ...lugins_Language_CPlusPlus_CPlusPlusLanguage.cpp |  53 ++++++
 ...patch-source_Plugins_Language_Go_GoLanguage.cpp |  38 +++++
 ...h-source_Plugins_Language_Java_JavaLanguage.cpp |  25 +++
 ...h-source_Plugins_Language_ObjC_ObjCLanguage.cpp |  26 +++
 ...gins_Platform_MacOSX_PlatformAppleSimulator.cpp |  15 ++
 ...urce_Plugins_Platform_MacOSX_PlatformDarwin.cpp |  34 ++++
 ...urce_Plugins_Process_FreeBSD_ProcessFreeBSD.cpp |  25 +++
 ...ce_Plugins_Process_Linux_NativeProcessLinux.cpp |  16 ++
 ...ce_Plugins_Process_MacOSX-Kernel_ProcessKDP.cpp |  25 +++
 ..._Plugins_Process_NetBSD_NativeProcessNetBSD.cpp |   2 +-
 ...ource_Plugins_Process_POSIX_ProcessPOSIXLog.cpp |  25 +++
 ...ugins_Process_Windows_Common_ProcessWindows.cpp |  24 +++
 ...ns_Process_Windows_Common_ProcessWindowsLog.cpp |  27 ++++
 ...rce_Plugins_Process_elf-core_ProcessElfCore.cpp |  24 +++
 ...remote_GDBRemoteCommunicationServerPlatform.cpp |  24 +++
 ...Plugins_Process_gdb-remote_ProcessGDBRemote.cpp |  24 +++
 ...gins_Process_gdb-remote_ProcessGDBRemoteLog.cpp |  25 +++
 ...e_Plugins_Process_mach-core_ProcessMachCore.cpp |  24 +++
 ...ce_Plugins_Process_minidump_ProcessMinidump.cpp |  25 +++
 ...criptInterpreter_None_ScriptInterpreterNone.cpp |  25 +++
 ...tInterpreter_Python_ScriptInterpreterPython.cpp |  16 ++
 ...ce_Plugins_SymbolFile_DWARF_SymbolFileDWARF.cpp |  26 +++
 ...urce_Plugins_SymbolFile_DWARF_SymbolFileDWARF.h |  21 +++
 .../patch-source_Symbol_ClangASTContext.cpp        |  43 +++++
 .../patches/patch-source_Symbol_GoASTContext.cpp   |  24 +++
 .../patches/patch-source_Target_Language.cpp       |  37 +++++
 .../patches/patch-source_Utility_ConstString.cpp   |  25 +++
 ..._source_MacOSX_DarwinLog_DarwinLogCollector.cpp |  17 ++
 38 files changed, 1099 insertions(+), 24 deletions(-)

diffs:
diff --git a/lldb-netbsd/distinfo b/lldb-netbsd/distinfo
index 396aa407a8..76f31f5b85 100644
--- a/lldb-netbsd/distinfo
+++ b/lldb-netbsd/distinfo
@@ -13,20 +13,55 @@ SHA1 (llvm-3.6.2.src.tar.xz) = 7a00257eb2bc9431e4c77c3a36b033072c54bc7e
 RMD160 (llvm-3.6.2.src.tar.xz) = 521cbc5fe2925ea3c6e90c7a31f752a04045c972
 Size (llvm-3.6.2.src.tar.xz) = 12802380 bytes
 SHA1 (patch-cmake_LLDBDependencies.cmake) = 2577a759167675d3a89915bebad05c8159798e8a
+SHA1 (patch-include_lldb_Core_Debugger.h) = b7317cec334b7ace74f288fc76992958ac0ec2d1
 SHA1 (patch-include_lldb_Host_netbsd_HostThreadNetBSD.h) = 79f207cdb9da2ef57d39eeb307ec6d10cf828925
 SHA1 (patch-source_CMakeLists.txt) = 5dacabc3f39c23bdfd432b5a4895866157b97aa0
+SHA1 (patch-source_Commands_CommandObjectPlatform.cpp) = 63bea8439489648d2719d6173812867c3e4aa618
+SHA1 (patch-source_Core_Debugger.cpp) = 3124999e93329392df332580bd4130c329225427
+SHA1 (patch-source_Core_ModuleList.cpp) = ff470cfe29d4702d5be6c5a096d5a8db700547e7
+SHA1 (patch-source_Host_common_Editline.cpp) = 5c6aa92ae3e83476ae6cdf74c54db175ba8cac88
 SHA1 (patch-source_Host_common_Host.cpp) = 7d48b8bb1e4350ba6d3ddc6357b9b8dc82d6b32d
+SHA1 (patch-source_Host_common_HostInfoBase.cpp) = 74215c4c46ea96f32bca20eb52967a73318700e3
 SHA1 (patch-source_Host_common_NativeProcessProtocol.cpp) = 23cc7da280b2123cf0206f3d5660d2647935edbc
-SHA1 (patch-source_Host_linux_HostInfoLinux.cpp) = fb375b959fe0f08c9e888194c58af356edeee441
+SHA1 (patch-source_Host_linux_HostInfoLinux.cpp) = efa27e26e57b9fb8b2153b177c7f4f2ffd195243
 SHA1 (patch-source_Host_netbsd_HostThreadNetBSD.cpp) = a1b0fbdad062309a845cfefe4469614fbbe9d20e
 SHA1 (patch-source_Host_netbsd_ThisThread.cpp) = f0d32c81bc1b8fe9aeb86519ea46ba2cb16571c2
+SHA1 (patch-source_Host_windows_HostInfoWindows.cpp) = 3ae5729ed6a9a79f47fb63cc54e464760d0e2ac7
 SHA1 (patch-source_Initialization_SystemInitializerCommon.cpp) = 80c850b980fe2902f10e441df7a18f428dd1154a
+SHA1 (patch-source_Plugins_ExpressionParser_Clang_ClangModulesDeclVendor.cpp) = 0405684c5440935d78451725383fb1ca47ec7c78
+SHA1 (patch-source_Plugins_Language_CPlusPlus_CPlusPlusLanguage.cpp) = 4fa921eaffa2750cebe46ac52817b46739d0d1d5
+SHA1 (patch-source_Plugins_Language_Go_GoLanguage.cpp) = 5f498c648f06535c2a2f80d8bf1c2ee40c782a05
+SHA1 (patch-source_Plugins_Language_Java_JavaLanguage.cpp) = 960b3bc5de14a872a7d4e9e26a3019435ae07e9e
+SHA1 (patch-source_Plugins_Language_ObjC_ObjCLanguage.cpp) = 018caf2ea5a3b867986a03ae0337c3ced01fe040
+SHA1 (patch-source_Plugins_Platform_MacOSX_PlatformAppleSimulator.cpp) = 4c7a6d571d194fc767f268a327a2d4bef8bde0de
+SHA1 (patch-source_Plugins_Platform_MacOSX_PlatformDarwin.cpp) = 75b5190bec7299b59083f73af9b5f97df0cbde2a
 SHA1 (patch-source_Plugins_Platform_NetBSD_PlatformNetBSD.cpp) = 03f19a72814e94da205f227c9d67c2c0c39eec1d
 SHA1 (patch-source_Plugins_Platform_NetBSD_PlatformNetBSD.h) = c95a91f230e3504eb1adc07f1b58ef5805a335fc
 SHA1 (patch-source_Plugins_Process_CMakeLists.txt) = c689ff4ec455234f8d506dc9eb8e0ed7f750d426
+SHA1 (patch-source_Plugins_Process_FreeBSD_ProcessFreeBSD.cpp) = 49c782a47840578716009abf3093cba731551bb9
+SHA1 (patch-source_Plugins_Process_Linux_NativeProcessLinux.cpp) = 9d7ec5c7cb34120814d9cd2b039f2f64aa3c1451
+SHA1 (patch-source_Plugins_Process_MacOSX-Kernel_ProcessKDP.cpp) = d6162941eba2011128b5db1aa50f0aa4983a45e5
 SHA1 (patch-source_Plugins_Process_NetBSD_CMakeLists.txt) = 483584dad2dba01dccd065435a5d75eedf11b3c6
-SHA1 (patch-source_Plugins_Process_NetBSD_NativeProcessNetBSD.cpp) = 738610c6559ad2a5552c08bf19b8210ead2836cc
+SHA1 (patch-source_Plugins_Process_NetBSD_NativeProcessNetBSD.cpp) = 728f910dd8cbc31b59ed3e8c3226d9203c0a59b7
 SHA1 (patch-source_Plugins_Process_NetBSD_NativeProcessNetBSD.h) = c48bb2dd45682164ab904b8b3f7664b91ac35d5b
 SHA1 (patch-source_Plugins_Process_NetBSD_NativeThreadNetBSD.cpp) = 4369b37e51c367787a12c7f935a8f5daf274841e
 SHA1 (patch-source_Plugins_Process_NetBSD_NativeThreadNetBSD.h) = 22e5c436baea68b38058c8387318d08c7a43c149
+SHA1 (patch-source_Plugins_Process_POSIX_ProcessPOSIXLog.cpp) = 8821c2c0a64e43cbb80434ab3a2ed91d33607c3a
+SHA1 (patch-source_Plugins_Process_Windows_Common_ProcessWindows.cpp) = cb664f5faf4449c9e26bf06399da27732ece3c44
+SHA1 (patch-source_Plugins_Process_Windows_Common_ProcessWindowsLog.cpp) = 4f5bcdab8258ed899ecbcacacb61b02250a6f1d7
+SHA1 (patch-source_Plugins_Process_elf-core_ProcessElfCore.cpp) = 00c84d42a1a177f6e5059f7e8ce4a9e8d254bc5a
+SHA1 (patch-source_Plugins_Process_gdb-remote_GDBRemoteCommunicationServerPlatform.cpp) = 7d36e6e4baf1e4eb2da72c91dd3c3d5608d1ff3b
+SHA1 (patch-source_Plugins_Process_gdb-remote_ProcessGDBRemote.cpp) = e03b0010b08c662016289b74dd518ba013301f1b
+SHA1 (patch-source_Plugins_Process_gdb-remote_ProcessGDBRemoteLog.cpp) = 69386fbf89dfa55ca90d024b648a8b7cb7bd5ca5
+SHA1 (patch-source_Plugins_Process_mach-core_ProcessMachCore.cpp) = 80aa50ca12dd3fd55039da7c7cd42cf0660e39c8
+SHA1 (patch-source_Plugins_Process_minidump_ProcessMinidump.cpp) = 0f275d25be7db7f38bfcf55fad6690507be20ffd
+SHA1 (patch-source_Plugins_ScriptInterpreter_None_ScriptInterpreterNone.cpp) = db75b4162b7a2fd5df64f8cd98da71d6d5b6b43e
+SHA1 (patch-source_Plugins_ScriptInterpreter_Python_ScriptInterpreterPython.cpp) = 291e3b9b9b36ff58d9885616ad0d57e6965173a2
+SHA1 (patch-source_Plugins_SymbolFile_DWARF_SymbolFileDWARF.cpp) = 9858932e20d0e0e7cd9030dd7f5ec265d5eb7f40
+SHA1 (patch-source_Plugins_SymbolFile_DWARF_SymbolFileDWARF.h) = bf7700554b950064706d6bb4f96e4d1f13e08bf7
+SHA1 (patch-source_Symbol_ClangASTContext.cpp) = 051af87aef7f26b025f1a3ce49b0999f43a10b47
+SHA1 (patch-source_Symbol_GoASTContext.cpp) = f6ea8faca07b6ac41e9d42341ed0f56b33ebfb7c
+SHA1 (patch-source_Target_Language.cpp) = 6cc1acc02ad0fbfc0a645dbca0ac763a474bd120
+SHA1 (patch-source_Utility_ConstString.cpp) = 2af56d90458de32963a1c3c01cc5018a008ce422
+SHA1 (patch-tools_debugserver_source_MacOSX_DarwinLog_DarwinLogCollector.cpp) = fb52ca3a5f1aa6763b689c1692718248ad871c6f
 SHA1 (patch-tools_lldb-server_CMakeLists.txt) = 7a25edbff78d8091fa907b01c2c01c3e51579c15
diff --git a/lldb-netbsd/patches/patch-include_lldb_Core_Debugger.h b/lldb-netbsd/patches/patch-include_lldb_Core_Debugger.h
new file mode 100644
index 0000000000..cf4ada9608
--- /dev/null
+++ b/lldb-netbsd/patches/patch-include_lldb_Core_Debugger.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- include/lldb/Core/Debugger.h.orig	2016-12-17 10:34:06.000000000 +0000
++++ include/lldb/Core/Debugger.h
+@@ -34,6 +34,8 @@
+ #include "lldb/Target/TargetList.h"
+ #include "lldb/lldb-public.h"
+ 
++#include "llvm/Support/Threading.h"
++
+ namespace llvm {
+ namespace sys {
+ class DynamicLibrary;
+@@ -374,7 +376,7 @@ protected:
+   HostThread m_io_handler_thread;
+   Broadcaster m_sync_broadcaster;
+   lldb::ListenerSP m_forward_listener_sp;
+-  std::once_flag m_clear_once;
++  llvm::once_flag m_clear_once;
+ 
+   //----------------------------------------------------------------------
+   // Events for m_sync_broadcaster
diff --git a/lldb-netbsd/patches/patch-source_Commands_CommandObjectPlatform.cpp b/lldb-netbsd/patches/patch-source_Commands_CommandObjectPlatform.cpp
new file mode 100644
index 0000000000..92d80923af
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Commands_CommandObjectPlatform.cpp
@@ -0,0 +1,23 @@
+$NetBSD$
+
+--- source/Commands/CommandObjectPlatform.cpp.orig	2017-02-02 22:16:10.000000000 +0000
++++ source/Commands/CommandObjectPlatform.cpp
+@@ -29,6 +29,7 @@
+ #include "lldb/Target/Process.h"
+ 
+ #include "llvm/ADT/SmallString.h"
++#include "llvm/Support/Threading.h"
+ 
+ using namespace lldb;
+ using namespace lldb_private;
+@@ -1248,8 +1249,8 @@ protected:
+   public:
+     CommandOptions()
+         : Options(), match_info(), show_args(false), verbose(false) {
+-      static std::once_flag g_once_flag;
+-      std::call_once(g_once_flag, []() {
++      LLVM_DEFINE_ONCE_FLAG(g_once_flag);
++      llvm::call_once(g_once_flag, []() {
+         PosixPlatformCommandOptionValidator *posix_validator =
+             new PosixPlatformCommandOptionValidator();
+         for (auto &Option : g_platform_process_list_options) {
diff --git a/lldb-netbsd/patches/patch-source_Core_Debugger.cpp b/lldb-netbsd/patches/patch-source_Core_Debugger.cpp
new file mode 100644
index 0000000000..8384ba4269
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Core_Debugger.cpp
@@ -0,0 +1,21 @@
+$NetBSD$
+
+--- source/Core/Debugger.cpp.orig	2017-02-04 18:35:35.000000000 +0000
++++ source/Core/Debugger.cpp
+@@ -17,6 +17,7 @@
+ // Other libraries and framework includes
+ #include "llvm/ADT/StringRef.h"
+ #include "llvm/Support/DynamicLibrary.h"
++#include "llvm/Support/Threading.h"
+ 
+ // Project includes
+ #include "lldb/Core/FormatEntity.h"
+@@ -762,7 +763,7 @@ void Debugger::Clear() {
+   //     static void Debugger::Destroy(lldb::DebuggerSP &debugger_sp);
+   //     static void Debugger::Terminate();
+   //----------------------------------------------------------------------
+-  std::call_once(m_clear_once, [this]() {
++  llvm::call_once(m_clear_once, [this]() {
+     ClearIOHandlers();
+     StopIOHandlerThread();
+     StopEventHandlerThread();
diff --git a/lldb-netbsd/patches/patch-source_Core_ModuleList.cpp b/lldb-netbsd/patches/patch-source_Core_ModuleList.cpp
new file mode 100644
index 0000000000..1d145f7b33
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Core_ModuleList.cpp
@@ -0,0 +1,24 @@
+$NetBSD$
+
+--- source/Core/ModuleList.cpp.orig	2016-12-17 10:30:30.000000000 +0000
++++ source/Core/ModuleList.cpp
+@@ -26,6 +26,8 @@
+ #include "lldb/Symbol/SymbolFile.h"
+ #include "lldb/Symbol/VariableList.h"
+ 
++#include "llvm/Support/Threading.h"
++
+ using namespace lldb;
+ using namespace lldb_private;
+ 
+@@ -644,8 +646,8 @@ size_t ModuleList::GetIndexForModule(con
+ 
+ static ModuleList &GetSharedModuleList() {
+   static ModuleList *g_shared_module_list = nullptr;
+-  static std::once_flag g_once_flag;
+-  std::call_once(g_once_flag, []() {
++  LLVM_DEFINE_ONCE_FLAG(g_once_flag);
++  llvm::call_once(g_once_flag, []() {
+     // NOTE: Intentionally leak the module list so a program doesn't have to
+     // cleanup all modules and object files as it exits. This just wastes time
+     // doing a bunch of cleanup that isn't required.
diff --git a/lldb-netbsd/patches/patch-source_Host_common_Editline.cpp b/lldb-netbsd/patches/patch-source_Host_common_Editline.cpp
new file mode 100644
index 0000000000..c47872d895
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Host_common_Editline.cpp
@@ -0,0 +1,24 @@
+$NetBSD$
+
+--- source/Host/common/Editline.cpp.orig	2017-02-04 18:35:35.000000000 +0000
++++ source/Host/common/Editline.cpp
+@@ -22,6 +22,8 @@
+ #include "lldb/Utility/SelectHelper.h"
+ #include "lldb/Utility/StreamString.h"
+ 
++#include "llvm/Support/Threading.h"
++
+ using namespace lldb_private;
+ using namespace lldb_private::line_editor;
+ 
+@@ -1151,8 +1153,8 @@ Editline::Editline(const char *editline_
+     if (term_fd != -1) {
+       static std::mutex *g_init_terminal_fds_mutex_ptr = nullptr;
+       static std::set<int> *g_init_terminal_fds_ptr = nullptr;
+-      static std::once_flag g_once_flag;
+-      std::call_once(g_once_flag, [&]() {
++      LLVM_DEFINE_ONCE_FLAG(g_once_flag);
++      llvm::call_once(g_once_flag, [&]() {
+         g_init_terminal_fds_mutex_ptr =
+             new std::mutex(); // NOTE: Leak to avoid C++ destructor chain issues
+         g_init_terminal_fds_ptr = new std::set<int>(); // NOTE: Leak to avoid
diff --git a/lldb-netbsd/patches/patch-source_Host_common_HostInfoBase.cpp b/lldb-netbsd/patches/patch-source_Host_common_HostInfoBase.cpp
new file mode 100644
index 0000000000..7e811ebf8c
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Host_common_HostInfoBase.cpp
@@ -0,0 +1,179 @@
+$NetBSD$
+
+--- source/Host/common/HostInfoBase.cpp.orig	2017-02-04 18:35:35.000000000 +0000
++++ source/Host/common/HostInfoBase.cpp
+@@ -22,9 +22,10 @@
+ #include "llvm/Support/Host.h"
+ #include "llvm/Support/Path.h"
+ #include "llvm/Support/ScopedPrinter.h"
++#include "llvm/Support/Threading.h"
+ #include "llvm/Support/raw_ostream.h"
+ 
+-#include <mutex> // std::once
++#include <mutex>
+ #include <thread>
+ 
+ using namespace lldb;
+@@ -79,8 +80,8 @@ void HostInfoBase::Terminate() {
+ }
+ 
+ uint32_t HostInfoBase::GetNumberCPUS() {
+-  static std::once_flag g_once_flag;
+-  std::call_once(g_once_flag, []() {
++  LLVM_DEFINE_ONCE_FLAG(g_once_flag);
++  llvm::call_once(g_once_flag, []() {
+     g_fields->m_number_cpus = std::thread::hardware_concurrency();
+   });
+   return g_fields->m_number_cpus;
+@@ -89,8 +90,8 @@ uint32_t HostInfoBase::GetNumberCPUS() {
+ uint32_t HostInfoBase::GetMaxThreadNameLength() { return 0; }
+ 
+ llvm::StringRef HostInfoBase::GetVendorString() {
+-  static std::once_flag g_once_flag;
+-  std::call_once(g_once_flag, []() {
++  LLVM_DEFINE_ONCE_FLAG(g_once_flag);
++  llvm::call_once(g_once_flag, []() {
+     g_fields->m_vendor_string =
+         HostInfo::GetArchitecture().GetTriple().getVendorName().str();
+   });
+@@ -98,8 +99,8 @@ llvm::StringRef HostInfoBase::GetVendorS
+ }
+ 
+ llvm::StringRef HostInfoBase::GetOSString() {
+-  static std::once_flag g_once_flag;
+-  std::call_once(g_once_flag, []() {
++  LLVM_DEFINE_ONCE_FLAG(g_once_flag);
++  llvm::call_once(g_once_flag, []() {
+     g_fields->m_os_string =
+         std::move(HostInfo::GetArchitecture().GetTriple().getOSName());
+   });
+@@ -107,8 +108,8 @@ llvm::StringRef HostInfoBase::GetOSStrin
+ }
+ 
+ llvm::StringRef HostInfoBase::GetTargetTriple() {
+-  static std::once_flag g_once_flag;
+-  std::call_once(g_once_flag, []() {
++  LLVM_DEFINE_ONCE_FLAG(g_once_flag);
++  llvm::call_once(g_once_flag, []() {
+     g_fields->m_host_triple =
+         HostInfo::GetArchitecture().GetTriple().getTriple();
+   });
+@@ -116,8 +117,8 @@ llvm::StringRef HostInfoBase::GetTargetT
+ }
+ 
+ const ArchSpec &HostInfoBase::GetArchitecture(ArchitectureKind arch_kind) {
+-  static std::once_flag g_once_flag;
+-  std::call_once(g_once_flag, []() {
++  LLVM_DEFINE_ONCE_FLAG(g_once_flag);
++  llvm::call_once(g_once_flag, []() {
+     HostInfo::ComputeHostArchitectureSupport(g_fields->m_host_arch_32,
+                                              g_fields->m_host_arch_64);
+   });
+@@ -144,9 +145,9 @@ bool HostInfoBase::GetLLDBPath(lldb::Pat
+   FileSpec *result = nullptr;
+   switch (type) {
+   case lldb::ePathTypeLLDBShlibDir: {
+-    static std::once_flag g_once_flag;
++    LLVM_DEFINE_ONCE_FLAG(g_once_flag);
+     static bool success = false;
+-    std::call_once(g_once_flag, []() {
++    llvm::call_once(g_once_flag, []() {
+       success =
+           HostInfo::ComputeSharedLibraryDirectory(g_fields->m_lldb_so_dir);
+       Log *log = lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_HOST);
+@@ -158,9 +159,9 @@ bool HostInfoBase::GetLLDBPath(lldb::Pat
+       result = &g_fields->m_lldb_so_dir;
+   } break;
+   case lldb::ePathTypeSupportExecutableDir: {
+-    static std::once_flag g_once_flag;
++    LLVM_DEFINE_ONCE_FLAG(g_once_flag);
+     static bool success = false;
+-    std::call_once(g_once_flag, []() {
++    llvm::call_once(g_once_flag, []() {
+       success = HostInfo::ComputeSupportExeDirectory(
+           g_fields->m_lldb_support_exe_dir);
+       Log *log = lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_HOST);
+@@ -173,9 +174,9 @@ bool HostInfoBase::GetLLDBPath(lldb::Pat
+       result = &g_fields->m_lldb_support_exe_dir;
+   } break;
+   case lldb::ePathTypeHeaderDir: {
+-    static std::once_flag g_once_flag;
++    LLVM_DEFINE_ONCE_FLAG(g_once_flag);
+     static bool success = false;
+-    std::call_once(g_once_flag, []() {
++    llvm::call_once(g_once_flag, []() {
+       success = HostInfo::ComputeHeaderDirectory(g_fields->m_lldb_headers_dir);
+       Log *log = lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_HOST);
+       if (log)
+@@ -186,9 +187,9 @@ bool HostInfoBase::GetLLDBPath(lldb::Pat
+       result = &g_fields->m_lldb_headers_dir;
+   } break;
+   case lldb::ePathTypePythonDir: {
+-    static std::once_flag g_once_flag;
++    LLVM_DEFINE_ONCE_FLAG(g_once_flag);
+     static bool success = false;
+-    std::call_once(g_once_flag, []() {
++    llvm::call_once(g_once_flag, []() {
+       success = HostInfo::ComputePythonDirectory(g_fields->m_lldb_python_dir);
+       Log *log = lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_HOST);
+       if (log)
+@@ -199,9 +200,9 @@ bool HostInfoBase::GetLLDBPath(lldb::Pat
+       result = &g_fields->m_lldb_python_dir;
+   } break;
+   case lldb::ePathTypeClangDir: {
+-    static std::once_flag g_once_flag;
++    LLVM_DEFINE_ONCE_FLAG(g_once_flag);
+     static bool success = false;
+-    std::call_once(g_once_flag, []() {
++    llvm::call_once(g_once_flag, []() {
+       success =
+           HostInfo::ComputeClangDirectory(g_fields->m_lldb_clang_resource_dir);
+       Log *log = lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_HOST);
+@@ -214,9 +215,9 @@ bool HostInfoBase::GetLLDBPath(lldb::Pat
+       result = &g_fields->m_lldb_clang_resource_dir;
+   } break;
+   case lldb::ePathTypeLLDBSystemPlugins: {
+-    static std::once_flag g_once_flag;
++    LLVM_DEFINE_ONCE_FLAG(g_once_flag);
+     static bool success = false;
+-    std::call_once(g_once_flag, []() {
++    llvm::call_once(g_once_flag, []() {
+       success = HostInfo::ComputeSystemPluginsDirectory(
+           g_fields->m_lldb_system_plugin_dir);
+       Log *log = lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_HOST);
+@@ -229,9 +230,9 @@ bool HostInfoBase::GetLLDBPath(lldb::Pat
+       result = &g_fields->m_lldb_system_plugin_dir;
+   } break;
+   case lldb::ePathTypeLLDBUserPlugins: {
+-    static std::once_flag g_once_flag;
++    LLVM_DEFINE_ONCE_FLAG(g_once_flag);
+     static bool success = false;
+-    std::call_once(g_once_flag, []() {
++    llvm::call_once(g_once_flag, []() {
+       success = HostInfo::ComputeUserPluginsDirectory(
+           g_fields->m_lldb_user_plugin_dir);
+       Log *log = lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_HOST);
+@@ -244,9 +245,9 @@ bool HostInfoBase::GetLLDBPath(lldb::Pat
+       result = &g_fields->m_lldb_user_plugin_dir;
+   } break;
+   case lldb::ePathTypeLLDBTempSystemDir: {
+-    static std::once_flag g_once_flag;
++    LLVM_DEFINE_ONCE_FLAG(g_once_flag);
+     static bool success = false;
+-    std::call_once(g_once_flag, []() {
++    llvm::call_once(g_once_flag, []() {
+       success = HostInfo::ComputeProcessTempFileDirectory(
+           g_fields->m_lldb_process_tmp_dir);
+       Log *log = lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_HOST);
+@@ -259,9 +260,9 @@ bool HostInfoBase::GetLLDBPath(lldb::Pat
+       result = &g_fields->m_lldb_process_tmp_dir;
+   } break;
+   case lldb::ePathTypeGlobalLLDBTempSystemDir: {
+-    static std::once_flag g_once_flag;
++    LLVM_DEFINE_ONCE_FLAG(g_once_flag);
+     static bool success = false;
+-    std::call_once(g_once_flag, []() {
++    llvm::call_once(g_once_flag, []() {
+       success = HostInfo::ComputeGlobalTempFileDirectory(
+           g_fields->m_lldb_global_tmp_dir);
+       Log *log = lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_HOST);
diff --git a/lldb-netbsd/patches/patch-source_Host_linux_HostInfoLinux.cpp b/lldb-netbsd/patches/patch-source_Host_linux_HostInfoLinux.cpp
index a7c3bc1af2..020a9f30da 100644
--- a/lldb-netbsd/patches/patch-source_Host_linux_HostInfoLinux.cpp
+++ b/lldb-netbsd/patches/patch-source_Host_linux_HostInfoLinux.cpp
@@ -2,25 +2,12 @@ $NetBSD$
 
 --- source/Host/linux/HostInfoLinux.cpp.orig	2016-12-17 10:30:35.000000000 +0000
 +++ source/Host/linux/HostInfoLinux.cpp
-@@ -44,8 +44,8 @@ uint32_t HostInfoLinux::GetMaxThreadName
- bool HostInfoLinux::GetOSVersion(uint32_t &major, uint32_t &minor,
-                                  uint32_t &update) {
-   static bool success = false;
--  static std::once_flag g_once_flag;
--  std::call_once(g_once_flag, []() {
-+  LLVM_DEFINE_ONCE_FLAG(g_once_flag);
-+  llvm::call_once(g_once_flag, []() {
+@@ -10,6 +10,8 @@
+ #include "lldb/Host/linux/HostInfoLinux.h"
+ #include "lldb/Core/Log.h"
  
-     struct utsname un;
-     if (uname(&un) == 0) {
-@@ -100,8 +100,8 @@ bool HostInfoLinux::GetOSKernelDescripti
- llvm::StringRef HostInfoLinux::GetDistributionId() {
-   // Try to run 'lbs_release -i', and use that response
-   // for the distribution id.
--  static std::once_flag g_once_flag;
--  std::call_once(g_once_flag, []() {
-+  LLVM_DEFINE_ONCE_FLAG(g_once_flag);
-+  llvm::call_once(g_once_flag, []() {
- 
-     Log *log(lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_HOST));
-     if (log)
++#include "llvm/Support/Threading.h"
++
+ #include <limits.h>
+ #include <stdio.h>
+ #include <string.h>
diff --git a/lldb-netbsd/patches/patch-source_Host_windows_HostInfoWindows.cpp b/lldb-netbsd/patches/patch-source_Host_windows_HostInfoWindows.cpp
new file mode 100644
index 0000000000..99079cc774
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Host_windows_HostInfoWindows.cpp
@@ -0,0 +1,23 @@
+$NetBSD$
+
+--- source/Host/windows/HostInfoWindows.cpp.orig	2016-12-17 10:30:35.000000000 +0000
++++ source/Host/windows/HostInfoWindows.cpp
+@@ -18,6 +18,7 @@
+ #include "llvm/Support/ConvertUTF.h"
+ #include "llvm/Support/FileSystem.h"
+ #include "llvm/Support/Path.h"
++#include "llvm/Support/Threading.h"
+ #include "llvm/Support/raw_ostream.h"
+ 
+ using namespace lldb_private;
+@@ -90,8 +91,8 @@ bool HostInfoWindows::GetHostname(std::s
+ }
+ 
+ FileSpec HostInfoWindows::GetProgramFileSpec() {
+-  static std::once_flag g_once_flag;
+-  std::call_once(g_once_flag, []() {
++  LLVM_DEFINE_ONCE_FLAG(g_once_flag);
++  llvm::call_once(g_once_flag, []() {
+     std::vector<wchar_t> buffer(PATH_MAX);
+     ::GetModuleFileNameW(NULL, buffer.data(), buffer.size());
+     std::string path;
diff --git a/lldb-netbsd/patches/patch-source_Plugins_ExpressionParser_Clang_ClangModulesDeclVendor.cpp b/lldb-netbsd/patches/patch-source_Plugins_ExpressionParser_Clang_ClangModulesDeclVendor.cpp
new file mode 100644
index 0000000000..a119ced7cd
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Plugins_ExpressionParser_Clang_ClangModulesDeclVendor.cpp
@@ -0,0 +1,24 @@
+$NetBSD$
+
+--- source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp.orig	2017-02-04 18:35:34.000000000 +0000
++++ source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp
+@@ -21,6 +21,7 @@
+ #include "clang/Sema/Lookup.h"
+ #include "clang/Serialization/ASTReader.h"
+ #include "llvm/Support/Path.h"
++#include "llvm/Support/Threading.h"
+ 
+ // Project includes
+ #include "ClangModulesDeclVendor.h"
+@@ -143,9 +144,9 @@ void StoringDiagnosticConsumer::DumpDiag
+ static FileSpec GetResourceDir() {
+   static FileSpec g_cached_resource_dir;
+ 
+-  static std::once_flag g_once_flag;
++  LLVM_DEFINE_ONCE_FLAG(g_once_flag);
+ 
+-  std::call_once(g_once_flag, []() {
++  llvm::call_once(g_once_flag, []() {
+     HostInfo::GetLLDBPath(lldb::ePathTypeClangDir, g_cached_resource_dir);
+   });
+ 
diff --git a/lldb-netbsd/patches/patch-source_Plugins_Language_CPlusPlus_CPlusPlusLanguage.cpp b/lldb-netbsd/patches/patch-source_Plugins_Language_CPlusPlus_CPlusPlusLanguage.cpp
new file mode 100644
index 0000000000..56dfcf863a
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Plugins_Language_CPlusPlus_CPlusPlusLanguage.cpp
@@ -0,0 +1,53 @@
+$NetBSD$
+
+--- source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp.orig	2017-02-04 18:35:35.000000000 +0000
++++ source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
+@@ -21,6 +21,7 @@
+ 
+ // Other libraries and framework includes
+ #include "llvm/ADT/StringRef.h"
++#include "llvm/Support/Threading.h"
+ 
+ // Project includes
+ #include "lldb/Core/FastDemangle.h"
+@@ -1036,10 +1037,10 @@ std::unique_ptr<Language::TypeScavenger>
+ }
+ 
+ lldb::TypeCategoryImplSP CPlusPlusLanguage::GetFormatters() {
+-  static std::once_flag g_initialize;
++  LLVM_DEFINE_ONCE_FLAG(g_initialize);
+   static TypeCategoryImplSP g_category;
+ 
+-  std::call_once(g_initialize, [this]() -> void {
++  llvm::call_once(g_initialize, [this]() -> void {
+     DataVisualization::Categories::GetCategory(GetPluginName(), g_category);
+     if (g_category) {
+       LoadLibCxxFormatters(g_category);
+@@ -1052,11 +1053,11 @@ lldb::TypeCategoryImplSP CPlusPlusLangua
+ 
+ HardcodedFormatters::HardcodedSummaryFinder
+ CPlusPlusLanguage::GetHardcodedSummaries() {
+-  static std::once_flag g_initialize;
++  LLVM_DEFINE_ONCE_FLAG(g_initialize);
+   static ConstString g_vectortypes("VectorTypes");
+   static HardcodedFormatters::HardcodedSummaryFinder g_formatters;
+ 
+-  std::call_once(g_initialize, []() -> void {
++  llvm::call_once(g_initialize, []() -> void {
+     g_formatters.push_back(
+         [](lldb_private::ValueObject &valobj, lldb::DynamicValueType,
+            FormatManager &) -> TypeSummaryImpl::SharedPointer {
+@@ -1116,11 +1117,11 @@ CPlusPlusLanguage::GetHardcodedSummaries
+ 
+ HardcodedFormatters::HardcodedSyntheticFinder
+ CPlusPlusLanguage::GetHardcodedSynthetics() {
+-  static std::once_flag g_initialize;
++  LLVM_DEFINE_ONCE_FLAG(g_initialize);
+   static ConstString g_vectortypes("VectorTypes");
+   static HardcodedFormatters::HardcodedSyntheticFinder g_formatters;
+ 
+-  std::call_once(g_initialize, []() -> void {
++  llvm::call_once(g_initialize, []() -> void {
+     g_formatters.push_back([](lldb_private::ValueObject &valobj,
+                               lldb::DynamicValueType,
+                               FormatManager &
diff --git a/lldb-netbsd/patches/patch-source_Plugins_Language_Go_GoLanguage.cpp b/lldb-netbsd/patches/patch-source_Plugins_Language_Go_GoLanguage.cpp
new file mode 100644
index 0000000000..6c0e4ffc61
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Plugins_Language_Go_GoLanguage.cpp
@@ -0,0 +1,38 @@
+$NetBSD$
+
+--- source/Plugins/Language/Go/GoLanguage.cpp.orig	2017-02-04 18:35:34.000000000 +0000
++++ source/Plugins/Language/Go/GoLanguage.cpp
+@@ -15,6 +15,7 @@
+ 
+ // Other libraries and framework includes
+ #include "llvm/ADT/StringRef.h"
++#include "llvm/Support/Threading.h"
+ 
+ // Project includes
+ #include "GoLanguage.h"
+@@ -62,10 +63,10 @@ Language *GoLanguage::CreateInstance(lld
+ 
+ HardcodedFormatters::HardcodedSummaryFinder
+ GoLanguage::GetHardcodedSummaries() {
+-  static std::once_flag g_initialize;
++  LLVM_DEFINE_ONCE_FLAG(g_initialize);
+   static HardcodedFormatters::HardcodedSummaryFinder g_formatters;
+ 
+-  std::call_once(g_initialize, []() -> void {
++  llvm::call_once(g_initialize, []() -> void {
+     g_formatters.push_back(
+         [](lldb_private::ValueObject &valobj, lldb::DynamicValueType,
+            FormatManager &) -> TypeSummaryImpl::SharedPointer {
+@@ -104,10 +105,10 @@ GoLanguage::GetHardcodedSummaries() {
+ 
+ HardcodedFormatters::HardcodedSyntheticFinder
+ GoLanguage::GetHardcodedSynthetics() {
+-  static std::once_flag g_initialize;
++  LLVM_DEFINE_ONCE_FLAG(g_initialize);
+   static HardcodedFormatters::HardcodedSyntheticFinder g_formatters;
+ 
+-  std::call_once(g_initialize, []() -> void {
++  llvm::call_once(g_initialize, []() -> void {
+     g_formatters.push_back(
+         [](lldb_private::ValueObject &valobj, lldb::DynamicValueType,
+            FormatManager &fmt_mgr) -> SyntheticChildren::SharedPointer {
diff --git a/lldb-netbsd/patches/patch-source_Plugins_Language_Java_JavaLanguage.cpp b/lldb-netbsd/patches/patch-source_Plugins_Language_Java_JavaLanguage.cpp
new file mode 100644
index 0000000000..15b5997446
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Plugins_Language_Java_JavaLanguage.cpp
@@ -0,0 +1,25 @@
+$NetBSD$
+
+--- source/Plugins/Language/Java/JavaLanguage.cpp.orig	2017-02-04 18:35:34.000000000 +0000
++++ source/Plugins/Language/Java/JavaLanguage.cpp
+@@ -15,6 +15,7 @@
+ 
+ // Other libraries and framework includes
+ #include "llvm/ADT/StringRef.h"
++#include "llvm/Support/Threading.h"
+ 
+ // Project includes
+ #include "JavaFormatterFunctions.h"
+@@ -64,10 +65,10 @@ bool JavaLanguage::IsNilReference(ValueO
+ }
+ 
+ lldb::TypeCategoryImplSP JavaLanguage::GetFormatters() {
+-  static std::once_flag g_initialize;
++  LLVM_DEFINE_ONCE_FLAG(g_initialize);
+   static TypeCategoryImplSP g_category;
+ 
+-  std::call_once(g_initialize, [this]() -> void {
++  llvm::call_once(g_initialize, [this]() -> void {
+     DataVisualization::Categories::GetCategory(GetPluginName(), g_category);
+     if (g_category) {
+       llvm::StringRef array_regexp("^.*\\[\\]&?$");
diff --git a/lldb-netbsd/patches/patch-source_Plugins_Language_ObjC_ObjCLanguage.cpp b/lldb-netbsd/patches/patch-source_Plugins_Language_ObjC_ObjCLanguage.cpp
new file mode 100644
index 0000000000..842183a9e2
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Plugins_Language_ObjC_ObjCLanguage.cpp
@@ -0,0 +1,26 @@
+$NetBSD$
+
+--- source/Plugins/Language/ObjC/ObjCLanguage.cpp.orig	2017-02-04 18:35:34.000000000 +0000
++++ source/Plugins/Language/ObjC/ObjCLanguage.cpp
+@@ -26,6 +26,8 @@
+ #include "lldb/Utility/ConstString.h"
+ #include "lldb/Utility/StreamString.h"
+ 
++#include "llvm/Support/Threading.h"
++
+ #include "CF.h"
+ #include "Cocoa.h"
+ #include "CoreMedia.h"
+@@ -857,10 +859,10 @@ static void LoadCoreMediaFormatters(Type
+ }
+ 
+ lldb::TypeCategoryImplSP ObjCLanguage::GetFormatters() {
+-  static std::once_flag g_initialize;
++  LLVM_DEFINE_ONCE_FLAG(g_initialize);
+   static TypeCategoryImplSP g_category;
+ 
+-  std::call_once(g_initialize, [this]() -> void {
++  llvm::call_once(g_initialize, [this]() -> void {
+     DataVisualization::Categories::GetCategory(GetPluginName(), g_category);
+     if (g_category) {
+       LoadCoreMediaFormatters(g_category);
diff --git a/lldb-netbsd/patches/patch-source_Plugins_Platform_MacOSX_PlatformAppleSimulator.cpp b/lldb-netbsd/patches/patch-source_Plugins_Platform_MacOSX_PlatformAppleSimulator.cpp
new file mode 100644
index 0000000000..d57ccd764b
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Plugins_Platform_MacOSX_PlatformAppleSimulator.cpp
@@ -0,0 +1,15 @@
+$NetBSD$
+
+--- source/Plugins/Platform/MacOSX/PlatformAppleSimulator.cpp.orig	2017-02-04 18:35:35.000000000 +0000
++++ source/Plugins/Platform/MacOSX/PlatformAppleSimulator.cpp
+@@ -242,8 +242,8 @@ FileSpec PlatformAppleSimulator::GetCore
+ 
+ void PlatformAppleSimulator::LoadCoreSimulator() {
+ #if defined(__APPLE__)
+-  static std::once_flag g_load_core_sim_flag;
+-  std::call_once(g_load_core_sim_flag, [this] {
++  LLVM_DEFINE_ONCE_FLAG(g_load_core_sim_flag);
++  llvm::call_once(g_load_core_sim_flag, [this] {
+     const std::string core_sim_path(GetCoreSimulatorPath().GetPath());
+     if (core_sim_path.size())
+       dlopen(core_sim_path.c_str(), RTLD_LAZY);
diff --git a/lldb-netbsd/patches/patch-source_Plugins_Platform_MacOSX_PlatformDarwin.cpp b/lldb-netbsd/patches/patch-source_Plugins_Platform_MacOSX_PlatformDarwin.cpp
new file mode 100644
index 0000000000..cbb83e76d1
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Plugins_Platform_MacOSX_PlatformDarwin.cpp
@@ -0,0 +1,34 @@
+$NetBSD$
+
+--- source/Plugins/Platform/MacOSX/PlatformDarwin.cpp.orig	2017-02-04 18:35:35.000000000 +0000
++++ source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
+@@ -40,6 +40,7 @@
+ #include "lldb/Target/Target.h"
+ #include "lldb/Utility/Error.h"
+ #include "llvm/ADT/STLExtras.h"
++#include "llvm/Support/Threading.h"
+ 
+ #if defined(__APPLE__)
+ #include <TargetConditionals.h> // for TARGET_OS_TV, TARGET_OS_WATCH
+@@ -1310,8 +1311,8 @@ static FileSpec CheckPathForXcode(const 
+ 
+ static FileSpec GetXcodeContentsPath() {
+   static FileSpec g_xcode_filespec;
+-  static std::once_flag g_once_flag;
+-  std::call_once(g_once_flag, []() {
++  LLVM_DEFINE_ONCE_FLAG(g_once_flag);
++  llvm::call_once(g_once_flag, []() {
+ 
+     FileSpec fspec;
+ 
+@@ -1693,8 +1694,8 @@ lldb_private::FileSpec PlatformDarwin::L
+ 
+   // Find the global list of directories that we will search for
+   // executables once so we don't keep doing the work over and over.
+-  static std::once_flag g_once_flag;
+-  std::call_once(g_once_flag, []() {
++  LLVM_DEFINE_ONCE_FLAG(g_once_flag);
++  llvm::call_once(g_once_flag, []() {
+ 
+     // When locating executables, trust the DEVELOPER_DIR first if it is set
+     FileSpec xcode_contents_dir = GetXcodeContentsPath();
diff --git a/lldb-netbsd/patches/patch-source_Plugins_Process_FreeBSD_ProcessFreeBSD.cpp b/lldb-netbsd/patches/patch-source_Plugins_Process_FreeBSD_ProcessFreeBSD.cpp
new file mode 100644
index 0000000000..ac07227a80
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Plugins_Process_FreeBSD_ProcessFreeBSD.cpp
@@ -0,0 +1,25 @@
+$NetBSD$
+
+--- source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp.orig	2017-01-31 17:20:57.000000000 +0000
++++ source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp
+@@ -46,6 +46,8 @@
+ 
+ #include "lldb/Host/posix/Fcntl.h"
+ 
++#include "llvm/Support/Threading.h"
++
+ using namespace lldb;
+ using namespace lldb_private;
+ 
+@@ -71,9 +73,9 @@ ProcessFreeBSD::CreateInstance(lldb::Tar
+ }
+ 
+ void ProcessFreeBSD::Initialize() {
+-  static std::once_flag g_once_flag;
++  LLVM_DEFINE_ONCE_FLAG(g_once_flag);
+ 
+-  std::call_once(g_once_flag, []() {
++  llvm::call_once(g_once_flag, []() {
+     PluginManager::RegisterPlugin(GetPluginNameStatic(),
+                                   GetPluginDescriptionStatic(), CreateInstance);
+     ProcessPOSIXLog::Initialize(GetPluginNameStatic());
diff --git a/lldb-netbsd/patches/patch-source_Plugins_Process_Linux_NativeProcessLinux.cpp b/lldb-netbsd/patches/patch-source_Plugins_Process_Linux_NativeProcessLinux.cpp
new file mode 100644
index 0000000000..12c54c7173
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Plugins_Process_Linux_NativeProcessLinux.cpp
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- source/Plugins/Process/Linux/NativeProcessLinux.cpp.orig	2017-02-04 18:35:34.000000000 +0000
++++ source/Plugins/Process/Linux/NativeProcessLinux.cpp
+@@ -75,9 +75,9 @@ using namespace llvm;
+ 
+ static bool ProcessVmReadvSupported() {
+   static bool is_supported;
+-  static std::once_flag flag;
++  LLVM_DEFINE_ONCE_FLAG(flag);
+ 
+-  std::call_once(flag, [] {
++  llvm::call_once(flag, [] {
+     Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_PROCESS));
+ 
+     uint32_t source = 0x47424742;
diff --git a/lldb-netbsd/patches/patch-source_Plugins_Process_MacOSX-Kernel_ProcessKDP.cpp b/lldb-netbsd/patches/patch-source_Plugins_Process_MacOSX-Kernel_ProcessKDP.cpp
new file mode 100644
index 0000000000..1d8b06e861
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Plugins_Process_MacOSX-Kernel_ProcessKDP.cpp
@@ -0,0 +1,25 @@
+$NetBSD$
+
+--- source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp.orig	2017-01-31 17:20:57.000000000 +0000
++++ source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
+@@ -39,6 +39,8 @@
+ #include "lldb/Target/Thread.h"
+ #include "lldb/Utility/StringExtractor.h"
+ 
++#include "llvm/Support/Threading.h"
++
+ #define USEC_PER_SEC 1000000
+ 
+ // Project includes
+@@ -718,9 +720,9 @@ Error ProcessKDP::DoSignal(int signo) {
+ }
+ 
+ void ProcessKDP::Initialize() {
+-  static std::once_flag g_once_flag;
++  LLVM_DEFINE_ONCE_FLAG(g_once_flag);
+ 
+-  std::call_once(g_once_flag, []() {
++  llvm::call_once(g_once_flag, []() {
+     PluginManager::RegisterPlugin(GetPluginNameStatic(),
+                                   GetPluginDescriptionStatic(), CreateInstance,
+                                   DebuggerInitialize);
diff --git a/lldb-netbsd/patches/patch-source_Plugins_Process_NetBSD_NativeProcessNetBSD.cpp b/lldb-netbsd/patches/patch-source_Plugins_Process_NetBSD_NativeProcessNetBSD.cpp
index 31e8863785..69b899b5b6 100644
--- a/lldb-netbsd/patches/patch-source_Plugins_Process_NetBSD_NativeProcessNetBSD.cpp
+++ b/lldb-netbsd/patches/patch-source_Plugins_Process_NetBSD_NativeProcessNetBSD.cpp
@@ -1,6 +1,6 @@
 $NetBSD$
 
---- source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp.orig	2017-02-04 19:17:06.215419277 +0000
+--- source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp.orig	2017-02-05 00:41:08.548506512 +0000
 +++ source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp
 @@ -0,0 +1,1387 @@
 +//===-- NativeProcessNetBSD.cpp -------------------------------- -*- C++ -*-===//
diff --git a/lldb-netbsd/patches/patch-source_Plugins_Process_POSIX_ProcessPOSIXLog.cpp b/lldb-netbsd/patches/patch-source_Plugins_Process_POSIX_ProcessPOSIXLog.cpp
new file mode 100644
index 0000000000..84679841ca
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Plugins_Process_POSIX_ProcessPOSIXLog.cpp
@@ -0,0 +1,25 @@
+$NetBSD$
+
+--- source/Plugins/Process/POSIX/ProcessPOSIXLog.cpp.orig	2016-12-17 10:29:54.000000000 +0000
++++ source/Plugins/Process/POSIX/ProcessPOSIXLog.cpp
+@@ -15,6 +15,8 @@
+ #include "lldb/Core/StreamFile.h"
+ #include "lldb/Interpreter/Args.h"
+ 
++#include "llvm/Support/Threading.h"
++
+ #include "ProcessPOSIXLog.h"
+ 
+ using namespace lldb;
+@@ -33,9 +35,9 @@ static Log *GetLog() {
+ }
+ 
+ void ProcessPOSIXLog::Initialize(ConstString name) {
+-  static std::once_flag g_once_flag;
++  LLVM_DEFINE_ONCE_FLAG(g_once_flag);
+ 
+-  std::call_once(g_once_flag, [name]() {
++  llvm::call_once(g_once_flag, [name]() {
+     Log::Callbacks log_callbacks = {DisableLog, EnableLog, ListLogCategories};
+ 
+     Log::RegisterLogChannel(name, log_callbacks);
diff --git a/lldb-netbsd/patches/patch-source_Plugins_Process_Windows_Common_ProcessWindows.cpp b/lldb-netbsd/patches/patch-source_Plugins_Process_Windows_Common_ProcessWindows.cpp
new file mode 100644
index 0000000000..8d29862cca
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Plugins_Process_Windows_Common_ProcessWindows.cpp
@@ -0,0 +1,24 @@
+$NetBSD$
+
+--- source/Plugins/Process/Windows/Common/ProcessWindows.cpp.orig	2016-12-17 10:30:06.000000000 +0000
++++ source/Plugins/Process/Windows/Common/ProcessWindows.cpp
+@@ -30,6 +30,7 @@
+ 
+ #include "llvm/Support/ConvertUTF.h"
+ #include "llvm/Support/Format.h"
++#include "llvm/Support/Threading.h"
+ #include "llvm/Support/raw_ostream.h"
+ 
+ #include "DebuggerThread.h"
+@@ -102,9 +103,9 @@ ProcessSP ProcessWindows::CreateInstance
+ }
+ 
+ void ProcessWindows::Initialize() {
+-  static std::once_flag g_once_flag;
++  LLVM_DEFINE_ONCE_FLAG(g_once_flag);
+ 
+-  std::call_once(g_once_flag, []() {
++  llvm::call_once(g_once_flag, []() {
+     PluginManager::RegisterPlugin(GetPluginNameStatic(),
+                                   GetPluginDescriptionStatic(), CreateInstance);
+   });
diff --git a/lldb-netbsd/patches/patch-source_Plugins_Process_Windows_Common_ProcessWindowsLog.cpp b/lldb-netbsd/patches/patch-source_Plugins_Process_Windows_Common_ProcessWindowsLog.cpp
new file mode 100644
index 0000000000..e0a4893a76
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Plugins_Process_Windows_Common_ProcessWindowsLog.cpp
@@ -0,0 +1,27 @@
+$NetBSD$
+
+--- source/Plugins/Process/Windows/Common/ProcessWindowsLog.cpp.orig	2016-12-17 10:30:06.000000000 +0000
++++ source/Plugins/Process/Windows/Common/ProcessWindowsLog.cpp
+@@ -14,6 +14,7 @@
+ #include "lldb/Core/StreamFile.h"
+ #include "lldb/Interpreter/Args.h"
+ #include "llvm/Support/ManagedStatic.h"
++#include "llvm/Support/Threading.h"
+ 
+ using namespace lldb;
+ using namespace lldb_private;
+@@ -25,12 +26,12 @@ using namespace lldb_private;
+ static bool g_log_enabled = false;
+ static Log *g_log = nullptr;
+ 
+-static llvm::ManagedStatic<std::once_flag> g_once_flag;
++static llvm::ManagedStatic<llvm::once_flag> g_once_flag;
+ 
+ void ProcessWindowsLog::Initialize() {
+   static ConstString g_name("windows");
+ 
+-  std::call_once(*g_once_flag, []() {
++  llvm::call_once(*g_once_flag, []() {
+     Log::Callbacks log_callbacks = {DisableLog, EnableLog, ListLogCategories};
+ 
+     Log::RegisterLogChannel(g_name, log_callbacks);
diff --git a/lldb-netbsd/patches/patch-source_Plugins_Process_elf-core_ProcessElfCore.cpp b/lldb-netbsd/patches/patch-source_Plugins_Process_elf-core_ProcessElfCore.cpp
new file mode 100644
index 0000000000..4c8e83e0c8
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Plugins_Process_elf-core_ProcessElfCore.cpp
@@ -0,0 +1,24 @@
+$NetBSD$
+
+--- source/Plugins/Process/elf-core/ProcessElfCore.cpp.orig	2017-02-01 14:45:44.000000000 +0000
++++ source/Plugins/Process/elf-core/ProcessElfCore.cpp
+@@ -27,6 +27,7 @@
+ #include "lldb/Target/UnixSignals.h"
+ 
+ #include "llvm/Support/ELF.h"
++#include "llvm/Support/Threading.h"
+ 
+ #include "Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.h"
+ #include "Plugins/ObjectFile/ELF/ObjectFileELF.h"
+@@ -400,9 +401,9 @@ void ProcessElfCore::Clear() {
+ }
+ 
+ void ProcessElfCore::Initialize() {
+-  static std::once_flag g_once_flag;
++  LLVM_DEFINE_ONCE_FLAG(g_once_flag);
+ 
+-  std::call_once(g_once_flag, []() {
++  llvm::call_once(g_once_flag, []() {
+     PluginManager::RegisterPlugin(GetPluginNameStatic(),
+                                   GetPluginDescriptionStatic(), CreateInstance);
+   });
diff --git a/lldb-netbsd/patches/patch-source_Plugins_Process_gdb-remote_GDBRemoteCommunicationServerPlatform.cpp b/lldb-netbsd/patches/patch-source_Plugins_Process_gdb-remote_GDBRemoteCommunicationServerPlatform.cpp
new file mode 100644
index 0000000000..d70d976097
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Plugins_Process_gdb-remote_GDBRemoteCommunicationServerPlatform.cpp
@@ -0,0 +1,24 @@
+$NetBSD$
+
+--- source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp.orig	2017-02-04 18:35:34.000000000 +0000
++++ source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
+@@ -20,6 +20,7 @@
+ 
+ // Other libraries and framework includes
+ #include "llvm/Support/FileSystem.h"
++#include "llvm/Support/Threading.h"
+ 
+ #include "lldb/Core/Log.h"
+ #include "lldb/Core/StreamGDBRemote.h"
+@@ -528,9 +529,9 @@ bool GDBRemoteCommunicationServerPlatfor
+ 
+ const FileSpec &GDBRemoteCommunicationServerPlatform::GetDomainSocketDir() {
+   static FileSpec g_domainsocket_dir;
+-  static std::once_flag g_once_flag;
++  LLVM_DEFINE_ONCE_FLAG(g_once_flag);
+ 
+-  std::call_once(g_once_flag, []() {
++  llvm::call_once(g_once_flag, []() {
+     const char *domainsocket_dir_env =
+         ::getenv("LLDB_DEBUGSERVER_DOMAINSOCKET_DIR");
+     if (domainsocket_dir_env != nullptr)
diff --git a/lldb-netbsd/patches/patch-source_Plugins_Process_gdb-remote_ProcessGDBRemote.cpp b/lldb-netbsd/patches/patch-source_Plugins_Process_gdb-remote_ProcessGDBRemote.cpp
new file mode 100644
index 0000000000..f93ddb0083
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Plugins_Process_gdb-remote_ProcessGDBRemote.cpp
@@ -0,0 +1,24 @@
+$NetBSD$
+
+--- source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp.orig	2017-02-04 18:35:34.000000000 +0000
++++ source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+@@ -81,6 +81,7 @@
+ 
+ #include "llvm/ADT/StringSwitch.h"
+ #include "llvm/Support/raw_ostream.h"
++#include "llvm/Support/Threading.h"
+ 
+ #define DEBUGSERVER_BASENAME "debugserver"
+ using namespace lldb;
+@@ -3434,9 +3435,9 @@ void ProcessGDBRemote::KillDebugserverPr
+ }
+ 
+ void ProcessGDBRemote::Initialize() {
+-  static std::once_flag g_once_flag;
++  LLVM_DEFINE_ONCE_FLAG(g_once_flag);
+ 
+-  std::call_once(g_once_flag, []() {
++  llvm::call_once(g_once_flag, []() {
+     PluginManager::RegisterPlugin(GetPluginNameStatic(),
+                                   GetPluginDescriptionStatic(), CreateInstance,
+                                   DebuggerInitialize);
diff --git a/lldb-netbsd/patches/patch-source_Plugins_Process_gdb-remote_ProcessGDBRemoteLog.cpp b/lldb-netbsd/patches/patch-source_Plugins_Process_gdb-remote_ProcessGDBRemoteLog.cpp
new file mode 100644
index 0000000000..8dc47a9d92
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Plugins_Process_gdb-remote_ProcessGDBRemoteLog.cpp
@@ -0,0 +1,25 @@
+$NetBSD$
+
+--- source/Plugins/Process/gdb-remote/ProcessGDBRemoteLog.cpp.orig	2016-12-17 10:30:03.000000000 +0000
++++ source/Plugins/Process/gdb-remote/ProcessGDBRemoteLog.cpp
+@@ -14,6 +14,8 @@
+ #include "lldb/Core/StreamFile.h"
+ #include "lldb/Interpreter/Args.h"
+ 
++#include "llvm/Support/Threading.h"
++
+ #include "ProcessGDBRemote.h"
+ 
+ using namespace lldb;
+@@ -34,9 +36,9 @@ static Log *GetLog() {
+ 
+ void ProcessGDBRemoteLog::Initialize() {
+   static ConstString g_name("gdb-remote");
+-  static std::once_flag g_once_flag;
++  LLVM_DEFINE_ONCE_FLAG(g_once_flag);
+ 
+-  std::call_once(g_once_flag, []() {
++  llvm::call_once(g_once_flag, []() {
+     Log::Callbacks log_callbacks = {DisableLog, EnableLog, ListLogCategories};
+ 
+     Log::RegisterLogChannel(g_name, log_callbacks);
diff --git a/lldb-netbsd/patches/patch-source_Plugins_Process_mach-core_ProcessMachCore.cpp b/lldb-netbsd/patches/patch-source_Plugins_Process_mach-core_ProcessMachCore.cpp
new file mode 100644
index 0000000000..d850547c66
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Plugins_Process_mach-core_ProcessMachCore.cpp
@@ -0,0 +1,24 @@
+$NetBSD$
+
+--- source/Plugins/Process/mach-core/ProcessMachCore.cpp.orig	2016-12-17 10:30:06.000000000 +0000
++++ source/Plugins/Process/mach-core/ProcessMachCore.cpp
+@@ -14,6 +14,7 @@
+ 
+ // C++ Includes
+ #include "llvm/Support/MathExtras.h"
++#include "llvm/Support/Threading.h"
+ #include <mutex>
+ 
+ // Other libraries and framework includes
+@@ -579,9 +580,9 @@ Error ProcessMachCore::GetMemoryRegionIn
+ void ProcessMachCore::Clear() { m_thread_list.Clear(); }
+ 
+ void ProcessMachCore::Initialize() {
+-  static std::once_flag g_once_flag;
++  LLVM_DEFINE_ONCE_FLAG(g_once_flag);
+ 
+-  std::call_once(g_once_flag, []() {
++  llvm::call_once(g_once_flag, []() {
+     PluginManager::RegisterPlugin(GetPluginNameStatic(),
+                                   GetPluginDescriptionStatic(), CreateInstance);
+   });
diff --git a/lldb-netbsd/patches/patch-source_Plugins_Process_minidump_ProcessMinidump.cpp b/lldb-netbsd/patches/patch-source_Plugins_Process_minidump_ProcessMinidump.cpp
new file mode 100644
index 0000000000..136a4026fb
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Plugins_Process_minidump_ProcessMinidump.cpp
@@ -0,0 +1,25 @@
+$NetBSD$
+
+--- source/Plugins/Process/minidump/ProcessMinidump.cpp.orig	2016-12-17 10:29:54.000000000 +0000
++++ source/Plugins/Process/minidump/ProcessMinidump.cpp
+@@ -25,6 +25,8 @@
+ #include "lldb/Target/UnixSignals.h"
+ #include "lldb/Utility/LLDBAssert.h"
+ 
++#include "llvm/Support/Threading.h"
++
+ // C includes
+ // C++ includes
+ 
+@@ -92,9 +94,9 @@ ProcessMinidump::~ProcessMinidump() {
+ }
+ 
+ void ProcessMinidump::Initialize() {
+-  static std::once_flag g_once_flag;
++  LLVM_DEFINE_ONCE_FLAG(g_once_flag);
+ 
+-  std::call_once(g_once_flag, []() {
++  llvm::call_once(g_once_flag, []() {
+     PluginManager::RegisterPlugin(GetPluginNameStatic(),
+                                   GetPluginDescriptionStatic(),
+                                   ProcessMinidump::CreateInstance);
diff --git a/lldb-netbsd/patches/patch-source_Plugins_ScriptInterpreter_None_ScriptInterpreterNone.cpp b/lldb-netbsd/patches/patch-source_Plugins_ScriptInterpreter_None_ScriptInterpreterNone.cpp
new file mode 100644
index 0000000000..eec3444614
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Plugins_ScriptInterpreter_None_ScriptInterpreterNone.cpp
@@ -0,0 +1,25 @@
+$NetBSD$
+
+--- source/Plugins/ScriptInterpreter/None/ScriptInterpreterNone.cpp.orig	2017-02-04 18:35:34.000000000 +0000
++++ source/Plugins/ScriptInterpreter/None/ScriptInterpreterNone.cpp
+@@ -15,6 +15,8 @@
+ #include "lldb/Interpreter/CommandInterpreter.h"
+ #include "lldb/Utility/Stream.h"
+ 
++#include "llvm/Support/Threading.h"
++
+ #include <mutex>
+ 
+ using namespace lldb;
+@@ -39,9 +41,9 @@ void ScriptInterpreterNone::ExecuteInter
+ }
+ 
+ void ScriptInterpreterNone::Initialize() {
+-  static std::once_flag g_once_flag;
++  LLVM_DEFINE_ONCE_FLAG(g_once_flag);
+ 
+-  std::call_once(g_once_flag, []() {
++  llvm::call_once(g_once_flag, []() {
+     PluginManager::RegisterPlugin(GetPluginNameStatic(),
+                                   GetPluginDescriptionStatic(),
+                                   lldb::eScriptLanguageNone, CreateInstance);
diff --git a/lldb-netbsd/patches/patch-source_Plugins_ScriptInterpreter_Python_ScriptInterpreterPython.cpp b/lldb-netbsd/patches/patch-source_Plugins_ScriptInterpreter_Python_ScriptInterpreterPython.cpp
new file mode 100644
index 0000000000..34ef8bb9d6
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Plugins_ScriptInterpreter_Python_ScriptInterpreterPython.cpp
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp.orig	2017-01-31 17:20:57.000000000 +0000
++++ source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
+@@ -338,9 +338,9 @@ ScriptInterpreterPython::~ScriptInterpre
+ }
+ 
+ void ScriptInterpreterPython::Initialize() {
+-  static std::once_flag g_once_flag;
++  LLVM_DEFINE_ONCE_FLAG(g_once_flag);
+ 
+-  std::call_once(g_once_flag, []() {
++  llvm::call_once(g_once_flag, []() {
+     PluginManager::RegisterPlugin(GetPluginNameStatic(),
+                                   GetPluginDescriptionStatic(),
+                                   lldb::eScriptLanguagePython, CreateInstance);
diff --git a/lldb-netbsd/patches/patch-source_Plugins_SymbolFile_DWARF_SymbolFileDWARF.cpp b/lldb-netbsd/patches/patch-source_Plugins_SymbolFile_DWARF_SymbolFileDWARF.cpp
new file mode 100644
index 0000000000..27050162d5
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Plugins_SymbolFile_DWARF_SymbolFileDWARF.cpp
@@ -0,0 +1,26 @@
+$NetBSD$
+
+--- source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp.orig	2017-02-04 18:35:34.000000000 +0000
++++ source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
+@@ -11,6 +11,7 @@
+ 
+ // Other libraries and framework includes
+ #include "llvm/Support/Casting.h"
++#include "llvm/Support/Threading.h"
+ 
+ #include "lldb/Core/ArchSpec.h"
+ #include "lldb/Core/Module.h"
+@@ -553,8 +554,11 @@ uint32_t SymbolFileDWARF::CalculateAbili
+ const DWARFDataExtractor &
+ SymbolFileDWARF::GetCachedSectionData(lldb::SectionType sect_type,
+                                       DWARFDataSegment &data_segment) {
+-  std::call_once(data_segment.m_flag, &SymbolFileDWARF::LoadSectionData, this,
+-                 sect_type, std::ref(data_segment.m_data));
++  llvm::call_once(data_segment.m_flag,
++    [this, sect_type, &data_segment] {
++      this->LoadSectionData(sect_type, std::ref(data_segment.m_data));
++    }
++  );
+   return data_segment.m_data;
+ }
+ 
diff --git a/lldb-netbsd/patches/patch-source_Plugins_SymbolFile_DWARF_SymbolFileDWARF.h b/lldb-netbsd/patches/patch-source_Plugins_SymbolFile_DWARF_SymbolFileDWARF.h
new file mode 100644
index 0000000000..7ef05d7400
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Plugins_SymbolFile_DWARF_SymbolFileDWARF.h
@@ -0,0 +1,21 @@
+$NetBSD$
+
+--- source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h.orig	2017-02-04 18:35:34.000000000 +0000
++++ source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
+@@ -21,6 +21,7 @@
+ 
+ // Other libraries and framework includes
+ #include "llvm/ADT/DenseMap.h"
++#include "llvm/Support/Threading.h"
+ 
+ #include "lldb/Core/Flags.h"
+ #include "lldb/Core/RangeMap.h"
+@@ -305,7 +306,7 @@ protected:
+   typedef llvm::DenseMap<lldb::opaque_compiler_type_t, DIERef> ClangTypeToDIE;
+ 
+   struct DWARFDataSegment {
+-    std::once_flag m_flag;
++    llvm::once_flag m_flag;
+     lldb_private::DWARFDataExtractor m_data;
+   };
+ 
diff --git a/lldb-netbsd/patches/patch-source_Symbol_ClangASTContext.cpp b/lldb-netbsd/patches/patch-source_Symbol_ClangASTContext.cpp
new file mode 100644
index 0000000000..9c5b853218
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Symbol_ClangASTContext.cpp
@@ -0,0 +1,43 @@
+$NetBSD$
+
+--- source/Symbol/ClangASTContext.cpp.orig	2017-02-04 18:35:35.000000000 +0000
++++ source/Symbol/ClangASTContext.cpp
+@@ -14,7 +14,7 @@
+ 
+ // C Includes
+ // C++ Includes
+-#include <mutex> // std::once
++#include <mutex>
+ #include <string>
+ #include <vector>
+ 
+@@ -65,6 +65,7 @@
+ #endif
+ 
+ #include "llvm/Support/Signals.h"
++#include "llvm/Support/Threading.h"
+ 
+ #include "Plugins/ExpressionParser/Clang/ClangFunctionCaller.h"
+ #include "Plugins/ExpressionParser/Clang/ClangUserExpression.h"
+@@ -127,8 +128,8 @@ typedef lldb_private::ThreadSafeDenseMap
+ 
+ static ClangASTMap &GetASTMap() {
+   static ClangASTMap *g_map_ptr = nullptr;
+-  static std::once_flag g_once_flag;
+-  std::call_once(g_once_flag, []() {
++  LLVM_DEFINE_ONCE_FLAG(g_once_flag);
++  llvm::call_once(g_once_flag, []() {
+     g_map_ptr = new ClangASTMap(); // leaked on purpose to avoid spins
+   });
+   return *g_map_ptr;
+@@ -954,8 +955,8 @@ ClangASTContext::GetBasicTypeEnumeration
+   if (name) {
+     typedef UniqueCStringMap<lldb::BasicType> TypeNameToBasicTypeMap;
+     static TypeNameToBasicTypeMap g_type_map;
+-    static std::once_flag g_once_flag;
+-    std::call_once(g_once_flag, []() {
++    LLVM_DEFINE_ONCE_FLAG(g_once_flag);
++    llvm::call_once(g_once_flag, []() {
+       // "void"
+       g_type_map.Append(ConstString("void").GetStringRef(), eBasicTypeVoid);
+ 
diff --git a/lldb-netbsd/patches/patch-source_Symbol_GoASTContext.cpp b/lldb-netbsd/patches/patch-source_Symbol_GoASTContext.cpp
new file mode 100644
index 0000000000..8dd0486a5e
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Symbol_GoASTContext.cpp
@@ -0,0 +1,24 @@
+$NetBSD$
+
+--- source/Symbol/GoASTContext.cpp.orig	2016-12-17 10:30:17.000000000 +0000
++++ source/Symbol/GoASTContext.cpp
+@@ -25,6 +25,8 @@
+ #include "lldb/Target/ExecutionContext.h"
+ #include "lldb/Target/Target.h"
+ 
++#include "llvm/Support/Threading.h"
++
+ #include "Plugins/ExpressionParser/Go/GoUserExpression.h"
+ #include "Plugins/SymbolFile/DWARF/DWARFASTParserGo.h"
+ 
+@@ -593,8 +595,8 @@ GoASTContext::GetBasicTypeEnumeration(ll
+   if (name) {
+     typedef UniqueCStringMap<lldb::BasicType> TypeNameToBasicTypeMap;
+     static TypeNameToBasicTypeMap g_type_map;
+-    static std::once_flag g_once_flag;
+-    std::call_once(g_once_flag, []() {
++    LLVM_DEFINE_ONCE_FLAG(g_once_flag);
++    llvm::call_once(g_once_flag, []() {
+       // "void"
+       g_type_map.Append(ConstString("void").GetStringRef(), eBasicTypeVoid);
+       // "int"
diff --git a/lldb-netbsd/patches/patch-source_Target_Language.cpp b/lldb-netbsd/patches/patch-source_Target_Language.cpp
new file mode 100644
index 0000000000..d7b4c5c14d
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Target_Language.cpp
@@ -0,0 +1,37 @@
+$NetBSD$
+
+--- source/Target/Language.cpp.orig	2017-02-04 18:35:35.000000000 +0000
++++ source/Target/Language.cpp
+@@ -20,6 +20,8 @@
+ #include "lldb/Target/Target.h"
+ #include "lldb/Utility/Stream.h"
+ 
++#include "llvm/Support/Threading.h"
++
+ using namespace lldb;
+ using namespace lldb_private;
+ using namespace lldb_private::formatters;
+@@ -29,9 +31,9 @@ typedef std::map<lldb::LanguageType, Lan
+ 
+ static LanguagesMap &GetLanguagesMap() {
+   static LanguagesMap *g_map = nullptr;
+-  static std::once_flag g_initialize;
++  LLVM_DEFINE_ONCE_FLAG(g_initialize);
+ 
+-  std::call_once(g_initialize, [] {
++  llvm::call_once(g_initialize, [] {
+     g_map = new LanguagesMap(); // NOTE: INTENTIONAL LEAK due to global
+                                 // destructor chain
+   });
+@@ -40,9 +42,9 @@ static LanguagesMap &GetLanguagesMap() {
+ }
+ static std::mutex &GetLanguagesMutex() {
+   static std::mutex *g_mutex = nullptr;
+-  static std::once_flag g_initialize;
++  LLVM_DEFINE_ONCE_FLAG(g_initialize);
+ 
+-  std::call_once(g_initialize, [] {
++  llvm::call_once(g_initialize, [] {
+     g_mutex = new std::mutex(); // NOTE: INTENTIONAL LEAK due to global
+                                 // destructor chain
+   });
diff --git a/lldb-netbsd/patches/patch-source_Utility_ConstString.cpp b/lldb-netbsd/patches/patch-source_Utility_ConstString.cpp
new file mode 100644
index 0000000000..2d01bc4528
--- /dev/null
+++ b/lldb-netbsd/patches/patch-source_Utility_ConstString.cpp
@@ -0,0 +1,25 @@
+$NetBSD$
+
+--- source/Utility/ConstString.cpp.orig	2017-02-04 18:35:35.000000000 +0000
++++ source/Utility/ConstString.cpp
+@@ -20,6 +20,7 @@
+ #include "llvm/Support/RWMutex.h"
+ 
+ // Project includes
++#include "llvm/Support/Threading.h"
+ #include "lldb/Utility/Stream.h"
+ 
+ using namespace lldb_private;
+@@ -191,10 +192,10 @@ protected:
+ // touch ConstStrings is difficult.  So we leak the pool instead.
+ //----------------------------------------------------------------------
+ static Pool &StringPool() {
+-  static std::once_flag g_pool_initialization_flag;
++  LLVM_DEFINE_ONCE_FLAG(g_pool_initialization_flag);
+   static Pool *g_string_pool = nullptr;
+ 
+-  std::call_once(g_pool_initialization_flag,
++  llvm::call_once(g_pool_initialization_flag,
+                  []() { g_string_pool = new Pool(); });
+ 
+   return *g_string_pool;
diff --git a/lldb-netbsd/patches/patch-tools_debugserver_source_MacOSX_DarwinLog_DarwinLogCollector.cpp b/lldb-netbsd/patches/patch-tools_debugserver_source_MacOSX_DarwinLog_DarwinLogCollector.cpp
new file mode 100644
index 0000000000..c0b0930d22
--- /dev/null
+++ b/lldb-netbsd/patches/patch-tools_debugserver_source_MacOSX_DarwinLog_DarwinLogCollector.cpp
@@ -0,0 +1,17 @@
+$NetBSD$
+
+--- tools/debugserver/source/MacOSX/DarwinLog/DarwinLogCollector.cpp.orig	2017-01-31 17:20:57.000000000 +0000
++++ tools/debugserver/source/MacOSX/DarwinLog/DarwinLogCollector.cpp
+@@ -46,10 +46,10 @@ static os_activity_stream_set_event_hand
+     s_os_activity_stream_set_event_handler;
+ 
+ bool LookupSPICalls() {
+-  static std::once_flag s_once_flag;
++  LLVM_DEFINE_ONCE_FLAG(s_once_flag);
+   static bool s_has_spi;
+ 
+-  std::call_once(s_once_flag, [] {
++  llvm::call_once(s_once_flag, [] {
+     dlopen ("/System/Library/PrivateFrameworks/LoggingSupport.framework/LoggingSupport", RTLD_NOW);
+     s_os_activity_stream_for_pid = (os_activity_stream_for_pid_t)dlsym(
+         RTLD_DEFAULT, "os_activity_stream_for_pid");


Home | Main Index | Thread Index | Old Index