[lldb-dev] Win64 lldb build broken, llvm::call_once and _mm_mfence

Reid Kleckner via lldb-dev lldb-dev at lists.llvm.org
Wed Feb 8 14:19:29 PST 2017


I think we can. MSVC's std::once_flag default constructor is constexpr now.
It still generates dynamic initialization code if you use it as a static
local, but MSVC defaults to using thread safe static initialization, so
that isn't a problem unless you disable it, which we don't. We disable it
in compiler-rt (/Zc:threadSafeInit-), but that doesn't use this code.

On Wed, Feb 8, 2017 at 1:18 PM, Zachary Turner <zturner at google.com> wrote:

> Is this the right review?  https://reviews.llvm.org/D5922
>
> Being that this was over 2 years ago, I suspect it was when we were
> supporting MSVC2012 and 2013.  Now that we're requiring MSVC2015, is it
> time to reconsider? I don't see any links to an MS Connect issue, so I
> don't know what the original bug was to know if it has been fixed.
>
>
> On Wed, Feb 8, 2017 at 1:03 PM Reid Kleckner <rnk at google.com> wrote:
>
>> It's a sad story. Read the comments and the review threads. It's
>> hilarious.
>>
>> On Wed, Feb 8, 2017 at 1:00 PM, Zachary Turner via lldb-dev <
>> lldb-dev at lists.llvm.org> 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 <hans at 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 at 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 at V<lambda_e212a11f7f891e804e713e15728a6a
>> dc>@@$$V at ll
>> vm@@YAXAEAUonce_flag at 0@$$QEAV<lambda_e212a11f7f891e804e713e15728a6a
>> dc>@@@Z)
>> bin\liblldb.dll : fatal error LNK1120: 1 unresolved externals
>> LINK failed. with 1120
>>
>>
>> _______________________________________________
>> lldb-dev mailing list
>> lldb-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20170208/899dd2a2/attachment.html>


More information about the lldb-dev mailing list