1
1
openmpi/config
Jeff Squyres d7eaca83fa Fortran: Fix MPI_SIZEOF. What a disaster. :-(
What started as a simple ticket ended up reaching the way up to the
MPI Forum.
    
It turns out that we are supposed to have MPI_SIZEOF for all Fortran
interfaces: mpif.h, the mpi module, and the mpi_f08 module.
    
It further turns out that to properly support MPI_SIZEOF, your Fortran
compiler *has* support the INTERFACE keyword and ISO_FORTRAN_ENV.  We
can't use "ignore TKR" functionality, because the whole point of
MPI_SIZEOF is that the implementation knows what type was passed to it
("ignore TKR" functionality, by definition, throws that information
away).  Hence, we have to have an MPI_SIZEOF interface+implementation
for all intrinsic types, kinds, and ranks.

This commit therefore adds a perl script that generates both the
interfaces and implementations for MPI_SIZEOF in each of mpif.h, the
mpi module, and mpi_f08 module (yay consolidation!).

The perl script uses the results of some new configure tests:

* check if the Fortran compiler supports the INTERFACE keyword
* check if the Fortran compiler supports ISO_FORTRAN_ENV
* find the max array rank (i.e., dimension) that the compiler supports

If the Fortran compiler supports both INTERFACE and ISO_FORTRAN_ENV,
then we'll build the MPI_SIZEOF interfaces.  If not, we'll skip
MPI_SIZEOF in mpif.h and the mpi module.  Note that we won't build the
mpi_f08 module -- to include the MPI_SIZEOF interfaces -- if the
Fortran compiler doesn't support INTERFACE, ISO_FORTRAN_ENV, and a
whole bunch of ther modern Fortran stuff.

Since MPI_SIZEOF interfaces are now generated by the perl script, this
commit also removes all the old MPI_SIZEOF implementations (which were
laden with a zillion #if blocks).

cmr=v1.8.3

This commit was SVN r32764.
2014-09-19 13:44:52 +00:00
..
c_get_alignment.m4 Complete the cleanup of this file 2014-05-06 16:57:34 +00:00
c_weak_symbols.m4 oshmem configury: fix a typo 2014-08-25 04:41:56 +00:00
distscript.csh Backout the ORCA commit. :( 2012-06-27 01:28:28 +00:00
libltdl-preopen-error.diff WARNING: Work on the temp branch being merged here encountered problems with bugs in subversion. Considerable effort has gone into validating the branch. However, not all conditions can be checked, so users are cautioned that it may be advisable to not update from the trunk for a few days to allow MTT to identify platform-specific issues. 2010-09-17 23:04:06 +00:00
ltmain_pgi_tp.diff Patch ltmain.sh in autogen.sh per this Libtool thread: 2010-08-25 19:40:17 +00:00
Makefile.am Sigh - forgot to change name in Makefile.am 2014-05-06 14:35:14 +00:00
Makefile.options Rollback the last two commits. 2008-10-28 17:22:29 +00:00
ompi_check_gni.m4 Last step under current RFC: OMPI_CHECK_WITHDIR -> OPAL_CHECK_WITHDIR 2014-05-01 15:38:07 +00:00
ompi_check_libfca.m4 Last step under current RFC: OMPI_CHECK_WITHDIR -> OPAL_CHECK_WITHDIR 2014-05-01 15:38:07 +00:00
ompi_check_libhcoll.m4 Last step under current RFC: OMPI_CHECK_WITHDIR -> OPAL_CHECK_WITHDIR 2014-05-01 15:38:07 +00:00
ompi_check_lustre.m4 Last step under current RFC: OMPI_CHECK_WITHDIR -> OPAL_CHECK_WITHDIR 2014-05-01 15:38:07 +00:00
ompi_check_mx.m4 Last step under current RFC: OMPI_CHECK_WITHDIR -> OPAL_CHECK_WITHDIR 2014-05-01 15:38:07 +00:00
ompi_check_mxm.m4 MXM: update min required version for mxm as 2.1+ 2014-07-10 13:16:57 +00:00
ompi_check_plfs.m4 Last step under current RFC: OMPI_CHECK_WITHDIR -> OPAL_CHECK_WITHDIR 2014-05-01 15:38:07 +00:00
ompi_check_psm.m4 Last step under current RFC: OMPI_CHECK_WITHDIR -> OPAL_CHECK_WITHDIR 2014-05-01 15:38:07 +00:00
ompi_check_pvfs2.m4 Last step under current RFC: OMPI_CHECK_WITHDIR -> OPAL_CHECK_WITHDIR 2014-05-01 15:38:07 +00:00
ompi_check_udapl.m4 Last step under current RFC: OMPI_CHECK_WITHDIR -> OPAL_CHECK_WITHDIR 2014-05-01 15:38:07 +00:00
ompi_config_files.m4 [Contribution from Artem - moved it to svn from git for him] 2014-09-15 18:00:46 +00:00
ompi_config_solaris_threads.m4 Fix some fortran flags variable names, and fortran configury C test 2012-04-23 15:28:26 +00:00
ompi_config_threads.m4 Correct a typo to get the right configure option to match the internal logic, thus making --enable-mpi-thread-multiple to actually work 2014-01-15 03:56:29 +00:00
ompi_configure_options.m4 Move the OPAL_ENABLE_PROGRESS_THREADS definition to opal_configure_options.m4 2014-08-01 18:11:36 +00:00
ompi_contrib.m4 One more level of subsubsubsubsubtitle... 2014-05-07 15:51:20 +00:00
ompi_cxx_find_exception_flags.m4 Consolidate all the opal/orte/ompi .m4 files back to the top-level 2012-12-19 00:00:36 +00:00
ompi_cxx_find_template_parameters.m4 Consolidate all the opal/orte/ompi .m4 files back to the top-level 2012-12-19 00:00:36 +00:00
ompi_cxx_find_template_repository.m4 Consolidate all the opal/orte/ompi .m4 files back to the top-level 2012-12-19 00:00:36 +00:00
ompi_cxx_have_exceptions.m4 Consolidate all the opal/orte/ompi .m4 files back to the top-level 2012-12-19 00:00:36 +00:00
ompi_endpoint_tag.m4 Remove the proc_pml and proc_bml fields from ompi_proc_t and replace with a 2013-08-30 16:54:55 +00:00
ompi_ext.m4 One more level of subsubsubsubsubtitle... 2014-05-07 15:51:20 +00:00
ompi_find_mpi_aint_count_offset.m4 Add file that was forgotten in r30776. Refs trac:4205. 2014-02-20 11:32:57 +00:00
ompi_fortran_check_abstract.m4 Minor configure output consistency updates 2014-01-13 18:28:26 +00:00
ompi_fortran_check_asynchronous.m4 Minor configure output consistency updates 2014-01-13 18:28:26 +00:00
ompi_fortran_check_bind_c.m4 ompi_fortran_check_bind_c.m4: Fix comment in existing .m4 file 2014-06-19 13:39:11 +00:00
ompi_fortran_check_f08_assumed_rank.m4 Consolidate all the opal/orte/ompi .m4 files back to the top-level 2012-12-19 00:00:36 +00:00
ompi_fortran_check_ignore_tkr.m4 Thanks to a reminder from Tobias Burunus, commit support for the 2014-01-08 03:46:27 +00:00
ompi_fortran_check_interface.m4 Fortran: Fix MPI_SIZEOF. What a disaster. :-( 2014-09-19 13:44:52 +00:00
ompi_fortran_check_iso_fortran_env.m4 Fortran: Fix MPI_SIZEOF. What a disaster. :-( 2014-09-19 13:44:52 +00:00
ompi_fortran_check_logical_array.m4 Consolidate all the opal/orte/ompi .m4 files back to the top-level 2012-12-19 00:00:36 +00:00
ompi_fortran_check_max_array_rank.m4 Fortran: Fix MPI_SIZEOF. What a disaster. :-( 2014-09-19 13:44:52 +00:00
ompi_fortran_check_optional_args.m4 fortran: configure test for "optional" keyword was too aggressive 2014-09-17 22:10:11 +00:00
ompi_fortran_check_private.m4 Minor configure output consistency updates 2014-01-13 18:28:26 +00:00
ompi_fortran_check_procedure.m4 Missed this one in r30271. 2014-01-13 18:30:15 +00:00
ompi_fortran_check_protected.m4 Make the use of PROTECTED in the mpi_f08 module be optional. 2014-01-13 18:35:42 +00:00
ompi_fortran_check_real16_c_equiv.m4 Per RFC, continue renaming of build tools: 2014-05-06 15:01:34 +00:00
ompi_fortran_check_type.m4 Consolidate all the opal/orte/ompi .m4 files back to the top-level 2012-12-19 00:00:36 +00:00
ompi_fortran_check.m4 Per RFC, continue the naming conversion 2014-05-06 23:34:33 +00:00
ompi_fortran_find_ext_symbol_convention.m4 Consolidate all the opal/orte/ompi .m4 files back to the top-level 2012-12-19 00:00:36 +00:00
ompi_fortran_find_module_include_flag.m4 Consolidate all the opal/orte/ompi .m4 files back to the top-level 2012-12-19 00:00:36 +00:00
ompi_fortran_get_alignment.m4 Consolidate all the opal/orte/ompi .m4 files back to the top-level 2012-12-19 00:00:36 +00:00
ompi_fortran_get_handle_max.m4 On OpenBSD (and probably others), expr operates on a 32 bit signed integer, 2012-12-22 16:24:36 +00:00
ompi_fortran_get_kind_value.m4 Consolidate all the opal/orte/ompi .m4 files back to the top-level 2012-12-19 00:00:36 +00:00
ompi_fortran_get_sizeof.m4 Consolidate all the opal/orte/ompi .m4 files back to the top-level 2012-12-19 00:00:36 +00:00
ompi_fortran_get_value_true.m4 Consolidate all the opal/orte/ompi .m4 files back to the top-level 2012-12-19 00:00:36 +00:00
ompi_interix.m4 Per RFC: 2014-05-05 22:35:23 +00:00
ompi_microsoft.m4 Per RFC, continue renaming of build tools: 2014-05-06 15:01:34 +00:00
ompi_setup_contrib.m4 Per RFC: 2014-05-05 22:35:23 +00:00
ompi_setup_cxx.m4 Per RFC, continue the joyous fun of the renaming exercise 2014-05-06 20:13:37 +00:00
ompi_setup_fc.m4 Per RFC, continue the joyous fun of the renaming exercise 2014-05-06 20:13:37 +00:00
ompi_setup_java.m4 Per RFC: 2014-05-05 22:35:23 +00:00
ompi_setup_mpi_ext.m4 Per RFC: 2014-05-05 22:35:23 +00:00
ompi_setup_mpi_fortran.m4 Fortran: Fix MPI_SIZEOF. What a disaster. :-( 2014-09-19 13:44:52 +00:00
ompi_setup_mpi_profiling.m4 Consolidate all the opal/orte/ompi .m4 files back to the top-level 2012-12-19 00:00:36 +00:00
opal_case_sensitive_fs_setup.m4 Consolidate all the opal/orte/ompi .m4 files back to the top-level 2012-12-19 00:00:36 +00:00
opal_check_attributes.m4 Per RFC, continue cleanup with minor change to one file 2014-05-06 18:30:55 +00:00
opal_check_broken_qsort.m4 Continue the renaming, fix ompi_show_subsubtitle 2014-05-07 15:45:47 +00:00
opal_check_cma.m4 Cleanup some autoconf messages - thanks to Paul Hargrove for noting them 2014-08-05 14:48:42 +00:00
opal_check_compiler_version.m4 The bulk of the remaining renaming changes, in one final glorious "blob". Thanks to Jeff for some help chasing down a few spots. Per chat with Jeff, we decided to cleanup a few things that were historical in nature: 2014-05-07 21:48:53 +00:00
opal_check_compiler_works.m4 Per RFC, continue the renaming effort 2014-05-06 21:16:29 +00:00
opal_check_cuda.m4 Chnage some CUDA configure code and macro names per review request by jsquyres in ticket #3880. 2013-12-06 14:35:10 +00:00
opal_check_db.m4 Improve/expand the database configure logic for future use 2014-03-11 03:01:15 +00:00
opal_check_icc.m4 Per RFC, continue with build system renaming 2014-05-06 19:22:27 +00:00
opal_check_ident.m4 Per RFC, continue with build system renaming 2014-05-06 19:22:27 +00:00
opal_check_offsetof.m4 Consolidate all the opal/orte/ompi .m4 files back to the top-level 2012-12-19 00:00:36 +00:00
opal_check_openfabrics.m4 Rename the .m4 files to reflect the move to opal so non-MPI projects properly see them 2014-08-01 17:03:34 +00:00
opal_check_os_flavors.m4 Ensure we properly check for sockaddr_in before checking for tcp 2014-03-20 00:17:29 +00:00
opal_check_package.m4 Per RFC, continue with build system renaming 2014-05-06 19:37:10 +00:00
opal_check_pmi.m4 Per the PMIx RFC: 2014-08-21 18:56:47 +00:00
opal_check_portals4.m4 Rename the .m4 files to reflect the move to opal so non-MPI projects properly see them 2014-08-01 17:03:34 +00:00
opal_check_portals.m4 Rename the .m4 files to reflect the move to opal so non-MPI projects properly see them 2014-08-01 17:03:34 +00:00
opal_check_ps.m4 Per RFC, continue the renaming effort 2014-05-06 21:16:29 +00:00
opal_check_pthread_pids.m4 Clean up variables used in configure with OPAL_VAR_SCOPE. 2013-12-06 23:40:34 +00:00
opal_check_ugni.m4 switch check for ugni to use pkg-config 2014-08-28 22:03:41 +00:00
opal_check_vendor.m4 Per RFC, continue the joyous fun of the renaming exercise 2014-05-06 20:13:37 +00:00
opal_check_verbs.m4 Last step under current RFC: OMPI_CHECK_WITHDIR -> OPAL_CHECK_WITHDIR 2014-05-01 15:38:07 +00:00
opal_check_visibility.m4 Per RFC, continue renaming of build tools: 2014-05-06 15:01:34 +00:00
opal_check_withdir.m4 Per RFC, next major step in cleaning up the build system naming patterns: rename files containing things used by the OPAL layer to be opal_foo.m4 instead of ompi_foo.m4. The ALPS plm is currently checking UGNI, so shift the check_ugni.m4 to orte for now. 2014-05-06 03:20:16 +00:00
opal_config_asm.m4 opal_config_asm.m4: fix typo in output message 2014-08-11 13:28:17 +00:00
opal_config_files.m4 Consolidate all the opal/orte/ompi .m4 files back to the top-level 2012-12-19 00:00:36 +00:00
opal_config_pthreads.m4 silence warnings 2014-08-11 07:41:54 +00:00
opal_config_subdir_args.m4 Per RFC, continue pecking away at the build system renaming 2014-05-06 16:27:38 +00:00
opal_config_subdir.m4 Per RFC, continue pecking away at the build system renaming 2014-05-06 16:27:38 +00:00
opal_config_threads.m4 Per RFC, continue the renaming effort 2014-05-06 21:16:29 +00:00
opal_configure_options.m4 [Contribution from Artem - moved it to svn from git for him] 2014-09-15 18:00:46 +00:00
opal_ensure_contains_optflags.m4 Per RFC, next major step in cleaning up the build system naming patterns: rename files containing things used by the OPAL layer to be opal_foo.m4 instead of ompi_foo.m4. The ALPS plm is currently checking UGNI, so shift the check_ugni.m4 to orte for now. 2014-05-06 03:20:16 +00:00
opal_find_type.m4 Per RFC, continue renaming project 2014-05-07 01:00:06 +00:00
opal_functions.m4 Per RFC, continue with renaming 2014-05-07 04:51:45 +00:00
opal_get_version.m4 opal_get_version.m4: use better "git log" command 2014-09-18 21:03:31 +00:00
opal_get_version.m4sh The final step of the RFC: convert the <foo>libdir and friends to fit their respective code areas, and equate them all at the top. Note that we can't entirely separate things as the opal_install_dirs framework can't handle separated locations for the various trees. 2014-05-08 02:01:35 +00:00
opal_lang_link_with_c.m4 Per RFC, continue the joyous fun of the renaming exercise 2014-05-06 20:13:37 +00:00
opal_load_platform.m4 Per RFC, continue the renaming effort 2014-05-06 21:16:29 +00:00
opal_mca_priority_sort.pl Per RFC, next major step in cleaning up the build system naming patterns: rename files containing things used by the OPAL layer to be opal_foo.m4 instead of ompi_foo.m4. The ALPS plm is currently checking UGNI, so shift the check_ugni.m4 to orte for now. 2014-05-06 03:20:16 +00:00
opal_mca.m4 Remove stale orcm reference 2014-07-11 19:00:28 +00:00
opal_save_version.m4 Per RFC, next major step in cleaning up the build system naming patterns: rename files containing things used by the OPAL layer to be opal_foo.m4 instead of ompi_foo.m4. The ALPS plm is currently checking UGNI, so shift the check_ugni.m4 to orte for now. 2014-05-06 03:20:16 +00:00
opal_search_libs.m4 opal_search_libs: correctly AC_DEFINE results of search 2014-09-13 00:28:30 +00:00
opal_setup_cc.m4 Per RFC, continue the joyous fun of the renaming exercise 2014-05-06 20:13:37 +00:00
opal_setup_component_package.m4 Per RFC, continue the renaming effort 2014-05-06 21:16:29 +00:00
opal_setup_cxx.m4 Per RFC, continue the joyous fun of the renaming exercise 2014-05-06 20:13:37 +00:00
opal_setup_ft.m4 Per RFC, another round of changes 2014-05-07 03:16:59 +00:00
opal_setup_java.m4 Per RFC: 2014-05-05 22:35:23 +00:00
opal_setup_libltdl.m4 The bulk of the remaining renaming changes, in one final glorious "blob". Thanks to Jeff for some help chasing down a few spots. Per chat with Jeff, we decided to cleanup a few things that were historical in nature: 2014-05-07 21:48:53 +00:00
opal_setup_wrappers.m4 The bulk of the remaining renaming changes, in one final glorious "blob". Thanks to Jeff for some help chasing down a few spots. Per chat with Jeff, we decided to cleanup a few things that were historical in nature: 2014-05-07 21:48:53 +00:00
opal_strip_optflags.m4 Per RFC, continue the build system renaming 2014-05-06 20:30:37 +00:00
opal_try_assemble.m4 Per RFC, continue the build system renaming 2014-05-06 20:30:37 +00:00
orte_check_alps.m4 Per RFC, continue the renaming process 2014-05-06 20:53:55 +00:00
orte_check_loadleveler.m4 Consolidate all the opal/orte/ompi .m4 files back to the top-level 2012-12-19 00:00:36 +00:00
orte_check_lsf.m4 orte_check_lsf.m4: improve the search for LSF libraries 2014-09-12 23:52:18 +00:00
orte_check_sge.m4 Consolidate all the opal/orte/ompi .m4 files back to the top-level 2012-12-19 00:00:36 +00:00
orte_check_slurm.m4 Consolidate all the opal/orte/ompi .m4 files back to the top-level 2012-12-19 00:00:36 +00:00
orte_check_tm.m4 Last step under current RFC: OMPI_CHECK_WITHDIR -> OPAL_CHECK_WITHDIR 2014-05-01 15:38:07 +00:00
orte_config_files.m4 Sigh - remove the c++ cruft from here too 2014-02-10 17:32:02 +00:00
orte_configure_options.m4 Per RFC: 2014-05-05 22:35:23 +00:00
orte_setup_debugger_flags.m4 Per RFC, continue the build system renaming 2014-05-06 20:30:37 +00:00
orte_setup_java.m4 Per RFC: 2014-05-05 22:35:23 +00:00
oshmem_config_files.m4 Java - define macro OSHMEM_SETUP_JAVA_BINDINGS 2014-06-11 21:49:31 +00:00
oshmem_configure_options.m4 oshmem configury: tighten up the pshmem checks 2014-08-23 10:50:14 +00:00
oshmem_setup_java.m4 Java - define macro OSHMEM_SETUP_JAVA_BINDINGS 2014-06-11 21:49:31 +00:00
oshmem_setup_profiling.m4 oshmem configury: fix a test 2014-08-25 06:57:30 +00:00
pkg.m4 add pkg.m4 for PKG_CHK_MODULES, etc. macro 2014-08-05 21:43:58 +00:00