diff --git a/ompi/mca/io/romio321/romio/2.diff b/ompi/mca/io/romio321/romio/2.diff new file mode 100644 index 0000000000..6e2cbb43e5 --- /dev/null +++ b/ompi/mca/io/romio321/romio/2.diff @@ -0,0 +1,1032 @@ +commit 84765001aaee5e62e232cfcfd8a20e93e2d67e9f +Author: Nathan Hjelm +Date: Thu Mar 22 13:12:11 2018 -0600 + + io/romio: do not use removed functions + + This commit attempts to update the romio io component to not use + functions removed in MPI-3.0 (2012). This is a first cut and will + probably need to be reviewed for correctness. + + Signed-off-by: Nathan Hjelm + +diff --git a/ompi/mca/io/romio314/romio/adio/ad_nfs/ad_nfs_read.c b/ompi/mca/io/romio314/romio/adio/ad_nfs/ad_nfs_read.c +index 48543ea..8e76dd4 100644 +--- a/ompi/mca/io/romio314/romio/adio/ad_nfs/ad_nfs_read.c ++++ b/ompi/mca/io/romio314/romio/adio/ad_nfs/ad_nfs_read.c +@@ -164,7 +164,7 @@ void ADIOI_NFS_ReadStrided(ADIO_File fd, void *buf, int count, + ADIO_Offset abs_off_in_filetype=0; + int req_len, partial_read; + MPI_Count filetype_size, etype_size, buftype_size; +- MPI_Aint filetype_extent, buftype_extent; ++ MPI_Aint filetype_extent, buftype_extent, lb; + int buf_count, buftype_is_contig, filetype_is_contig; + ADIO_Offset userbuf_off; + ADIO_Offset off, req_off, disp, end_offset=0, readbuf_off, start_off; +@@ -187,9 +187,9 @@ void ADIOI_NFS_ReadStrided(ADIO_File fd, void *buf, int count, + return; + } + +- MPI_Type_extent(fd->filetype, &filetype_extent); ++ MPI_Type_get_extent(fd->filetype, &lb, &filetype_extent); + MPI_Type_size_x(datatype, &buftype_size); +- MPI_Type_extent(datatype, &buftype_extent); ++ MPI_Type_get_extent(datatype, &lb, &buftype_extent); + etype_size = fd->etype_size; + + bufsize = buftype_size * count; +diff --git a/ompi/mca/io/romio314/romio/adio/ad_nfs/ad_nfs_write.c b/ompi/mca/io/romio314/romio/adio/ad_nfs/ad_nfs_write.c +index 0a4636b..794c06c 100644 +--- a/ompi/mca/io/romio314/romio/adio/ad_nfs/ad_nfs_write.c ++++ b/ompi/mca/io/romio314/romio/adio/ad_nfs/ad_nfs_write.c +@@ -267,7 +267,7 @@ void ADIOI_NFS_WriteStrided(ADIO_File fd, const void *buf, int count, + ADIO_Offset abs_off_in_filetype=0; + int req_len; + MPI_Count filetype_size, etype_size, buftype_size; +- MPI_Aint filetype_extent, buftype_extent; ++ MPI_Aint filetype_extent, buftype_extent, lb; + int buf_count, buftype_is_contig, filetype_is_contig; + ADIO_Offset userbuf_off; + ADIO_Offset off, req_off, disp, end_offset=0, writebuf_off, start_off; +@@ -289,9 +289,9 @@ void ADIOI_NFS_WriteStrided(ADIO_File fd, const void *buf, int count, + return; + } + +- MPI_Type_extent(fd->filetype, &filetype_extent); ++ MPI_Type_get_extent(fd->filetype, &lb, &filetype_extent); + MPI_Type_size_x(datatype, &buftype_size); +- MPI_Type_extent(datatype, &buftype_extent); ++ MPI_Type_get_extent(datatype, &lb, &buftype_extent); + etype_size = fd->etype_size; + + bufsize = buftype_size * count; +diff --git a/ompi/mca/io/romio314/romio/adio/ad_testfs/ad_testfs_seek.c b/ompi/mca/io/romio314/romio/adio/ad_testfs/ad_testfs_seek.c +index a6bca98..56d1043 100644 +--- a/ompi/mca/io/romio314/romio/adio/ad_testfs/ad_testfs_seek.c ++++ b/ompi/mca/io/romio314/romio/adio/ad_testfs/ad_testfs_seek.c +@@ -30,7 +30,7 @@ ADIO_Offset ADIOI_TESTFS_SeekIndividual(ADIO_File fd, ADIO_Offset offset, + int size_in_filetype; + int filetype_is_contig; + MPI_Count filetype_size; +- MPI_Aint etype_size, filetype_extent; ++ MPI_Aint etype_size, filetype_extent, lb; + + *error_code = MPI_SUCCESS; + +@@ -47,7 +47,7 @@ ADIO_Offset ADIOI_TESTFS_SeekIndividual(ADIO_File fd, ADIO_Offset offset, + flat_file = ADIOI_Flatlist; + while (flat_file->type != fd->filetype) flat_file = flat_file->next; + +- MPI_Type_extent(fd->filetype, &filetype_extent); ++ MPI_Type_get_extent(fd->filetype, &lb, &filetype_extent); + MPI_Type_size_x(fd->filetype, &filetype_size); + if ( ! filetype_size ) { + *error_code = MPI_SUCCESS; +diff --git a/ompi/mca/io/romio314/romio/adio/common/ad_aggregate_new.c b/ompi/mca/io/romio314/romio/adio/common/ad_aggregate_new.c +index a01a41c..59fee5b 100644 +--- a/ompi/mca/io/romio314/romio/adio/common/ad_aggregate_new.c ++++ b/ompi/mca/io/romio314/romio/adio/common/ad_aggregate_new.c +@@ -237,18 +237,18 @@ void ADIOI_Calc_file_realms_fsize (ADIO_File fd, int nprocs_for_coll, + void ADIOI_Create_fr_simpletype (int size, int nprocs_for_coll, + MPI_Datatype *simpletype) + { +- int count=2, blocklens[2]; +- MPI_Aint indices[2]; +- MPI_Datatype old_types[2]; ++ int count=1, blocklens[1]; ++ MPI_Aint indices[1]; ++ MPI_Datatype old_types[1]; ++ MPI_Datatype inttype; + + blocklens[0] = size; +- blocklens[1] = 1; + indices[0] = 0; +- indices[1] = size*nprocs_for_coll; + old_types[0] = MPI_BYTE; +- old_types[1] = MPI_UB; + +- MPI_Type_struct (count, blocklens, indices, old_types, simpletype); ++ MPI_Type_create_struct (count, blocklens, indices, old_types, &inttype); ++ MPI_Type_create_resized (inttype, 0, size*nprocs_for_coll, simpletype); ++ MPI_Type_free (&inttype); + + MPI_Type_commit (simpletype); + } +diff --git a/ompi/mca/io/romio314/romio/adio/common/ad_coll_build_req_new.c b/ompi/mca/io/romio314/romio/adio/common/ad_coll_build_req_new.c +index a9be23c..2b6f29e 100644 +--- a/ompi/mca/io/romio314/romio/adio/common/ad_coll_build_req_new.c ++++ b/ompi/mca/io/romio314/romio/adio/common/ad_coll_build_req_new.c +@@ -279,7 +279,7 @@ static inline int get_next_fr_off(ADIO_File fd, + ADIO_Offset *fr_next_off_p, + ADIO_Offset *fr_max_len_p) + { +- MPI_Aint fr_extent = -1; ++ MPI_Aint fr_extent = -1, lb; + ADIO_Offset tmp_off, off_rem; + ADIOI_Flatlist_node *fr_node_p = ADIOI_Flatlist; + int i = -1, fr_dtype_ct = 0; +@@ -299,7 +299,7 @@ static inline int get_next_fr_off(ADIO_File fd, + + /* Calculate how many times to loop through the fr_type + * and where the next fr_off is. */ +- MPI_Type_extent(*fr_type_p, &fr_extent); ++ MPI_Type_get_extent(*fr_type_p, &lb, &fr_extent); + tmp_off = off - fr_st_off; + fr_dtype_ct = tmp_off / fr_extent; + off_rem = tmp_off % fr_extent; +diff --git a/ompi/mca/io/romio314/romio/adio/common/ad_coll_exch_new.c b/ompi/mca/io/romio314/romio/adio/common/ad_coll_exch_new.c +index abe7d74..1815616 100644 +--- a/ompi/mca/io/romio314/romio/adio/common/ad_coll_exch_new.c ++++ b/ompi/mca/io/romio314/romio/adio/common/ad_coll_exch_new.c +@@ -127,7 +127,7 @@ void ADIOI_Exch_file_views(int myrank, int nprocs, int file_ptr_type, + MPI_Request *send_req_arr = NULL, *recv_req_arr = NULL; + MPI_Status *statuses = NULL; + ADIO_Offset disp_off_sz_ext_typesz[6]; +- MPI_Aint memtype_extent, filetype_extent; ++ MPI_Aint memtype_extent, filetype_extent, lb; + int ret = -1; + + /* parameters for datatypes */ +@@ -143,7 +143,7 @@ void ADIOI_Exch_file_views(int myrank, int nprocs, int file_ptr_type, + * freed in the close and should have been flattened in the file + * view. */ + MPI_Type_size_x(datatype, &memtype_sz); +- MPI_Type_extent(datatype, &memtype_extent); ++ MPI_Type_get_extent(datatype, &lb, &memtype_extent); + if (memtype_sz == memtype_extent) { + memtype_is_contig = 1; + flat_mem_p = ADIOI_Add_contig_flattened(datatype); +@@ -156,7 +156,7 @@ void ADIOI_Exch_file_views(int myrank, int nprocs, int file_ptr_type, + flat_mem_p = flat_mem_p->next; + } + +- MPI_Type_extent(fd->filetype, &filetype_extent); ++ MPI_Type_get_extent(fd->filetype, &lb, &filetype_extent); + MPI_Type_size_x(fd->filetype, &filetype_sz); + if (filetype_extent == filetype_sz) { + flat_file_p = ADIOI_Add_contig_flattened(fd->filetype); +diff --git a/ompi/mca/io/romio314/romio/adio/common/ad_darray.c b/ompi/mca/io/romio314/romio/adio/common/ad_darray.c +index 0437db8..cb1407b 100644 +--- a/ompi/mca/io/romio314/romio/adio/common/ad_darray.c ++++ b/ompi/mca/io/romio314/romio/adio/common/ad_darray.c +@@ -24,11 +24,11 @@ int ADIO_Type_create_darray(int size, int rank, int ndims, + int order, MPI_Datatype oldtype, + MPI_Datatype *newtype) + { +- MPI_Datatype type_old, type_new=MPI_DATATYPE_NULL, types[3]; +- int procs, tmp_rank, i, tmp_size, blklens[3], *coords; +- MPI_Aint *st_offsets, orig_extent, disps[3]; ++ MPI_Datatype type_old, type_new=MPI_DATATYPE_NULL, inttype; ++ int procs, tmp_rank, i, tmp_size, blklen, *coords; ++ MPI_Aint *st_offsets, orig_extent, disp, ub, lb; + +- MPI_Type_extent(oldtype, &orig_extent); ++ MPI_Type_get_extent(oldtype, &lb, &orig_extent); + + /* calculate position in Cartesian grid as MPI would (row-major + ordering) */ +@@ -77,11 +77,11 @@ int ADIO_Type_create_darray(int size, int rank, int ndims, + } + + /* add displacement and UB */ +- disps[1] = st_offsets[0]; ++ disp = st_offsets[0]; + tmp_size = 1; + for (i=1; i=0; i--) { + tmp_size *= array_of_gsizes[i+1]; +- disps[1] += (MPI_Aint)tmp_size*st_offsets[i]; ++ disp += (MPI_Aint)tmp_size*st_offsets[i]; + } + } + +- disps[1] *= orig_extent; ++ disp *= orig_extent; + +- disps[2] = orig_extent; +- for (i=0; idim; i--) stride *= (MPI_Aint)array_of_gsizes[i]; +- MPI_Type_hvector(mysize, 1, stride, type_old, type_new); ++ MPI_Type_create_hvector(mysize, 1, stride, type_old, type_new); + } + + } +@@ -217,7 +215,7 @@ static int MPIOI_Type_cyclic(int *array_of_gsizes, int dim, int ndims, int nproc + rank = coordinate of this process in dimension dim */ + int blksize, i, blklens[3], st_index, end_index, local_size, rem, count; + MPI_Aint stride, disps[3]; +- MPI_Datatype type_tmp, types[3]; ++ MPI_Datatype type_tmp, type_tmp1, types[3]; + + if (darg == MPI_DISTRIBUTE_DFLT_DARG) blksize = 1; + else blksize = darg; +@@ -246,7 +244,7 @@ static int MPIOI_Type_cyclic(int *array_of_gsizes, int dim, int ndims, int nproc + for (i=0; idim; i--) stride *= (MPI_Aint)array_of_gsizes[i]; + +- MPI_Type_hvector(count, blksize, stride, type_old, type_new); ++ MPI_Type_create_hvector(count, blksize, stride, type_old, type_new); + + if (rem) { + /* if the last block is of size less than blksize, include +@@ -259,7 +257,7 @@ static int MPIOI_Type_cyclic(int *array_of_gsizes, int dim, int ndims, int nproc + blklens[0] = 1; + blklens[1] = rem; + +- MPI_Type_struct(2, blklens, disps, types, &type_tmp); ++ MPI_Type_create_struct(2, blklens, disps, types, &type_tmp); + + MPI_Type_free(type_new); + *type_new = type_tmp; +@@ -269,14 +267,12 @@ static int MPIOI_Type_cyclic(int *array_of_gsizes, int dim, int ndims, int nproc + dimension correctly. */ + if ( ((order == MPI_ORDER_FORTRAN) && (dim == 0)) || + ((order == MPI_ORDER_C) && (dim == ndims-1)) ) { +- types[0] = MPI_LB; +- disps[0] = 0; +- types[1] = *type_new; +- disps[1] = (MPI_Aint)rank * (MPI_Aint)blksize * orig_extent; +- types[2] = MPI_UB; +- disps[2] = orig_extent * (MPI_Aint)array_of_gsizes[dim]; +- blklens[0] = blklens[1] = blklens[2] = 1; +- MPI_Type_struct(3, blklens, disps, types, &type_tmp); ++ types[0] = *type_new; ++ disps[0] = (MPI_Aint)rank * (MPI_Aint)blksize * orig_extent; ++ blklens[0] = 1; ++ MPI_Type_create_struct(1, blklens, disps, types, &type_tmp1); ++ MPI_Type_create_resized (type_tmp1, 0, orig_extent * (MPI_Aint)array_of_gsizes[dim], &type_tmp); ++ MPI_Type_free(&type_tmp1); + MPI_Type_free(type_new); + *type_new = type_tmp; + +diff --git a/ompi/mca/io/romio314/romio/adio/common/ad_end.c b/ompi/mca/io/romio314/romio/adio/common/ad_end.c +index 00725f5..b534e0c 100644 +--- a/ompi/mca/io/romio314/romio/adio/common/ad_end.c ++++ b/ompi/mca/io/romio314/romio/adio/common/ad_end.c +@@ -72,13 +72,13 @@ int ADIOI_End_call(MPI_Comm comm, int keyval, void *attribute_val, void + ADIOI_UNREFERENCED_ARG(attribute_val); + ADIOI_UNREFERENCED_ARG(extra_state); + +- MPI_Keyval_free(&keyval); ++ MPI_Comm_free_keyval (&keyval); + + /* The end call will be called after all possible uses of this keyval, even + * if a file was opened with MPI_COMM_SELF. Note, this assumes LIFO + * MPI_COMM_SELF attribute destruction behavior mandated by MPI-2.2. */ + if (ADIOI_cb_config_list_keyval != MPI_KEYVAL_INVALID) +- MPI_Keyval_free(&ADIOI_cb_config_list_keyval); ++ MPI_Comm_free_keyval (&ADIOI_cb_config_list_keyval); + + ADIO_End(&error_code); + return error_code; +diff --git a/ompi/mca/io/romio314/romio/adio/common/ad_io_coll.c b/ompi/mca/io/romio314/romio/adio/common/ad_io_coll.c +index 22b2da4..1f2573e 100644 +--- a/ompi/mca/io/romio314/romio/adio/common/ad_io_coll.c ++++ b/ompi/mca/io/romio314/romio/adio/common/ad_io_coll.c +@@ -54,7 +54,7 @@ void ADIOI_IOStridedColl (ADIO_File fd, void *buf, int count, int rdwr, + int interleave_count = 0, i, nprocs, myrank, nprocs_for_coll; + int cb_enable; + ADIO_Offset bufsize; +- MPI_Aint extent; ++ MPI_Aint extent, lb; + #ifdef DEBUG2 + MPI_Aint bufextent; + #endif +@@ -191,7 +191,7 @@ void ADIOI_IOStridedColl (ADIO_File fd, void *buf, int count, int rdwr, + return; + } + +- MPI_Type_extent(datatype, &extent); ++ MPI_Type_get_extent(datatype, &lb, &extent); + #ifdef DEBUG2 + bufextent = extent * count; + #endif +@@ -702,7 +702,7 @@ void ADIOI_Calc_bounds (ADIO_File fd, int count, MPI_Datatype buftype, + { + MPI_Count filetype_size, buftype_size, etype_size; + int sum; +- MPI_Aint filetype_extent; ++ MPI_Aint filetype_extent, lb; + ADIO_Offset total_io; + int filetype_is_contig; + ADIO_Offset i, remainder; +@@ -726,7 +726,7 @@ void ADIOI_Calc_bounds (ADIO_File fd, int count, MPI_Datatype buftype, + ADIOI_Datatype_iscontig (fd->filetype, &filetype_is_contig); + + MPI_Type_size_x (fd->filetype, &filetype_size); +- MPI_Type_extent (fd->filetype, &filetype_extent); ++ MPI_Type_get_extent (fd->filetype, &lb, &filetype_extent); + MPI_Type_size_x (fd->etype, &etype_size); + MPI_Type_size_x (buftype, &buftype_size); + +@@ -884,7 +884,7 @@ void ADIOI_IOFiletype(ADIO_File fd, void *buf, int count, + int user_ind_rd_buffer_size; + int f_is_contig, m_is_contig; + int user_ds_read, user_ds_write; +- MPI_Aint f_extent; ++ MPI_Aint f_extent, lb; + MPI_Count f_size; + int f_ds_percent; /* size/extent */ + +@@ -894,7 +894,7 @@ void ADIOI_IOFiletype(ADIO_File fd, void *buf, int count, + else + MPE_Log_event(5008, 0, NULL); + #endif +- MPI_Type_extent(custom_ftype, &f_extent); ++ MPI_Type_get_extent(custom_ftype, &lb, &f_extent); + MPI_Type_size_x(custom_ftype, &f_size); + f_ds_percent = 100 * f_size / f_extent; + +diff --git a/ompi/mca/io/romio314/romio/adio/common/ad_read_coll.c b/ompi/mca/io/romio314/romio/adio/common/ad_read_coll.c +index 60b409d..ea76f45 100644 +--- a/ompi/mca/io/romio314/romio/adio/common/ad_read_coll.c ++++ b/ompi/mca/io/romio314/romio/adio/common/ad_read_coll.c +@@ -307,8 +307,7 @@ void ADIOI_Calc_my_off_len(ADIO_File fd, int bufcount, MPI_Datatype + ADIOI_Datatype_iscontig(fd->filetype, &filetype_is_contig); + + MPI_Type_size_x(fd->filetype, &filetype_size); +- MPI_Type_extent(fd->filetype, &filetype_extent); +- MPI_Type_lb(fd->filetype, &filetype_lb); ++ MPI_Type_get_extent(fd->filetype, &filetype_lb, &filetype_extent); + MPI_Type_size_x(datatype, &buftype_size); + etype_size = fd->etype_size; + +@@ -524,7 +523,7 @@ static void ADIOI_Read_and_exch(ADIO_File fd, void *buf, MPI_Datatype + int req_len, flag, rank; + MPI_Status status; + ADIOI_Flatlist_node *flat_buf=NULL; +- MPI_Aint buftype_extent; ++ MPI_Aint buftype_extent, lb; + int coll_bufsize; + + *error_code = MPI_SUCCESS; /* changed below if error */ +@@ -605,7 +604,7 @@ static void ADIOI_Read_and_exch(ADIO_File fd, void *buf, MPI_Datatype + flat_buf = ADIOI_Flatlist; + while (flat_buf->type != datatype) flat_buf = flat_buf->next; + } +- MPI_Type_extent(datatype, &buftype_extent); ++ MPI_Type_get_extent(datatype, &lb, &buftype_extent); + + done = 0; + off = st_loc; +@@ -685,7 +684,7 @@ static void ADIOI_Read_and_exch(ADIO_File fd, void *buf, MPI_Datatype + if (req_off < real_off + real_size) { + count[i]++; + ADIOI_Assert((((ADIO_Offset)(MPIR_Upint)read_buf)+req_off-real_off) == (ADIO_Offset)(MPIR_Upint)(read_buf+req_off-real_off)); +- MPI_Address(read_buf+req_off-real_off, ++ MPI_Get_address(read_buf+req_off-real_off, + &(others_req[i].mem_ptrs[j])); + ADIOI_Assert((real_off + real_size - req_off) == (int)(real_off + real_size - req_off)); + send_size[i] += (int)(ADIOI_MIN(real_off + real_size - req_off, +diff --git a/ompi/mca/io/romio314/romio/adio/common/ad_read_str.c b/ompi/mca/io/romio314/romio/adio/common/ad_read_str.c +index dc2ea71..bad948a 100644 +--- a/ompi/mca/io/romio314/romio/adio/common/ad_read_str.c ++++ b/ompi/mca/io/romio314/romio/adio/common/ad_read_str.c +@@ -56,7 +56,7 @@ void ADIOI_GEN_ReadStrided(ADIO_File fd, void *buf, int count, + ADIO_Offset n_filetypes, etype_in_filetype, st_n_filetypes, size_in_filetype; + ADIO_Offset abs_off_in_filetype=0, new_frd_size, frd_size=0, st_frd_size; + MPI_Count filetype_size, etype_size, buftype_size, partial_read; +- MPI_Aint filetype_extent, buftype_extent; ++ MPI_Aint filetype_extent, buftype_extent, lb; + int buf_count, buftype_is_contig, filetype_is_contig; + ADIO_Offset userbuf_off, req_len, sum; + ADIO_Offset off, req_off, disp, end_offset=0, readbuf_off, start_off; +@@ -94,9 +94,9 @@ void ADIOI_GEN_ReadStrided(ADIO_File fd, void *buf, int count, + return; + } + +- MPI_Type_extent(fd->filetype, &filetype_extent); ++ MPI_Type_get_extent(fd->filetype, &lb, &filetype_extent); + MPI_Type_size_x(datatype, &buftype_size); +- MPI_Type_extent(datatype, &buftype_extent); ++ MPI_Type_get_extent(datatype, &lb, &buftype_extent); + etype_size = fd->etype_size; + + ADIOI_Assert((buftype_size * count) == ((ADIO_Offset)(MPI_Count)buftype_size * (ADIO_Offset)count)); +diff --git a/ompi/mca/io/romio314/romio/adio/common/ad_read_str_naive.c b/ompi/mca/io/romio314/romio/adio/common/ad_read_str_naive.c +index 6ecebda..cb57489 100644 +--- a/ompi/mca/io/romio314/romio/adio/common/ad_read_str_naive.c ++++ b/ompi/mca/io/romio314/romio/adio/common/ad_read_str_naive.c +@@ -23,7 +23,7 @@ void ADIOI_GEN_ReadStrided_naive(ADIO_File fd, void *buf, int count, + ADIO_Offset abs_off_in_filetype=0; + MPI_Count bufsize, filetype_size, buftype_size, size_in_filetype; + ADIO_Offset etype_size; +- MPI_Aint filetype_extent, buftype_extent; ++ MPI_Aint filetype_extent, buftype_extent, lb; + int buf_count, buftype_is_contig, filetype_is_contig; + ADIO_Offset userbuf_off; + ADIO_Offset off, req_off, disp, end_offset=0, start_off; +@@ -43,9 +43,9 @@ void ADIOI_GEN_ReadStrided_naive(ADIO_File fd, void *buf, int count, + return; + } + +- MPI_Type_extent(fd->filetype, &filetype_extent); ++ MPI_Type_get_extent(fd->filetype, &lb, &filetype_extent); + MPI_Type_size_x(buftype, &buftype_size); +- MPI_Type_extent(buftype, &buftype_extent); ++ MPI_Type_get_extent(buftype, &lb, &buftype_extent); + etype_size = fd->etype_size; + + ADIOI_Assert((buftype_size * count) == ((ADIO_Offset)buftype_size * (ADIO_Offset)count)); +diff --git a/ompi/mca/io/romio314/romio/adio/common/ad_seek.c b/ompi/mca/io/romio314/romio/adio/common/ad_seek.c +index b987fe6..9a992dd 100644 +--- a/ompi/mca/io/romio314/romio/adio/common/ad_seek.c ++++ b/ompi/mca/io/romio314/romio/adio/common/ad_seek.c +@@ -28,7 +28,7 @@ ADIO_Offset ADIOI_GEN_SeekIndividual(ADIO_File fd, ADIO_Offset offset, + ADIO_Offset size_in_filetype, sum; + MPI_Count filetype_size, etype_size; + int filetype_is_contig; +- MPI_Aint filetype_extent; ++ MPI_Aint filetype_extent, lb; + + ADIOI_UNREFERENCED_ARG(whence); + +@@ -40,7 +40,7 @@ ADIO_Offset ADIOI_GEN_SeekIndividual(ADIO_File fd, ADIO_Offset offset, + flat_file = ADIOI_Flatlist; + while (flat_file->type != fd->filetype) flat_file = flat_file->next; + +- MPI_Type_extent(fd->filetype, &filetype_extent); ++ MPI_Type_get_extent(fd->filetype, &lb, &filetype_extent); + MPI_Type_size_x(fd->filetype, &filetype_size); + if ( ! filetype_size ) { + /* Since offset relative to the filetype size, we can't +diff --git a/ompi/mca/io/romio314/romio/adio/common/ad_subarray.c b/ompi/mca/io/romio314/romio/adio/common/ad_subarray.c +index e7984ac..6ae7015 100644 +--- a/ompi/mca/io/romio314/romio/adio/common/ad_subarray.c ++++ b/ompi/mca/io/romio314/romio/adio/common/ad_subarray.c +@@ -16,11 +16,11 @@ int ADIO_Type_create_subarray(int ndims, + MPI_Datatype oldtype, + MPI_Datatype *newtype) + { +- MPI_Aint extent, disps[3], size; +- int i, blklens[3]; +- MPI_Datatype tmp1, tmp2, types[3]; ++ MPI_Aint extent, disp, size, lb, ub; ++ int i, blklen; ++ MPI_Datatype tmp1, tmp2, inttype; + +- MPI_Type_extent(oldtype, &extent); ++ MPI_Type_get_extent(oldtype, &lb, &extent); + + if (order == MPI_ORDER_FORTRAN) { + /* dimension 0 changes fastest */ +@@ -35,18 +35,18 @@ int ADIO_Type_create_subarray(int ndims, + size = (MPI_Aint)array_of_sizes[0]*extent; + for (i=2; i=0; i--) { + size *= (MPI_Aint)array_of_sizes[i+1]; +- MPI_Type_hvector(array_of_subsizes[i], 1, size, tmp1, &tmp2); ++ MPI_Type_create_hvector(array_of_subsizes[i], 1, size, tmp1, &tmp2); + MPI_Type_free(&tmp1); + tmp1 = tmp2; + } + } + + /* add displacement and UB */ +- disps[1] = array_of_starts[ndims-1]; ++ disp = array_of_starts[ndims-1]; + size = 1; + for (i=ndims-2; i>=0; i--) { + size *= (MPI_Aint)array_of_sizes[i+1]; +- disps[1] += size*(MPI_Aint)array_of_starts[i]; ++ disp += size*(MPI_Aint)array_of_starts[i]; + } + } + +- disps[1] *= extent; ++ disp *= extent; + +- disps[2] = extent; +- for (i=0; itype != datatype) flat_buf = flat_buf->next; + } +- MPI_Type_extent(datatype, &buftype_extent); ++ MPI_Type_get_extent(datatype, &lb, &buftype_extent); + + + /* I need to check if there are any outstanding nonblocking writes to +@@ -468,7 +468,7 @@ static void ADIOI_Exch_and_write(ADIO_File fd, void *buf, MPI_Datatype + if (req_off < off + size) { + count[i]++; + ADIOI_Assert((((ADIO_Offset)(MPIR_Upint)write_buf)+req_off-off) == (ADIO_Offset)(MPIR_Upint)(write_buf+req_off-off)); +- MPI_Address(write_buf+req_off-off, ++ MPI_Get_address(write_buf+req_off-off, + &(others_req[i].mem_ptrs[j])); + ADIOI_Assert((off + size - req_off) == (int)(off + size - req_off)); + recv_size[i] += (int)(ADIOI_MIN(off + size - req_off, +diff --git a/ompi/mca/io/romio314/romio/adio/common/ad_write_nolock.c b/ompi/mca/io/romio314/romio/adio/common/ad_write_nolock.c +index 42b5ff2..e3371a7 100644 +--- a/ompi/mca/io/romio314/romio/adio/common/ad_write_nolock.c ++++ b/ompi/mca/io/romio314/romio/adio/common/ad_write_nolock.c +@@ -35,7 +35,7 @@ void ADIOI_NOLOCK_WriteStrided(ADIO_File fd, const void *buf, int count, + ADIO_Offset n_filetypes, etype_in_filetype, size, sum; + ADIO_Offset abs_off_in_filetype=0, size_in_filetype; + MPI_Count filetype_size, etype_size, buftype_size; +- MPI_Aint filetype_extent, buftype_extent, indx; ++ MPI_Aint filetype_extent, buftype_extent, indx, lb; + int buf_count, buftype_is_contig, filetype_is_contig; + ADIO_Offset off, disp; + int flag, err_flag=0; +@@ -71,9 +71,9 @@ void ADIOI_NOLOCK_WriteStrided(ADIO_File fd, const void *buf, int count, + MPI_Comm_size(fd->comm, &nprocs); + #endif + +- MPI_Type_extent(fd->filetype, &filetype_extent); ++ MPI_Type_get_extent(fd->filetype, &lb, &filetype_extent); + MPI_Type_size_x(datatype, &buftype_size); +- MPI_Type_extent(datatype, &buftype_extent); ++ MPI_Type_get_extent(datatype, &lb, &buftype_extent); + etype_size = fd->etype_size; + + ADIOI_Assert((buftype_size * count) == ((ADIO_Offset)(unsigned)buftype_size * (ADIO_Offset)count)); +diff --git a/ompi/mca/io/romio314/romio/adio/common/ad_write_str.c b/ompi/mca/io/romio314/romio/adio/common/ad_write_str.c +index 624aeb1..9e4d7f7 100644 +--- a/ompi/mca/io/romio314/romio/adio/common/ad_write_str.c ++++ b/ompi/mca/io/romio314/romio/adio/common/ad_write_str.c +@@ -122,7 +122,7 @@ void ADIOI_GEN_WriteStrided(ADIO_File fd, const void *buf, int count, + ADIO_Offset num, size, n_filetypes, etype_in_filetype, st_n_filetypes; + ADIO_Offset n_etypes_in_filetype, abs_off_in_filetype=0; + MPI_Count filetype_size, etype_size, buftype_size; +- MPI_Aint filetype_extent, buftype_extent; ++ MPI_Aint filetype_extent, buftype_extent, lb; + int buf_count, buftype_is_contig, filetype_is_contig; + ADIO_Offset userbuf_off; + ADIO_Offset off, req_off, disp, end_offset=0, writebuf_off, start_off; +@@ -164,9 +164,9 @@ void ADIOI_GEN_WriteStrided(ADIO_File fd, const void *buf, int count, + return; + } + +- MPI_Type_extent(fd->filetype, &filetype_extent); ++ MPI_Type_get_extent(fd->filetype, &lb, &filetype_extent); + MPI_Type_size_x(datatype, &buftype_size); +- MPI_Type_extent(datatype, &buftype_extent); ++ MPI_Type_get_extent(datatype, &lb, &buftype_extent); + etype_size = fd->etype_size; + + ADIOI_Assert((buftype_size * count) == ((MPI_Count)buftype_size * (ADIO_Offset)count)); +diff --git a/ompi/mca/io/romio314/romio/adio/common/ad_write_str_naive.c b/ompi/mca/io/romio314/romio/adio/common/ad_write_str_naive.c +index 591c66f..d72f116 100644 +--- a/ompi/mca/io/romio314/romio/adio/common/ad_write_str_naive.c ++++ b/ompi/mca/io/romio314/romio/adio/common/ad_write_str_naive.c +@@ -24,7 +24,7 @@ void ADIOI_GEN_WriteStrided_naive(ADIO_File fd, const void *buf, int count, + ADIO_Offset size, n_filetypes, etype_in_filetype; + ADIO_Offset abs_off_in_filetype=0, req_len; + MPI_Count filetype_size, etype_size, buftype_size; +- MPI_Aint filetype_extent, buftype_extent; ++ MPI_Aint filetype_extent, buftype_extent, lb; + int buf_count, buftype_is_contig, filetype_is_contig; + ADIO_Offset userbuf_off; + ADIO_Offset off, req_off, disp, end_offset=0, start_off; +@@ -44,9 +44,9 @@ void ADIOI_GEN_WriteStrided_naive(ADIO_File fd, const void *buf, int count, + return; + } + +- MPI_Type_extent(fd->filetype, &filetype_extent); ++ MPI_Type_get_extent(fd->filetype, &lb, &filetype_extent); + MPI_Type_size_x(buftype, &buftype_size); +- MPI_Type_extent(buftype, &buftype_extent); ++ MPI_Type_get_extent(buftype, &lb, &buftype_extent); + etype_size = fd->etype_size; + + ADIOI_Assert((buftype_size * count) == ((ADIO_Offset)(unsigned)buftype_size * (ADIO_Offset)count)); +diff --git a/ompi/mca/io/romio314/romio/adio/common/byte_offset.c b/ompi/mca/io/romio314/romio/adio/common/byte_offset.c +index b7350f1..66f83ed 100644 +--- a/ompi/mca/io/romio314/romio/adio/common/byte_offset.c ++++ b/ompi/mca/io/romio314/romio/adio/common/byte_offset.c +@@ -18,7 +18,7 @@ void ADIOI_Get_byte_offset(ADIO_File fd, ADIO_Offset offset, ADIO_Offset *disp) + ADIO_Offset n_filetypes, etype_in_filetype, sum, abs_off_in_filetype=0, size_in_filetype; + MPI_Count n_etypes_in_filetype, filetype_size, etype_size; + int filetype_is_contig; +- MPI_Aint filetype_extent; ++ MPI_Aint filetype_extent, lb; + + ADIOI_Datatype_iscontig(fd->filetype, &filetype_is_contig); + etype_size = fd->etype_size; +@@ -46,7 +46,7 @@ void ADIOI_Get_byte_offset(ADIO_File fd, ADIO_Offset offset, ADIO_Offset *disp) + } + + /* abs. offset in bytes in the file */ +- MPI_Type_extent(fd->filetype, &filetype_extent); ++ MPI_Type_get_extent(fd->filetype, &lb, &filetype_extent); + *disp = fd->disp + n_filetypes * ADIOI_AINT_CAST_TO_OFFSET filetype_extent + abs_off_in_filetype; + } + } +diff --git a/ompi/mca/io/romio314/romio/adio/common/cb_config_list.c b/ompi/mca/io/romio314/romio/adio/common/cb_config_list.c +index 468105c..718205b 100644 +--- a/ompi/mca/io/romio314/romio/adio/common/cb_config_list.c ++++ b/ompi/mca/io/romio314/romio/adio/common/cb_config_list.c +@@ -135,12 +135,12 @@ int ADIOI_cb_gather_name_array(MPI_Comm comm, + + if (ADIOI_cb_config_list_keyval == MPI_KEYVAL_INVALID) { + /* cleaned up by ADIOI_End_call */ +- MPI_Keyval_create((MPI_Copy_function *) ADIOI_cb_copy_name_array, ++ MPI_Comm_create_keyval((MPI_Copy_function *) ADIOI_cb_copy_name_array, + (MPI_Delete_function *) ADIOI_cb_delete_name_array, + &ADIOI_cb_config_list_keyval, NULL); + } + else { +- MPI_Attr_get(comm, ADIOI_cb_config_list_keyval, (void *) &array, &found); ++ MPI_Comm_get_attr(comm, ADIOI_cb_config_list_keyval, (void *) &array, &found); + if (found) { + ADIOI_Assert(array != NULL); + *arrayp = array; +@@ -255,8 +255,8 @@ int ADIOI_cb_gather_name_array(MPI_Comm comm, + * it next time an open is performed on this same comm, and on the + * dupcomm, so we can use it in I/O operations. + */ +- MPI_Attr_put(comm, ADIOI_cb_config_list_keyval, array); +- MPI_Attr_put(dupcomm, ADIOI_cb_config_list_keyval, array); ++ MPI_Comm_set_attr (comm, ADIOI_cb_config_list_keyval, array); ++ MPI_Comm_set_attr (dupcomm, ADIOI_cb_config_list_keyval, array); + *arrayp = array; + return 0; + } +diff --git a/ompi/mca/io/romio314/romio/adio/common/eof_offset.c b/ompi/mca/io/romio314/romio/adio/common/eof_offset.c +index 7247463..c503eaf 100644 +--- a/ompi/mca/io/romio314/romio/adio/common/eof_offset.c ++++ b/ompi/mca/io/romio314/romio/adio/common/eof_offset.c +@@ -18,7 +18,7 @@ void ADIOI_Get_eof_offset(ADIO_File fd, ADIO_Offset *eof_offset) + ADIO_Offset fsize, disp, sum=0, size_in_file, n_filetypes, rem, etype_size; + int flag, i; + ADIO_Fcntl_t *fcntl_struct; +- MPI_Aint filetype_extent; ++ MPI_Aint filetype_extent, lb; + ADIOI_Flatlist_node *flat_file; + + /* find the eof in bytes */ +@@ -45,7 +45,7 @@ void ADIOI_Get_eof_offset(ADIO_File fd, ADIO_Offset *eof_offset) + flat_file = flat_file->next; + + MPI_Type_size_x(fd->filetype, &filetype_size); +- MPI_Type_extent(fd->filetype, &filetype_extent); ++ MPI_Type_get_extent(fd->filetype, &lb, &filetype_extent); + + disp = fd->disp; + n_filetypes = -1; +diff --git a/ompi/mca/io/romio314/romio/adio/common/flatten.c b/ompi/mca/io/romio314/romio/adio/common/flatten.c +index 1b6ff95..89da527 100644 +--- a/ompi/mca/io/romio314/romio/adio/common/flatten.c ++++ b/ompi/mca/io/romio314/romio/adio/common/flatten.c +@@ -198,7 +198,7 @@ void ADIOI_Flatten(MPI_Datatype datatype, ADIOI_Flatlist_node *flat, + avoid >2G integer arithmetic problems */ + ADIO_Offset top_count; + MPI_Count j, old_size, prev_index, num; +- MPI_Aint old_extent;/* Assume extents are non-negative */ ++ MPI_Aint old_extent, lb;/* Assume extents are non-negative */ + int *ints; + MPI_Aint *adds; /* Make no assumptions about +/- sign on these */ + MPI_Datatype *types; +@@ -331,7 +331,7 @@ void ADIOI_Flatten(MPI_Datatype datatype, ADIOI_Flatlist_node *flat, + num = *curr_index - prev_index; + + /* The noncontiguous types have to be replicated count times */ +- MPI_Type_extent(types[0], &old_extent); ++ MPI_Type_get_extent(types[0], &lb, &old_extent); + for (m=1; mindices[j] = flat->indices[j-num] + ADIOI_AINT_CAST_TO_OFFSET old_extent; +@@ -385,7 +385,7 @@ void ADIOI_Flatten(MPI_Datatype datatype, ADIOI_Flatlist_node *flat, + + /* The noncontiguous types have to be replicated blocklen times + and then strided. Replicate the first one. */ +- MPI_Type_extent(types[0], &old_extent); ++ MPI_Type_get_extent(types[0], &lb, &old_extent); + for (m=1; mindices[j] = flat->indices[j-num] + ADIOI_AINT_CAST_TO_OFFSET old_extent; +@@ -448,7 +448,7 @@ void ADIOI_Flatten(MPI_Datatype datatype, ADIOI_Flatlist_node *flat, + + /* The noncontiguous types have to be replicated blocklen times + and then strided. Replicate the first one. */ +- MPI_Type_extent(types[0], &old_extent); ++ MPI_Type_get_extent(types[0], &lb, &old_extent); + for (m=1; mindices[j] = flat->indices[j-num] + ADIOI_AINT_CAST_TO_OFFSET old_extent; +@@ -479,7 +479,7 @@ void ADIOI_Flatten(MPI_Datatype datatype, ADIOI_Flatlist_node *flat, + ADIOI_Type_get_envelope(types[0], &old_nints, &old_nadds, + &old_ntypes, &old_combiner); + ADIOI_Datatype_iscontig(types[0], &old_is_contig); +- MPI_Type_extent(types[0], &old_extent); ++ MPI_Type_get_extent(types[0], &lb, &old_extent); + + prev_index = *curr_index; + if ((old_combiner != MPI_COMBINER_NAMED) && (!old_is_contig)) +@@ -585,7 +585,7 @@ void ADIOI_Flatten(MPI_Datatype datatype, ADIOI_Flatlist_node *flat, + ADIOI_Type_get_envelope(types[0], &old_nints, &old_nadds, + &old_ntypes, &old_combiner); + ADIOI_Datatype_iscontig(types[0], &old_is_contig); +- MPI_Type_extent(types[0], &old_extent); ++ MPI_Type_get_extent(types[0], &lb, &old_extent); + + prev_index = *curr_index; + if ((old_combiner != MPI_COMBINER_NAMED) && (!old_is_contig)) +@@ -633,7 +633,7 @@ void ADIOI_Flatten(MPI_Datatype datatype, ADIOI_Flatlist_node *flat, + if (is_hindexed_block) { + /* this is the one place the hindexed case uses the + * extent of a type */ +- MPI_Type_extent(types[0], &old_extent); ++ MPI_Type_get_extent(types[0], &lb, &old_extent); + } + flat->indices[j] = flat->indices[j-num] + + ADIOI_AINT_CAST_TO_OFFSET old_extent; +@@ -708,7 +708,7 @@ void ADIOI_Flatten(MPI_Datatype datatype, ADIOI_Flatlist_node *flat, + + /* The noncontiguous types have to be replicated blocklens[i] times + and then strided. Replicate the first one. */ +- MPI_Type_extent(types[0], &old_extent); ++ MPI_Type_get_extent(types[0], &lb, &old_extent); + for (m=1; mblocklens[j-num] > 0) { +@@ -775,7 +775,7 @@ void ADIOI_Flatten(MPI_Datatype datatype, ADIOI_Flatlist_node *flat, + /* simplest case, current type is basic or contiguous types */ + /* By using ADIO_Offset we preserve +/- sign and + avoid >2G integer arithmetic problems */ +- if (ints[1+n] > 0 || types[n] == MPI_LB || types[n] == MPI_UB) { ++ if (ints[1+n] > 0) { + ADIO_Offset blocklength = ints[1+n]; + j = *curr_index; + flat->indices[j] = st_offset + adds[n]; +@@ -794,7 +794,7 @@ void ADIOI_Flatten(MPI_Datatype datatype, ADIOI_Flatlist_node *flat, + num = *curr_index - prev_index; + + /* The current type has to be replicated blocklens[n] times */ +- MPI_Type_extent(types[n], &old_extent); ++ MPI_Type_get_extent(types[n], &lb, &old_extent); + for (m=1; mindices[j] = +diff --git a/ompi/mca/io/romio314/romio/adio/common/get_fp_posn.c b/ompi/mca/io/romio314/romio/adio/common/get_fp_posn.c +index eb176b8..785b662 100644 +--- a/ompi/mca/io/romio314/romio/adio/common/get_fp_posn.c ++++ b/ompi/mca/io/romio314/romio/adio/common/get_fp_posn.c +@@ -18,7 +18,7 @@ void ADIOI_Get_position(ADIO_File fd, ADIO_Offset *offset) + int i, flag; + MPI_Count filetype_size, etype_size; + int filetype_is_contig; +- MPI_Aint filetype_extent; ++ MPI_Aint filetype_extent, lb; + ADIO_Offset disp, byte_offset, sum=0, size_in_file, n_filetypes, frd_size; + + ADIOI_Datatype_iscontig(fd->filetype, &filetype_is_contig); +@@ -31,7 +31,7 @@ void ADIOI_Get_position(ADIO_File fd, ADIO_Offset *offset) + while (flat_file->type != fd->filetype) flat_file = flat_file->next; + + MPI_Type_size_x(fd->filetype, &filetype_size); +- MPI_Type_extent(fd->filetype, &filetype_extent); ++ MPI_Type_get_extent(fd->filetype, &lb, &filetype_extent); + + disp = fd->disp; + byte_offset = fd->fp_ind; +diff --git a/ompi/mca/io/romio314/romio/adio/include/mpipr.h b/ompi/mca/io/romio314/romio/adio/include/mpipr.h +index 21f208e..bfe8b5e 100644 +--- a/ompi/mca/io/romio314/romio/adio/include/mpipr.h ++++ b/ompi/mca/io/romio314/romio/adio/include/mpipr.h +@@ -12,8 +12,6 @@ + + #undef MPI_Abort + #define MPI_Abort PMPI_Abort +-#undef MPI_Address +-#define MPI_Address PMPI_Address + #undef MPI_Allgather + #define MPI_Allgather PMPI_Allgather + #undef MPI_Allgatherv +@@ -30,8 +28,6 @@ + #define MPI_Attr_delete PMPI_Attr_delete + #undef MPI_Attr_get + #define MPI_Attr_get PMPI_Attr_get +-#undef MPI_Attr_put +-#define MPI_Attr_put PMPI_Attr_put + #undef MPI_Barrier + #define MPI_Barrier PMPI_Barrier + #undef MPI_Bcast +@@ -68,10 +64,14 @@ + #define MPI_Comm_compare PMPI_Comm_compare + #undef MPI_Comm_create + #define MPI_Comm_create PMPI_Comm_create ++#undef MPI_Comm_create_keyval ++#define MPI_Comm_create_keyval PMPI_Comm_create_keyval + #undef MPI_Comm_dup + #define MPI_Comm_dup PMPI_Comm_dup + #undef MPI_Comm_free + #define MPI_Comm_free PMPI_Comm_free ++#undef MPI_Comm_free_keyval ++#define MPI_Comm_free_keyval PMPI_Comm_free_keyval + #undef MPI_Comm_group + #define MPI_Comm_group PMPI_Comm_group + #undef MPI_Comm_rank +@@ -80,6 +80,8 @@ + #define MPI_Comm_remote_group PMPI_Comm_remote_group + #undef MPI_Comm_remote_size + #define MPI_Comm_remote_size PMPI_Comm_remote_size ++#undef MPI_Comm_set_attr ++#define MPI_Comm_set_attr PMPI_Comm_set_attr + #undef MPI_Comm_size + #define MPI_Comm_size PMPI_Comm_size + #undef MPI_Comm_split +@@ -106,6 +108,8 @@ + #define MPI_Gather PMPI_Gather + #undef MPI_Gatherv + #define MPI_Gatherv PMPI_Gatherv ++#undef MPI_Get_address ++#define MPI_Get_address PMPI_Get_address + #undef MPI_Get_count + #define MPI_Get_count PMPI_Get_count + #undef MPI_Get_elements +@@ -170,10 +174,6 @@ + #define MPI_Isend PMPI_Isend + #undef MPI_Issend + #define MPI_Issend PMPI_Issend +-#undef MPI_Keyval_create +-#define MPI_Keyval_create PMPI_Keyval_create +-#undef MPI_Keyval_free +-#define MPI_Keyval_free PMPI_Keyval_free + #undef MPI_Name_get + #define MPI_Name_get PMPI_Name_get + #undef MPI_Name_put +@@ -248,14 +248,22 @@ + #define MPI_Type_contiguous PMPI_Type_contiguous + #undef MPI_Type_count + #define MPI_Type_count PMPI_Type_count ++#undef MPI_Type_create_struct ++#define MPI_Type_create_struct PMPI_Type_create_struct ++#undef MPI_Type_create_resized ++#define MPI_Type_create_resized PMPI_Type_create_resized + /* #define MPI_Type_create_darray PMPI_Type_create_darray */ + #undef MPI_Type_create_indexed_block + #define MPI_Type_create_indexed_block PMPI_Type_create_indexed_block ++#undef MPI_Type_create_hindexed ++#define MPI_Type_create_hindexed PMPI_Type_create_hindexed + #undef MPI_Type_create_hindexed_block + #define MPI_Type_create_hindexed_block PMPI_Type_create_hindexed_block ++#undef MPI_Type_create_hvector ++#define MPI_Type_create_hvector PMPI_Type_create_hvector + /* #define MPI_Type_create_subarray PMPI_Type_create_subarray */ +-#undef MPI_Type_extent +-#define MPI_Type_extent PMPI_Type_extent ++#undef MPI_Type_get_extent ++#define MPI_Type_get_extent PMPI_Type_get_extent + #undef MPI_Type_free + #define MPI_Type_free PMPI_Type_free + #undef MPI_Type_get_contents +@@ -264,20 +272,10 @@ + #define MPI_Type_get_envelope PMPI_Type_get_envelope + #undef MPI_Type_get_true_extent + #define MPI_Type_get_true_extent PMPI_Type_get_true_extent +-#undef MPI_Type_hindexed +-#define MPI_Type_hindexed PMPI_Type_hindexed +-#undef MPI_Type_hvector +-#define MPI_Type_hvector PMPI_Type_hvector + #undef MPI_Type_indexed + #define MPI_Type_indexed PMPI_Type_indexed +-#undef MPI_Type_lb +-#define MPI_Type_lb PMPI_Type_lb + #undef MPI_Type_size + #define MPI_Type_size PMPI_Type_size +-#undef MPI_Type_struct +-#define MPI_Type_struct PMPI_Type_struct +-#undef MPI_Type_ub +-#define MPI_Type_ub PMPI_Type_ub + #undef MPI_Type_vector + #define MPI_Type_vector PMPI_Type_vector + #undef MPI_Unpack +diff --git a/ompi/mca/io/romio314/romio/mpi-io/get_extent.c b/ompi/mca/io/romio314/romio/mpi-io/get_extent.c +index 103f881..8b7ff15 100644 +--- a/ompi/mca/io/romio314/romio/mpi-io/get_extent.c ++++ b/ompi/mca/io/romio314/romio/mpi-io/get_extent.c +@@ -42,6 +42,7 @@ int MPI_File_get_type_extent(MPI_File fh, MPI_Datatype datatype, MPI_Aint *exten + int error_code; + ADIO_File adio_fh; + static char myname[] = "MPI_FILE_GET_TYPE_EXTENT"; ++ MPI_Aint lb; + + adio_fh = MPIO_File_resolve(fh); + +@@ -52,7 +53,7 @@ int MPI_File_get_type_extent(MPI_File fh, MPI_Datatype datatype, MPI_Aint *exten + + /* FIXME: handle other file data representations */ + +- error_code = MPI_Type_extent(datatype, extent); ++ error_code = MPI_Type_get_extent(datatype, &lb, extent); + + fn_exit: + return error_code; +diff --git a/ompi/mca/io/romio314/romio/mpi-io/mpir-mpioinit.c b/ompi/mca/io/romio314/romio/mpi-io/mpir-mpioinit.c +index 914b8d5..50d9d4e 100644 +--- a/ompi/mca/io/romio314/romio/mpi-io/mpir-mpioinit.c ++++ b/ompi/mca/io/romio314/romio/mpi-io/mpir-mpioinit.c +@@ -36,15 +36,15 @@ void MPIR_MPIOInit(int * error_code) { + } + /* --END ERROR HANDLING-- */ + +- MPI_Keyval_create(MPI_NULL_COPY_FN, ADIOI_End_call, &ADIO_Init_keyval, +- (void *) 0); ++ MPI_Comm_create_keyval (MPI_COMM_NULL_COPY_FN, ADIOI_End_call, &ADIO_Init_keyval, ++ (void *) 0); + + /* put a dummy attribute on MPI_COMM_SELF, because we want the delete + function to be called when MPI_COMM_SELF is freed. Clarified + in MPI-2 section 4.8, the standard mandates that attributes on + MPI_COMM_SELF get cleaned up early in MPI_Finalize */ + +- MPI_Attr_put(MPI_COMM_SELF, ADIO_Init_keyval, (void *) 0); ++ MPI_Comm_set_attr (MPI_COMM_SELF, ADIO_Init_keyval, (void *) 0); + + /* initialize ADIO */ + ADIO_Init( (int *)0, (char ***)0, error_code); diff --git a/ompi/mca/io/romio321/romio/adio/ad_nfs/ad_nfs_read.c b/ompi/mca/io/romio321/romio/adio/ad_nfs/ad_nfs_read.c index aa9a8071b4..6dce289311 100644 --- a/ompi/mca/io/romio321/romio/adio/ad_nfs/ad_nfs_read.c +++ b/ompi/mca/io/romio321/romio/adio/ad_nfs/ad_nfs_read.c @@ -175,7 +175,7 @@ void ADIOI_NFS_ReadStrided(ADIO_File fd, void *buf, int count, ADIO_Offset abs_off_in_filetype=0; int req_len, partial_read; MPI_Count filetype_size, etype_size, buftype_size; - MPI_Aint filetype_extent, buftype_extent; + MPI_Aint filetype_extent, buftype_extent, lb; int buf_count, buftype_is_contig, filetype_is_contig; ADIO_Offset userbuf_off; ADIO_Offset off, req_off, disp, end_offset=0, readbuf_off, start_off; @@ -198,9 +198,9 @@ void ADIOI_NFS_ReadStrided(ADIO_File fd, void *buf, int count, return; } - MPI_Type_extent(fd->filetype, &filetype_extent); + MPI_Type_get_extent(fd->filetype, &lb, &filetype_extent); MPI_Type_size_x(datatype, &buftype_size); - MPI_Type_extent(datatype, &buftype_extent); + MPI_Type_get_extent(datatype, &lb, &buftype_extent); etype_size = fd->etype_size; bufsize = buftype_size * count; diff --git a/ompi/mca/io/romio321/romio/adio/ad_nfs/ad_nfs_write.c b/ompi/mca/io/romio321/romio/adio/ad_nfs/ad_nfs_write.c index 081774870e..06dca92ef8 100644 --- a/ompi/mca/io/romio321/romio/adio/ad_nfs/ad_nfs_write.c +++ b/ompi/mca/io/romio321/romio/adio/ad_nfs/ad_nfs_write.c @@ -279,7 +279,7 @@ void ADIOI_NFS_WriteStrided(ADIO_File fd, const void *buf, int count, ADIO_Offset abs_off_in_filetype=0; int req_len; MPI_Count filetype_size, etype_size, buftype_size; - MPI_Aint filetype_extent, buftype_extent; + MPI_Aint filetype_extent, buftype_extent, lb; int buf_count, buftype_is_contig, filetype_is_contig; ADIO_Offset userbuf_off; ADIO_Offset off, req_off, disp, end_offset=0, writebuf_off, start_off; @@ -301,9 +301,9 @@ void ADIOI_NFS_WriteStrided(ADIO_File fd, const void *buf, int count, return; } - MPI_Type_extent(fd->filetype, &filetype_extent); + MPI_Type_get_extent(fd->filetype, &lb, &filetype_extent); MPI_Type_size_x(datatype, &buftype_size); - MPI_Type_extent(datatype, &buftype_extent); + MPI_Type_get_extent(datatype, &lb, &buftype_extent); etype_size = fd->etype_size; bufsize = buftype_size * count; diff --git a/ompi/mca/io/romio321/romio/adio/ad_testfs/ad_testfs_seek.c b/ompi/mca/io/romio321/romio/adio/ad_testfs/ad_testfs_seek.c index df6d30a516..9366a1215e 100644 --- a/ompi/mca/io/romio321/romio/adio/ad_testfs/ad_testfs_seek.c +++ b/ompi/mca/io/romio321/romio/adio/ad_testfs/ad_testfs_seek.c @@ -30,7 +30,7 @@ ADIO_Offset ADIOI_TESTFS_SeekIndividual(ADIO_File fd, ADIO_Offset offset, int size_in_filetype; int filetype_is_contig; MPI_Count filetype_size; - MPI_Aint etype_size, filetype_extent; + MPI_Aint etype_size, filetype_extent, lb; *error_code = MPI_SUCCESS; @@ -47,7 +47,7 @@ ADIO_Offset ADIOI_TESTFS_SeekIndividual(ADIO_File fd, ADIO_Offset offset, flat_file = ADIOI_Flatlist; while (flat_file->type != fd->filetype) flat_file = flat_file->next; - MPI_Type_extent(fd->filetype, &filetype_extent); + MPI_Type_get_extent(fd->filetype, &lb, &filetype_extent); MPI_Type_size_x(fd->filetype, &filetype_size); if ( ! filetype_size ) { *error_code = MPI_SUCCESS; diff --git a/ompi/mca/io/romio321/romio/adio/common/ad_aggregate_new.c b/ompi/mca/io/romio321/romio/adio/common/ad_aggregate_new.c index ba5af6b0c3..aca60b2702 100644 --- a/ompi/mca/io/romio321/romio/adio/common/ad_aggregate_new.c +++ b/ompi/mca/io/romio321/romio/adio/common/ad_aggregate_new.c @@ -237,18 +237,18 @@ void ADIOI_Calc_file_realms_fsize (ADIO_File fd, int nprocs_for_coll, void ADIOI_Create_fr_simpletype (int size, int nprocs_for_coll, MPI_Datatype *simpletype) { - int count=2, blocklens[2]; - MPI_Aint indices[2]; - MPI_Datatype old_types[2]; + int count=1, blocklens[1]; + MPI_Aint indices[1]; + MPI_Datatype old_types[1]; + MPI_Datatype inttype; blocklens[0] = size; - blocklens[1] = 1; indices[0] = 0; - indices[1] = size*nprocs_for_coll; old_types[0] = MPI_BYTE; - old_types[1] = MPI_UB; - MPI_Type_struct (count, blocklens, indices, old_types, simpletype); + MPI_Type_create_struct (count, blocklens, indices, old_types, &inttype); + MPI_Type_create_resized (inttype, 0, size*nprocs_for_coll, simpletype); + MPI_Type_free (&inttype); MPI_Type_commit (simpletype); } diff --git a/ompi/mca/io/romio321/romio/adio/common/ad_coll_build_req_new.c b/ompi/mca/io/romio321/romio/adio/common/ad_coll_build_req_new.c index 2ea97545f9..a15d61cc32 100644 --- a/ompi/mca/io/romio321/romio/adio/common/ad_coll_build_req_new.c +++ b/ompi/mca/io/romio321/romio/adio/common/ad_coll_build_req_new.c @@ -279,7 +279,7 @@ static inline int get_next_fr_off(ADIO_File fd, ADIO_Offset *fr_next_off_p, ADIO_Offset *fr_max_len_p) { - MPI_Aint fr_extent = -1; + MPI_Aint fr_extent = -1, lb; ADIO_Offset tmp_off, off_rem; ADIOI_Flatlist_node *fr_node_p = ADIOI_Flatlist; int i = -1, fr_dtype_ct = 0; @@ -299,7 +299,7 @@ static inline int get_next_fr_off(ADIO_File fd, /* Calculate how many times to loop through the fr_type * and where the next fr_off is. */ - MPI_Type_extent(*fr_type_p, &fr_extent); + MPI_Type_get_extent(*fr_type_p, &lb, &fr_extent); tmp_off = off - fr_st_off; fr_dtype_ct = tmp_off / fr_extent; off_rem = tmp_off % fr_extent; @@ -844,9 +844,9 @@ int ADIOI_Build_agg_reqs(ADIO_File fd, int rw_type, int nprocs, { if (client_comm_sz_arr[i] > 0) { - MPI_Type_hindexed(client_ol_ct_arr[i], client_blk_arr[i], - client_disp_arr[i], MPI_BYTE, - &(client_comm_dtype_arr[i])); + MPI_Type_create_hindexed(client_ol_ct_arr[i], client_blk_arr[i], + client_disp_arr[i], MPI_BYTE, + &(client_comm_dtype_arr[i])); MPI_Type_commit(&(client_comm_dtype_arr[i])); } else @@ -863,8 +863,8 @@ int ADIOI_Build_agg_reqs(ADIO_File fd, int rw_type, int nprocs, if (agg_ol_ct == 1) MPI_Type_contiguous (agg_blk_arr[0], MPI_BYTE, agg_dtype_p); else if (agg_ol_ct > 1) - MPI_Type_hindexed(agg_ol_ct, agg_blk_arr, agg_disp_arr, MPI_BYTE, - agg_dtype_p); + MPI_Type_create_hindexed(agg_ol_ct, agg_blk_arr, agg_disp_arr, MPI_BYTE, + agg_dtype_p); MPI_Type_commit(agg_dtype_p); @@ -1203,9 +1203,9 @@ int ADIOI_Build_client_reqs(ADIO_File fd, { if (agg_comm_sz_arr[i] > 0) { - MPI_Type_hindexed(agg_ol_ct_arr[i], agg_blk_arr[i], - agg_disp_arr[i], MPI_BYTE, - &(agg_comm_dtype_arr[i])); + MPI_Type_create_hindexed(agg_ol_ct_arr[i], agg_blk_arr[i], + agg_disp_arr[i], MPI_BYTE, + &(agg_comm_dtype_arr[i])); MPI_Type_commit(&(agg_comm_dtype_arr[i])); } else @@ -2063,8 +2063,8 @@ int ADIOI_Build_client_req(ADIO_File fd, /* Create the aggregator MPI_Datatype */ if (agg_comm_sz > 0) { - MPI_Type_hindexed(agg_ol_ct, agg_blk_arr, agg_disp_arr, MPI_BYTE, - agg_comm_dtype_p); + MPI_Type_create_hindexed(agg_ol_ct, agg_blk_arr, agg_disp_arr, MPI_BYTE, + agg_comm_dtype_p); MPI_Type_commit(agg_comm_dtype_p); } else diff --git a/ompi/mca/io/romio321/romio/adio/common/ad_coll_exch_new.c b/ompi/mca/io/romio321/romio/adio/common/ad_coll_exch_new.c index cbc6454749..7013a3a855 100644 --- a/ompi/mca/io/romio321/romio/adio/common/ad_coll_exch_new.c +++ b/ompi/mca/io/romio321/romio/adio/common/ad_coll_exch_new.c @@ -127,7 +127,7 @@ void ADIOI_Exch_file_views(int myrank, int nprocs, int file_ptr_type, MPI_Request *send_req_arr = NULL, *recv_req_arr = NULL; MPI_Status *statuses = NULL; ADIO_Offset disp_off_sz_ext_typesz[6]; - MPI_Aint memtype_extent, filetype_extent; + MPI_Aint memtype_extent, filetype_extent, lb; int ret = -1; /* parameters for datatypes */ @@ -143,7 +143,7 @@ void ADIOI_Exch_file_views(int myrank, int nprocs, int file_ptr_type, * freed in the close and should have been flattened in the file * view. */ MPI_Type_size_x(datatype, &memtype_sz); - MPI_Type_extent(datatype, &memtype_extent); + MPI_Type_get_extent(datatype, &lb, &memtype_extent); if (memtype_sz == memtype_extent) { memtype_is_contig = 1; flat_mem_p = ADIOI_Add_contig_flattened(datatype); @@ -153,7 +153,7 @@ void ADIOI_Exch_file_views(int myrank, int nprocs, int file_ptr_type, flat_mem_p = ADIOI_Flatten_and_find(datatype); } - MPI_Type_extent(fd->filetype, &filetype_extent); + MPI_Type_get_extent(fd->filetype, &lb, &filetype_extent); MPI_Type_size_x(fd->filetype, &filetype_sz); if (filetype_extent == filetype_sz) { flat_file_p = ADIOI_Add_contig_flattened(fd->filetype); diff --git a/ompi/mca/io/romio321/romio/adio/common/ad_darray.c b/ompi/mca/io/romio321/romio/adio/common/ad_darray.c index 23715c412f..3c9ca36a8e 100644 --- a/ompi/mca/io/romio321/romio/adio/common/ad_darray.c +++ b/ompi/mca/io/romio321/romio/adio/common/ad_darray.c @@ -24,11 +24,11 @@ int ADIO_Type_create_darray(int size, int rank, int ndims, int order, MPI_Datatype oldtype, MPI_Datatype *newtype) { - MPI_Datatype type_old, type_new=MPI_DATATYPE_NULL, types[3]; - int procs, tmp_rank, i, tmp_size, blklens[3], *coords; - MPI_Aint *st_offsets, orig_extent, disps[3]; + MPI_Datatype type_old, type_new=MPI_DATATYPE_NULL, inttype; + int procs, tmp_rank, i, tmp_size, blklen, *coords; + MPI_Aint *st_offsets, orig_extent, disp, ub, lb; - MPI_Type_extent(oldtype, &orig_extent); + MPI_Type_get_extent(oldtype, &lb, &orig_extent); /* calculate position in Cartesian grid as MPI would (row-major ordering) */ @@ -77,11 +77,11 @@ int ADIO_Type_create_darray(int size, int rank, int ndims, } /* add displacement and UB */ - disps[1] = st_offsets[0]; + disp = st_offsets[0]; tmp_size = 1; for (i=1; i=0; i--) { tmp_size *= array_of_gsizes[i+1]; - disps[1] += (MPI_Aint)tmp_size*st_offsets[i]; + disp += (MPI_Aint)tmp_size*st_offsets[i]; } } - disps[1] *= orig_extent; + disp *= orig_extent; - disps[2] = orig_extent; - for (i=0; idim; i--) stride *= (MPI_Aint)array_of_gsizes[i]; - MPI_Type_hvector(mysize, 1, stride, type_old, type_new); + MPI_Type_create_hvector(mysize, 1, stride, type_old, type_new); } } @@ -217,7 +215,7 @@ static int MPIOI_Type_cyclic(int *array_of_gsizes, int dim, int ndims, int nproc rank = coordinate of this process in dimension dim */ int blksize, i, blklens[3], st_index, end_index, local_size, rem, count; MPI_Aint stride, disps[3]; - MPI_Datatype type_tmp, types[3]; + MPI_Datatype type_tmp, type_tmp1, types[3]; if (darg == MPI_DISTRIBUTE_DFLT_DARG) blksize = 1; else blksize = darg; @@ -246,7 +244,7 @@ static int MPIOI_Type_cyclic(int *array_of_gsizes, int dim, int ndims, int nproc for (i=0; idim; i--) stride *= (MPI_Aint)array_of_gsizes[i]; - MPI_Type_hvector(count, blksize, stride, type_old, type_new); + MPI_Type_create_hvector(count, blksize, stride, type_old, type_new); if (rem) { /* if the last block is of size less than blksize, include @@ -259,7 +257,7 @@ static int MPIOI_Type_cyclic(int *array_of_gsizes, int dim, int ndims, int nproc blklens[0] = 1; blklens[1] = rem; - MPI_Type_struct(2, blklens, disps, types, &type_tmp); + MPI_Type_create_struct(2, blklens, disps, types, &type_tmp); MPI_Type_free(type_new); *type_new = type_tmp; @@ -269,14 +267,12 @@ static int MPIOI_Type_cyclic(int *array_of_gsizes, int dim, int ndims, int nproc dimension correctly. */ if ( ((order == MPI_ORDER_FORTRAN) && (dim == 0)) || ((order == MPI_ORDER_C) && (dim == ndims-1)) ) { - types[0] = MPI_LB; - disps[0] = 0; - types[1] = *type_new; - disps[1] = (MPI_Aint)rank * (MPI_Aint)blksize * orig_extent; - types[2] = MPI_UB; - disps[2] = orig_extent * (MPI_Aint)array_of_gsizes[dim]; - blklens[0] = blklens[1] = blklens[2] = 1; - MPI_Type_struct(3, blklens, disps, types, &type_tmp); + types[0] = *type_new; + disps[0] = (MPI_Aint)rank * (MPI_Aint)blksize * orig_extent; + blklens[0] = 1; + MPI_Type_create_struct(1, blklens, disps, types, &type_tmp1); + MPI_Type_create_resized (type_tmp1, 0, orig_extent * (MPI_Aint)array_of_gsizes[dim], &type_tmp); + MPI_Type_free(&type_tmp1); MPI_Type_free(type_new); *type_new = type_tmp; diff --git a/ompi/mca/io/romio321/romio/adio/common/ad_end.c b/ompi/mca/io/romio321/romio/adio/common/ad_end.c index 066c65c27e..a4d186f927 100644 --- a/ompi/mca/io/romio321/romio/adio/common/ad_end.c +++ b/ompi/mca/io/romio321/romio/adio/common/ad_end.c @@ -72,13 +72,13 @@ int ADIOI_End_call(MPI_Comm comm, int keyval, void *attribute_val, void ADIOI_UNREFERENCED_ARG(attribute_val); ADIOI_UNREFERENCED_ARG(extra_state); - MPI_Keyval_free(&keyval); + MPI_Comm_free_keyval (&keyval); /* The end call will be called after all possible uses of this keyval, even * if a file was opened with MPI_COMM_SELF. Note, this assumes LIFO * MPI_COMM_SELF attribute destruction behavior mandated by MPI-2.2. */ if (ADIOI_cb_config_list_keyval != MPI_KEYVAL_INVALID) - MPI_Keyval_free(&ADIOI_cb_config_list_keyval); + MPI_Comm_free_keyval (&ADIOI_cb_config_list_keyval); ADIO_End(&error_code); return error_code; diff --git a/ompi/mca/io/romio321/romio/adio/common/ad_io_coll.c b/ompi/mca/io/romio321/romio/adio/common/ad_io_coll.c index 7e980e1e1d..273c8a551b 100644 --- a/ompi/mca/io/romio321/romio/adio/common/ad_io_coll.c +++ b/ompi/mca/io/romio321/romio/adio/common/ad_io_coll.c @@ -54,7 +54,7 @@ void ADIOI_IOStridedColl (ADIO_File fd, void *buf, int count, int rdwr, int interleave_count = 0, i, nprocs, myrank, nprocs_for_coll; int cb_enable; ADIO_Offset bufsize; - MPI_Aint extent; + MPI_Aint extent, lb; #ifdef DEBUG2 MPI_Aint bufextent; #endif @@ -191,7 +191,7 @@ void ADIOI_IOStridedColl (ADIO_File fd, void *buf, int count, int rdwr, return; } - MPI_Type_extent(datatype, &extent); + MPI_Type_get_extent(datatype, &lb, &extent); #ifdef DEBUG2 bufextent = extent * count; #endif @@ -702,7 +702,7 @@ void ADIOI_Calc_bounds (ADIO_File fd, int count, MPI_Datatype buftype, { MPI_Count filetype_size, buftype_size, etype_size; int sum; - MPI_Aint filetype_extent; + MPI_Aint filetype_extent, lb; ADIO_Offset total_io; int filetype_is_contig; ADIO_Offset i, remainder; @@ -726,7 +726,7 @@ void ADIOI_Calc_bounds (ADIO_File fd, int count, MPI_Datatype buftype, ADIOI_Datatype_iscontig (fd->filetype, &filetype_is_contig); MPI_Type_size_x (fd->filetype, &filetype_size); - MPI_Type_extent (fd->filetype, &filetype_extent); + MPI_Type_get_extent (fd->filetype, &lb, &filetype_extent); MPI_Type_size_x (fd->etype, &etype_size); MPI_Type_size_x (buftype, &buftype_size); @@ -884,7 +884,7 @@ void ADIOI_IOFiletype(ADIO_File fd, void *buf, int count, int user_ind_rd_buffer_size; int f_is_contig, m_is_contig; int user_ds_read, user_ds_write; - MPI_Aint f_extent; + MPI_Aint f_extent, lb; MPI_Count f_size; int f_ds_percent; /* size/extent */ @@ -894,7 +894,7 @@ void ADIOI_IOFiletype(ADIO_File fd, void *buf, int count, else MPE_Log_event(5008, 0, NULL); #endif - MPI_Type_extent(custom_ftype, &f_extent); + MPI_Type_get_extent(custom_ftype, &lb, &f_extent); MPI_Type_size_x(custom_ftype, &f_size); f_ds_percent = 100 * f_size / f_extent; diff --git a/ompi/mca/io/romio321/romio/adio/common/ad_read_coll.c b/ompi/mca/io/romio321/romio/adio/common/ad_read_coll.c index 4cd481bc2b..11e657b7e3 100644 --- a/ompi/mca/io/romio321/romio/adio/common/ad_read_coll.c +++ b/ompi/mca/io/romio321/romio/adio/common/ad_read_coll.c @@ -307,8 +307,7 @@ void ADIOI_Calc_my_off_len(ADIO_File fd, int bufcount, MPI_Datatype ADIOI_Datatype_iscontig(fd->filetype, &filetype_is_contig); MPI_Type_size_x(fd->filetype, &filetype_size); - MPI_Type_extent(fd->filetype, &filetype_extent); - MPI_Type_lb(fd->filetype, &filetype_lb); + MPI_Type_get_extent(fd->filetype, &filetype_lb, &filetype_extent); MPI_Type_size_x(datatype, &buftype_size); etype_size = fd->etype_size; @@ -524,7 +523,7 @@ static void ADIOI_Read_and_exch(ADIO_File fd, void *buf, MPI_Datatype int req_len, flag, rank; MPI_Status status; ADIOI_Flatlist_node *flat_buf=NULL; - MPI_Aint buftype_extent; + MPI_Aint buftype_extent, lb; int coll_bufsize; *error_code = MPI_SUCCESS; /* changed below if error */ @@ -603,7 +602,7 @@ static void ADIOI_Read_and_exch(ADIO_File fd, void *buf, MPI_Datatype if (!buftype_is_contig) { flat_buf = ADIOI_Flatten_and_find(datatype); } - MPI_Type_extent(datatype, &buftype_extent); + MPI_Type_get_extent(datatype, &lb, &buftype_extent); done = 0; off = st_loc; @@ -683,7 +682,7 @@ static void ADIOI_Read_and_exch(ADIO_File fd, void *buf, MPI_Datatype if (req_off < real_off + real_size) { count[i]++; ADIOI_Assert((((ADIO_Offset)(MPIU_Upint)read_buf)+req_off-real_off) == (ADIO_Offset)(MPIU_Upint)(read_buf+req_off-real_off)); - MPI_Address(read_buf+req_off-real_off, + MPI_Get_address(read_buf+req_off-real_off, &(others_req[i].mem_ptrs[j])); ADIOI_Assert((real_off + real_size - req_off) == (int)(real_off + real_size - req_off)); send_size[i] += (int)(ADIOI_MIN(real_off + real_size - req_off, diff --git a/ompi/mca/io/romio321/romio/adio/common/ad_read_str.c b/ompi/mca/io/romio321/romio/adio/common/ad_read_str.c index 9b22a441f4..b3be3feb62 100644 --- a/ompi/mca/io/romio321/romio/adio/common/ad_read_str.c +++ b/ompi/mca/io/romio321/romio/adio/common/ad_read_str.c @@ -56,7 +56,7 @@ void ADIOI_GEN_ReadStrided(ADIO_File fd, void *buf, int count, ADIO_Offset n_filetypes, etype_in_filetype, st_n_filetypes, size_in_filetype; ADIO_Offset abs_off_in_filetype=0, new_frd_size, frd_size=0, st_frd_size; MPI_Count filetype_size, etype_size, buftype_size, partial_read; - MPI_Aint filetype_extent, buftype_extent; + MPI_Aint filetype_extent, buftype_extent, lb; int buf_count, buftype_is_contig, filetype_is_contig; ADIO_Offset userbuf_off, req_len, sum; ADIO_Offset off, req_off, disp, end_offset=0, readbuf_off, start_off; @@ -94,9 +94,9 @@ void ADIOI_GEN_ReadStrided(ADIO_File fd, void *buf, int count, return; } - MPI_Type_extent(fd->filetype, &filetype_extent); + MPI_Type_get_extent(fd->filetype, &lb, &filetype_extent); MPI_Type_size_x(datatype, &buftype_size); - MPI_Type_extent(datatype, &buftype_extent); + MPI_Type_get_extent(datatype, &lb, &buftype_extent); etype_size = fd->etype_size; ADIOI_Assert((buftype_size * count) == ((ADIO_Offset)(MPI_Count)buftype_size * (ADIO_Offset)count)); diff --git a/ompi/mca/io/romio321/romio/adio/common/ad_read_str_naive.c b/ompi/mca/io/romio321/romio/adio/common/ad_read_str_naive.c index 44abee7bf3..a65eede955 100644 --- a/ompi/mca/io/romio321/romio/adio/common/ad_read_str_naive.c +++ b/ompi/mca/io/romio321/romio/adio/common/ad_read_str_naive.c @@ -23,7 +23,7 @@ void ADIOI_GEN_ReadStrided_naive(ADIO_File fd, void *buf, int count, ADIO_Offset abs_off_in_filetype=0; MPI_Count bufsize, filetype_size, buftype_size, size_in_filetype; ADIO_Offset etype_size; - MPI_Aint filetype_extent, buftype_extent; + MPI_Aint filetype_extent, buftype_extent, lb; int buf_count, buftype_is_contig, filetype_is_contig; ADIO_Offset userbuf_off; ADIO_Offset off, req_off, disp, end_offset=0, start_off; @@ -43,9 +43,9 @@ void ADIOI_GEN_ReadStrided_naive(ADIO_File fd, void *buf, int count, return; } - MPI_Type_extent(fd->filetype, &filetype_extent); + MPI_Type_get_extent(fd->filetype, &lb, &filetype_extent); MPI_Type_size_x(buftype, &buftype_size); - MPI_Type_extent(buftype, &buftype_extent); + MPI_Type_get_extent(buftype, &lb, &buftype_extent); etype_size = fd->etype_size; ADIOI_Assert((buftype_size * count) == ((ADIO_Offset)buftype_size * (ADIO_Offset)count)); diff --git a/ompi/mca/io/romio321/romio/adio/common/ad_seek.c b/ompi/mca/io/romio321/romio/adio/common/ad_seek.c index ceaf6f2d62..2d6f75fd54 100644 --- a/ompi/mca/io/romio321/romio/adio/common/ad_seek.c +++ b/ompi/mca/io/romio321/romio/adio/common/ad_seek.c @@ -28,7 +28,7 @@ ADIO_Offset ADIOI_GEN_SeekIndividual(ADIO_File fd, ADIO_Offset offset, ADIO_Offset size_in_filetype, sum; MPI_Count filetype_size, etype_size; int filetype_is_contig; - MPI_Aint filetype_extent; + MPI_Aint filetype_extent, lb; ADIOI_UNREFERENCED_ARG(whence); @@ -40,7 +40,7 @@ ADIO_Offset ADIOI_GEN_SeekIndividual(ADIO_File fd, ADIO_Offset offset, flat_file = ADIOI_Flatlist; while (flat_file->type != fd->filetype) flat_file = flat_file->next; - MPI_Type_extent(fd->filetype, &filetype_extent); + MPI_Type_get_extent(fd->filetype, &lb, &filetype_extent); MPI_Type_size_x(fd->filetype, &filetype_size); if ( ! filetype_size ) { /* Since offset relative to the filetype size, we can't diff --git a/ompi/mca/io/romio321/romio/adio/common/ad_subarray.c b/ompi/mca/io/romio321/romio/adio/common/ad_subarray.c index c4597646ad..c6eb9450ce 100644 --- a/ompi/mca/io/romio321/romio/adio/common/ad_subarray.c +++ b/ompi/mca/io/romio321/romio/adio/common/ad_subarray.c @@ -16,11 +16,11 @@ int ADIO_Type_create_subarray(int ndims, MPI_Datatype oldtype, MPI_Datatype *newtype) { - MPI_Aint extent, disps[3], size; - int i, blklens[3]; - MPI_Datatype tmp1, tmp2, types[3]; + MPI_Aint extent, disp, size, lb, ub; + int i, blklen; + MPI_Datatype tmp1, tmp2, inttype; - MPI_Type_extent(oldtype, &extent); + MPI_Type_get_extent(oldtype, &lb, &extent); if (order == MPI_ORDER_FORTRAN) { /* dimension 0 changes fastest */ @@ -35,18 +35,18 @@ int ADIO_Type_create_subarray(int ndims, size = (MPI_Aint)array_of_sizes[0]*extent; for (i=2; i=0; i--) { size *= (MPI_Aint)array_of_sizes[i+1]; - MPI_Type_hvector(array_of_subsizes[i], 1, size, tmp1, &tmp2); + MPI_Type_create_hvector(array_of_subsizes[i], 1, size, tmp1, &tmp2); MPI_Type_free(&tmp1); tmp1 = tmp2; } } /* add displacement and UB */ - disps[1] = array_of_starts[ndims-1]; + disp = array_of_starts[ndims-1]; size = 1; for (i=ndims-2; i>=0; i--) { size *= (MPI_Aint)array_of_sizes[i+1]; - disps[1] += size*(MPI_Aint)array_of_starts[i]; + disp += size*(MPI_Aint)array_of_starts[i]; } } - disps[1] *= extent; + disp *= extent; - disps[2] = extent; - for (i=0; icomm, &nprocs); #endif - MPI_Type_extent(fd->filetype, &filetype_extent); + MPI_Type_get_extent(fd->filetype, &lb, &filetype_extent); MPI_Type_size_x(datatype, &buftype_size); - MPI_Type_extent(datatype, &buftype_extent); + MPI_Type_get_extent(datatype, &lb, &buftype_extent); etype_size = fd->etype_size; ADIOI_Assert((buftype_size * count) == ((ADIO_Offset)(unsigned)buftype_size * (ADIO_Offset)count)); diff --git a/ompi/mca/io/romio321/romio/adio/common/ad_write_str.c b/ompi/mca/io/romio321/romio/adio/common/ad_write_str.c index 6c62a7c622..d5a690adfa 100644 --- a/ompi/mca/io/romio321/romio/adio/common/ad_write_str.c +++ b/ompi/mca/io/romio321/romio/adio/common/ad_write_str.c @@ -164,9 +164,9 @@ void ADIOI_GEN_WriteStrided(ADIO_File fd, const void *buf, int count, return; } - MPI_Type_extent(fd->filetype, &filetype_extent); + MPI_Type_get_extent(fd->filetype, &lb, &filetype_extent); MPI_Type_size_x(datatype, &buftype_size); - MPI_Type_extent(datatype, &buftype_extent); + MPI_Type_get_extent(datatype, &lb, &buftype_extent); etype_size = fd->etype_size; ADIOI_Assert((buftype_size * count) == ((MPI_Count)buftype_size * (ADIO_Offset)count)); diff --git a/ompi/mca/io/romio321/romio/adio/common/ad_write_str_naive.c b/ompi/mca/io/romio321/romio/adio/common/ad_write_str_naive.c index f004cd8af0..322f079305 100644 --- a/ompi/mca/io/romio321/romio/adio/common/ad_write_str_naive.c +++ b/ompi/mca/io/romio321/romio/adio/common/ad_write_str_naive.c @@ -44,9 +44,9 @@ void ADIOI_GEN_WriteStrided_naive(ADIO_File fd, const void *buf, int count, return; } - MPI_Type_extent(fd->filetype, &filetype_extent); + MPI_Type_get_extent(fd->filetype, &lb, &filetype_extent); MPI_Type_size_x(buftype, &buftype_size); - MPI_Type_extent(buftype, &buftype_extent); + MPI_Type_get_extent(buftype, &lb, &buftype_extent); etype_size = fd->etype_size; ADIOI_Assert((buftype_size * count) == ((ADIO_Offset)(unsigned)buftype_size * (ADIO_Offset)count)); diff --git a/ompi/mca/io/romio321/romio/adio/common/byte_offset.c b/ompi/mca/io/romio321/romio/adio/common/byte_offset.c index df0a240849..7c3d1fe1c7 100644 --- a/ompi/mca/io/romio321/romio/adio/common/byte_offset.c +++ b/ompi/mca/io/romio321/romio/adio/common/byte_offset.c @@ -18,7 +18,7 @@ void ADIOI_Get_byte_offset(ADIO_File fd, ADIO_Offset offset, ADIO_Offset *disp) ADIO_Offset n_filetypes, etype_in_filetype, sum, abs_off_in_filetype=0, size_in_filetype; MPI_Count n_etypes_in_filetype, filetype_size, etype_size; int filetype_is_contig; - MPI_Aint filetype_extent; + MPI_Aint filetype_extent, lb; ADIOI_Datatype_iscontig(fd->filetype, &filetype_is_contig); etype_size = fd->etype_size; @@ -46,7 +46,7 @@ void ADIOI_Get_byte_offset(ADIO_File fd, ADIO_Offset offset, ADIO_Offset *disp) } /* abs. offset in bytes in the file */ - MPI_Type_extent(fd->filetype, &filetype_extent); + MPI_Type_get_extent(fd->filetype, &lb, &filetype_extent); *disp = fd->disp + n_filetypes * ADIOI_AINT_CAST_TO_OFFSET filetype_extent + abs_off_in_filetype; } } diff --git a/ompi/mca/io/romio321/romio/adio/common/cb_config_list.c b/ompi/mca/io/romio321/romio/adio/common/cb_config_list.c index 8eeee8c9e0..95cae99147 100644 --- a/ompi/mca/io/romio321/romio/adio/common/cb_config_list.c +++ b/ompi/mca/io/romio321/romio/adio/common/cb_config_list.c @@ -135,12 +135,12 @@ int ADIOI_cb_gather_name_array(MPI_Comm comm, if (ADIOI_cb_config_list_keyval == MPI_KEYVAL_INVALID) { /* cleaned up by ADIOI_End_call */ - MPI_Keyval_create((MPI_Copy_function *) ADIOI_cb_copy_name_array, + MPI_Comm_create_keyval((MPI_Copy_function *) ADIOI_cb_copy_name_array, (MPI_Delete_function *) ADIOI_cb_delete_name_array, &ADIOI_cb_config_list_keyval, NULL); } else { - MPI_Attr_get(comm, ADIOI_cb_config_list_keyval, (void *) &array, &found); + MPI_Comm_get_attr(comm, ADIOI_cb_config_list_keyval, (void *) &array, &found); if (found) { ADIOI_Assert(array != NULL); *arrayp = array; @@ -256,8 +256,8 @@ int ADIOI_cb_gather_name_array(MPI_Comm comm, * it next time an open is performed on this same comm, and on the * dupcomm, so we can use it in I/O operations. */ - MPI_Attr_put(comm, ADIOI_cb_config_list_keyval, array); - MPI_Attr_put(dupcomm, ADIOI_cb_config_list_keyval, array); + MPI_Comm_set_attr (comm, ADIOI_cb_config_list_keyval, array); + MPI_Comm_set_attr (dupcomm, ADIOI_cb_config_list_keyval, array); *arrayp = array; return 0; } diff --git a/ompi/mca/io/romio321/romio/adio/common/eof_offset.c b/ompi/mca/io/romio321/romio/adio/common/eof_offset.c index 0fb3539fc1..ea3c51f6ea 100644 --- a/ompi/mca/io/romio321/romio/adio/common/eof_offset.c +++ b/ompi/mca/io/romio321/romio/adio/common/eof_offset.c @@ -18,7 +18,7 @@ void ADIOI_Get_eof_offset(ADIO_File fd, ADIO_Offset *eof_offset) ADIO_Offset fsize, disp, sum=0, size_in_file, n_filetypes, rem, etype_size; int flag, i; ADIO_Fcntl_t *fcntl_struct; - MPI_Aint filetype_extent; + MPI_Aint filetype_extent, lb; ADIOI_Flatlist_node *flat_file; /* find the eof in bytes */ @@ -45,7 +45,7 @@ void ADIOI_Get_eof_offset(ADIO_File fd, ADIO_Offset *eof_offset) flat_file = flat_file->next; MPI_Type_size_x(fd->filetype, &filetype_size); - MPI_Type_extent(fd->filetype, &filetype_extent); + MPI_Type_get_extent(fd->filetype, &lb, &filetype_extent); disp = fd->disp; n_filetypes = -1; diff --git a/ompi/mca/io/romio321/romio/adio/common/flatten.c b/ompi/mca/io/romio321/romio/adio/common/flatten.c index e89da5f67b..b468ec2f0f 100644 --- a/ompi/mca/io/romio321/romio/adio/common/flatten.c +++ b/ompi/mca/io/romio321/romio/adio/common/flatten.c @@ -199,7 +199,7 @@ void ADIOI_Flatten(MPI_Datatype datatype, ADIOI_Flatlist_node *flat, avoid >2G integer arithmetic problems */ ADIO_Offset top_count; MPI_Count i, j, old_size, prev_index, basic_num, num, nonzeroth; - MPI_Aint old_extent;/* Assume extents are non-negative */ + MPI_Aint old_extent, lb;/* Assume extents are non-negative */ int *ints; MPI_Aint *adds; /* Make no assumptions about +/- sign on these */ MPI_Datatype *types; @@ -332,7 +332,7 @@ void ADIOI_Flatten(MPI_Datatype datatype, ADIOI_Flatlist_node *flat, num = *curr_index - prev_index; /* The noncontiguous types have to be replicated count times */ - MPI_Type_extent(types[0], &old_extent); + MPI_Type_get_extent(types[0], &lb, &old_extent); for (m=1; mindices[j] = flat->indices[j-num] + ADIOI_AINT_CAST_TO_OFFSET old_extent; @@ -386,7 +386,7 @@ void ADIOI_Flatten(MPI_Datatype datatype, ADIOI_Flatlist_node *flat, /* The noncontiguous types have to be replicated blocklen times and then strided. Replicate the first one. */ - MPI_Type_extent(types[0], &old_extent); + MPI_Type_get_extent(types[0], &lb, &old_extent); for (m=1; mindices[j] = flat->indices[j-num] + ADIOI_AINT_CAST_TO_OFFSET old_extent; @@ -449,7 +449,7 @@ void ADIOI_Flatten(MPI_Datatype datatype, ADIOI_Flatlist_node *flat, /* The noncontiguous types have to be replicated blocklen times and then strided. Replicate the first one. */ - MPI_Type_extent(types[0], &old_extent); + MPI_Type_get_extent(types[0], &lb, &old_extent); for (m=1; mindices[j] = flat->indices[j-num] + ADIOI_AINT_CAST_TO_OFFSET old_extent; @@ -480,7 +480,7 @@ void ADIOI_Flatten(MPI_Datatype datatype, ADIOI_Flatlist_node *flat, ADIOI_Type_get_envelope(types[0], &old_nints, &old_nadds, &old_ntypes, &old_combiner); ADIOI_Datatype_iscontig(types[0], &old_is_contig); - MPI_Type_extent(types[0], &old_extent); + MPI_Type_get_extent(types[0], &lb, &old_extent); prev_index = *curr_index; if ((old_combiner != MPI_COMBINER_NAMED) && (!old_is_contig)) @@ -586,7 +586,7 @@ void ADIOI_Flatten(MPI_Datatype datatype, ADIOI_Flatlist_node *flat, ADIOI_Type_get_envelope(types[0], &old_nints, &old_nadds, &old_ntypes, &old_combiner); ADIOI_Datatype_iscontig(types[0], &old_is_contig); - MPI_Type_extent(types[0], &old_extent); + MPI_Type_get_extent(types[0], &lb, &old_extent); prev_index = *curr_index; if ((old_combiner != MPI_COMBINER_NAMED) && (!old_is_contig)) @@ -634,7 +634,7 @@ void ADIOI_Flatten(MPI_Datatype datatype, ADIOI_Flatlist_node *flat, if (is_hindexed_block) { /* this is the one place the hindexed case uses the * extent of a type */ - MPI_Type_extent(types[0], &old_extent); + MPI_Type_get_extent(types[0], &lb, &old_extent); } flat->indices[j] = flat->indices[j-num] + ADIOI_AINT_CAST_TO_OFFSET old_extent; @@ -709,7 +709,7 @@ void ADIOI_Flatten(MPI_Datatype datatype, ADIOI_Flatlist_node *flat, /* The noncontiguous types have to be replicated blocklens[i] times and then strided. Replicate the first one. */ - MPI_Type_extent(types[0], &old_extent); + MPI_Type_get_extent(types[0], &lb, &old_extent); for (m=1; mblocklens[j-num] > 0) { @@ -776,16 +776,12 @@ void ADIOI_Flatten(MPI_Datatype datatype, ADIOI_Flatlist_node *flat, /* simplest case, current type is basic or contiguous types */ /* By using ADIO_Offset we preserve +/- sign and avoid >2G integer arithmetic problems */ - if (ints[1+n] > 0 || types[n] == MPI_LB || types[n] == MPI_UB) { + if (ints[1+n] > 0) { ADIO_Offset blocklength = ints[1+n]; j = *curr_index; flat->indices[j] = st_offset + adds[n]; MPI_Type_size_x(types[n], &old_size); flat->blocklens[j] = blocklength * old_size; - if (types[n] == MPI_LB) - flat->lb_idx = j; - if (types[n] == MPI_UB) - flat->ub_idx = j; #ifdef FLATTEN_DEBUG DBG_FPRINTF(stderr,"ADIOI_Flatten:: simple adds[%#X] "MPI_AINT_FMT_HEX_SPEC", flat->indices[%#llX] %#llX, flat->blocklens[%#llX] %#llX\n",n,adds[n],j, flat->indices[j], j, flat->blocklens[j]); #endif @@ -799,7 +795,7 @@ void ADIOI_Flatten(MPI_Datatype datatype, ADIOI_Flatlist_node *flat, num = *curr_index - prev_index; /* The current type has to be replicated blocklens[n] times */ - MPI_Type_extent(types[n], &old_extent); + MPI_Type_get_extent(types[n], &lb, &old_extent); for (m=1; mindices[j] = diff --git a/ompi/mca/io/romio321/romio/adio/common/get_fp_posn.c b/ompi/mca/io/romio321/romio/adio/common/get_fp_posn.c index 671dde3eb3..f2e025d00f 100644 --- a/ompi/mca/io/romio321/romio/adio/common/get_fp_posn.c +++ b/ompi/mca/io/romio321/romio/adio/common/get_fp_posn.c @@ -18,7 +18,7 @@ void ADIOI_Get_position(ADIO_File fd, ADIO_Offset *offset) int i, flag; MPI_Count filetype_size, etype_size; int filetype_is_contig; - MPI_Aint filetype_extent; + MPI_Aint filetype_extent, lb; ADIO_Offset disp, byte_offset, sum=0, size_in_file, n_filetypes, frd_size; ADIOI_Datatype_iscontig(fd->filetype, &filetype_is_contig); @@ -31,7 +31,7 @@ void ADIOI_Get_position(ADIO_File fd, ADIO_Offset *offset) while (flat_file->type != fd->filetype) flat_file = flat_file->next; MPI_Type_size_x(fd->filetype, &filetype_size); - MPI_Type_extent(fd->filetype, &filetype_extent); + MPI_Type_get_extent(fd->filetype, &lb, &filetype_extent); disp = fd->disp; byte_offset = fd->fp_ind; diff --git a/ompi/mca/io/romio321/romio/adio/include/mpipr.h b/ompi/mca/io/romio321/romio/adio/include/mpipr.h index b1dcd9fb44..8b86c4cfe1 100644 --- a/ompi/mca/io/romio321/romio/adio/include/mpipr.h +++ b/ompi/mca/io/romio321/romio/adio/include/mpipr.h @@ -12,8 +12,6 @@ #undef MPI_Abort #define MPI_Abort PMPI_Abort -#undef MPI_Address -#define MPI_Address PMPI_Address #undef MPI_Allgather #define MPI_Allgather PMPI_Allgather #undef MPI_Allgatherv @@ -30,8 +28,6 @@ #define MPI_Attr_delete PMPI_Attr_delete #undef MPI_Attr_get #define MPI_Attr_get PMPI_Attr_get -#undef MPI_Attr_put -#define MPI_Attr_put PMPI_Attr_put #undef MPI_Barrier #define MPI_Barrier PMPI_Barrier #undef MPI_Bcast @@ -68,10 +64,14 @@ #define MPI_Comm_compare PMPI_Comm_compare #undef MPI_Comm_create #define MPI_Comm_create PMPI_Comm_create +#undef MPI_Comm_create_keyval +#define MPI_Comm_create_keyval PMPI_Comm_create_keyval #undef MPI_Comm_dup #define MPI_Comm_dup PMPI_Comm_dup #undef MPI_Comm_free #define MPI_Comm_free PMPI_Comm_free +#undef MPI_Comm_free_keyval +#define MPI_Comm_free_keyval PMPI_Comm_free_keyval #undef MPI_Comm_group #define MPI_Comm_group PMPI_Comm_group #undef MPI_Comm_rank @@ -80,6 +80,8 @@ #define MPI_Comm_remote_group PMPI_Comm_remote_group #undef MPI_Comm_remote_size #define MPI_Comm_remote_size PMPI_Comm_remote_size +#undef MPI_Comm_set_attr +#define MPI_Comm_set_attr PMPI_Comm_set_attr #undef MPI_Comm_size #define MPI_Comm_size PMPI_Comm_size #undef MPI_Comm_split @@ -106,6 +108,8 @@ #define MPI_Gather PMPI_Gather #undef MPI_Gatherv #define MPI_Gatherv PMPI_Gatherv +#undef MPI_Get_address +#define MPI_Get_address PMPI_Get_address #undef MPI_Get_count #define MPI_Get_count PMPI_Get_count #undef MPI_Get_elements @@ -170,10 +174,6 @@ #define MPI_Isend PMPI_Isend #undef MPI_Issend #define MPI_Issend PMPI_Issend -#undef MPI_Keyval_create -#define MPI_Keyval_create PMPI_Keyval_create -#undef MPI_Keyval_free -#define MPI_Keyval_free PMPI_Keyval_free #undef MPI_Name_get #define MPI_Name_get PMPI_Name_get #undef MPI_Name_put @@ -248,14 +248,22 @@ #define MPI_Type_contiguous PMPI_Type_contiguous #undef MPI_Type_count #define MPI_Type_count PMPI_Type_count +#undef MPI_Type_create_struct +#define MPI_Type_create_struct PMPI_Type_create_struct +#undef MPI_Type_create_resized +#define MPI_Type_create_resized PMPI_Type_create_resized /* #define MPI_Type_create_darray PMPI_Type_create_darray */ #undef MPI_Type_create_indexed_block #define MPI_Type_create_indexed_block PMPI_Type_create_indexed_block +#undef MPI_Type_create_hindexed +#define MPI_Type_create_hindexed PMPI_Type_create_hindexed #undef MPI_Type_create_hindexed_block #define MPI_Type_create_hindexed_block PMPI_Type_create_hindexed_block +#undef MPI_Type_create_hvector +#define MPI_Type_create_hvector PMPI_Type_create_hvector /* #define MPI_Type_create_subarray PMPI_Type_create_subarray */ -#undef MPI_Type_extent -#define MPI_Type_extent PMPI_Type_extent +#undef MPI_Type_get_extent +#define MPI_Type_get_extent PMPI_Type_get_extent #undef MPI_Type_free #define MPI_Type_free PMPI_Type_free #undef MPI_Type_get_contents @@ -264,20 +272,10 @@ #define MPI_Type_get_envelope PMPI_Type_get_envelope #undef MPI_Type_get_true_extent #define MPI_Type_get_true_extent PMPI_Type_get_true_extent -#undef MPI_Type_hindexed -#define MPI_Type_hindexed PMPI_Type_hindexed -#undef MPI_Type_hvector -#define MPI_Type_hvector PMPI_Type_hvector #undef MPI_Type_indexed #define MPI_Type_indexed PMPI_Type_indexed -#undef MPI_Type_lb -#define MPI_Type_lb PMPI_Type_lb #undef MPI_Type_size #define MPI_Type_size PMPI_Type_size -#undef MPI_Type_struct -#define MPI_Type_struct PMPI_Type_struct -#undef MPI_Type_ub -#define MPI_Type_ub PMPI_Type_ub #undef MPI_Type_vector #define MPI_Type_vector PMPI_Type_vector #undef MPI_Unpack diff --git a/ompi/mca/io/romio321/romio/mpi-io/get_extent.c b/ompi/mca/io/romio321/romio/mpi-io/get_extent.c index 31a841c070..960afab5e5 100644 --- a/ompi/mca/io/romio321/romio/mpi-io/get_extent.c +++ b/ompi/mca/io/romio321/romio/mpi-io/get_extent.c @@ -42,6 +42,7 @@ int MPI_File_get_type_extent(MPI_File fh, MPI_Datatype datatype, MPI_Aint *exten int error_code; ADIO_File adio_fh; static char myname[] = "MPI_FILE_GET_TYPE_EXTENT"; + MPI_Aint lb; adio_fh = MPIO_File_resolve(fh); @@ -52,7 +53,7 @@ int MPI_File_get_type_extent(MPI_File fh, MPI_Datatype datatype, MPI_Aint *exten /* FIXME: handle other file data representations */ - error_code = MPI_Type_extent(datatype, extent); + error_code = MPI_Type_get_extent(datatype, &lb, extent); fn_exit: return error_code; diff --git a/ompi/mca/io/romio321/romio/mpi-io/mpir-mpioinit.c b/ompi/mca/io/romio321/romio/mpi-io/mpir-mpioinit.c index 4375e4cc8a..90a2739a21 100644 --- a/ompi/mca/io/romio321/romio/mpi-io/mpir-mpioinit.c +++ b/ompi/mca/io/romio321/romio/mpi-io/mpir-mpioinit.c @@ -36,15 +36,15 @@ void MPIR_MPIOInit(int * error_code) { } /* --END ERROR HANDLING-- */ - MPI_Keyval_create(MPI_NULL_COPY_FN, ADIOI_End_call, &ADIO_Init_keyval, - (void *) 0); + MPI_Comm_create_keyval (MPI_COMM_NULL_COPY_FN, ADIOI_End_call, &ADIO_Init_keyval, + (void *) 0); /* put a dummy attribute on MPI_COMM_SELF, because we want the delete function to be called when MPI_COMM_SELF is freed. Clarified in MPI-2 section 4.8, the standard mandates that attributes on MPI_COMM_SELF get cleaned up early in MPI_Finalize */ - MPI_Attr_put(MPI_COMM_SELF, ADIO_Init_keyval, (void *) 0); + MPI_Comm_set_attr (MPI_COMM_SELF, ADIO_Init_keyval, (void *) 0); /* initialize ADIO */ ADIO_Init( (int *)0, (char ***)0, error_code);