diff --git a/ompi/include/mpi.h.in b/ompi/include/mpi.h.in index 0cf5c1f94f..4168e6fcb7 100644 --- a/ompi/include/mpi.h.in +++ b/ompi/include/mpi.h.in @@ -279,7 +279,7 @@ # define __mpi_interface_deprecated__(msg) __attribute__((__deprecated__)) # endif # endif -# if OMPI_ENABLE_MPI1_COMPAT +# if (OMPI_ENABLE_MPI1_COMPAT && !OMPI_BUILDING) # define __mpi_interface_removed__(msg) __mpi_interface_deprecated__(msg) # define OMPI_OMIT_MPI1_COMPAT_DECLS 0 # endif @@ -1001,7 +1001,7 @@ OMPI_DECLSPEC extern struct ompi_predefined_info_t ompi_mpi_info_env; OMPI_DECLSPEC extern MPI_Fint *MPI_F_STATUS_IGNORE; OMPI_DECLSPEC extern MPI_Fint *MPI_F_STATUSES_IGNORE; -#if !OMPI_OMIT_MPI1_COMPAT_DECLS +#if (!OMPI_OMIT_MPI1_COMPAT_DECLS || OMPI_BUILDING) /* * Removed datatypes. These datatypes are only available if Open MPI * was configured with --enable-mpi1-compatibility. @@ -2662,7 +2662,7 @@ OMPI_DECLSPEC int OMPI_C_MPI_NULL_DELETE_FN( MPI_Comm comm, int comm_keyval, void* extra_state ) __mpi_interface_deprecated__("MPI_NULL_DELETE_FN was deprecated in MPI-2.0; use MPI_COMM_NULL_DELETE_FN instead."); -#if !OMPI_OMIT_MPI1_COMPAT_DECLS +#if (!OMPI_OMIT_MPI1_COMPAT_DECLS || OMPI_BUILDING) /* * Removed typedefs. These typedefs are only available if Open MPI * was configured with --enable-mpi1-compatibility. diff --git a/ompi/mpi/c/Makefile.am b/ompi/mpi/c/Makefile.am index d4c822beba..25b32809ae 100644 --- a/ompi/mpi/c/Makefile.am +++ b/ompi/mpi/c/Makefile.am @@ -437,7 +437,8 @@ libmpi_c_mpi_la_SOURCES = \ win_wait.c -if OMPI_ENABLE_MPI1_COMPAT +# include all of the removed MPI functions in library +# for v4.0.x regardless of state of OMPI_ENABLE_MPI1_COMPAT libmpi_c_mpi_la_SOURCES += \ address.c \ errhandler_create.c \ @@ -449,7 +450,6 @@ libmpi_c_mpi_la_SOURCES += \ type_lb.c \ type_struct.c \ type_ub.c -endif # Conditionally install the header files diff --git a/ompi/mpi/c/address.c b/ompi/mpi/c/address.c index 67b27bef58..bb864a6b2a 100644 --- a/ompi/mpi/c/address.c +++ b/ompi/mpi/c/address.c @@ -21,6 +21,17 @@ #include "ompi_config.h" #include +/* This implementation has been removed from the MPI 3.1 standard. + * Open MPI v4.0.x is keeping the implementation in the library, but + * removing the prototypes from the headers, unless the user configures + * with --enable-mpi1-compatibility. + * + * To prevent having to port these implementations of removed functions + * to the newer MPI calls, we are defining ENABLE_MPI1_COMPAT to 1 + * before including the c bindings. + */ +#define ENABLE_MPI1_COMPAT 1 + #include "ompi/mpi/c/bindings.h" #include "ompi/runtime/params.h" #include "ompi/communicator/communicator.h" diff --git a/ompi/mpi/c/errhandler_create.c b/ompi/mpi/c/errhandler_create.c index cae93f98f4..3af43d5744 100644 --- a/ompi/mpi/c/errhandler_create.c +++ b/ompi/mpi/c/errhandler_create.c @@ -20,6 +20,10 @@ #include "ompi_config.h" +/* defining ENABLE_MPI1_COMPAT to 1 for removed implementations here. + * see comments in address.c for more information. */ +#define ENABLE_MPI1_COMPAT 1 + #include "ompi/mpi/c/bindings.h" #include "ompi/communicator/communicator.h" #include "ompi/errhandler/errhandler.h" @@ -31,7 +35,7 @@ #define MPI_Errhandler_create PMPI_Errhandler_create #endif -int MPI_Errhandler_create(MPI_Handler_function *function, +int MPI_Errhandler_create(MPI_Comm_errhandler_function *function, MPI_Errhandler *errhandler) { diff --git a/ompi/mpi/c/errhandler_get.c b/ompi/mpi/c/errhandler_get.c index 7125506b7e..e5caf07c3b 100644 --- a/ompi/mpi/c/errhandler_get.c +++ b/ompi/mpi/c/errhandler_get.c @@ -20,6 +20,10 @@ #include "ompi_config.h" +/* defining ENABLE_MPI1_COMPAT to 1 for removed implementations here. + * see comments in address.c for more information. */ +#define ENABLE_MPI1_COMPAT 1 + #include "ompi/mpi/c/bindings.h" #include "ompi/runtime/params.h" #include "ompi/communicator/communicator.h" diff --git a/ompi/mpi/c/errhandler_set.c b/ompi/mpi/c/errhandler_set.c index c861b05890..686f97f164 100644 --- a/ompi/mpi/c/errhandler_set.c +++ b/ompi/mpi/c/errhandler_set.c @@ -20,6 +20,10 @@ #include "ompi_config.h" +/* defining ENABLE_MPI1_COMPAT to 1 for removed implementations here. + * see comments in address.c for more information. */ +#define ENABLE_MPI1_COMPAT 1 + #include "ompi/mpi/c/bindings.h" #include "ompi/runtime/params.h" #include "ompi/communicator/communicator.h" diff --git a/ompi/mpi/c/profile/Makefile.am b/ompi/mpi/c/profile/Makefile.am index 5330752db5..4a239d7e2a 100644 --- a/ompi/mpi/c/profile/Makefile.am +++ b/ompi/mpi/c/profile/Makefile.am @@ -416,7 +416,8 @@ nodist_libmpi_c_pmpi_la_SOURCES = \ pwin_unlock_all.c \ pwin_wait.c -if OMPI_ENABLE_MPI1_COMPAT +# include all of the removed MPI functions in library +# for v4.0.x regardless of state of OMPI_ENABLE_MPI1_COMPAT nodist_libmpi_c_pmpi_la_SOURCES += \ paddress.c \ perrhandler_create.c \ @@ -428,7 +429,6 @@ nodist_libmpi_c_pmpi_la_SOURCES += \ ptype_lb.c \ ptype_struct.c \ ptype_ub.c -endif # # Sym link in the sources from the real MPI directory diff --git a/ompi/mpi/c/type_extent.c b/ompi/mpi/c/type_extent.c index 4c4a4a5f59..8984b467bb 100644 --- a/ompi/mpi/c/type_extent.c +++ b/ompi/mpi/c/type_extent.c @@ -20,6 +20,10 @@ #include "ompi_config.h" +/* defining ENABLE_MPI1_COMPAT to 1 for removed implementations here. + * see comments in address.c for more information. */ +#define ENABLE_MPI1_COMPAT 1 + #include "ompi/mpi/c/bindings.h" #include "ompi/runtime/params.h" #include "ompi/communicator/communicator.h" diff --git a/ompi/mpi/c/type_hindexed.c b/ompi/mpi/c/type_hindexed.c index 89d3b46bdd..ad071fd5a1 100644 --- a/ompi/mpi/c/type_hindexed.c +++ b/ompi/mpi/c/type_hindexed.c @@ -20,6 +20,10 @@ #include "ompi_config.h" +/* defining ENABLE_MPI1_COMPAT to 1 for removed implementations here. + * see comments in address.c for more information. */ +#define ENABLE_MPI1_COMPAT 1 + #include "ompi/mpi/c/bindings.h" #include "ompi/runtime/params.h" #include "ompi/communicator/communicator.h" diff --git a/ompi/mpi/c/type_hvector.c b/ompi/mpi/c/type_hvector.c index 2c1517b565..469aba75d5 100644 --- a/ompi/mpi/c/type_hvector.c +++ b/ompi/mpi/c/type_hvector.c @@ -20,6 +20,10 @@ #include "ompi_config.h" +/* defining ENABLE_MPI1_COMPAT to 1 for removed implementations here. + * see comments in address.c for more information. */ +#define ENABLE_MPI1_COMPAT 1 + #include "ompi/mpi/c/bindings.h" #include "ompi/runtime/params.h" #include "ompi/communicator/communicator.h" diff --git a/ompi/mpi/c/type_lb.c b/ompi/mpi/c/type_lb.c index 269f7bd245..b8ba200c87 100644 --- a/ompi/mpi/c/type_lb.c +++ b/ompi/mpi/c/type_lb.c @@ -20,6 +20,10 @@ #include "ompi_config.h" +/* defining ENABLE_MPI1_COMPAT to 1 for removed implementations here. + * see comments in address.c for more information. */ +#define ENABLE_MPI1_COMPAT 1 + #include "ompi/mpi/c/bindings.h" #include "ompi/runtime/params.h" #include "ompi/communicator/communicator.h" diff --git a/ompi/mpi/c/type_struct.c b/ompi/mpi/c/type_struct.c index 575e26453f..13572552ce 100644 --- a/ompi/mpi/c/type_struct.c +++ b/ompi/mpi/c/type_struct.c @@ -20,6 +20,10 @@ #include "ompi_config.h" +/* defining ENABLE_MPI1_COMPAT to 1 for removed implementations here. + * see comments in address.c for more information. */ +#define ENABLE_MPI1_COMPAT 1 + #include "ompi/mpi/c/bindings.h" #if OMPI_BUILD_MPI_PROFILING diff --git a/ompi/mpi/c/type_ub.c b/ompi/mpi/c/type_ub.c index a7d16909d6..1544116a6f 100644 --- a/ompi/mpi/c/type_ub.c +++ b/ompi/mpi/c/type_ub.c @@ -20,6 +20,10 @@ #include "ompi_config.h" +/* defining ENABLE_MPI1_COMPAT to 1 for removed implementations here. + * see comments in address.c for more information. */ +#define ENABLE_MPI1_COMPAT 1 + #include "ompi/mpi/c/bindings.h" #include "ompi/runtime/params.h" #include "ompi/communicator/communicator.h" diff --git a/ompi/mpi/fortran/mpif-h/Makefile.am b/ompi/mpi/fortran/mpif-h/Makefile.am index e44b770977..2c0a6c050f 100644 --- a/ompi/mpi/fortran/mpif-h/Makefile.am +++ b/ompi/mpi/fortran/mpif-h/Makefile.am @@ -481,8 +481,8 @@ lib@OMPI_LIBMPI_NAME@_mpifh_la_SOURCES += \ win_flush_local_f.c \ win_flush_local_all_f.c - -if OMPI_ENABLE_MPI1_COMPAT +# include all of the removed MPI functions in library +# for v4.0.x regardless of state of OMPI_ENABLE_MPI1_COMPAT lib@OMPI_LIBMPI_NAME@_mpifh_la_SOURCES += \ address_f.c \ errhandler_create_f.c \ @@ -495,7 +495,6 @@ lib@OMPI_LIBMPI_NAME@_mpifh_la_SOURCES += \ type_struct_f.c \ type_ub_f.c endif -endif # # Conditionally install the header files diff --git a/ompi/mpi/fortran/mpif-h/address_f.c b/ompi/mpi/fortran/mpif-h/address_f.c index 85d1369ae2..1abdf8cfb1 100644 --- a/ompi/mpi/fortran/mpif-h/address_f.c +++ b/ompi/mpi/fortran/mpif-h/address_f.c @@ -12,6 +12,7 @@ * Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2018 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow diff --git a/ompi/mpi/fortran/mpif-h/errhandler_create_f.c b/ompi/mpi/fortran/mpif-h/errhandler_create_f.c index 9805f65280..41a59bcc1d 100644 --- a/ompi/mpi/fortran/mpif-h/errhandler_create_f.c +++ b/ompi/mpi/fortran/mpif-h/errhandler_create_f.c @@ -12,6 +12,7 @@ * Copyright (c) 2008-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2018 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow diff --git a/ompi/mpi/fortran/mpif-h/errhandler_get_f.c b/ompi/mpi/fortran/mpif-h/errhandler_get_f.c index 5ca661aa10..313dafd8df 100644 --- a/ompi/mpi/fortran/mpif-h/errhandler_get_f.c +++ b/ompi/mpi/fortran/mpif-h/errhandler_get_f.c @@ -12,6 +12,7 @@ * Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2018 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow diff --git a/ompi/mpi/fortran/mpif-h/errhandler_set_f.c b/ompi/mpi/fortran/mpif-h/errhandler_set_f.c index d6ea8a94b3..713c35f737 100644 --- a/ompi/mpi/fortran/mpif-h/errhandler_set_f.c +++ b/ompi/mpi/fortran/mpif-h/errhandler_set_f.c @@ -12,6 +12,7 @@ * Copyright (c) 2008-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2018 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow diff --git a/ompi/mpi/fortran/mpif-h/profile/Makefile.am b/ompi/mpi/fortran/mpif-h/profile/Makefile.am index 5566b85b28..7c1e6afe08 100644 --- a/ompi/mpi/fortran/mpif-h/profile/Makefile.am +++ b/ompi/mpi/fortran/mpif-h/profile/Makefile.am @@ -397,7 +397,8 @@ linked_files = \ pwin_flush_local_f.c \ pwin_flush_local_all_f.c -if OMPI_ENABLE_MPI1_COMPAT +# include all of the removed MPI functions in library +# for v4.0.x regardless of state of OMPI_ENABLE_MPI1_COMPAT linked_files += \ paddress_f.c \ perrhandler_create_f.c \ @@ -409,7 +410,6 @@ linked_files += \ ptype_lb_f.c \ ptype_struct_f.c \ ptype_ub_f.c -endif # # Sym link in the sources from the real MPI directory diff --git a/ompi/mpi/fortran/mpif-h/type_extent_f.c b/ompi/mpi/fortran/mpif-h/type_extent_f.c index a2baf215a6..cbc7384fd2 100644 --- a/ompi/mpi/fortran/mpif-h/type_extent_f.c +++ b/ompi/mpi/fortran/mpif-h/type_extent_f.c @@ -12,6 +12,7 @@ * Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2018 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow diff --git a/ompi/mpi/fortran/mpif-h/type_hindexed_f.c b/ompi/mpi/fortran/mpif-h/type_hindexed_f.c index 3b48ec31ce..e33ff79c76 100644 --- a/ompi/mpi/fortran/mpif-h/type_hindexed_f.c +++ b/ompi/mpi/fortran/mpif-h/type_hindexed_f.c @@ -12,6 +12,7 @@ * Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2018 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow diff --git a/ompi/mpi/fortran/mpif-h/type_hvector_f.c b/ompi/mpi/fortran/mpif-h/type_hvector_f.c index 1bc5720e9b..5380a006dd 100644 --- a/ompi/mpi/fortran/mpif-h/type_hvector_f.c +++ b/ompi/mpi/fortran/mpif-h/type_hvector_f.c @@ -12,6 +12,7 @@ * Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2018 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow diff --git a/ompi/mpi/fortran/mpif-h/type_lb_f.c b/ompi/mpi/fortran/mpif-h/type_lb_f.c index 3867c35ad2..f442b1a2ef 100644 --- a/ompi/mpi/fortran/mpif-h/type_lb_f.c +++ b/ompi/mpi/fortran/mpif-h/type_lb_f.c @@ -12,6 +12,7 @@ * Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2018 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow diff --git a/ompi/mpi/fortran/mpif-h/type_struct_f.c b/ompi/mpi/fortran/mpif-h/type_struct_f.c index 03a05d9a54..bb6b10a1fd 100644 --- a/ompi/mpi/fortran/mpif-h/type_struct_f.c +++ b/ompi/mpi/fortran/mpif-h/type_struct_f.c @@ -12,6 +12,7 @@ * Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2018 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow diff --git a/ompi/mpi/fortran/mpif-h/type_ub_f.c b/ompi/mpi/fortran/mpif-h/type_ub_f.c index 17a468a634..dbfd000d23 100644 --- a/ompi/mpi/fortran/mpif-h/type_ub_f.c +++ b/ompi/mpi/fortran/mpif-h/type_ub_f.c @@ -12,6 +12,7 @@ * Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2015 Research Organization for Information Science * and Technology (RIST). All rights reserved. + * Copyright (c) 2018 IBM Corporation. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow