Fix some linker problems with MPI_[Ir|R]educe_scatter_block:
* Ensure the profiling version is linked in * Ensure that PMPI variants are prototyped in mpi.h * Ensure weak symbols are set correctly This commit was SVN r26649.
Этот коммит содержится в:
родитель
2dbe630138
Коммит
dd70f84e3d
@ -2005,7 +2005,11 @@ OMPI_DECLSPEC int PMPI_Reduce_local(void *inbuf, void *inoutbuf, int count,
|
||||
OMPI_DECLSPEC int PMPI_Reduce_scatter(void *sendbuf, void *recvbuf, int *recvcounts,
|
||||
MPI_Datatype datatype, MPI_Op op, MPI_Comm comm);
|
||||
OMPI_DECLSPEC int PMPI_Ireduce_scatter(void *sendbuf, void *recvbuf, int *recvcounts,
|
||||
MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Request *request);
|
||||
MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPI_Reduce_scatter(void *sendbuf, void *recvbuf, int *recvcounts,
|
||||
MPI_Datatype datatype, MPI_Op op, MPI_Comm comm);
|
||||
OMPI_DECLSPEC int PMPI_Ireduce_scatter(void *sendbuf, void *recvbuf, int *recvcounts,
|
||||
MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Request *request);
|
||||
OMPI_DECLSPEC int PMPI_Register_datarep(char *datarep,
|
||||
MPI_Datarep_conversion_function *read_conversion_fn,
|
||||
MPI_Datarep_conversion_function *write_conversion_fn,
|
||||
|
@ -29,7 +29,7 @@
|
||||
#include "ompi/memchecker.h"
|
||||
|
||||
#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILING_DEFINES
|
||||
#pragma weak MPI_Reduce_scatter_block = PMPI_Reduce_scatter_block
|
||||
#pragma weak MPI_Ireduce_scatter_block = PMPI_Ireduce_scatter_block
|
||||
#endif
|
||||
|
||||
#if OMPI_PROFILING_DEFINES
|
||||
@ -40,7 +40,8 @@ static const char FUNC_NAME[] = "MPI_Reduce_scatter_block";
|
||||
|
||||
|
||||
int MPI_Ireduce_scatter_block(void *sendbuf, void *recvbuf, int recvcount,
|
||||
MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Request *request)
|
||||
MPI_Datatype datatype, MPI_Op op,
|
||||
MPI_Comm comm, MPI_Request *request)
|
||||
{
|
||||
int err;
|
||||
|
||||
@ -99,9 +100,9 @@ int MPI_Ireduce_scatter_block(void *sendbuf, void *recvbuf, int recvcount,
|
||||
|
||||
OBJ_RETAIN(op);
|
||||
err = comm->c_coll.coll_ireduce_scatter_block(sendbuf, recvbuf, recvcount,
|
||||
datatype, op, comm,
|
||||
request,
|
||||
comm->c_coll.coll_reduce_scatter_block_module);
|
||||
datatype, op, comm,
|
||||
request,
|
||||
comm->c_coll.coll_reduce_scatter_block_module);
|
||||
OBJ_RELEASE(op);
|
||||
OMPI_ERRHANDLER_RETURN(err, comm, err, FUNC_NAME);
|
||||
}
|
||||
|
@ -212,6 +212,8 @@ nodist_libmpi_c_pmpi_la_SOURCES = \
|
||||
preduce_local.c \
|
||||
preduce_scatter.c \
|
||||
pireduce_scatter.c \
|
||||
preduce_scatter_block.c \
|
||||
pireduce_scatter_block.c \
|
||||
prequest_c2f.c \
|
||||
prequest_f2c.c \
|
||||
prequest_free.c \
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user