diff --git a/.gitignore b/.gitignore index 482dd61..e79c547 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/openmpi-3.1.2.tar.bz2 +SOURCES/openmpi-4.0.1.tar.bz2 diff --git a/.openmpi.metadata b/.openmpi.metadata index 1c6e004..177a7ff 100644 --- a/.openmpi.metadata +++ b/.openmpi.metadata @@ -1 +1 @@ -b93c3b6ece16064e95578ec104f0c695c47a9fc8 SOURCES/openmpi-3.1.2.tar.bz2 +35bf7c9162b08ecdc4876af573786cd290015631 SOURCES/openmpi-4.0.1.tar.bz2 diff --git a/SOURCES/0021-btl-vader-ensure-that-the-send-tag-is-always-written.patch b/SOURCES/0021-btl-vader-ensure-that-the-send-tag-is-always-written.patch deleted file mode 100644 index 90439ab..0000000 --- a/SOURCES/0021-btl-vader-ensure-that-the-send-tag-is-always-written.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 1fa5e66dbc1aac73221e5c4c9f9be899921706aa Mon Sep 17 00:00:00 2001 -From: Nathan Hjelm -Date: Tue, 11 Sep 2018 10:27:31 -0600 -Subject: [PATCH 21/52] btl/vader: ensure that the send tag is always written - last - -To ensure fast box entries are complete when processed by the -receiving process the tag must be written last. This includes a zero -header for the next fast box entry (in some cases). This commit fixes -two instances where the tag was written too early. In one case, on -32-bit systems it is possible for the tag part of the header to be -written before the size. The second instance is an ordering issue. The -zero header was being written after the fastbox header. - -Fixes #5375, #5638 - -Signed-off-by: Nathan Hjelm -(cherry picked from commit 850fbff441756b2f9cde1007ead3e37ce22599c2) -Signed-off-by: Nathan Hjelm ---- - opal/mca/btl/vader/btl_vader_fbox.h | 11 ++++++----- - 1 file changed, 6 insertions(+), 5 deletions(-) - -diff --git a/opal/mca/btl/vader/btl_vader_fbox.h b/opal/mca/btl/vader/btl_vader_fbox.h -index 7c0cdd5..df1fb92 100644 ---- a/opal/mca/btl/vader/btl_vader_fbox.h -+++ b/opal/mca/btl/vader/btl_vader_fbox.h -@@ -50,9 +50,10 @@ void mca_btl_vader_poll_handle_frag (mca_btl_vader_hdr_t *hdr, mca_btl_base_endp - static inline void mca_btl_vader_fbox_set_header (mca_btl_vader_fbox_hdr_t *hdr, uint16_t tag, - uint16_t seq, uint32_t size) - { -- mca_btl_vader_fbox_hdr_t tmp = {.data = {.tag = tag, .seq = seq, .size = size}}; -- opal_atomic_wmb (); -+ mca_btl_vader_fbox_hdr_t tmp = {.data = {.tag = 0, .seq = seq, .size = size}}; - hdr->ival = tmp.ival; -+ opal_atomic_wmb (); -+ hdr->data.tag = tag; - } - - /* attempt to reserve a contiguous segment from the remote ep */ -@@ -138,9 +139,6 @@ static inline bool mca_btl_vader_fbox_sendi (mca_btl_base_endpoint_t *ep, unsign - memcpy (data + header_size, payload, payload_size); - } - -- /* write out part of the header now. the tag will be written when the data is available */ -- mca_btl_vader_fbox_set_header (MCA_BTL_VADER_FBOX_HDR(dst), tag, ep->fbox_out.seq++, data_size); -- - end += size; - - if (OPAL_UNLIKELY(fbox_size == end)) { -@@ -152,6 +150,9 @@ static inline bool mca_btl_vader_fbox_sendi (mca_btl_base_endpoint_t *ep, unsign - MCA_BTL_VADER_FBOX_HDR(ep->fbox_out.buffer + end)->ival = 0; - } - -+ /* write out part of the header now. the tag will be written when the data is available */ -+ mca_btl_vader_fbox_set_header (MCA_BTL_VADER_FBOX_HDR(dst), tag, ep->fbox_out.seq++, data_size); -+ - /* align the buffer */ - ep->fbox_out.end = ((uint32_t) hbs << 31) | end; - opal_atomic_wmb (); --- -1.8.3.1 - diff --git a/SOURCES/0038-btl-vader-ensure-the-fast-box-tag-is-always-read-fir.patch b/SOURCES/0038-btl-vader-ensure-the-fast-box-tag-is-always-read-fir.patch deleted file mode 100644 index 2837f4b..0000000 --- a/SOURCES/0038-btl-vader-ensure-the-fast-box-tag-is-always-read-fir.patch +++ /dev/null @@ -1,49 +0,0 @@ -From e43320ddc3a316e3410d6dde56062cf8968ea284 Mon Sep 17 00:00:00 2001 -From: Nathan Hjelm -Date: Tue, 2 Oct 2018 15:52:45 -0600 -Subject: [PATCH 38/52] btl/vader: ensure the fast box tag is always read first - -On some platfoms reading a 64-bit value is non-atomic and it is -possible that the two 32-bit values are read in the wrong order. To -ensure the tag is always read first this commit reads the tag before -reading the full 64-bit value. - -Signed-off-by: Nathan Hjelm -(cherry picked from commit 66a7dc4c72cb25df67e7f872bee7a20b5fa9c763) ---- - opal/mca/btl/vader/btl_vader_fbox.h | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) - -diff --git a/opal/mca/btl/vader/btl_vader_fbox.h b/opal/mca/btl/vader/btl_vader_fbox.h -index df1fb92..6df9a2d 100644 ---- a/opal/mca/btl/vader/btl_vader_fbox.h -+++ b/opal/mca/btl/vader/btl_vader_fbox.h -@@ -56,6 +56,16 @@ static inline void mca_btl_vader_fbox_set_header (mca_btl_vader_fbox_hdr_t *hdr, - hdr->data.tag = tag; - } - -+static inline mca_btl_vader_fbox_hdr_t mca_btl_vader_fbox_read_header (mca_btl_vader_fbox_hdr_t *hdr) -+{ -+ mca_btl_vader_fbox_hdr_t tmp; -+ uint16_t tag = hdr->data.tag; -+ opal_atomic_rmb (); -+ tmp.ival = hdr->ival; -+ tmp.data.tag = tag; -+ return tmp; -+} -+ - /* attempt to reserve a contiguous segment from the remote ep */ - static inline bool mca_btl_vader_fbox_sendi (mca_btl_base_endpoint_t *ep, unsigned char tag, - void * restrict header, const size_t header_size, -@@ -175,7 +185,7 @@ static inline bool mca_btl_vader_check_fboxes (void) - int poll_count; - - for (poll_count = 0 ; poll_count <= MCA_BTL_VADER_POLL_COUNT ; ++poll_count) { -- const mca_btl_vader_fbox_hdr_t hdr = {.ival = MCA_BTL_VADER_FBOX_HDR(ep->fbox_in.buffer + start)->ival}; -+ const mca_btl_vader_fbox_hdr_t hdr = mca_btl_vader_fbox_read_header (MCA_BTL_VADER_FBOX_HDR(ep->fbox_in.buffer + start)); - - /* check for a valid tag a sequence number */ - if (0 == hdr.data.tag || hdr.data.seq != ep->fbox_in.seq) { --- -1.8.3.1 - diff --git a/SOURCES/0040-btl-vader-fix-race-condition-in-writing-header.patch b/SOURCES/0040-btl-vader-fix-race-condition-in-writing-header.patch deleted file mode 100644 index 16ecbba..0000000 --- a/SOURCES/0040-btl-vader-fix-race-condition-in-writing-header.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 5d658937ce874422c66ac4c7d9723df8bb69ecd7 Mon Sep 17 00:00:00 2001 -From: Nathan Hjelm -Date: Fri, 5 Oct 2018 16:30:06 -0600 -Subject: [PATCH 40/52] btl/vader: fix race condition in writing header - -Signed-off-by: Nathan Hjelm -(cherry picked from commit 8291f6722d890efd15333bf7b26f0d07952fa41e) -Signed-off-by: Nathan Hjelm ---- - opal/mca/btl/vader/btl_vader_fbox.h | 19 ++++++++++++------- - 1 file changed, 12 insertions(+), 7 deletions(-) - -diff --git a/opal/mca/btl/vader/btl_vader_fbox.h b/opal/mca/btl/vader/btl_vader_fbox.h -index 6df9a2d..4ebfde8 100644 ---- a/opal/mca/btl/vader/btl_vader_fbox.h -+++ b/opal/mca/btl/vader/btl_vader_fbox.h -@@ -29,6 +29,10 @@ typedef union mca_btl_vader_fbox_hdr_t { - /** sequence number */ - uint16_t seq; - } data; -+ struct { -+ uint32_t value0; -+ uint32_t value1; -+ } data_i32; - uint64_t ival; - } mca_btl_vader_fbox_hdr_t; - -@@ -50,19 +54,20 @@ void mca_btl_vader_poll_handle_frag (mca_btl_vader_hdr_t *hdr, mca_btl_base_endp - static inline void mca_btl_vader_fbox_set_header (mca_btl_vader_fbox_hdr_t *hdr, uint16_t tag, - uint16_t seq, uint32_t size) - { -- mca_btl_vader_fbox_hdr_t tmp = {.data = {.tag = 0, .seq = seq, .size = size}}; -- hdr->ival = tmp.ival; -+ mca_btl_vader_fbox_hdr_t tmp = {.data = {.tag = tag, .seq = seq, .size = size}}; -+ /* clear out existing tag/seq */ -+ hdr->data_i32.value1 = 0; -+ opal_atomic_wmb (); -+ hdr->data_i32.value0 = size; - opal_atomic_wmb (); -- hdr->data.tag = tag; -+ hdr->data_i32.value1 = tmp.data_i32.value1; - } - - static inline mca_btl_vader_fbox_hdr_t mca_btl_vader_fbox_read_header (mca_btl_vader_fbox_hdr_t *hdr) - { -- mca_btl_vader_fbox_hdr_t tmp; -- uint16_t tag = hdr->data.tag; -+ mca_btl_vader_fbox_hdr_t tmp = {.data_i32 = {.value1 = hdr->data_i32.value1}};; - opal_atomic_rmb (); -- tmp.ival = hdr->ival; -- tmp.data.tag = tag; -+ tmp.data_i32.value0 = hdr->data_i32.value0; - return tmp; - } - --- -1.8.3.1 - diff --git a/SOURCES/fix-optimization-flags.patch b/SOURCES/fix-optimization-flags.patch deleted file mode 100644 index 7c081e5..0000000 --- a/SOURCES/fix-optimization-flags.patch +++ /dev/null @@ -1,187 +0,0 @@ -Index: openmpi-3.1.2/orte/test/system/Makefile -=================================================================== ---- openmpi-3.1.2.orig/orte/test/system/Makefile -+++ openmpi-3.1.2/orte/test/system/Makefile -@@ -21,4 +21,4 @@ pmixtool: - ortecc -o pmixtool pmixtool.c -lpmix - - threads: -- ortecc -O0 -g -lpthread -lhwloc threads.c -o threads -+ ortecc -O2 -g -lpthread -lhwloc threads.c -o threads -Index: openmpi-3.1.2/orte/tools/orte-dvm/Makefile.in -=================================================================== ---- openmpi-3.1.2.orig/orte/tools/orte-dvm/Makefile.in -+++ openmpi-3.1.2/orte/tools/orte-dvm/Makefile.in -@@ -558,7 +558,7 @@ CCAS = @CCAS@ - CCASDEPMODE = @CCASDEPMODE@ - CCASFLAGS = @CCASFLAGS@ - CCDEPMODE = @CCDEPMODE@ --CFLAGS = $(CFLAGS_WITHOUT_OPTFLAGS) $(DEBUGGER_CFLAGS) -+CFLAGS = @CFLAGS@ - CFLAGS_WITHOUT_OPTFLAGS = @CFLAGS_WITHOUT_OPTFLAGS@ - CLEANFILES = @CLEANFILES@ - CONFIGURE_DEPENDENCIES = @CONFIGURE_DEPENDENCIES@ -Index: openmpi-3.1.2/orte/tools/prun/Makefile.in -=================================================================== ---- openmpi-3.1.2.orig/orte/tools/prun/Makefile.in -+++ openmpi-3.1.2/orte/tools/prun/Makefile.in -@@ -558,7 +558,7 @@ CCAS = @CCAS@ - CCASDEPMODE = @CCASDEPMODE@ - CCASFLAGS = @CCASFLAGS@ - CCDEPMODE = @CCDEPMODE@ --CFLAGS = $(CFLAGS_WITHOUT_OPTFLAGS) $(DEBUGGER_CFLAGS) -+CFLAGS = @CFLAGS@ - CFLAGS_WITHOUT_OPTFLAGS = @CFLAGS_WITHOUT_OPTFLAGS@ - CLEANFILES = @CLEANFILES@ - CONFIGURE_DEPENDENCIES = @CONFIGURE_DEPENDENCIES@ -Index: openmpi-3.1.2/orte/Makefile.in -=================================================================== ---- openmpi-3.1.2.orig/orte/Makefile.in -+++ openmpi-3.1.2/orte/Makefile.in -@@ -2162,7 +2162,7 @@ AM_LFLAGS = -Porte_util_hostfile_ - liborted_mpir_la_SOURCES = \ - orted/orted_submit.c - --liborted_mpir_la_CFLAGS = $(CFLAGS_WITHOUT_OPTFLAGS) $(DEBUGGER_CFLAGS) -+liborted_mpir_la_CFLAGS = $(CFLAGS) - all: all-recursive - - .SUFFIXES: -Index: openmpi-3.1.2/ompi/debuggers/Makefile.in -=================================================================== ---- openmpi-3.1.2.orig/ompi/debuggers/Makefile.in -+++ openmpi-3.1.2/ompi/debuggers/Makefile.in -@@ -756,7 +756,7 @@ CCDEPMODE = @CCDEPMODE@ - # may already have debugging and/or optimization flags). We use - # post-processed forms of the CFLAGS in the library targets down - # below. --CFLAGS = $(CFLAGS_WITHOUT_OPTFLAGS) $(DEBUGGER_CFLAGS) -+CFLAGS = @CFLAGS@ - CFLAGS_WITHOUT_OPTFLAGS = @CFLAGS_WITHOUT_OPTFLAGS@ - CLEANFILES = @CLEANFILES@ - CONFIGURE_DEPENDENCIES = @CONFIGURE_DEPENDENCIES@ -@@ -1984,7 +1984,7 @@ common = ompi_common_dll_defs.h ompi_com - - # MPI message queue DLL - libompi_dbg_msgq_la_SOURCES = ompi_msgq_dll.c ompi_msgq_dll_defs.h $(common) --libompi_dbg_msgq_la_CFLAGS = -g -+libompi_dbg_msgq_la_CFLAGS = -O2 -g - libompi_dbg_msgq_la_LDFLAGS = -module -avoid-version - - # These are checks for the padding on predefined MPI object types. -Index: openmpi-3.1.2/ompi/mpi/fortran/use-mpi-tkr/Makefile.in -=================================================================== ---- openmpi-3.1.2.orig/ompi/mpi/fortran/use-mpi-tkr/Makefile.in -+++ openmpi-3.1.2/ompi/mpi/fortran/use-mpi-tkr/Makefile.in -@@ -1809,7 +1809,7 @@ ompi__v_GEN_0 = @echo " GENERATE" $@; - # current directory) because it is generated. - @OMPI_BUILD_FORTRAN_USEMPI_TKR_BINDINGS_TRUE@AM_FCFLAGS = -I$(top_builddir)/ompi/include -I$(top_srcdir)/ompi/include \ - @OMPI_BUILD_FORTRAN_USEMPI_TKR_BINDINGS_TRUE@ $(OMPI_FC_MODULE_FLAG). -I$(srcdir) -I. \ --@OMPI_BUILD_FORTRAN_USEMPI_TKR_BINDINGS_TRUE@ -I$(top_builddir)/ompi/mpi/fortran/use-mpi-tkr $(FCFLAGS_f90) -+@OMPI_BUILD_FORTRAN_USEMPI_TKR_BINDINGS_TRUE@ -I$(top_builddir)/ompi/mpi/fortran/use-mpi-tkr $(FCFLAGS) $(FCFLAGS_f90) - - - # Do different things if the top-level configure decided that we're -@@ -1969,13 +1969,13 @@ distclean-compile: - $(AM_V_PPFC)$(LTPPFCCOMPILE) -c -o $@ $< - - .f90.o: -- $(AM_V_FC)$(FCCOMPILE) -c -o $@ $(FCFLAGS_f90) $< -+ $(AM_V_FC)$(FCCOMPILE) -c -o $@ $(FCFLAGS) $(FCFLAGS_f90) $< - - .f90.obj: -- $(AM_V_FC)$(FCCOMPILE) -c -o $@ $(FCFLAGS_f90) `$(CYGPATH_W) '$<'` -+ $(AM_V_FC)$(FCCOMPILE) -c -o $@ $(FCFLAGS) $(FCFLAGS_f90) `$(CYGPATH_W) '$<'` - - .f90.lo: -- $(AM_V_FC)$(LTFCCOMPILE) -c -o $@ $(FCFLAGS_f90) $< -+ $(AM_V_FC)$(LTFCCOMPILE) -c -o $@ $(FCFLAGS) $(FCFLAGS_f90) $< - - mostlyclean-libtool: - -rm -f *.lo -Index: openmpi-3.1.2/ompi/mpi/fortran/use-mpi-ignore-tkr/Makefile.in -=================================================================== ---- openmpi-3.1.2.orig/ompi/mpi/fortran/use-mpi-ignore-tkr/Makefile.in -+++ openmpi-3.1.2/ompi/mpi/fortran/use-mpi-ignore-tkr/Makefile.in -@@ -1783,7 +1783,7 @@ ompi__v_GEN_0 = @echo " GENERATE" $@; - # mpi" MPI bindings. - @OMPI_BUILD_FORTRAN_USEMPI_IGNORE_TKR_BINDINGS_TRUE@AM_CPPFLAGS = -DOMPI_PROFILE_LAYER=0 -DOMPI_COMPILING_FORTRAN_WRAPPERS=1 - @OMPI_BUILD_FORTRAN_USEMPI_IGNORE_TKR_BINDINGS_TRUE@AM_FCFLAGS = -I$(top_builddir)/ompi/include -I$(top_srcdir)/ompi/include \ --@OMPI_BUILD_FORTRAN_USEMPI_IGNORE_TKR_BINDINGS_TRUE@ -I$(top_builddir) -I$(top_srcdir) $(FCFLAGS_f90) -+@OMPI_BUILD_FORTRAN_USEMPI_IGNORE_TKR_BINDINGS_TRUE@ -I$(top_builddir) -I$(top_srcdir) $(FCFLAGS) $(FCFLAGS_f90) - - @OMPI_BUILD_FORTRAN_USEMPI_IGNORE_TKR_BINDINGS_TRUE@lib_LTLIBRARIES = lib@OMPI_LIBMPI_NAME@_usempi_ignore_tkr.la - @OMPI_BUILD_FORTRAN_USEMPI_IGNORE_TKR_BINDINGS_TRUE@lib@OMPI_LIBMPI_NAME@_usempi_ignore_tkr_la_SOURCES = \ -@@ -1904,13 +1904,13 @@ distclean-compile: - $(AM_V_PPFC)$(LTPPFCCOMPILE) -c -o $@ $< - - .f90.o: -- $(AM_V_FC)$(FCCOMPILE) -c -o $@ $(FCFLAGS_f90) $< -+ $(AM_V_FC)$(FCCOMPILE) -c -o $@ $(FCFLAGS) $(FCFLAGS_f90) $< - - .f90.obj: -- $(AM_V_FC)$(FCCOMPILE) -c -o $@ $(FCFLAGS_f90) `$(CYGPATH_W) '$<'` -+ $(AM_V_FC)$(FCCOMPILE) -c -o $@ $(FCFLAGS) $(FCFLAGS_f90) `$(CYGPATH_W) '$<'` - - .f90.lo: -- $(AM_V_FC)$(LTFCCOMPILE) -c -o $@ $(FCFLAGS_f90) $< -+ $(AM_V_FC)$(LTFCCOMPILE) -c -o $@ $(FCFLAGS) $(FCFLAGS_f90) $< - - mostlyclean-libtool: - -rm -f *.lo -Index: openmpi-3.1.2/ompi/mpi/fortran/mpiext/Makefile.in -=================================================================== ---- openmpi-3.1.2.orig/ompi/mpi/fortran/mpiext/Makefile.in -+++ openmpi-3.1.2/ompi/mpi/fortran/mpiext/Makefile.in -@@ -1723,7 +1723,7 @@ ucx_STATIC_LIBS = @ucx_STATIC_LIBS@ - @OMPI_BUILD_FORTRAN_USEMPI_OR_USEMPIF08_EXT_TRUE@AM_FCFLAGS = -I$(top_builddir)/ompi/include -I$(top_srcdir)/ompi/include \ - @OMPI_BUILD_FORTRAN_USEMPI_OR_USEMPIF08_EXT_TRUE@ $(OMPI_FC_MODULE_FLAG)$(top_builddir)/ompi/mpi/fortran/base \ - @OMPI_BUILD_FORTRAN_USEMPI_OR_USEMPIF08_EXT_TRUE@ $(OMPI_FC_MODULE_FLAG)$(top_builddir)/ompi/mpi/fortran/use-mpi-f08/mod \ --@OMPI_BUILD_FORTRAN_USEMPI_OR_USEMPIF08_EXT_TRUE@ -I$(top_srcdir) $(FCFLAGS_f90) -+@OMPI_BUILD_FORTRAN_USEMPI_OR_USEMPIF08_EXT_TRUE@ -I$(top_srcdir) $(FCFLAGS) $(FCFLAGS_f90) - - @OMPI_BUILD_FORTRAN_USEMPI_OR_USEMPIF08_EXT_TRUE@flibs = $(am__append_1) \ - @OMPI_BUILD_FORTRAN_USEMPI_OR_USEMPIF08_EXT_TRUE@ $(am__append_2) -Index: openmpi-3.1.2/ompi/mpi/fortran/use-mpi-f08/Makefile.in -=================================================================== ---- openmpi-3.1.2.orig/ompi/mpi/fortran/use-mpi-f08/Makefile.in -+++ openmpi-3.1.2/ompi/mpi/fortran/use-mpi-f08/Makefile.in -@@ -2870,7 +2870,7 @@ ompi__v_GEN_0 = @echo " GENERATE" $@; - @OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS_TRUE@ -I$(top_srcdir)/ompi/include \ - @OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS_TRUE@ $(OMPI_FC_MODULE_FLAG)$(top_builddir)/ompi/$(OMPI_FORTRAN_USEMPI_DIR) \ - @OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS_TRUE@ $(OMPI_FC_MODULE_FLAG)mod \ --@OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS_TRUE@ -I$(top_srcdir) $(FCFLAGS_f90) -+@OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS_TRUE@ -I$(top_srcdir) $(FCFLAGS) $(FCFLAGS_f90) - - @OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS_TRUE@MOSTLYCLEANFILES = *.mod - @OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS_TRUE@lib_LTLIBRARIES = lib@OMPI_LIBMPI_NAME@_usempif08.la -@@ -4444,13 +4444,13 @@ distclean-compile: - @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - - .f90.o: -- $(AM_V_FC)$(FCCOMPILE) -c -o $@ $(FCFLAGS_f90) $< -+ $(AM_V_FC)$(FCCOMPILE) -c -o $@ $(FCFLAGS) $(FCFLAGS_f90) $< - - .f90.obj: -- $(AM_V_FC)$(FCCOMPILE) -c -o $@ $(FCFLAGS_f90) `$(CYGPATH_W) '$<'` -+ $(AM_V_FC)$(FCCOMPILE) -c -o $@ $(FCFLAGS) $(FCFLAGS_f90) `$(CYGPATH_W) '$<'` - - .f90.lo: -- $(AM_V_FC)$(LTFCCOMPILE) -c -o $@ $(FCFLAGS_f90) $< -+ $(AM_V_FC)$(LTFCCOMPILE) -c -o $@ $(FCFLAGS) $(FCFLAGS_f90) $< - - mostlyclean-libtool: - -rm -f *.lo -Index: openmpi-3.1.2/ompi/mpi/fortran/use-mpi-f08/mod/Makefile.in -=================================================================== ---- openmpi-3.1.2.orig/ompi/mpi/fortran/use-mpi-f08/mod/Makefile.in -+++ openmpi-3.1.2/ompi/mpi/fortran/use-mpi-f08/mod/Makefile.in -@@ -1737,7 +1737,7 @@ ompi__v_GEN_0 = @echo " GENERATE" $@; - @OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS_TRUE@ -I$(top_srcdir)/ompi/include \ - @OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS_TRUE@ $(OMPI_FC_MODULE_FLAG)$(top_builddir)/ompi/$(OMPI_FORTRAN_USEMPI_DIR) \ - @OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS_TRUE@ $(OMPI_FC_MODULE_FLAG). \ --@OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS_TRUE@ -I$(top_srcdir) $(FCFLAGS_f90) -+@OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS_TRUE@ -I$(top_srcdir) $(FCFLAGS) $(FCFLAGS_f90) - - @OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS_TRUE@MOSTLYCLEANFILES = *.mod - diff --git a/SOURCES/openmpi-2.1.1-disable-fifo-test.patch b/SOURCES/openmpi-2.1.1-disable-fifo-test.patch deleted file mode 100644 index 697111f..0000000 --- a/SOURCES/openmpi-2.1.1-disable-fifo-test.patch +++ /dev/null @@ -1,103 +0,0 @@ ---- openmpi-2.1.1/test/class/Makefile.am 2017-05-10 08:41:36.000000000 -0700 -+++ openmpi-2.1.1/test/class/Makefile.am.new 2017-08-24 09:07:12.539374461 -0700 -@@ -95,11 +95,14 @@ - $(top_builddir)/test/support/libsupport.a - opal_lifo_DEPENDENCIES = $(opal_lifo_LDADD) - --opal_fifo_SOURCES = opal_fifo.c --opal_fifo_LDADD = \ -- $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la \ -- $(top_builddir)/test/support/libsupport.a --opal_fifo_DEPENDENCIES = $(opal_fifo_LDADD) -+# Disabled due to: -+# https://github.com/open-mpi/ompi/issues/2526 -+# https://github.com/open-mpi/ompi/issues/2966 -+#opal_fifo_SOURCES = opal_fifo.c -+#opal_fifo_LDADD = \ -+# $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la \ -+# $(top_builddir)/test/support/libsupport.a -+#opal_fifo_DEPENDENCIES = $(opal_fifo_LDADD) - - clean-local: - rm -f opal_bitmap_test_out.txt opal_hash_table_test_out.txt opal_proc_table_test_out.txt ---- openmpi-2.1.1/test/class/Makefile.in 2017-05-10 09:01:13.000000000 -0700 -+++ openmpi-2.1.1/test/class/Makefile.in.new 2017-08-24 09:07:12.539374461 -0700 -@@ -115,7 +115,7 @@ - opal_hash_table$(EXEEXT) opal_proc_table$(EXEEXT) \ - opal_tree$(EXEEXT) opal_list$(EXEEXT) \ - opal_value_array$(EXEEXT) opal_pointer_array$(EXEEXT) \ -- opal_lifo$(EXEEXT) opal_fifo$(EXEEXT) -+ opal_lifo$(EXEEXT) - subdir = test/class - ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 - am__aclocal_m4_deps = $(top_srcdir)/config/c_get_alignment.m4 \ -@@ -411,8 +411,6 @@ - am__v_lt_1 = - am_opal_bitmap_OBJECTS = opal_bitmap.$(OBJEXT) - opal_bitmap_OBJECTS = $(am_opal_bitmap_OBJECTS) --am_opal_fifo_OBJECTS = opal_fifo.$(OBJEXT) --opal_fifo_OBJECTS = $(am_opal_fifo_OBJECTS) - am_opal_hash_table_OBJECTS = opal_hash_table.$(OBJEXT) - opal_hash_table_OBJECTS = $(am_opal_hash_table_OBJECTS) - am_opal_lifo_OBJECTS = opal_lifo.$(OBJEXT) -@@ -462,12 +460,12 @@ - am__v_CCLD_0 = @echo " CCLD " $@; - am__v_CCLD_1 = - SOURCES = $(ompi_rb_tree_SOURCES) $(opal_bitmap_SOURCES) \ -- $(opal_fifo_SOURCES) $(opal_hash_table_SOURCES) \ -+ $(opal_hash_table_SOURCES) \ - $(opal_lifo_SOURCES) $(opal_list_SOURCES) \ - $(opal_pointer_array_SOURCES) $(opal_proc_table_SOURCES) \ - $(opal_tree_SOURCES) $(opal_value_array_SOURCES) - DIST_SOURCES = $(ompi_rb_tree_SOURCES) $(opal_bitmap_SOURCES) \ -- $(opal_fifo_SOURCES) $(opal_hash_table_SOURCES) \ -+ $(opal_hash_table_SOURCES) \ - $(opal_lifo_SOURCES) $(opal_list_SOURCES) \ - $(opal_pointer_array_SOURCES) $(opal_proc_table_SOURCES) \ - $(opal_tree_SOURCES) $(opal_value_array_SOURCES) -@@ -1900,12 +1898,6 @@ - $(top_builddir)/test/support/libsupport.a - - opal_lifo_DEPENDENCIES = $(opal_lifo_LDADD) --opal_fifo_SOURCES = opal_fifo.c --opal_fifo_LDADD = \ -- $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la \ -- $(top_builddir)/test/support/libsupport.a -- --opal_fifo_DEPENDENCIES = $(opal_fifo_LDADD) - all: all-am - - .SUFFIXES: -@@ -1957,10 +1949,6 @@ - @rm -f opal_bitmap$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(opal_bitmap_OBJECTS) $(opal_bitmap_LDADD) $(LIBS) - --opal_fifo$(EXEEXT): $(opal_fifo_OBJECTS) $(opal_fifo_DEPENDENCIES) $(EXTRA_opal_fifo_DEPENDENCIES) -- @rm -f opal_fifo$(EXEEXT) -- $(AM_V_CCLD)$(LINK) $(opal_fifo_OBJECTS) $(opal_fifo_LDADD) $(LIBS) -- - opal_hash_table$(EXEEXT): $(opal_hash_table_OBJECTS) $(opal_hash_table_DEPENDENCIES) $(EXTRA_opal_hash_table_DEPENDENCIES) - @rm -f opal_hash_table$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(opal_hash_table_OBJECTS) $(opal_hash_table_LDADD) $(LIBS) -@@ -1997,7 +1985,6 @@ - - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ompi_rb_tree.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/opal_bitmap.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/opal_fifo.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/opal_hash_table.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/opal_lifo.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/opal_list.Po@am__quote@ -@@ -2291,13 +2278,6 @@ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ -- "$$tst" $(AM_TESTS_FD_REDIRECT) --opal_fifo.log: opal_fifo$(EXEEXT) -- @p='opal_fifo$(EXEEXT)'; \ -- b='opal_fifo'; \ -- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ -- --log-file $$b.log --trs-file $$b.trs \ -- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) - .test.log: - @p='$<'; \ diff --git a/SPECS/openmpi.spec b/SPECS/openmpi.spec index 324a16c..5b06576 100644 --- a/SPECS/openmpi.spec +++ b/SPECS/openmpi.spec @@ -21,35 +21,28 @@ %global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) Name: openmpi%{?_cc_name_suffix} -Version: 3.1.2 -Release: 5%{?dist} +Version: 4.0.1 +Release: 3%{?dist} Summary: Open Message Passing Interface Group: Development/Libraries License: BSD and MIT and Romio URL: http://www.open-mpi.org/ # We can't use %%{name} here because of _cc_name_suffix -Source0: https://www.open-mpi.org/software/ompi/v3.1/downloads/openmpi-%{version}.tar.bz2 +Source0: https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}.tar.bz2 Source1: openmpi.module.in Source2: openmpi.pth.py3 Source3: macros.openmpi -# Only for ppc64le -# https://github.com/open-mpi/ompi/issues/2526 -# https://github.com/open-mpi/ompi/issues/2966 -Patch0: openmpi-2.1.1-disable-fifo-test.patch -Patch1: fix-optimization-flags.patch - -Patch9997: 0021-btl-vader-ensure-that-the-send-tag-is-always-written.patch -Patch9998: 0038-btl-vader-ensure-the-fast-box-tag-is-always-read-fir.patch -Patch9999: 0040-btl-vader-fix-race-condition-in-writing-header.patch - -BuildRequires: gcc-gfortran +BuildRequires: gcc-gfortran, gcc-c++ %ifnarch s390 s390x BuildRequires: valgrind-devel %endif +%ifnarch s390 s390x i686 +BuildRequires: ucx-devel +%endif %ifnarch s390 s390x %{arm} -BuildRequires: libibverbs-devel >= 1.1.3, opensm-devel >= 3.3.21 +BuildRequires: libibverbs-devel >= 1.1.3, opensm-devel >= 3.3.22 BuildRequires: librdmacm-devel rdma-core-devel %endif # Doesn't compile: @@ -140,15 +133,6 @@ OpenMPI support for Python 3. %prep %setup -q -n openmpi-%{version} -%ifarch ppc64le -%patch0 -p1 -%endif -%patch1 -p1 -%ifarch %{arm} -%patch9997 -p1 -%patch9998 -p1 -%patch9999 -p1 -%endif %build %set_build_flags @@ -170,6 +154,10 @@ OpenMPI support for Python 3. --with-valgrind \ --enable-memchecker \ %endif +%ifnarch s390 s390x i686 + --with-ucx \ + --with-ucx-libdir=%{_libdir} \ +%endif --with-hwloc=external \ --with-pmix=external \ --with-libevent=external \ @@ -247,9 +235,10 @@ make check %{_libdir}/%{name}/bin/mpi[er]* %{_libdir}/%{name}/bin/ompi* %{_libdir}/%{name}/bin/orte[-dr_]* +%ifnarch s390 s390x i686 %{_libdir}/%{name}/bin/osh* %{_libdir}/%{name}/bin/shmem* -%{_libdir}/%{name}/bin/prun +%endif %{_libdir}/%{name}/lib/*.so.* %{_mandir}/%{namearch}/man1/* %{_mandir}/%{namearch}/man7/* @@ -263,13 +252,12 @@ make check %{_libdir}/%{name}/share/openmpi/mca-btl-openib-device-params.ini %endif + %files devel %dir %{_includedir}/%{namearch} %{_libdir}/%{name}/bin/mpi[cCf]* %{_libdir}/%{name}/bin/opal_* %{_libdir}/%{name}/bin/orte[cCf]* -%{_libdir}/%{name}/bin/osh[cf]* -%{_libdir}/%{name}/bin/shmem[cf]* %{_includedir}/%{namearch}/* %{_fmoddir}/%{name}/ %{_libdir}/%{name}/lib/*.so @@ -277,8 +265,6 @@ make check %{_libdir}/%{name}/lib/pkgconfig/ %{_libdir}/pkgconfig/*.pc %{_mandir}/%{namearch}/man1/mpi[cCf]* -%{_mandir}/%{namearch}/man1/osh[cCf]* -%{_mandir}/%{namearch}/man1/shmem[cCf]* %{_mandir}/%{namearch}/man1/opal_* %{_mandir}/%{namearch}/man3/* %{_libdir}/%{name}/share/openmpi/openmpi-valgrind.supp @@ -301,8 +287,17 @@ make check %changelog -* Tue Jun 04 2019 Pablo Greco 3.1.2-5 -- Fix problems with fttw in armhfp +* Thu Aug 01 2019 Jarod Wilson - 4.0.1-3 +- Actually enable UCX support +- Resolves: rhbz#1642942 + +* Wed Jun 19 2019 Jarod Wilson - 4.0.1-2 +- Bump and rebuild for newer opensm +- Resolves: rhbz#1717289 + +* Mon Apr 29 2019 Jarod Wilson - 4.0.1-1 +- Update to upstream v4.0.1 release +- Resolves: rhbz#1660623 * Tue Sep 25 2018 Jarod Wilson - 3.1.2-5 - Update BR: opensm-devel min version and rebuild against opensm 3.3.21