|
From: <sv...@va...> - 2006-10-17 01:46:57
|
Author: sewardj
Date: 2006-10-17 02:46:55 +0100 (Tue, 17 Oct 2006)
New Revision: 6275
Log:
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????).
Added:
trunk/auxprogs/libmpiwrap_aix5.exp
Modified:
trunk/auxprogs/libmpiwrap.c
trunk/auxprogs/mpiwrap_type_test.c
Modified: trunk/auxprogs/libmpiwrap.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/auxprogs/libmpiwrap.c 2006-10-17 01:44:36 UTC (rev 6274)
+++ trunk/auxprogs/libmpiwrap.c 2006-10-17 01:46:55 UTC (rev 6275)
@@ -84,11 +84,20 @@
=20
/* Where are API symbols?
Open MPI lib/libmpi.so, soname =3D 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,_nam=
e)
+#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)
=20
+#endif
=20
/*------------------------------------------------------------*/
/*--- Decls ---*/
@@ -119,11 +128,12 @@
static const char* preamble =3D "valgrind MPI wrappers";
=20
/* established at startup */
-static pid_t my_pid =3D -1;
-static char* options_str =3D NULL;
-static int opt_verbosity =3D 1;
-static Bool opt_missing =3D 0; /* 0:silent; 1:warn; 2:abort */
-static Bool opt_help =3D False;
+static pid_t my_pid =3D -1;
+static char* options_str =3D NULL;
+static int opt_verbosity =3D 1;
+static Bool opt_missing =3D 0; /* 0:silent; 1:warn; 2:abort */
+static Bool opt_help =3D False;
+static Bool opt_initkludge =3D False;
=20
static void before ( char* fnname )
{
@@ -145,6 +155,8 @@
opt_verbosity--;
if (NULL !=3D strstr(options_str, "help"))
opt_help =3D True;
+ if (NULL !=3D strstr(options_str, "initkludge"))
+ opt_initkludge =3D True;
}
if (opt_verbosity > 0)
fprintf(stderr, "%s %5d: Active for pid %d\n",=20
@@ -160,13 +172,14 @@
fprintf(stderr, "Valid options for the MPIWRAP_DEBUG environmen=
t"
" 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=3Dstrict,verbose\n");
@@ -186,7 +199,7 @@
fprintf(stderr, "%s %5d: enter PMPI_%s\n", preamble, my_pid, fnna=
me );
}
=20
-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 =3D %d)\n",=20
@@ -291,21 +304,21 @@
/* Note, PMPI_Comm_rank/size are themselves wrapped. Should work
fine. */
=20
-static inline int comm_rank ( MPI_Comm comm )=20
+static __inline__ int comm_rank ( MPI_Comm comm )=20
{
int err, r;
err =3D PMPI_Comm_rank(comm, &r);
return err ? 0/*arbitrary*/ : r;
}
=20
-static inline int comm_size ( MPI_Comm comm )=20
+static __inline__ int comm_size ( MPI_Comm comm )=20
{
int err, r;
err =3D PMPI_Comm_size(comm, &r);
return err ? 0/*arbitrary*/ : r;
}
=20
-static inline Bool count_from_Status( /*OUT*/int* recv_count,=20
+static __inline__ Bool count_from_Status( /*OUT*/int* recv_count,=20
MPI_Datatype datatype,=20
MPI_Status* status)
{
@@ -326,7 +339,7 @@
types that support assignment and equality operations." Hence the
following function should compile for any compliant definition of
MPI_Request. */
-static inline=20
+static __inline__=20
Bool eq_MPI_Request ( MPI_Request r1, MPI_Request r2 )
{
return r1 =3D=3D r2;
@@ -674,7 +687,7 @@
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);
}
=20
=20
@@ -688,7 +701,7 @@
----------------
*/
=20
-static inline
+static __inline__
void check_mem_is_defined_untyped ( void* buffer, long nbytes )
{
if (nbytes > 0) {
@@ -696,7 +709,7 @@
}
}
=20
-static inline
+static __inline__
void check_mem_is_addressable_untyped ( void* buffer, long nbytes )
{
if (nbytes > 0) {
@@ -704,7 +717,7 @@
}
}
=20
-static inline
+static __inline__
void make_mem_defined_if_addressable_untyped ( void* buffer, long nbytes=
)
{
if (nbytes > 0) {
@@ -712,7 +725,7 @@
}
}
=20
-static inline
+static __inline__
void make_mem_defined_if_addressable_if_success_untyped ( int err,=20
void* buffer, long nbytes )
{
@@ -724,7 +737,7 @@
/* Set the specified area to 'addressible but undefined'
(safe-to-write) state. */
=20
-static inline
+static __inline__
void make_mem_undefined_untyped ( void* buffer, long nbytes )
{
if (nbytes > 0) {
@@ -874,7 +887,11 @@
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 @@
if (count < 0)=20
count =3D 0; /* Hmm. Call Mulder and Scully. */
copy =3D malloc( count * sizeof(MPI_Request) );
- if (copy =3D=3D NULL) {
+ if (copy =3D=3D NULL && count > 0) {
UNLOCK_SREQS;
barf("clone_Request_array: malloc failed");
}
@@ -1776,7 +1793,7 @@
=20
/* --- 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 @@
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;
}
=20
/* --- Initialized --- */
Added: trunk/auxprogs/libmpiwrap_aix5.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/auxprogs/libmpiwrap_aix5.exp (rev 0)
+++ trunk/auxprogs/libmpiwrap_aix5.exp 2006-10-17 01:46:55 UTC (rev 6275)
@@ -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
Modified: trunk/auxprogs/mpiwrap_type_test.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/auxprogs/mpiwrap_type_test.c 2006-10-17 01:44:36 UTC (rev 6274)
+++ trunk/auxprogs/mpiwrap_type_test.c 2006-10-17 01:46:55 UTC (rev 6275)
@@ -9,7 +9,6 @@
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
-#include <dlfcn.h>
#include "mpi.h"
#include "../memcheck/memcheck.h"
=20
@@ -19,6 +18,8 @@
#define False ((Bool)0)
#define True ((Bool)1)
=20
+void* walk_type_fn =3D NULL;
+
static Ty tycon_Contiguous ( int count, Ty t )
{
Ty t2; =20
@@ -96,7 +97,7 @@
return tres;
}
=20
-//////////////////////////////////////
+/* ------------------------------ */
=20
char characterise ( unsigned char b )
{
@@ -125,23 +126,14 @@
char* rbuf_walk;
int r;
=20
- void* dl_handle =3D NULL;
-
/* C: what a fabulous functional programming language :-) */
- void(*dl_walk_type)(void(*)(void*,long),char*,MPI_Datatype) =3D NULL;
-
- /* NULL: gives a handle which is RTLD_GLOBAL syms in current
- process image */
- dl_handle =3D dlopen(NULL, RTLD_LAZY);
- if (!dl_handle) {
- printf("sendToMyself: can't dlopen current process image\n");
- return;
- }
- dl_walk_type =3D dlsym(dl_handle, "mpiwrap_walk_type_EXTERNALLY_VISIB=
LE");
+ void(*dl_walk_type)(void(*)(void*,long),char*,MPI_Datatype)=20
+ =3D (void(*)(void(*)(void*,long),char*,MPI_Datatype))
+ walk_type_fn;
+ =20
if (!dl_walk_type) {
printf("sendToMyself: can't find mpiwrap_walk_type_EXTERNALLY_VISI=
BLE"
" in current process image\n");
- dlclose(dl_handle);
return;
}
=20
@@ -192,7 +184,6 @@
=20
dl_walk_type( sendToMyself_callback, rbuf_walk, *tyP );
=20
- dlclose(dl_handle);
if (commit_free) {
r =3D MPI_Type_free( tyP );
assert(r =3D=3D MPI_SUCCESS);
@@ -225,13 +216,22 @@
int main ( int argc, char** argv )
{
int rank, size;
+ char* opts;
=20
if (!RUNNING_ON_VALGRIND) {
printf("error: this program must be run on valgrind\n");
return 1;
}
+ opts =3D getenv("MPIWRAP_DEBUG");
+ if ((!opts) || NULL=3D=3Dstrstr(opts, "initkludge")) {
+ printf("error: program requires MPIWRAP_DEBUG=3Dinitkludge\n");
+ return 1;
+ }
=20
- MPI_Init( &argc, &argv );
+ walk_type_fn =3D (void*)(long) MPI_Init( &argc, &argv );
+ printf("mpiwrap_type_test: walk_type_fn =3D %p\n", walk_type_fn);
+ assert(walk_type_fn);
+
MPI_Comm_size( MPI_COMM_WORLD, &size );
MPI_Comm_rank( MPI_COMM_WORLD, &rank );
=20
|