It looks fine: diff --git a/source/Host/windows/HostInfoWindows.cpp b/source/Host/windows/HostInfoWindows.cpp index a965ec0ea..5b38e6021 100644 --- a/source/Host/windows/HostInfoWindows.cpp +++ b/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::string &s) { } FileSpec HostInfoWindows::GetProgramFileSpec() { - static std::once_flag g_once_flag; - std::call_once(g_once_flag, []() { + static llvm::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; and this looks suspicious // std::call_once from libc++ is used on all Unix platforms. Other // implementations like libstdc++ are known to have problems on NetBSD, // OpenBSD and PowerPC. #if defined(LLVM_ON_UNIX) && (defined(_LIBCPP_VERSION) || \ !(defined(__NetBSD__) || defined(__OpenBSD__) || defined(__ppc__))) #define LLVM_THREADING_USE_STD_CALL_ONCE 1 #else #define LLVM_THREADING_USE_STD_CALL_ONCE 0 #endif This check defined(LLVM_ON_UNIX) looks wrong it assumes that Windows needs call_once walkaround. On 08.02.2017 22:00, Zachary Turner wrote: > Why doesn't llvm::call_once() just use std::call_once on Windows? > > On Wed, Feb 8, 2017 at 12:40 PM Hans Wennborg <h...@chromium.org > <mailto:h...@chromium.org>> wrote: > > The Win64 lldb build seems broken (at 294367). > > I ran into this when trying to build the weekly snapshot > (http://www.llvm.org/builds/) which includes LLDB these days. > > I suspect this might be related to Kamil's changes a few days ago. I > see Pavel committed something to fix Darwin afterwards. > > Zach, do you know what's going on here? Do we have any buildbot > coverage for this? > > Creating library lib\liblldb.lib and object lib\liblldb.exp > lldbHost.lib(HostInfoWindows.cpp.obj) : error LNK2019: unresolved > external symbo > l "void __cdecl llvm::sys::_mm_mfence(void)" > (?_mm_mfence@sys@llvm@@YAXXZ) refer > enced in function "void __cdecl llvm::call_once<class > <lambda_e212a11f7f891e804e > 713e15728a6adc> >(struct llvm::once_flag &,class > <lambda_e212a11f7f891e804e713e1 > 5728a6adc> &&)" > (??$call_once@V<lambda_e212a11f7f891e804e713e15728a6adc>@@$$V@ll > > vm@@YAXAEAUonce_flag@0@$$QEAV<lambda_e212a11f7f891e804e713e15728a6adc>@@@Z) > bin\liblldb.dll : fatal error LNK1120: 1 unresolved externals > LINK failed. with 1120 >
signature.asc
Description: OpenPGP digital signature
_______________________________________________ lldb-dev mailing list lldb-dev@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev