<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, May 3, 2019 at 8:02 PM Balay, Satish <<a href="mailto:balay@mcs.anl.gov">balay@mcs.anl.gov</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">On Fri, 3 May 2019, Fande Kong via petsc-users wrote:<br>
<br>
> It looks like mpicxx from openmpi does not handle this correctly.<br>
<br>
Perhaps my earlier messages was not clear. The problem is not with<br>
OpenMPI - but your build of it. Its installed with 'clang' as the C++<br>
compiler - it should be built with 'clang++' as the c++ compiler.<br></blockquote><div><br></div><div>Oh, I see. Thanks.</div><div><br></div><div>Fande,</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
<br>
> I switched to mpich, and it works now.<br>
> <br>
> However there is till some warnings:<br>
> <br>
> *clang-6.0: warning: treating 'c' input as 'c++' when in C++ mode, this<br>
> behavior is deprecated [-Wdeprecated]*<br>
> *         CXX arch-linux2-c-opt-memory/obj/dm/impls/plex/glexg.o*<br>
> *         CXX arch-linux2-c-opt-memory/obj/dm/impls/plex/petscpartmatpart.o*<br>
> *clang-6.0: warning: treating 'c' input as 'c++' when in C++ mode, this<br>
> behavior is dep*<br>
<br>
Yes - because PETSc sources are in C - and you are building with<br>
--with-clanguage=cxx - and this compiler thinks one should not compile<br>
.c sources as c++.<br>
<br>
Satish<br>
<br>
> <br>
> Fande,<br>
> <br>
> <br>
> On Fri, May 3, 2019 at 7:29 PM Balay, Satish <<a href="mailto:balay@mcs.anl.gov" target="_blank">balay@mcs.anl.gov</a>> wrote:<br>
> <br>
> > >>>>>>>><br>
> > Executing: mpicxx -show<br>
> ><br>
> >                     stdout: clang<br>
> > -I/Users/kongf/projects/openmpi-2.1.1_installed/include<br>
> > -L/Users/kongf/projects/openmpi-2.1.1_installed/lib -lmpi<br>
> > <<<<<br>
> ><br>
> > Hm - I think this [specifying a C compiler as c++] is the trigger of this<br>
> > problem.<br>
> ><br>
> > configure checks if the c++ compiler supports complex. This test was<br>
> > successful [as it was done with .cxx file - and presumably clang switches<br>
> > to c++ mocd for a .cxx file.<br>
> ><br>
> > However PETSc sources a .c - so its likely compiling PETSc as C -  so<br>
> > things are now inconsistant - and broken..<br>
> ><br>
> > Note:<br>
> > PETSC_HAVE_COMPLEX => compilers support complex - so define a complex<br>
> > datatype<br>
> > PETSC_USE_COMPLEX => build PETSc with PetscScalar=complex<br>
> ><br>
> ><br>
> > Satish<br>
> ><br>
> > On Fri, 3 May 2019, Fande Kong via petsc-users wrote:<br>
> ><br>
> > > Hi All,<br>
> > ><br>
> > > Comping PETSc with ``--with-clanguage=c"  works fine. But I could not<br>
> > > compile PETSc with "--with-clanguage=c++" since the flag<br>
> > > "PETSC_HAVE_COMPLEX" was wrongly set on by this option.<br>
> > ><br>
> > > */Users/kongf/projects/petsc/src/sys/objects/pinit.c:913:21: error:<br>
> > > expected parameter declarator*<br>
> > > *    PetscComplex ic(0.0,1.0);*<br>
> > > *                    ^*<br>
> > > */Users/kongf/projects/petsc/src/sys/objects/pinit.c:913:21: error:<br>
> > > expected ')'*<br>
> > > */Users/kongf/projects/petsc/src/sys/objects/pinit.c:913:20: note: to<br>
> > match<br>
> > > this '('*<br>
> > > *    PetscComplex ic(0.0,1.0);*<br>
> > > *                   ^*<br>
> > > */Users/kongf/projects/petsc/src/sys/objects/pinit.c:914:13: error:<br>
> > > assigning to 'PetscComplex' (aka '_Complex double') from incompatible<br>
> > type<br>
> > > 'PetscComplex ()' (aka '_Complex double ()')*<br>
> > > *    PETSC_i = ic;*<br>
> > > *            ^ ~~*<br>
> > > *3 errors generated.*<br>
> > > *make[2]: *** [arch-linux2-c-opt-memory/obj/sys/objects/pinit.o] Error 1*<br>
> > > *make[2]: *** Waiting for unfinished jobs....*<br>
> > > *make[2]: Leaving directory `/Users/kongf/projects/petsc'*<br>
> > > *make[1]: *** [gnumake] Error 2*<br>
> > > *make[1]: Leaving directory `/Users/kongf/projects/petsc'*<br>
> > > ***************************ERROR**************************************<br>
> > > *  Error during compile, check<br>
> > > arch-linux2-c-opt-memory/lib/petsc/conf/make.log*<br>
> > > *  Send it and arch-linux2-c-opt-memory/lib/petsc/conf/configure.log to<br>
> > > <a href="mailto:petsc-maint@mcs.anl.gov" target="_blank">petsc-maint@mcs.anl.gov</a> <<a href="mailto:petsc-maint@mcs.anl.gov" target="_blank">petsc-maint@mcs.anl.gov</a>>*<br>
> > > **********************************************************************<br>
> > ><br>
> > > The make and configure logs are attached.<br>
> > ><br>
> > > Fande,<br>
> > ><br>
> ><br>
> ><br>
> <br>
<br>
</blockquote></div></div>