mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-03 18:13:01 +00:00
Merge r6139:
- Minor changes for mpxlc - kludge; add option "initkludge" to cause PMPI_Init to return &mpiwrap_walk_type_EXTERNALLY_VISIBLE and adjust mpiwrap_type_test.c accordingly and also add an export script so that libmpiwrap.so is built correctly on AIX5 (r????). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6275
This commit is contained in:
parent
95ef240080
commit
ff7968b2c1
@ -84,11 +84,20 @@
|
||||
|
||||
/* Where are API symbols?
|
||||
Open MPI lib/libmpi.so, soname = libmpi.so.0
|
||||
AIX: in /usr/lpp/ppe.poe/lib/libmpi_r.a(mpicore*_r.o)
|
||||
ditto Quadrics MPI
|
||||
*/
|
||||
/* ifdef OpenMPI ... */
|
||||
#define I_WRAP_FNNAME_U(_name) I_WRAP_SONAME_FNNAME_ZU(libmpiZdsoZa,_name)
|
||||
#if defined(_AIX)
|
||||
# define I_WRAP_FNNAME_U(_name) \
|
||||
I_WRAP_SONAME_FNNAME_ZU(libmpiZurZdaZLmpicoreZaZurZdoZR,_name)
|
||||
/* Don't change this without also changing all the names in
|
||||
libmpiwrap.exp. */
|
||||
#else
|
||||
# define I_WRAP_FNNAME_U(_name) \
|
||||
I_WRAP_SONAME_FNNAME_ZU(libmpiZdsoZa,_name)
|
||||
|
||||
#endif
|
||||
|
||||
/*------------------------------------------------------------*/
|
||||
/*--- Decls ---*/
|
||||
@ -119,11 +128,12 @@ typedef unsigned long UWord;
|
||||
static const char* preamble = "valgrind MPI wrappers";
|
||||
|
||||
/* established at startup */
|
||||
static pid_t my_pid = -1;
|
||||
static char* options_str = NULL;
|
||||
static int opt_verbosity = 1;
|
||||
static Bool opt_missing = 0; /* 0:silent; 1:warn; 2:abort */
|
||||
static Bool opt_help = False;
|
||||
static pid_t my_pid = -1;
|
||||
static char* options_str = NULL;
|
||||
static int opt_verbosity = 1;
|
||||
static Bool opt_missing = 0; /* 0:silent; 1:warn; 2:abort */
|
||||
static Bool opt_help = False;
|
||||
static Bool opt_initkludge = False;
|
||||
|
||||
static void before ( char* fnname )
|
||||
{
|
||||
@ -145,6 +155,8 @@ static void before ( char* fnname )
|
||||
opt_verbosity--;
|
||||
if (NULL != strstr(options_str, "help"))
|
||||
opt_help = True;
|
||||
if (NULL != strstr(options_str, "initkludge"))
|
||||
opt_initkludge = True;
|
||||
}
|
||||
if (opt_verbosity > 0)
|
||||
fprintf(stderr, "%s %5d: Active for pid %d\n",
|
||||
@ -160,13 +172,14 @@ static void before ( char* fnname )
|
||||
fprintf(stderr, "Valid options for the MPIWRAP_DEBUG environment"
|
||||
" variable are:\n");
|
||||
fprintf(stderr, "\n");
|
||||
fprintf(stderr, " quiet be silent except for errors\n");
|
||||
fprintf(stderr, " verbose show wrapper entries/exits\n");
|
||||
fprintf(stderr, " strict abort the program if a function"
|
||||
fprintf(stderr, " quiet be silent except for errors\n");
|
||||
fprintf(stderr, " verbose show wrapper entries/exits\n");
|
||||
fprintf(stderr, " strict abort the program if a function"
|
||||
" with no wrapper is used\n");
|
||||
fprintf(stderr, " warn give a warning if a function"
|
||||
fprintf(stderr, " warn give a warning if a function"
|
||||
" with no wrapper is used\n");
|
||||
fprintf(stderr, " help display this message, then exit\n");
|
||||
fprintf(stderr, " help display this message, then exit\n");
|
||||
fprintf(stderr, " initkludge debugging hack; do not use\n");
|
||||
fprintf(stderr, "\n");
|
||||
fprintf(stderr, "Multiple options are allowed, eg"
|
||||
" MPIWRAP_DEBUG=strict,verbose\n");
|
||||
@ -186,7 +199,7 @@ static void before ( char* fnname )
|
||||
fprintf(stderr, "%s %5d: enter PMPI_%s\n", preamble, my_pid, fnname );
|
||||
}
|
||||
|
||||
static inline void after ( char* fnname, int err )
|
||||
static __inline__ void after ( char* fnname, int err )
|
||||
{
|
||||
if (opt_verbosity > 1)
|
||||
fprintf(stderr, "%s %5d: exit PMPI_%s (err = %d)\n",
|
||||
@ -291,21 +304,21 @@ static void showCombiner ( FILE* f, int combiner )
|
||||
/* Note, PMPI_Comm_rank/size are themselves wrapped. Should work
|
||||
fine. */
|
||||
|
||||
static inline int comm_rank ( MPI_Comm comm )
|
||||
static __inline__ int comm_rank ( MPI_Comm comm )
|
||||
{
|
||||
int err, r;
|
||||
err = PMPI_Comm_rank(comm, &r);
|
||||
return err ? 0/*arbitrary*/ : r;
|
||||
}
|
||||
|
||||
static inline int comm_size ( MPI_Comm comm )
|
||||
static __inline__ int comm_size ( MPI_Comm comm )
|
||||
{
|
||||
int err, r;
|
||||
err = PMPI_Comm_size(comm, &r);
|
||||
return err ? 0/*arbitrary*/ : r;
|
||||
}
|
||||
|
||||
static inline Bool count_from_Status( /*OUT*/int* recv_count,
|
||||
static __inline__ Bool count_from_Status( /*OUT*/int* recv_count,
|
||||
MPI_Datatype datatype,
|
||||
MPI_Status* status)
|
||||
{
|
||||
@ -326,7 +339,7 @@ static inline Bool count_from_Status( /*OUT*/int* recv_count,
|
||||
types that support assignment and equality operations." Hence the
|
||||
following function should compile for any compliant definition of
|
||||
MPI_Request. */
|
||||
static inline
|
||||
static __inline__
|
||||
Bool eq_MPI_Request ( MPI_Request r1, MPI_Request r2 )
|
||||
{
|
||||
return r1 == r2;
|
||||
@ -674,7 +687,7 @@ void walk_type_array ( void(*f)(void*,long), char* base,
|
||||
void mpiwrap_walk_type_EXTERNALLY_VISIBLE
|
||||
( void(*f)(void*,long), char* base, MPI_Datatype ty )
|
||||
{
|
||||
return walk_type(f, base, ty);
|
||||
walk_type(f, base, ty);
|
||||
}
|
||||
|
||||
|
||||
@ -688,7 +701,7 @@ void mpiwrap_walk_type_EXTERNALLY_VISIBLE
|
||||
----------------
|
||||
*/
|
||||
|
||||
static inline
|
||||
static __inline__
|
||||
void check_mem_is_defined_untyped ( void* buffer, long nbytes )
|
||||
{
|
||||
if (nbytes > 0) {
|
||||
@ -696,7 +709,7 @@ void check_mem_is_defined_untyped ( void* buffer, long nbytes )
|
||||
}
|
||||
}
|
||||
|
||||
static inline
|
||||
static __inline__
|
||||
void check_mem_is_addressable_untyped ( void* buffer, long nbytes )
|
||||
{
|
||||
if (nbytes > 0) {
|
||||
@ -704,7 +717,7 @@ void check_mem_is_addressable_untyped ( void* buffer, long nbytes )
|
||||
}
|
||||
}
|
||||
|
||||
static inline
|
||||
static __inline__
|
||||
void make_mem_defined_if_addressable_untyped ( void* buffer, long nbytes )
|
||||
{
|
||||
if (nbytes > 0) {
|
||||
@ -712,7 +725,7 @@ void make_mem_defined_if_addressable_untyped ( void* buffer, long nbytes )
|
||||
}
|
||||
}
|
||||
|
||||
static inline
|
||||
static __inline__
|
||||
void make_mem_defined_if_addressable_if_success_untyped ( int err,
|
||||
void* buffer, long nbytes )
|
||||
{
|
||||
@ -724,7 +737,7 @@ void make_mem_defined_if_addressable_if_success_untyped ( int err,
|
||||
/* Set the specified area to 'addressible but undefined'
|
||||
(safe-to-write) state. */
|
||||
|
||||
static inline
|
||||
static __inline__
|
||||
void make_mem_undefined_untyped ( void* buffer, long nbytes )
|
||||
{
|
||||
if (nbytes > 0) {
|
||||
@ -874,7 +887,11 @@ int WRAPPER_FOR(PMPI_Get_count)(MPI_Status* status,
|
||||
int err;
|
||||
VALGRIND_GET_ORIG_FN(fn);
|
||||
before("Get_count");
|
||||
# if defined(_AIX)
|
||||
check_mem_is_addressable_untyped(status, sizeof(*status));
|
||||
# else
|
||||
check_mem_is_defined_untyped(status, sizeof(*status));
|
||||
# endif
|
||||
CALL_FN_W_WWW(err, fn, status,ty,count);
|
||||
after("Get_count", err);
|
||||
return err;
|
||||
@ -1061,7 +1078,7 @@ MPI_Request* clone_Request_array ( int count, MPI_Request* orig )
|
||||
if (count < 0)
|
||||
count = 0; /* Hmm. Call Mulder and Scully. */
|
||||
copy = malloc( count * sizeof(MPI_Request) );
|
||||
if (copy == NULL) {
|
||||
if (copy == NULL && count > 0) {
|
||||
UNLOCK_SREQS;
|
||||
barf("clone_Request_array: malloc failed");
|
||||
}
|
||||
@ -1776,7 +1793,7 @@ int WRAPPER_FOR(PMPI_Error_string)( int errorcode, char* string,
|
||||
|
||||
/* --- Init --- */
|
||||
/* rd: *argc, *argv[0 .. *argc-1] */
|
||||
int WRAPPER_FOR(PMPI_Init)(int *argc, char ***argv)
|
||||
long WRAPPER_FOR(PMPI_Init)(int *argc, char ***argv)
|
||||
{
|
||||
OrigFn fn;
|
||||
int err;
|
||||
@ -1786,7 +1803,10 @@ int WRAPPER_FOR(PMPI_Init)(int *argc, char ***argv)
|
||||
check_mem_is_defined_untyped(*argv, *argc * sizeof(char**));
|
||||
CALL_FN_W_WW(err, fn, argc,argv);
|
||||
after("Init", err);
|
||||
return err;
|
||||
if (opt_initkludge)
|
||||
return (long)(void*)&mpiwrap_walk_type_EXTERNALLY_VISIBLE;
|
||||
else
|
||||
return (long)err;
|
||||
}
|
||||
|
||||
/* --- Initialized --- */
|
||||
|
||||
298
auxprogs/libmpiwrap_aix5.exp
Normal file
298
auxprogs/libmpiwrap_aix5.exp
Normal file
@ -0,0 +1,298 @@
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Abort
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Accumulate
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Add_error_class
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Add_error_code
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Add_error_string
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Allgather
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Allgatherv
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Alloc_mem
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Allreduce
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Alltoall
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Alltoallv
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Alltoallw
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Attr_delete
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Attr_get
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Attr_put
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Barrier
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Bcast
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Bsend
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Bsend_init
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Buffer_attach
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Buffer_detach
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Cancel
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Cart_coords
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Cart_create
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Cart_get
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Cart_map
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Cart_rank
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Cart_shift
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Cart_sub
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Cartdim_get
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Close_port
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_accept
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_c2f
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_call_errhandler
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_compare
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_connect
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_create
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_create_errhandler
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_create_keyval
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_delete_attr
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_disconnect
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_dup
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_f2c
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_free
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_free_keyval
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_get_attr
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_get_errhandler
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_get_name
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_get_parent
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_group
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_join
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_rank
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_remote_group
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_remote_size
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_set_attr
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_set_errhandler
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_set_name
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_size
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_spawn
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_spawn_multiple
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_split
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Comm_test_inter
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Dims_create
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Errhandler_c2f
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Errhandler_create
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Errhandler_f2c
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Errhandler_free
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Errhandler_get
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Errhandler_set
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Error_class
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Error_string
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Exscan
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_c2f
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_call_errhandler
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_close
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_create_errhandler
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_delete
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_f2c
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_get_amode
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_get_atomicity
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_get_byte_offset
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_get_errhandler
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_get_group
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_get_info
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_get_position
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_get_position_shared
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_get_size
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_get_type_extent
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_get_view
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_iread
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_iread_at
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_iread_shared
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_iwrite
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_iwrite_at
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_iwrite_shared
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_open
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_preallocate
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_read
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_read_all
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_read_all_begin
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_read_all_end
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_read_at
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_read_at_all
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_read_at_all_begin
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_read_at_all_end
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_read_ordered
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_read_ordered_begin
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_read_ordered_end
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_read_shared
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_seek
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_seek_shared
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_set_atomicity
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_set_errhandler
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_set_info
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_set_size
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_set_view
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_sync
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_write
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_write_all
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_write_all_begin
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_write_all_end
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_write_at
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_write_at_all
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_write_at_all_begin
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_write_at_all_end
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_write_ordered
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_write_ordered_begin
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_write_ordered_end
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_File_write_shared
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Finalize
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Finalized
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Free_mem
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Gather
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Gatherv
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Get
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Get_address
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Get_count
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Get_elements
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Get_processor_name
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Get_version
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Graph_create
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Graph_get
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Graph_map
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Graph_neighbors
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Graph_neighbors_count
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Graphdims_get
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Grequest_complete
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Grequest_start
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Group_c2f
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Group_compare
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Group_difference
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Group_excl
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Group_f2c
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Group_free
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Group_incl
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Group_intersection
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Group_range_excl
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Group_range_incl
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Group_rank
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Group_size
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Group_translate_ranks
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Group_union
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Ibsend
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Info_c2f
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Info_create
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Info_delete
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Info_dup
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Info_f2c
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Info_free
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Info_get
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Info_get_nkeys
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Info_get_nthkey
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Info_get_valuelen
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Info_set
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Init
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Init_thread
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Initialized
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Intercomm_create
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Intercomm_merge
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Iprobe
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Irecv
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Irsend
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Is_thread_main
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Isend
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Issend
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Keyval_create
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Keyval_free
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Lookup_name
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Op_c2f
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Op_create
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Op_f2c
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Op_free
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Open_port
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Pack
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Pack_external
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Pack_external_size
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Pack_size
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Probe
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Publish_name
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Put
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Query_thread
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Recv
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Recv_init
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Reduce
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Reduce_scatter
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Register_datarep
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Request_c2f
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Request_f2c
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Request_free
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Request_get_status
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Rsend
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Rsend_init
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Scan
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Scatter
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Scatterv
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Send
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Send_init
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Sendrecv
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Sendrecv_replace
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Ssend
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Ssend_init
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Start
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Startall
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Status_c2f
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Status_f2c
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Status_set_cancelled
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Status_set_elements
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Test
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Test_cancelled
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Testall
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Testany
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Testsome
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Topo_test
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_c2f
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_commit
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_contiguous
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_create_darray
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_create_f90_complex
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_create_f90_integer
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_create_f90_real
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_create_hindexed
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_create_hvector
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_create_indexed_block
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_create_keyval
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_create_resized
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_create_struct
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_create_subarray
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_delete_attr
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_dup
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_f2c
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_free
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_free_keyval
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_get_attr
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_get_extent
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_get_name
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_get_true_extent
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_hindexed
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_hvector
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_indexed
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_lb
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_match_size
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_set_attr
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_set_name
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_size
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_struct
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_ub
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Type_vector
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Unpack
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Unpack_external
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Unpublish_name
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Wait
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Waitall
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Waitany
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Waitsome
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Win_c2f
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Win_call_errhandler
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Win_complete
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Win_create
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Win_create_errhandler
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Win_create_keyval
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Win_delete_attr
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Win_f2c
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Win_fence
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Win_free
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Win_free_keyval
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Win_get_attr
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Win_get_errhandler
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Win_get_group
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Win_get_name
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Win_lock
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Win_post
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Win_set_attr
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Win_set_errhandler
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Win_set_name
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Win_start
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Win_test
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Win_unlock
|
||||
_vgwZU_libmpiZurZdaZLmpicoreZaZurZdoZR_PMPI_Win_wait
|
||||
@ -9,7 +9,6 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include <dlfcn.h>
|
||||
#include "mpi.h"
|
||||
#include "../memcheck/memcheck.h"
|
||||
|
||||
@ -19,6 +18,8 @@ typedef unsigned char Bool;
|
||||
#define False ((Bool)0)
|
||||
#define True ((Bool)1)
|
||||
|
||||
void* walk_type_fn = NULL;
|
||||
|
||||
static Ty tycon_Contiguous ( int count, Ty t )
|
||||
{
|
||||
Ty t2;
|
||||
@ -96,7 +97,7 @@ static Ty tycon_HIndexed2 ( MPI_Aint d1, int copies1,
|
||||
return tres;
|
||||
}
|
||||
|
||||
//////////////////////////////////////
|
||||
/* ------------------------------ */
|
||||
|
||||
char characterise ( unsigned char b )
|
||||
{
|
||||
@ -125,23 +126,14 @@ void sendToMyself ( Bool commit_free, Ty* tyP, char* name )
|
||||
char* rbuf_walk;
|
||||
int r;
|
||||
|
||||
void* dl_handle = NULL;
|
||||
|
||||
/* C: what a fabulous functional programming language :-) */
|
||||
void(*dl_walk_type)(void(*)(void*,long),char*,MPI_Datatype) = NULL;
|
||||
|
||||
/* NULL: gives a handle which is RTLD_GLOBAL syms in current
|
||||
process image */
|
||||
dl_handle = dlopen(NULL, RTLD_LAZY);
|
||||
if (!dl_handle) {
|
||||
printf("sendToMyself: can't dlopen current process image\n");
|
||||
return;
|
||||
}
|
||||
dl_walk_type = dlsym(dl_handle, "mpiwrap_walk_type_EXTERNALLY_VISIBLE");
|
||||
void(*dl_walk_type)(void(*)(void*,long),char*,MPI_Datatype)
|
||||
= (void(*)(void(*)(void*,long),char*,MPI_Datatype))
|
||||
walk_type_fn;
|
||||
|
||||
if (!dl_walk_type) {
|
||||
printf("sendToMyself: can't find mpiwrap_walk_type_EXTERNALLY_VISIBLE"
|
||||
" in current process image\n");
|
||||
dlclose(dl_handle);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -192,7 +184,6 @@ void sendToMyself ( Bool commit_free, Ty* tyP, char* name )
|
||||
|
||||
dl_walk_type( sendToMyself_callback, rbuf_walk, *tyP );
|
||||
|
||||
dlclose(dl_handle);
|
||||
if (commit_free) {
|
||||
r = MPI_Type_free( tyP );
|
||||
assert(r == MPI_SUCCESS);
|
||||
@ -225,13 +216,22 @@ typedef char* Nm;
|
||||
int main ( int argc, char** argv )
|
||||
{
|
||||
int rank, size;
|
||||
char* opts;
|
||||
|
||||
if (!RUNNING_ON_VALGRIND) {
|
||||
printf("error: this program must be run on valgrind\n");
|
||||
return 1;
|
||||
}
|
||||
opts = getenv("MPIWRAP_DEBUG");
|
||||
if ((!opts) || NULL==strstr(opts, "initkludge")) {
|
||||
printf("error: program requires MPIWRAP_DEBUG=initkludge\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
walk_type_fn = (void*)(long) MPI_Init( &argc, &argv );
|
||||
printf("mpiwrap_type_test: walk_type_fn = %p\n", walk_type_fn);
|
||||
assert(walk_type_fn);
|
||||
|
||||
MPI_Init( &argc, &argv );
|
||||
MPI_Comm_size( MPI_COMM_WORLD, &size );
|
||||
MPI_Comm_rank( MPI_COMM_WORLD, &rank );
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user