From 759ee33fd4012117ca2d0313526bb9bb5ade472e Mon Sep 17 00:00:00 2001 From: Jeff Squyres Date: Thu, 9 Jan 2014 01:33:13 +0000 Subject: [PATCH] Per thread starting here: http://www.open-mpi.org/community/lists/users/2014/01/23327.php Revert the Fortran mpi module default size to "small", meaning that we won't provide interfaces for MPI subroutines that take a choice buffer any more. The short version is that MPI-3 p610:34-41 disallows it. This commit simply removes all these subroutines from the build process (i.e., remove them from nodist_libmpi_usempi_la_SOURCES). Since MPI-3 actually forbids providing these interfaces, I'll do a second commit to actually remove all the scripts and associated Makefile.am junk. cmr=v1.7.4:reviewer=dgoodell:subject=Remove choice buffer interfaces from Fortran mpi module This commit was SVN r30169. --- ompi/mpi/fortran/use-mpi-tkr/Makefile.am | 24 +++++++++++++++---- .../fortran/use-mpi-tkr/fortran_kinds.sh.in | 13 ++++++---- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/ompi/mpi/fortran/use-mpi-tkr/Makefile.am b/ompi/mpi/fortran/use-mpi-tkr/Makefile.am index 86ebdbcdb7..09c4d887e0 100644 --- a/ompi/mpi/fortran/use-mpi-tkr/Makefile.am +++ b/ompi/mpi/fortran/use-mpi-tkr/Makefile.am @@ -160,15 +160,24 @@ libmpi_usempi_la_LIBADD = \ # These files are all generated by scripts in the scripts/ directory. -nodist_libmpi_usempi_la_SOURCES = \ - mpi_sizeof.f90 \ +trivial_sources = \ + mpi_sizeof.f90 + +small_sources = \ mpi_comm_spawn_multiple_f90.f90 \ mpi_testall_f90.f90 \ mpi_testsome_f90.f90 \ mpi_waitall_f90.f90 \ mpi_waitsome_f90.f90 \ mpi_wtick_f90.f90 \ - mpi_wtime_f90.f90 \ + mpi_wtime_f90.f90 + +# Per the MPI-3 p610 comment below, these files are never compiled +# (and therefore the corresponding scripts/ scripts for them are never +# invoked). They should probably be deleted someday. They're only +# left here in case we decide to put a ./configure CLI option to +# enable them. +medium_sources = \ mpi_address_f90.f90 \ mpi_accumulate_f90.f90 \ mpi_bcast_f90.f90 \ @@ -200,7 +209,7 @@ nodist_libmpi_usempi_la_SOURCES = \ mpi_win_create_f90.f90 if OMPI_PROVIDE_MPI_FILE_INTERFACE -nodist_libmpi_usempi_la_SOURCES += \ +medium_sources += \ mpi_file_iread_f90.f90 \ mpi_file_iread_at_f90.f90 \ mpi_file_iread_shared_f90.f90 \ @@ -233,6 +242,13 @@ nodist_libmpi_usempi_la_SOURCES += \ mpi_file_write_shared_f90.f90 endif +# Per MPI-3 p610:34-41, if we're building a TKR mpi module, we should +# not build the "medium" interfaces (i.e., MPI subroutines with choice +# buffers). See comment in fortran_kinds.sh.in for more detail. +nodist_libmpi_usempi_la_SOURCES = \ + $(trivial_sources) \ + $(small_sources) + # Set the library version libmpi_usempi_la_LDFLAGS = \ -version-info $(libmpi_usempi_tkr_so_version) \ diff --git a/ompi/mpi/fortran/use-mpi-tkr/fortran_kinds.sh.in b/ompi/mpi/fortran/use-mpi-tkr/fortran_kinds.sh.in index 2009a8d0c8..057dfbad4b 100644 --- a/ompi/mpi/fortran/use-mpi-tkr/fortran_kinds.sh.in +++ b/ompi/mpi/fortran/use-mpi-tkr/fortran_kinds.sh.in @@ -26,11 +26,14 @@ ckinds="@OMPI_FORTRAN_CKINDS@" # In prior versions of Open MPI, we used to allow the user to choose # which "size" of "use mpi" module to build: tiny, small, medium, and -# large. Large never really worked. And now we have better -# implementations, so we're just going to hard-code to "medium" here, -# in case someone still builds this interface (e.g., if they're using -# gfortran). -size=medium +# large. Large never really worked. +# +# According to MPI-3 p610:34-41, if ignore TKR is not supported, we +# should not provide interfaces for MPI subroutines with choice +# buffers. So we default to "small" (in 1.7-1.7.3, we defaulted to +# "medium", but then MPI-3 p610 was pointed out to us in Jan 2014, so +# we changed the default back to "small"). +size=small # fix up for broken generation scripts that don't properly compute the # ranks variable before using it