fortran only compile f08 buffer_detach once
Since there is no profiling version of the f08 buffer_detach function (or, more specifically, the Fortran compile does the name mangling of MPI and PMPI to the back-end C function for us), ensure that it is only compiled once. Also, per Gilles' observation, the f08-related #pragmas are no longer relevant.
Этот коммит содержится в:
родитель
eb582b8276
Коммит
e28f016793
@ -29,7 +29,6 @@
|
|||||||
#pragma weak pmpi_buffer_detach__ = ompi_buffer_detach_f
|
#pragma weak pmpi_buffer_detach__ = ompi_buffer_detach_f
|
||||||
|
|
||||||
#pragma weak PMPI_Buffer_detach_f = ompi_buffer_detach_f
|
#pragma weak PMPI_Buffer_detach_f = ompi_buffer_detach_f
|
||||||
#pragma weak PMPI_Buffer_detach_f08 = ompi_buffer_detach_f
|
|
||||||
#elif OMPI_PROFILE_LAYER
|
#elif OMPI_PROFILE_LAYER
|
||||||
OMPI_GENERATE_F77_BINDINGS (PMPI_BUFFER_DETACH,
|
OMPI_GENERATE_F77_BINDINGS (PMPI_BUFFER_DETACH,
|
||||||
pmpi_buffer_detach,
|
pmpi_buffer_detach,
|
||||||
@ -47,7 +46,6 @@ OMPI_GENERATE_F77_BINDINGS (PMPI_BUFFER_DETACH,
|
|||||||
#pragma weak mpi_buffer_detach__ = ompi_buffer_detach_f
|
#pragma weak mpi_buffer_detach__ = ompi_buffer_detach_f
|
||||||
|
|
||||||
#pragma weak MPI_Buffer_detach_f = ompi_buffer_detach_f
|
#pragma weak MPI_Buffer_detach_f = ompi_buffer_detach_f
|
||||||
#pragma weak MPI_Buffer_detach_f08 = ompi_buffer_detach_f
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ! OPAL_HAVE_WEAK_SYMBOLS && ! OMPI_PROFILE_LAYER
|
#if ! OPAL_HAVE_WEAK_SYMBOLS && ! OMPI_PROFILE_LAYER
|
||||||
@ -92,7 +90,12 @@ void ompi_buffer_detach_f(char *buffer, MPI_Fint *size, MPI_Fint *ierr)
|
|||||||
* Per above, this is the mpi_f08 module implementation of
|
* Per above, this is the mpi_f08 module implementation of
|
||||||
* MPI_BUFFER_DETACH. It handles the buffer arugment just like the C
|
* MPI_BUFFER_DETACH. It handles the buffer arugment just like the C
|
||||||
* binding.
|
* binding.
|
||||||
|
*
|
||||||
|
* Note that we only need to build this function once -- not for both
|
||||||
|
* profiling and non-profiling. So protect it with an appropriate
|
||||||
|
* #if.
|
||||||
*/
|
*/
|
||||||
|
#if !OMPI_PROFILE_LAYER
|
||||||
void ompi_buffer_detach_f08(char *buffer, MPI_Fint *size, MPI_Fint *ierr)
|
void ompi_buffer_detach_f08(char *buffer, MPI_Fint *size, MPI_Fint *ierr)
|
||||||
{
|
{
|
||||||
int c_ierr;
|
int c_ierr;
|
||||||
@ -107,3 +110,4 @@ void ompi_buffer_detach_f08(char *buffer, MPI_Fint *size, MPI_Fint *ierr)
|
|||||||
OMPI_SINGLE_INT_2_FINT(size);
|
OMPI_SINGLE_INT_2_FINT(size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif // !OMPI_PROFILE_LAYER
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user