[petsc-dev] Problem with the reorganization of complex with clang

Junchao Zhang junchao.zhang at gmail.com
Sun May 16 10:41:31 CDT 2021


I checked and found PetscComplex was correctly defined to std::complex, and
clang-6.0 was also fine to use GNU C++ library.  The problem was the
gcc-4.8.5 C++ library clang picked up was a bit old, which conformed to
C++11. However clang-6.0's default uses C++14, which changed the rules of
*constexpr.*
Workarounds include:

   - define PETSC_SKIP_CXX_COMPLEX_FIX  in the offending *.cxx file.
   - add CXXOPTFLAGS=-std=c++11
   - update clang-6.o or gcc-4.8.5 (of 2015) on that machine.

--Junchao Zhang


On Fri, May 14, 2021 at 10:42 AM Satish Balay <balay at mcs.anl.gov> wrote:

> You can login to: isdp001.cels.anl.gov - using your MCS account
> credentials [and then setup ~/.ssh/authorized_keys]
>
> Satish
>
> On Fri, 14 May 2021, Junchao Zhang wrote:
>
> > Satish, how to access this machine? I want to know why complex is screwed
> > up.
> >
> > --Junchao Zhang
> >
> >
> > On Thu, May 13, 2021 at 7:08 PM Matthew Knepley <knepley at gmail.com>
> wrote:
> >
> > > Nope. I will use your fix.
> > >
> > >   Thanks,
> > >
> > >      Matt
> > >
> > > On Thu, May 13, 2021 at 7:55 PM Matthew Knepley <knepley at gmail.com>
> wrote:
> > >
> > >> I am going to try just including petscsys.h and see if it works.
> > >>
> > >>   Thanks,
> > >>
> > >>      Matt
> > >>
> > >> On Thu, May 13, 2021 at 6:23 PM Satish Balay <balay at mcs.anl.gov>
> wrote:
> > >>
> > >>> This gets the build going...
> > >>>
> > >>> diff --git a/src/sys/dll/cxx/demangle.cxx
> b/src/sys/dll/cxx/demangle.cxx
> > >>> index 31810ea15f..793a97d285 100644
> > >>> --- a/src/sys/dll/cxx/demangle.cxx
> > >>> +++ b/src/sys/dll/cxx/demangle.cxx
> > >>> @@ -1,3 +1,4 @@
> > >>> +#define PETSC_SKIP_COMPLEX
> > >>>  #include <petsc/private/petscimpl.h>
> > >>>
> > >>>  #ifdef PETSC_HAVE_CXXABI_H
> > >>>
> > >>> Satish
> > >>>
> > >>> On Thu, 13 May 2021, Satish Balay wrote:
> > >>>
> > >>> > >         CXX arch-ci-linux-clang-avx/obj/sys/dll/cxx/demangle.o
> > >>> >
> > >>> > It is built with a c++ compiler - so __cplusplus should be defined.
> > >>> [PETSC_HAVE_CXXABI is not defined]
> > >>> >
> > >>> > Do you need to build this sourcefile file in a clanguage=C build?
> > >>> >
> > >>> > I'm not sure if a c++/complex build  is checked with this compiler.
> > >>> >
> > >>> > [eventhough its clang build - I see the compiler is using system
> > >>> incldues aka from gcc-4.8.5 - so perhaps some things don't work?]
> > >>> >
> > >>> > One option is to add the following to this sourcefile:
> > >>> >
> > >>> > #define PETSC_SKIP_COMPLEX
> > >>> >
> > >>> > Satish
> > >>> >
> > >>> >
> > >>> > On Thu, 13 May 2021, Matthew Knepley wrote:
> > >>> >
> > >>> > > In this CI run (linux-clang-avg):
> > >>> > >
> > >>> > >   https://gitlab.com/petsc/petsc/-/jobs/1260342204
> > >>> > >
> > >>> > > The compile fails building a C++ file, demangle.cxx. It fails at
> the
> > >>> first
> > >>> > > line,
> > >>> > > including <petsc/private/petscimpl.h>, down in petscsystypes.h.
> It
> > >>> bombs
> > >>> > > during the definition of complex because it looks like the
> compiler
> > >>> is not
> > >>> > > defining __cplusplus, and thus takes the wrong branch. Is this
> what
> > >>> is
> > >>> > > happening?
> > >>> > > I cannot access this machine.
> > >>> > >
> > >>> > >   Thanks,
> > >>> > >
> > >>> > >       Matt
> > >>> > >
> > >>> > >
> > >>> >
> > >>> >
> > >>>
> > >>>
> > >>
> > >> --
> > >> What most experimenters take for granted before they begin their
> > >> experiments is infinitely more interesting than any results to which
> their
> > >> experiments lead.
> > >> -- Norbert Wiener
> > >>
> > >> https://www.cse.buffalo.edu/~knepley/
> > >> <http://www.cse.buffalo.edu/~knepley/>
> > >>
> > >
> > >
> > > --
> > > What most experimenters take for granted before they begin their
> > > experiments is infinitely more interesting than any results to which
> their
> > > experiments lead.
> > > -- Norbert Wiener
> > >
> > > https://www.cse.buffalo.edu/~knepley/
> > > <http://www.cse.buffalo.edu/~knepley/>
> > >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20210516/2446f00f/attachment.html>


More information about the petsc-dev mailing list