This is a know issue with that old GCC v4.8. Perhaps we should add some code checking for the GCC version macros in the complex workaround implementation file to skip offending lines (or everything) ?
On Sun, 16 May 2021 at 18:41, Junchao Zhang <[email protected]> wrote: > 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 <[email protected]> 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 <[email protected]> >> wrote: >> > >> > > Nope. I will use your fix. >> > > >> > > Thanks, >> > > >> > > Matt >> > > >> > > On Thu, May 13, 2021 at 7:55 PM Matthew Knepley <[email protected]> >> 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 <[email protected]> >> 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/> >> > > >> > >> >> -- Lisandro Dalcin ============ Senior Research Scientist Extreme Computing Research Center (ECRC) King Abdullah University of Science and Technology (KAUST) http://ecrc.kaust.edu.sa/
