Skip to content

Commit 0d648ce

Browse files
committed
SQUASH_ME: OMNIBUS commit 4
abi_fortran: add support for LOGICAL16 logical16 patch missed something add comm_from/toint simpler to hard code abi/ompi variants. For ABI version add an offset to the values normally used for original "f2c/c2f" ops to push the values normally returned by "c2f" functions to be greater than any ABI defined constants. complete toint/fromint interfaces basic implementation checks if constant is <= 16384 (the largest value reserved for mpi abi constants) and returns the constant back or looks up the value in the relevant array of pointers and offsets by 16385. fix error return values for ABI routines somehow was using the wrong converter to translate ompi intern error values with abi ones. Many are actually the same but that's just by chance. minor fixup for toint/fromint rebase fix handle TAG more correctly even though currently MPI_ANY_TAG is the same in ABI and OMPI squash compiler warning add hooks for TAG_OUT type add better support for MPI_ROOT and source since MPI_ROOT for ABI is not equal to ompi. MPI_ANY_SOURCE is but still generate conversion code rather than just beining lucky. squash a compiler warning this fix kind of messes up the indenter so the resulting line in the generated code isn't nicely indented but that can be fixed later. some fixes to comm attributes wrappers also see about fixing an issue with some of the ompi mca components when using --enable-mca-dso. fix bug in comm attr copy code some fixes for attributes and more to start using the ompi-tests/ibm had to complete adding MPI_T_ to the abi. Also some other fixes. Attributes still need more work. checkpoint many changes. go back to generating abi_converters.h fix up tools for abi case, etc. fix for datatype converters distcheck fix EVENT_INSTANCE: arg type cast fix and add in a file that wasn't in the makefile! MPI_ROOT: capture proc null type too needed to get a lot of intercommunicator collectives to pass. requests: fixes to some multirequest test functions weights and source out support/fixes fixes problems with dist graph constructors and cart_shift output. some fixes for message related functions also add better support for the 'some' test/wait functions. fix testall and startall fix mpi4py break fix a few problems with datatype bindings Signed-off-by: Howard Pritchard <howardp@lanl.gov>
1 parent 5ccee1c commit 0d648ce

File tree

158 files changed

+4813
-1212
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

158 files changed

+4813
-1212
lines changed

ompi/Makefile.am

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,8 @@ lib@OMPI_LIBMPI_NAME@_la_LDFLAGS = \
183183
libmpi_abi_la_SOURCES =
184184
libmpi_abi_la_LIBADD = \
185185
libopen_mpi.la \
186-
mpi/c/libmpi_c_abi.la
186+
mpi/c/libmpi_c_abi.la \
187+
mpi/tool/libmpi_mpit_abi.la
187188

188189
# included subdirectory Makefile.am's and appended-to variables
189190
headers =

ompi/include/mpi.h.in

Lines changed: 48 additions & 0 deletions
Large diffs are not rendered by default.

ompi/mpi/Makefile.am

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,14 @@ EXTRA_DIST += \
3131
mpi/bindings/ompi_bindings/fortran.py \
3232
mpi/bindings/ompi_bindings/fortran_type.py \
3333
mpi/bindings/ompi_bindings/util.py
34+
35+
#
36+
# attr_fn.c needs to be slurped into libopen_mpi
37+
# as it defines the OMPI native variants of
38+
# built-in copy/del attribute functions are these
39+
# are used in some component plugins
40+
#
41+
42+
libopen_mpi_la_SOURCES += \
43+
mpi/c/attr_fn.c
44+

ompi/mpi/bindings/bindings.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ def main():
5757
parser_header.add_argument('--external', action='store_true', help='generate external mpi.h header file')
5858
parser_header.add_argument('--srcdir', help='source directory')
5959
parser_header.set_defaults(handler=lambda args, out: c.generate_header(args, out))
60+
parser_header = subparsers_c.add_parser('converters', help='generate converter header file')
61+
parser_header.set_defaults(handler=lambda args, out: c.generate_converters(args, out))
6062
parser_gen = subparsers_c.add_parser('source', help='generate source file from template file')
6163
# parser = argparse.ArgumentParser(description='C ABI binding generation code')
6264
parser_gen.add_argument('type', choices=('ompi', 'standard'),

ompi/mpi/bindings/c_header.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
"MPI_T_event_instance",
5252
"MPI_T_event_registration",
5353
"MPI_T_cb_safety",
54+
"MPI_T_source_order",
5455
# TODO: these two are deprecated, get rid of them
5556
"MPI_Copy_function",
5657
"MPI_Delete_function",
@@ -246,6 +247,26 @@ def output_constant(const, use_enum: bool, mangle_name: bool):
246247
binding = proc.express.embiggen.iso_c.__str__().split()
247248
output.append(f"{binding[0]} P{' '.join(binding[1:])};\n")
248249

250+
# ================================ Odds and ends for mangle case ===============
251+
if MANGLE_NAMES:
252+
output.append("\n")
253+
output.append("/*\n")
254+
output.append(" * define externs to help with attributes\n")
255+
output.append(" */\n")
256+
output.append("extern int ompi_abi_mpi_proc_null_val;\n")
257+
output.append("extern int ompi_abi_mpi_any_source_val;\n")
258+
output.append("\n")
259+
output.append("int ABI_C_MPI_COMM_NULL_DELETE_FN( MPI_Comm_ABI_INTERNAL comm, int comm_keyval, void* attribute_val_out, void* extra_state );\n")
260+
output.append("int ABI_C_MPI_COMM_NULL_COPY_FN( MPI_Comm_ABI_INTERNAL comm, int comm_keyval, void* extra_state, void* attribute_val_in, void* attribute_val_out, int* flag );\n")
261+
output.append("int ABI_C_MPI_COMM_DUP_FN( MPI_Comm_ABI_INTERNAL comm, int comm_keyval, void* extra_state, void* attribute_val_in, void* attribute_val_out, int* flag );\n")
262+
output.append("int ABI_C_MPI_TYPE_NULL_DELETE_FN( MPI_Datatype_ABI_INTERNAL datatype, int type_keyval, void* attribute_val_out, void* extra_state );\n")
263+
output.append("int ABI_C_MPI_TYPE_NULL_COPY_FN( MPI_Datatype_ABI_INTERNAL datatype, int type_keyval, void* extra_state, void* attribute_val_in, void* attribute_val_out, int* flag );\n")
264+
output.append("int ABI_C_MPI_TYPE_DUP_FN( MPI_Datatype_ABI_INTERNAL datatype, int type_keyval, void* extra_state, void* attribute_val_in, void* attribute_val_out, int* flag );\n")
265+
output.append("int ABI_C_MPI_WIN_NULL_DELETE_FN( MPI_Win_ABI_INTERNAL window, int win_keyval, void* attribute_val_out, void* extra_state );\n")
266+
output.append("int ABI_C_MPI_WIN_NULL_COPY_FN( MPI_Win_ABI_INTERNAL window, int win_keyval, void* extra_state, void* attribute_val_in, void* attribute_val_out, int* flag );\n")
267+
output.append("int ABI_C_MPI_WIN_DUP_FN( MPI_Win_ABI_INTERNAL window, int win_keyval, void* extra_state, void* attribute_val_in, void* attribute_val_out, int* flag );\n")
268+
output.append("\n")
269+
249270
# ================================ Final Output ================================
250271
output.append("#if defined(__cplusplus)\n")
251272
output.append("}\n")

0 commit comments

Comments
 (0)