diff --git a/.gitignore b/.gitignore index a33e76f..ba8757e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ -SOURCES/openmpi-1.10.6.tar.bz2 +SOURCES/openmpi-1.10.7.tar.bz2 SOURCES/openmpi-1.6.4-clean.tar.xz +SOURCES/openmpi-3.0.0.tar.bz2 diff --git a/.openmpi.metadata b/.openmpi.metadata index 4f3c94e..dc068e2 100644 --- a/.openmpi.metadata +++ b/.openmpi.metadata @@ -1,2 +1,3 @@ -cbb3121d30869ee89b5484af274b6b477d8ac72f SOURCES/openmpi-1.10.6.tar.bz2 +fe359d8caa4888625308cf03343d913dd5ac6198 SOURCES/openmpi-1.10.7.tar.bz2 24ec0fd3b82c72df9086e5b6b6be6d0a72f70892 SOURCES/openmpi-1.6.4-clean.tar.xz +fa63990db1aec88b36335a1d79abf47ac6348e23 SOURCES/openmpi-3.0.0.tar.bz2 diff --git a/SOURCES/0001-tests-disable-opal_fifo-test.patch b/SOURCES/0001-tests-disable-opal_fifo-test.patch new file mode 100644 index 0000000..c1c042c --- /dev/null +++ b/SOURCES/0001-tests-disable-opal_fifo-test.patch @@ -0,0 +1,133 @@ +From 666ed459887782994fa963f77f3144eb647e2b1e Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Fri, 3 Nov 2017 10:34:07 +0100 +Subject: [PATCH] tests: disable opal_fifo test + +The opal_fifo test hangs on ppc64le. +https://github.com/open-mpi/ompi/issues/2526 +https://github.com/open-mpi/ompi/issues/2966 +--- + test/class/Makefile.am | 16 +++++++++------- + test/class/Makefile.in | 26 +++----------------------- + 2 files changed, 12 insertions(+), 30 deletions(-) + +diff --git a/test/class/Makefile.am b/test/class/Makefile.am +index 4dc7daf24c..fc325ef96e 100644 +--- a/test/class/Makefile.am ++++ b/test/class/Makefile.am +@@ -35,8 +35,7 @@ check_PROGRAMS = \ + opal_list \ + opal_value_array \ + opal_pointer_array \ +- opal_lifo \ +- opal_fifo ++ opal_lifo + + TESTS = $(check_PROGRAMS) + +@@ -95,11 +94,14 @@ opal_lifo_LDADD = \ + $(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 +diff --git a/test/class/Makefile.in b/test/class/Makefile.in +index c6c20f30b9..2ed128a77f 100644 +--- a/test/class/Makefile.in ++++ b/test/class/Makefile.in +@@ -115,7 +115,7 @@ check_PROGRAMS = $(am__EXEEXT_1) opal_bitmap$(EXEEXT) \ + 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 \ +@@ -426,8 +426,6 @@ am__v_lt_0 = --silent + 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) +@@ -477,12 +475,12 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) + 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) +@@ -1974,12 +1972,6 @@ opal_lifo_LDADD = \ + $(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: +@@ -2031,10 +2023,6 @@ opal_bitmap$(EXEEXT): $(opal_bitmap_OBJECTS) $(opal_bitmap_DEPENDENCIES) $(EXTRA + @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) +@@ -2071,7 +2059,6 @@ distclean-compile: + + @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@ +@@ -2366,13 +2353,6 @@ opal_lifo.log: opal_lifo$(EXEEXT) + --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='$<'; \ + $(am__set_b); \ +-- +2.13.6 + diff --git a/SOURCES/0002-btl-openib-fix-segmentation-fault.patch b/SOURCES/0002-btl-openib-fix-segmentation-fault.patch new file mode 100644 index 0000000..725ba66 --- /dev/null +++ b/SOURCES/0002-btl-openib-fix-segmentation-fault.patch @@ -0,0 +1,37 @@ +From 5efe6f70f310858f554287bcf7883442380a0701 Mon Sep 17 00:00:00 2001 +From: Nathan Hjelm +Date: Tue, 28 Jun 2016 10:26:16 -0600 +Subject: [PATCH] btl/openib: fix segmentation fault + +This commit fixes a segmentation fault that occurs if a device can be +initialized but not used. In this case the devices_count is not equal +to the number of usable devices in the devices pointer array. + +Thanks to @artpol84 for tracking this down. + +Fixes open-mpi/ompi#1823 + +Signed-off-by: Nathan Hjelm +(cherry picked from commit 8128c8eb29d6adde288fca5db3f71fb98e1727f6) +--- + ompi/mca/btl/openib/btl_openib_component.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/ompi/mca/btl/openib/btl_openib_component.c b/ompi/mca/btl/openib/btl_openib_component.c +index 40831f2373..d1376e0a58 100644 +--- a/ompi/mca/btl/openib/btl_openib_component.c ++++ b/ompi/mca/btl/openib/btl_openib_component.c +@@ -3630,7 +3630,9 @@ static int btl_openib_component_progress(void) + for(i = 0; i < mca_btl_openib_component.devices_count; i++) { + mca_btl_openib_device_t *device = + (mca_btl_openib_device_t *) opal_pointer_array_get_item(&mca_btl_openib_component.devices, i); +- count += progress_one_device(device); ++ if (NULL != device) { ++ count += progress_one_device(device); ++ } + } + + #if OPAL_CUDA_SUPPORT /* CUDA_ASYNC_SEND */ +-- +2.13.5 + diff --git a/SOURCES/macros.openmpi3 b/SOURCES/macros.openmpi3 new file mode 100644 index 0000000..7740881 --- /dev/null +++ b/SOURCES/macros.openmpi3 @@ -0,0 +1,6 @@ +%_openmpi3_load \ + . /etc/profile.d/modules.sh; \ + module load mpi/openmpi3-%{_arch}; +%_openmpi3_unload \ + . /etc/profile.d/modules.sh; \ + module unload mpi/openmpi3-%{_arch}; diff --git a/SOURCES/openmpi3.module.in b/SOURCES/openmpi3.module.in new file mode 100644 index 0000000..7a3479c --- /dev/null +++ b/SOURCES/openmpi3.module.in @@ -0,0 +1,21 @@ +#%Module 1.0 +# +# OpenMPI module for use with 'environment-modules' package: +# +conflict mpi +prepend-path PATH @LIBDIR@/bin +prepend-path LD_LIBRARY_PATH @LIBDIR@/lib +prepend-path PKG_CONFIG_PATH @LIBDIR@/lib/pkgconfig +prepend-path PYTHONPATH @PY2SITEARCH@ +prepend-path MANPATH @MANDIR@ +setenv MPI_BIN @LIBDIR@/bin +setenv MPI_SYSCONFIG @ETCDIR@ +setenv MPI_FORTRAN_MOD_DIR @FMODDIR@ +setenv MPI_INCLUDE @INCDIR@ +setenv MPI_LIB @LIBDIR@/lib +setenv MPI_MAN @MANDIR@ +setenv MPI_PYTHON_SITEARCH @PY2SITEARCH@ +setenv MPI_PYTHON2_SITEARCH @PY2SITEARCH@ +setenv MPI_COMPILER @COMPILER@ +setenv MPI_SUFFIX @SUFFIX@ +setenv MPI_HOME @LIBDIR@ diff --git a/SPECS/openmpi.spec b/SPECS/openmpi.spec index 71d13f6..d8f3904 100644 --- a/SPECS/openmpi.spec +++ b/SPECS/openmpi.spec @@ -17,22 +17,24 @@ # suffix in order to keep the names from conflicting. #global _cc_name_suffix -gcc +%global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) + %global majmin 1.10 -%global mainversion %{majmin}.6 +%global mainversion %{majmin}.7 Name: openmpi%{?_cc_name_suffix} Version: %{mainversion} -Release: 2%{?dist} +Release: 1%{?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: http://www.open-mpi.org/software/ompi/v%{majmin}/downloads/openmpi-%{mainversion}.tar.bz2 Source1: openmpi.module.in Source2: macros.openmpi.in Patch1: 0001-Add-Chelsio-T6-adapter-device-parameters.patch +Patch2: 0002-btl-openib-fix-segmentation-fault.patch # openmpi-1.6.4-clean.tar.xz was generated by taking the upstream tarball # and removing license-incompatible files: @@ -47,6 +49,14 @@ Patch102: openmpi-1.6.4-ppc64le.patch # Backport of gcc atomics needed for AArch64 Patch103: openmpi-1.6.4-aarch64.patch +Source300: https://www.open-mpi.org/software/ompi/v3.0/downloads/openmpi-3.0.0.tar.bz2 +Source301: openmpi3.module.in +Source302: macros.openmpi3 +# Only for ppc64le +# https://github.com/open-mpi/ompi/issues/2526 +# https://github.com/open-mpi/ompi/issues/2966 +Patch301: 0001-tests-disable-opal_fifo-test.patch + BuildRequires: gcc-gfortran #sparc 64 doesn't have valgrind %ifnarch %{sparc} s390 @@ -80,7 +90,7 @@ Provides: libmpi_usempi.so.1 %endif # Private openmpi libraries -%global __provides_exclude_from %{_libdir}/(openmpi|compat-openmpi16)/lib/(lib(mca|ompi|open-(pal|rte|trace))|openmpi/).*.so +%global __provides_exclude_from %{_libdir}/(openmpi3|openmpi|compat-openmpi16)/lib/(lib(mca|ompi|open-(pal|rte|trace))|openmpi/).*.so %global __requires_exclude lib(mca|ompi|open-(pal|rte|trace)|vt).* %description @@ -102,12 +112,61 @@ Obsoletes: openmpi-psm-devel %description devel Contains development headers and libraries for openmpi +%ifnarch ppc ppc64 +%package -n openmpi3%{?_cc_name_suffix} +Summary: Open Message Passing Interface 3 +Group: Development/Libraries +Version: 3.0.0 +Release: 1%{?dist} +Provides: mpi +Requires: environment-modules +Requires: openssh-clients + +%description -n openmpi3%{?_cc_name_suffix} +The Open MPI Project is an open source Message Passing Interface implementation +that is developed and maintained by a consortium of academic, research, and +industry partners. Open MPI is therefore able to combine the expertise, +technologies, and resources from all across the High Performance Computing +community in order to build the best MPI library available. Open MPI offers +advantages for system and software vendors, application developers and computer +science researchers. +Features implemented or in short-term development for Open MPI include: + * Full MPI-3.1 standards conformance + * Thread safety and concurrency + * Dynamic process spawning + * Network and process fault tolerance + * Support network heterogeneity + * Single library supports all networks + * Run-time instrumentation + * Many job schedulers supported + * Many OS's supported (32 and 64 bit) + * Production quality software + * High performance on all platforms + * Portable and maintainable + * Tunable by installers and end-users + * Component-based design, documented APIs + * Active, responsive mailing list + * Open source license based on the BSD license + +%package -n openmpi3%{?_cc_name_suffix}-devel +Summary: Development files for openmpi3 +Group: Development/Libraries +Version: 3.0.0 +Release: %{release} +Requires: openmpi3%{?_cc_name_suffix}%{?_isa} = %{version}-%{release}, gcc-gfortran +Provides: mpi-devel + +%description -n openmpi3%{?_cc_name_suffix}-devel +Contains development headers and libraries for openmpi3. + +%endif + %ifnarch s390 s390x %package -n compat-openmpi16%{?_cc_name_suffix} Summary: Open MPI 1.6 compat library Group: Development/Libraries Version: 1.6.4 -Release: 10.5%{?dist} +Release: 10.6%{?dist} Provides: mpi Requires: environment-modules @@ -165,8 +224,15 @@ Contains development headers and libraries for compat-openmpi16 %endif %prep -%setup -q -n openmpi-%{mainversion} -b 100 +%setup -q -n openmpi-%{mainversion} -b 100 -b 300 %patch1 -p1 +%patch2 -p1 +cd .. + +cd openmpi-3.0.0 +%ifarch ppc64le +%patch301 -p1 +%endif cd .. cd openmpi-1.6.4 @@ -222,6 +288,39 @@ cd .. make %{?_smp_mflags} cd .. +%ifnarch ppc ppc64 +%global variant openmpi3 +%global libname %{variant}%{?_cc_name_suffix} +%global namearch %{variant}-%{_arch}%{?_cc_name_suffix} + +cd openmpi-3.0.0 +./configure --prefix=%{_libdir}/%{libname} \ + --mandir=%{_mandir}/%{namearch} \ + --includedir=%{_includedir}/%{namearch} \ + --sysconfdir=%{_sysconfdir}/%{namearch} \ + --disable-silent-rules \ + --enable-builtin-atomics \ + --enable-mpi-cxx \ + --with-sge \ +%ifnarch s390 + --with-valgrind \ + --enable-memchecker \ +%endif + --with-hwloc=/usr \ + CC=%{opt_cc} CXX=%{opt_cxx} \ + LDFLAGS='%{__global_ldflags}' \ + CFLAGS="%{?opt_cflags} %{!?opt_cflags:$RPM_OPT_FLAGS}" \ + CXXFLAGS="%{?opt_cxxflags} %{!?opt_cxxflags:$RPM_OPT_FLAGS}" \ + FC=%{opt_fc} FCFLAGS="%{?opt_fcflags} %{!?opt_fcflags:$RPM_OPT_FLAGS}" +# This fails - https://github.com/open-mpi/ompi/issues/2616 +# --with-hwloc=external \ +# We cannot use external pmix without external libevent +# --with-pmix=external \ + +make %{?_smp_mflags} +cd .. +%endif + %ifnarch s390 s390x %global variant compat-openmpi16 %global libname %{variant}%{?_cc_name_suffix} @@ -292,7 +391,17 @@ mkdir %{buildroot}%{_mandir}/%{namearch}/man{2,4,5,6,8,9,n} # Make the environment-modules file mkdir -p %{buildroot}%{_sysconfdir}/modulefiles/mpi # Since we're doing our own substitution here, use our own definitions. -sed 's#@LIBDIR@#'%{_libdir}/%{libname}'#g;s#@ETCDIR@#'%{_sysconfdir}/%{namearch}'#g;s#@FMODDIR@#'%{_fmoddir}/%{namearch}'#g;s#@INCDIR@#'%{_includedir}/%{namearch}'#g;s#@MANDIR@#'%{_mandir}/%{namearch}'#g;s#@PYSITEARCH@#'%{python_sitearch}/%{libname}'#g;s#@COMPILER@#%{variant}-'%{_arch}%{?_cc_name_suffix}'#g;s#@SUFFIX@#'%{?_cc_name_suffix}'_%{variant}#g' < %SOURCE1 > %{buildroot}%{_sysconfdir}/modulefiles/mpi/%{namearch} +sed 's#@LIBDIR@#'%{_libdir}/%{libname}'#g; + s#@ETCDIR@#'%{_sysconfdir}/%{namearch}'#g; + s#@FMODDIR@#'%{_fmoddir}/%{namearch}'#g; + s#@INCDIR@#'%{_includedir}/%{namearch}'#g; + s#@MANDIR@#'%{_mandir}/%{namearch}'#g; + s#@PYSITEARCH@#'%{python_sitearch}/%{libname}'#g; + s#@COMPILER@#%{variant}-'%{_arch}%{?_cc_name_suffix}'#g; + s#@SUFFIX@#'%{?_cc_name_suffix}'_%{variant}#g' \ + < %SOURCE1 \ + > %{buildroot}%{_sysconfdir}/modulefiles/mpi/%{namearch} + # make the rpm config file mkdir -p %{buildroot}/%{_sysconfdir}/rpm LIBNAME="%{libname}" @@ -312,6 +421,56 @@ ln -s libmpi_usempi.so.5 %{buildroot}/%{_libdir}/%{libname}/lib/libmpi_usempi.so cd .. +%ifnarch ppc ppc64 +%global variant openmpi3 +%global libname %{variant}%{?_cc_name_suffix} +%global namearch %{variant}-%{_arch}%{?_cc_name_suffix} + +cd openmpi-3.0.0 +make install DESTDIR=%{buildroot} +find %{buildroot}%{_libdir}/%{libname}/lib -name \*.la | xargs rm +find %{buildroot}%{_mandir}/%{namearch} -type f | xargs gzip -9 +ln -s mpicc.1.gz %{buildroot}%{_mandir}/%{namearch}/man1/mpiCC.1.gz +# Remove dangling symlink +rm %{buildroot}%{_mandir}/%{namearch}/man1/mpiCC.1 +mkdir %{buildroot}%{_mandir}/%{namearch}/man{2,4,5,6,8,9,n} + +# Make the environment-modules file +mkdir -p %{buildroot}%{_sysconfdir}/modulefiles/mpi +# Since we're doing our own substitution here, use our own definitions. +sed 's#@LIBDIR@#%{_libdir}/%{libname}#; + s#@ETCDIR@#%{_sysconfdir}/%{namearch}#; + s#@FMODDIR@#%{_fmoddir}/%{libname}#; + s#@INCDIR@#%{_includedir}/%{namearch}#; + s#@MANDIR@#%{_mandir}/%{namearch}#; + s#@PY2SITEARCH@#%{python_sitearch}/%{libname}#; + s#@COMPILER@#%{variant}-'%{_arch}%{?_cc_name_suffix}'#g; + s#@SUFFIX@#'%{?_cc_name_suffix}'_%{variant}#g' \ + <%{SOURCE301} \ + >%{buildroot}%{_sysconfdir}/modulefiles/mpi/%{namearch} + +# make the rpm config file +install -Dpm 644 %{SOURCE302} %{buildroot}/%{macrosdir}/macros.%{namearch} + +# Link the fortran module to proper location +mkdir -p %{buildroot}%{_fmoddir}/%{libname} +for mod in %{buildroot}%{_libdir}/%{libname}/lib/*.mod +do + modname=$(basename $mod) + ln -s ../../../%{libname}/lib/${modname} %{buildroot}/%{_fmoddir}/%{libname}/ +done + +mkdir -p %{buildroot}/%{python_sitearch}/%{libname} + +# Link the pkgconfig files into the main namespace as well +mkdir -p %{buildroot}%{_libdir}/pkgconfig +cd %{buildroot}%{_libdir}/pkgconfig +ln -s ../%{libname}/lib/pkgconfig/*.pc . +cd - + +cd .. +%endif + %ifnarch s390 s390x %global variant compat-openmpi16 %global libname %{variant}%{?_cc_name_suffix} @@ -350,6 +509,12 @@ cd .. make check cd .. +%ifnarch ppc ppc64 +cd openmpi-3.0.0 +make check +cd .. +%endif + %ifnarch s390 s390x cd openmpi-1.6.4 make check @@ -423,6 +588,75 @@ cd .. %{_libdir}/%{name}/share/vampirtrace/* %{_sysconfdir}/rpm/macros.%{namearch} +%ifnarch ppc ppc64 +%global variant openmpi3 +%global libname %{variant}%{?_cc_name_suffix} +%global namearch %{variant}-%{_arch}%{?_cc_name_suffix} + +%files -n openmpi3%{?_cc_name_suffix} +%dir %{_libdir}/%{libname} +%dir %{_sysconfdir}/%{namearch} +%dir %{_libdir}/%{libname}/bin +%dir %{_libdir}/%{libname}/lib +%dir %{_libdir}/%{libname}/lib/openmpi +%dir %{_libdir}/%{libname}/lib/pmix +%dir %{_mandir}/%{namearch} +%dir %{_mandir}/%{namearch}/man* +%dir %{_fmoddir}/%{libname} +%dir %{_sysconfdir}/modulefiles/mpi +%dir %{python_sitearch}/%{libname} +%config(noreplace) %{_sysconfdir}/%{namearch}/* +%{_libdir}/%{libname}/bin/mpi[er]* +%{_libdir}/%{libname}/bin/ompi* +%{_libdir}/%{libname}/bin/orte[-dr_]* +%{_libdir}/%{libname}/bin/oshmem_info +%{_libdir}/%{libname}/bin/oshrun +%{_libdir}/%{libname}/bin/shmemrun +%{_libdir}/%{libname}/lib/*.so.* +%{_mandir}/%{namearch}/man1/mpi[er]* +%{_mandir}/%{namearch}/man1/ompi* +%{_mandir}/%{namearch}/man1/orte[-dr_]* +%{_mandir}/%{namearch}/man1/oshmem_info* +%{_mandir}/%{namearch}/man1/oshrun* +%{_mandir}/%{namearch}/man1/shmemrun* +%{_mandir}/%{namearch}/man7/orte* +%{_mandir}/%{namearch}/man7/ompi* +%{_mandir}/%{namearch}/man7/opal* +%{_libdir}/%{libname}/lib/openmpi/* +%{_libdir}/%{libname}/lib/pmix/*.so +%{_sysconfdir}/modulefiles/mpi/%{namearch} +%dir %{_libdir}/%{libname}/share +%dir %{_libdir}/%{libname}/share/openmpi +%dir %{_libdir}/%{libname}/share/pmix +%{_libdir}/%{libname}/share/openmpi/amca-param-sets +%{_libdir}/%{libname}/share/openmpi/help*.txt +%{_libdir}/%{libname}/share/pmix/help*.txt +%{_libdir}/%{libname}/share/openmpi/mca-btl-openib-device-params.ini + +%files -n openmpi3%{?_cc_name_suffix}-devel +%dir %{_includedir}/%{namearch} +%{_libdir}/%{libname}/bin/mpi[cCf]* +%{_libdir}/%{libname}/bin/opal_* +%{_libdir}/%{libname}/bin/orte[cCf]* +%{_libdir}/%{libname}/bin/osh[cCf]* +%{_libdir}/%{libname}/bin/shmem[cCf]* +%{_includedir}/%{namearch}/* +%{_fmoddir}/%{libname}/ +%{_libdir}/%{libname}/lib/*.so +%{_libdir}/%{libname}/lib/*.mod +%{_libdir}/%{libname}/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}/%{libname}/share/openmpi/openmpi-valgrind.supp +%{_libdir}/%{libname}/share/pmix/pmix-valgrind.supp +%{_libdir}/%{libname}/share/openmpi/*-wrapper-data.txt +%{macrosdir}/macros.%{namearch} +%endif + %ifnarch s390 s390x %global variant compat-openmpi16 %global libname %{variant}%{?_cc_name_suffix} @@ -485,6 +719,15 @@ cd .. %endif %changelog +* Fri Nov 03 2017 Michal Schmidt - 1.10.7-1 +- Update to upstream release 1.10.7. +- Add Open MPI 3.0.0 subpackage (openmpi3). +- Resolves: #1452826 + +* Fri Sep 15 2017 Michal Schmidt - 1.10.6-3 +- Fix openib segfault when not all devices are usable. +- Resolves: #1475835 + * Wed Apr 19 2017 Michal Schmidt - 1.10.6-2 - Add Chelsio T6 adapter device parameters. - Fix License tag format.