I added protection for MPI_Exscan in matnest.c and my code but I can not push the MPI.py file:
~/Codes/petsc-dev/config/BuildSystem>hg push pushing to http://petsc.cs.iit.edu/petsc/BuildSystem searching for changes 1 changesets found remote: ssl required Mark On Jul 28, 2011, at 4:40 PM, Barry Smith wrote: > > On Jul 28, 2011, at 3:37 PM, Mark F. Adams wrote: > >> I could not fine PETSC_HAVE_MPI_EXSCAN in the tags file. >> >> Am I missing something? > > Why would it ever be in the tags file until someone uses it? Like I said > below you need to use it (where needed) and make sure it gets defined by > adding code to MPI.py > > Barry > >> >> Mark >> >> On Jul 28, 2011, at 3:31 PM, Barry Smith wrote: >> >>> >>> Ideally code like >>> >>> #if defined(PETSC_HAVE_MPI_EXSCAN) >>> cool C code that uses MPI_EXSCAN >>> #else >>> less cool C code that uses something else in MPI that is in MPI 1 >>> #endif >>> >>> less ideal but ok code >>> >>> #if defined(PETSC_HAVE_MPI_EXSCAN) >>> cool C code that uses MPI_EXSCAN >>> #else >>> SETERRQ(..., "Sorry but this code requires MPI_EXSCAN that doesn't exist >>> on your machine's version of MPI, install a MPI2 with PETSc to get this >>> functionality") >>> #endif >>> >>> >>> Then to make sure PETSC_HAVE_MPI_EXSCAN gets defined when it can add a >>> test for MPI_Exscan() to bottom of >>> config/BuildSystem/config/packages/MPI.py with the other tests for MPI to >>> functions >>> >>> PETSc only requires MPI 1.1 support so any 2.0 or later stuff used needs >>> this kind of protection. >>> >>> Barry >>> >>> >>> On Jul 28, 2011, at 2:24 PM, Mark F. Adams wrote: >>> >>>> Dumb question: How do you protect it? >>>> Mark >>>> >>>> On Jul 28, 2011, at 3:05 PM, Barry Smith wrote: >>>> >>>>> >>>>> On Jul 28, 2011, at 11:55 AM, Jose E. Roman wrote: >>>>> >>>>>> We are getting an undefined reference `MPI_Exscan'. This function is >>>>>> used in src/mat/impls/nest/matnest.c. >>>>>> If I am not wrong, MPI_Exscan was introduced in MPI-2 but was not >>>>>> available in the previous standard. Apparently, the machine where we are >>>>>> compiling is very old and has MPI-1 only. >>>>>> >>>>>> I guess there should be a PETSC_HAVE_MPI_EXSCAN test in configure. >>>>> >>>>> Correct, whoever used that MPI 2 function in PETSc is obligated to >>>>> protect it. >>>>> >>>>> Barry >>>>> >>>>> >>>>>> >>>>>> Jose >>>>>> >>>>> >>>>> >>>> >>> >>> >> > >
