[llvm] r271821 - Disable the use of std::call_once on PowerPC due to an apparent bug in

Chandler Carruth via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 6 11:48:34 PDT 2016


I don't know the relevant details, but it is the ppc64be and ppc64le
multistage buildbots that I was looking at. They both failed when I
introduced this code path:

http://lab.llvm.org:8011/builders/clang-ppc64be-linux-multistage/builds/2703
http://lab.llvm.org:8011/builders/clang-ppc64le-linux-multistage/builds/1169

Note that the ppc64be build bot continues to fail in stage 1 even after
this commit:
http://lab.llvm.org:8011/builders/clang-ppc64be-linux-multistage/builds/2707

There is something weird with the host compiler for this build bot that is
causing it to still go down the std::call_once path. I have no idea what. =/

Filed http://llvm.org/PR28024

On Sun, Jun 5, 2016 at 1:36 AM Hal Finkel via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> Hi Chandler,
>
> Can you please file a bug report with the relevant platform details?
>
>  -Hal
>
> ----- Original Message -----
> > From: "Chandler Carruth via llvm-commits" <llvm-commits at lists.llvm.org>
> > To: llvm-commits at lists.llvm.org
> > Sent: Saturday, June 4, 2016 9:46:03 PM
> > Subject: [llvm] r271821 - Disable the use of std::call_once on PowerPC
> due to an apparent bug in
> >
> > Author: chandlerc
> > Date: Sat Jun  4 21:46:01 2016
> > New Revision: 271821
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=271821&view=rev
> > Log:
> > Disable the use of std::call_once on PowerPC due to an apparent bug
> > in
> > libstdc++ (or in compilers, or somewhere, I can't track it down) that
> > causes unittests that use INITIALIZE_PASS to crash.
> >
> > The analysis I've been able to do is that inside libstdc++'s
> > implementation of std::call_once, it uses pthread_once, and when that
> > returns an error code it throws std::system_error which then
> > eventually
> > calls std::terminate.
> >
> > Hopefully some of the folks who work on PPC can try to sort out
> > what's
> > going on here. Until then, they'll have to use the fallback
> > implementation.
> >
> > Modified:
> >     llvm/trunk/include/llvm/Support/Threading.h
> >
> > Modified: llvm/trunk/include/llvm/Support/Threading.h
> > URL:
> >
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/Threading.h?rev=271821&r1=271820&r2=271821&view=diff
> >
> ==============================================================================
> > --- llvm/trunk/include/llvm/Support/Threading.h (original)
> > +++ llvm/trunk/include/llvm/Support/Threading.h Sat Jun  4 21:46:01
> > 2016
> > @@ -23,7 +23,8 @@
> >  // We use std::call_once on all Unix platforms except for NetBSD
> >  with
> >  // libstdc++. That platform has a bug they are working to fix, and
> >  they'll
> >  // remove the NetBSD checks once fixed.
> > -#if defined(LLVM_ON_UNIX) && !(defined(__NetBSD__) &&
> > !defined(_LIBCPP_VERSION))
> > +#if defined(LLVM_ON_UNIX) &&
> >                                                   \
> > +    !(defined(__NetBSD__) && !defined(_LIBCPP_VERSION)) &&
> > !defined(__ppc__)
> >  #define LLVM_THREADING_USE_STD_CALL_ONCE 1
> >  #else
> >  #define LLVM_THREADING_USE_STD_CALL_ONCE 0
> >
> >
> > _______________________________________________
> > llvm-commits mailing list
> > llvm-commits at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
> >
>
> --
> Hal Finkel
> Assistant Computational Scientist
> Leadership Computing Facility
> Argonne National Laboratory
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160606/49476b75/attachment.html>


More information about the llvm-commits mailing list