[LLVMdev] Issue with std::call_once in PPC64 platform
Chris Bieneman
beanz at apple.com
Tue Nov 4 12:46:04 PST 2014
Adding Jiangning Liu to the thread.
Jiangning reported a similar issue on the llvm-commits list on Debian aarch64.
In general it sounds like std::call_once may not really be bug free.
Jiangning, can you please provide your gcc/libstdc++ version?
Thanks,
-Chris
> On Nov 4, 2014, at 9:38 AM, Bill Schmidt <wschmidt at linux.vnet.ibm.com> wrote:
>
> On Tue, 2014-11-04 at 12:17 -0500, Samuel F Antao wrote:
>> Ok, I'll put a patch together to fix this later today. I'll probably
>> do what Reid was suggesting and use what is already in there for
>> Windows.
>
> Hm, better hold off on that. Ulrich Weigand has noted that there is
> invalid code generation occurring around a TLS call. Looks like is is
> probably a PPC back end problem at the moment.
>
> Thanks,
> Bill
>
>>
>> Thanks,
>> Samuel
>>
>> Bill Schmidt <wschmidt at linux.vnet.ibm.com> wrote on 11/04/2014
>> 12:11:08 PM:
>>
>>> From: Bill Schmidt <wschmidt at linux.vnet.ibm.com>
>>> To: Samuel F Antao/Watson/IBM at IBMUS
>>> Cc: azanella at linux.vnet.ibm.com, beanz at apple.com, Hal Finkel
>>> <hfinkel at anl.gov>, LLVM Dev <llvmdev at cs.uiuc.edu>
>>> Date: 11/04/2014 12:11 PM
>>> Subject: Re: Issue with std::call_once in PPC64 platform
>>>
>>> On Tue, 2014-11-04 at 11:59 -0500, Samuel F Antao wrote:
>>>> Hi Bill,
>>>>
>>>> You can find the same issue in the buildbot:
>>>>
>>>> http://lab.llvm.org:8011/builders/clang-ppc64-elf-linux2/builds/
>>> 16444/steps/compile.llvm.stage2/logs/stdio
>>>>
>>>> It is failing for me both in BE (gcc 4.8.2) and LE(4.9.1). I am
>>>> compiling with clang 3.5, but those are the gcc toolchains I am
>> using.
>>>>
>>>> What do you think is the best way to fix this?
>>>
>>> I don't know what the best fix is, but clearly a fix or revert is
>> needed
>>> since the patch is breaking some platforms.
>>>
>>> Thanks,
>>> Bill
>>>
>>>>
>>>> Thanks!
>>>> Samuel
>>>>
>>>> Bill Schmidt <wschmidt at linux.vnet.ibm.com> wrote on 11/04/2014
>>>> 11:45:06 AM:
>>>>
>>>>> From: Bill Schmidt <wschmidt at linux.vnet.ibm.com>
>>>>> To: Samuel F Antao/Watson/IBM at IBMUS
>>>>> Cc: LLVM Dev <llvmdev at cs.uiuc.edu>, beanz at apple.com, Hal Finkel
>>>>> <hfinkel at anl.gov>, azanella at linux.vnet.ibm.com
>>>>> Date: 11/04/2014 11:45 AM
>>>>> Subject: Re: Issue with std::call_once in PPC64 platform
>>>>>
>>>>> Hi Samuel,
>>>>>
>>>>> I haven't encountered this problem. What gcc/libstdc++ are you
>>>> using?
>>>>> BE or LE?
>>>>>
>>>>> Copying Adhemerval in case he has heard of any related issues.
>>>>>
>>>>> Thanks,
>>>>> Bill
>>>>>
>>>>> On Mon, 2014-11-03 at 20:19 -0500, Samuel F Antao wrote:
>>>>>> Hi all,
>>>>>>
>>>>>> I observe that r220932 (Removing the static initializer in
>>>>>> ManagedStatic.cpp by using llvm_call_once to initialize the
>>>>>> ManagedStatic mutex.) is causing tablegen to segfault in PPC
>>>> platforms
>>>>>> during static initialization. The crash happens while calling
>>>>>> std::call_once introduced by this patch in the wrapper used
>> in
>>>>>> getManagedStaticMutex.
>>>>>>
>>>>>> I understand this call is buggy for some platforms (or
>> probably
>>>> some
>>>>>> oldish libstdc++ versions). Is this a known issue? Should we
>> guard
>>>>>> LLVM_DEFINE_ONCE_FLAG definition with platform specific macros
>> to
>>>>>> avoid the crash, at least for the moment?
>>>>>>
>>>>>> Thanks!
>>>>>> Samuel
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
More information about the llvm-dev
mailing list