<div dir="ltr"><div dir="ltr"><div>It looks like mpicxx from openmpi does not handle this correctly. I switched to mpich, and it works now.</div><div><br></div><div>However there is till some warnings:</div><div><br></div><div><div><i>clang-6.0: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]</i></div><div><i>         CXX arch-linux2-c-opt-memory/obj/dm/impls/plex/glexg.o</i></div><div><i>         CXX arch-linux2-c-opt-memory/obj/dm/impls/plex/petscpartmatpart.o</i></div><div><i>clang-6.0: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is dep</i></div></div><div><br></div><div>Fande,</div><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, May 3, 2019 at 7:29 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">>>>>>>>><br>
Executing: mpicxx -show                                                                                                                                                    stdout: clang -I/Users/kongf/projects/openmpi-2.1.1_installed/include -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 problem.<br>
<br>
configure checks if the c++ compiler supports complex. This test was successful [as it was done with .cxx file - and presumably clang switches to c++ mocd for a .cxx file.<br>
<br>
However PETSc sources a .c - so its likely compiling PETSc as C -  so things are now inconsistant - and broken..<br>
<br>
Note:<br>
PETSC_HAVE_COMPLEX => compilers support complex - so define a complex 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 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 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>
</blockquote></div></div></div>