Open mmcgurn opened 2 years ago
That looks like a C++ error. Do we need PNETCDF? I thought it is only for ExodusII support.
Thanks! I figured out part of the c++/fortran issue and updated the wiki. We need to pass in -gcc-name=/usr/tce/packages/gcc/gcc-10.2.1/bin/gcc -gxx-name=/usr/tce/packages/gcc/gcc-10.2.1/bin/g++
for the c, cpp, and fortran flags. However, Now I'm running into issues with Ctegen
`Error running make on Ctetgen: Could not execute "['/usr/bin/gmake PETSC_DIR=/g/g15/mcgurn4/intelBuild/petsc clean lib PCC_FLAGS="-O0 -fPIC "']": /usr/bin/rm -f libctetgen.a ctetgen.o predicates.o mpicc -O0 -fPIC -I/g/g15/mcgurn4/intelBuild/petsc/include -I/g/g15/mcgurn4/intelBuild/petsc/arch-ablate-opt-intel/include -c -o ctetgen.o ctetgen.cIn file included from ctetgen.h(4), from ctetgen.c(1): /g/g15/mcgurn4/intelBuild/petsc/include/petscsys.h(2555): error: expected a ")" static inline PetscErrorCode PetscSegBufferGetInts(PetscSegBuffer seg,size_t count,PetscInt PETSC_RESTRICT slot) {return PetscSegBufferGet(seg,count,(void**)slot);} ^
In file included from ctetgen.h(4), from ctetgen.c(1): /g/g15/mcgurn4/intelBuild/petsc/include/petscsys.h(2555): error: identifier "slot" is undefined static inline PetscErrorCode PetscSegBufferGetInts(PetscSegBuffer seg,size_t count,PetscInt PETSC_RESTRICT slot) {return PetscSegBufferGet(seg,count,(void**)slot);} ^
ctetgen.c(543): warning #1028: unknown warning specifier`
I'll keep digging into this.
configure.log
Can you execute
mpicc -O0 -fPIC -I/g/g15/mcgurn4/intelBuild/petsc/include -I/g/g15/mcgurn4/intelBuild/petsc/arch-ablate-opt-intel/include -E -o ctetgen.pre ctetgen.c
and look at ctetgen.pre
to see why that static inline is a problem? I can't imagine has that is screwed up here. These machines are so frustrating.
I ran ` in the
/g/g15/mcgurn4/intelBuild/petsc/arch-ablate-opt-intel/externalpackages/git.ctetgen` directory. There was no output to the screen and this is the resulting
ctetgen.pre.txt
It looks like the error is on line 18019
static inline PetscErrorCode PetscSegBufferGetInts(PetscSegBuffer seg,size_t count,PetscInt *restrict *slot) {return PetscSegBufferGet(seg,count,(void**)slot);}
with the *restrict
Okay, this is in petscmacros.h:24-28. It appears that "restrict" is supposed to be a C standard item, but this compiler has a problem. Do you know what compiler is in mpicc?
I'm running into problems compiling with intel compliers and open-cascade. It looks like it is related to the gcc version that the intel complier refers to. I try passing in the latest in the example outlined https://github.com/UBCHREST/ablate/wiki/Build-~-LLNL-Quartz . I now get an error with the PNETCFD make and have attached the configure.log. @knepley or @dsalac have you see this before?