diff --git a/0001-Drop-Real-16.patch b/0001-Drop-Real-16.patch new file mode 100644 index 0000000..2828cc4 --- /dev/null +++ b/0001-Drop-Real-16.patch @@ -0,0 +1,281 @@ +commit 55d03ccf1f3969b185f00e5572c5a0675e000264 +Author: Nicolas Morey-Chaisemartin +Date: Fri Jun 5 10:11:12 2020 +0200 + + 0001 Drop Real(16) + + Real(16) does not work on armv7 + + Signed-off-by: Nicolas Morey-Chaisemartin + +diff --git src/binding/fortran/mpif_h/Makefile.mk src/binding/fortran/mpif_h/Makefile.mk +index d2de6bc779ac..73049dbd9379 100644 +--- src/binding/fortran/mpif_h/Makefile.mk ++++ src/binding/fortran/mpif_h/Makefile.mk +@@ -390,7 +390,6 @@ mpi_f77_sources += src/binding/fortran/mpif_h/sendf.c \ + src/binding/fortran/mpif_h/null_type_copy_fnf.c + mpi_core_sources += src/binding/fortran/mpif_h/fdebug.c \ + src/binding/fortran/mpif_h/setbot.c \ +- src/binding/fortran/mpif_h/fortran_ops.F \ + src/binding/fortran/mpif_h/setbotf.f + mpi_sources += src/binding/fortran/mpif_h/statusf2c.c src/binding/fortran/mpif_h/statusc2f.c + +diff --git src/binding/fortran/mpif_h/buildiface src/binding/fortran/mpif_h/buildiface +index 2b7a77f22c90..9eebc69a4359 100755 +--- src/binding/fortran/mpif_h/buildiface ++++ src/binding/fortran/mpif_h/buildiface +@@ -1045,7 +1045,6 @@ EOT + print MAKEFD < +Date: Wed Jun 3 12:01:54 2020 +0200 + + fix missing return code + + src/pmi/upmi/upmi.c: In function 'UPMI_GET_LOCAL_RANK': + src/pmi/upmi/upmi.c:746:1: error: control reaches end of non-void function [-Werror=return-type] + 746 | } + | ^ + src/pmi/upmi/upmi.c: In function 'UPMI_GET_LOCAL_SIZE': + src/pmi/upmi/upmi.c:764:1: error: control reaches end of non-void function [-Werror=return-type] + 764 | } + | ^ + src/pmi/upmi/upmi.c: In function 'UPMI_GET_LOWEST_RANK': + src/pmi/upmi/upmi.c:782:1: error: control reaches end of non-void function [-Werror=return-type] + 782 | } + + Signed-off-by: Nicolas Morey-Chaisemartin + +diff --git src/pmi/upmi/upmi.c src/pmi/upmi/upmi.c +index 693e6395cbf8..6b1f045c6d5d 100644 +--- src/pmi/upmi/upmi.c ++++ src/pmi/upmi/upmi.c +@@ -742,6 +742,8 @@ int UPMI_GET_LOCAL_RANK(int rank, int *size) { + } + *size= val->data.uint16; + return convert_err(rc); ++ #else ++ return 0; + #endif + } + +@@ -760,6 +762,8 @@ int UPMI_GET_LOCAL_SIZE(int *size) { + } + *size= val->data.uint32; + return convert_err(rc); ++ #else ++ return 0; + #endif + } + +@@ -778,5 +782,7 @@ int UPMI_GET_LOWEST_RANK(int *rank) { + } + *rank= val->data.uint32; + return convert_err(rc); ++ #else ++ return 0; + #endif + } diff --git a/mvapich2-2.3.3.tar.gz b/mvapich2-2.3.3.tar.gz deleted file mode 100644 index 18a8a1b..0000000 --- a/mvapich2-2.3.3.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:41d3261be57e5bc8aabf4e32981543c015c5443ff032a26f18205985e18c2b73 -size 17102905 diff --git a/mvapich2-2.3.4.tar.gz b/mvapich2-2.3.4.tar.gz new file mode 100644 index 0000000..13bd1d4 --- /dev/null +++ b/mvapich2-2.3.4.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7226a45c7c98333c8e5d2888119cce186199b430c13b7b1dca1769909e68ea7a +size 18473572 diff --git a/mvapich2.changes b/mvapich2.changes index f203ca6..8ea2d43 100644 --- a/mvapich2.changes +++ b/mvapich2.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Wed Jun 3 08:13:07 UTC 2020 - Nicolas Morey-Chaisemartin + +- Update so mvapich2 2.3.4 + - See CHANGELOG for fixes and new features +- Add fix-missing-return-code.patch to fix compilation errors +- Add 0001-Drop-Real-16.patch to disable Real(16) support on Armv7 +- Add wrapper-revert-ldflag-order-change.patch to revert LDFLAGS order + change done in 2.3.4. + This allows legacy builds to work without adding a -lmpi flag + ------------------------------------------------------------------- Tue Jan 21 08:17:00 UTC 2020 - Nicolas Morey-Chaisemartin diff --git a/mvapich2.spec b/mvapich2.spec index b7658fd..d01f3b9 100644 --- a/mvapich2.spec +++ b/mvapich2.spec @@ -19,8 +19,8 @@ %global flavor @BUILD_FLAVOR@%{nil} %define pname mvapich2 -%define vers 2.3.3 -%define _vers 2_3_3 +%define vers 2.3.4 +%define _vers 2_3_4 %if "%{flavor}" == "" ExclusiveArch: do_not_build @@ -168,8 +168,13 @@ Patch2: mvapich2-arm-support.patch # It's been merged upstream, should be removed with the next release Patch3: 0001-Drop-GCC-check.patch Patch4: reproducible.patch +Patch5: fix-missing-return-code.patch +Patch6: wrapper-revert-ldflag-order-change.patch +## Armv7 specific patches # PATCH-FIX-UPSTREAM 0001-Drop-real128.patch (https://github.com/pmodels/mpich/issues/4005) -Patch5: 0001-Drop-real128.patch +Patch50: 0001-Drop-real128.patch +Patch51: 0001-Drop-Real-16.patch + URL: http://mvapich.cse.ohio-state.edu/overview/mvapich2/ BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -182,6 +187,7 @@ BuildRequires: autoconf BuildRequires: automake BuildRequires: automake BuildRequires: bison +BuildRequires: flex %ifnarch s390 s390x %{arm} BuildRequires: libnuma-devel %endif @@ -301,14 +307,24 @@ is based on MPICH2 and MVICH. This package contains the static libraries %patch2 %patch3 %patch4 -p1 -# Only apply this patch on Armv7 +%patch5 +%patch6 + +# Only apply these patches on Armv7 %ifarch armv7hl -%patch5 -p1 +%patch50 -p1 +%patch51 %endif cp /usr/share/automake*/config.* . %build %global _lto_cflags %{_lto_cflags} -ffat-lto-objects + +# GCC10 needs an extra flag to allow badly passed parameters +%if 0%{?suse_version} > 1500 +export FFLAGS="-fallow-argument-mismatch $FFLAGS" +%endif + PERL_USE_UNSAFE_INC=1 ./autogen.sh %if %{with hpc} %{hpc_setup} diff --git a/wrapper-revert-ldflag-order-change.patch b/wrapper-revert-ldflag-order-change.patch new file mode 100644 index 0000000..bb943fa --- /dev/null +++ b/wrapper-revert-ldflag-order-change.patch @@ -0,0 +1,115 @@ +commit 5818871a4afed52944ece7688f5ad316407be482 +Author: Nicolas Morey-Chaisemartin +Date: Tue Jun 9 22:46:54 2020 +0200 + + wrapper revert ldflag order change + + For some reason v2.3.4 changed flag order in mpi** wrappers which + causes legacy stuff to not link unless a -lmpi is added + + Signed-off-by: Nicolas Morey-Chaisemartin + +diff --git src/env/mpicc.bash.in src/env/mpicc.bash.in +index aa65f27a4e5e..21517c0abfef 100644 +--- src/env/mpicc.bash.in ++++ src/env/mpicc.bash.in +@@ -268,7 +268,7 @@ if [ "$linking" = yes ] ; then + $Show $CC ${final_cppflags} $PROFILE_INCPATHS ${final_cflags} ${final_ldflags} "${allargs[@]}" -I$includedir + rc=$? + else +- $Show $CC ${final_cppflags} $PROFILE_INCPATHS ${final_cflags} -l@MPILIBNAME@ ${final_ldflags} "${allargs[@]}" -I$includedir $ITAC_OPTIONS -L$libdir $PROFILE_PRELIB $PROFILE_FOO $rpath_flags @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} ++ $Show $CC ${final_cppflags} $PROFILE_INCPATHS ${final_cflags} ${final_ldflags} "${allargs[@]}" -I$includedir $ITAC_OPTIONS -L$libdir $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} + rc=$? + fi + else +diff --git src/env/mpicc.sh.in src/env/mpicc.sh.in +index dceab90cc3f2..f6e433d2f0f5 100644 +--- src/env/mpicc.sh.in ++++ src/env/mpicc.sh.in +@@ -277,7 +277,7 @@ if [ "$linking" = yes ] ; then + $Show $CC ${final_cppflags} $PROFILE_INCPATHS ${final_cflags} ${final_ldflags} $allargs -I$includedir + rc=$? + else +- $Show $CC ${final_cppflags} $PROFILE_INCPATHS ${final_cflags} -l@MPILIBNAME@ ${final_ldflags} $allargs -I$includedir $ITAC_OPTIONS -L$libdir $PROFILE_PRELIB $PROFILE_FOO $rpath_flags @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} ++ $Show $CC ${final_cppflags} $PROFILE_INCPATHS ${final_cflags} ${final_ldflags} $allargs -I$includedir $ITAC_OPTIONS -L$libdir $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} + rc=$? + fi + else +diff --git src/env/mpicxx.bash.in src/env/mpicxx.bash.in +index 5d4e1639e02f..35a581bd3515 100644 +--- src/env/mpicxx.bash.in ++++ src/env/mpicxx.bash.in +@@ -266,7 +266,7 @@ if [ "$linking" = yes ] ; then + $Show $CXX ${final_cppflags} $PROFILE_INCPATHS ${final_cxxflags} ${final_ldflags} "${allargs[@]}" -I$includedir + rc=$? + else +- $Show $CXX ${final_cppflags} $PROFILE_INCPATHS ${final_cxxflags} $cxxlibs -l@MPILIBNAME@ ${final_ldflags} "${allargs[@]}" -I$includedir $ITAC_OPTIONS -L$libdir $PROFILE_PRELIB $PROFILE_FOO $rpath_flags @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} ++ $Show $CXX ${final_cppflags} $PROFILE_INCPATHS ${final_cxxflags} ${final_ldflags} "${allargs[@]}" -I$includedir $ITAC_OPTIONS -L$libdir $cxxlibs $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} + rc=$? + fi + else +diff --git src/env/mpicxx.sh.in src/env/mpicxx.sh.in +index 0186905368e1..e2eed50f0660 100644 +--- src/env/mpicxx.sh.in ++++ src/env/mpicxx.sh.in +@@ -275,7 +275,7 @@ if [ "$linking" = yes ] ; then + $Show $CXX ${final_cppflags} $PROFILE_INCPATHS ${final_cxxflags} ${final_ldflags} $allargs -I$includedir + rc=$? + else +- $Show $CXX ${final_cppflags} $PROFILE_INCPATHS ${final_cxxflags} $cxxlibs -l@MPILIBNAME@ ${final_ldflags} $allargs -I$includedir $ITAC_OPTIONS -L$libdir $PROFILE_PRELIB $PROFILE_FOO $rpath_flags @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} ++ $Show $CXX ${final_cppflags} $PROFILE_INCPATHS ${final_cxxflags} ${final_ldflags} $allargs -I$includedir $ITAC_OPTIONS -L$libdir $cxxlibs $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} + rc=$? + fi + else +diff --git src/env/mpif77.bash.in src/env/mpif77.bash.in +index 05b3e540de78..4d357a502d94 100644 +--- src/env/mpif77.bash.in ++++ src/env/mpif77.bash.in +@@ -318,7 +318,7 @@ if [ "$linking" = yes ] ; then + $Show $F77 $PROFILE_INCPATHS ${final_fflags} ${final_ldflags} "${allargs[@]}" -I$includedir + rc=$? + else +- $Show $F77 $PROFILE_INCPATHS ${final_fflags} -l@MPILIBNAME@ ${final_ldflags} "${allargs[@]}" -I$includedir $ITAC_OPTIONS -L$libdir $f77libs $PROFILE_PRELIB $PROFILE_FOO $rpath_flags @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} @F77_OTHER_LIBS@ ++ $Show $F77 $PROFILE_INCPATHS ${final_fflags} ${final_ldflags} "${allargs[@]}" -I$includedir $ITAC_OPTIONS -L$libdir $f77libs $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} @F77_OTHER_LIBS@ + rc=$? + fi + else +diff --git src/env/mpif77.sh.in src/env/mpif77.sh.in +index 070b0be24722..0ec77e627b53 100644 +--- src/env/mpif77.sh.in ++++ src/env/mpif77.sh.in +@@ -340,7 +340,7 @@ if [ "$linking" = yes ] ; then + $Show $F77 $PROFILE_INCPATHS ${final_fflags} ${final_ldflags} $allargs -I$includedir + rc=$? + else +- $Show $F77 $PROFILE_INCPATHS ${final_fflags} -l@MPILIBNAME@ ${final_ldflags} $allargs -I$includedir $ITAC_OPTIONS -L$libdir $f77libs $PROFILE_PRELIB $PROFILE_FOO $rpath_flags @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} @F77_OTHER_LIBS@ ++ $Show $F77 $PROFILE_INCPATHS ${final_fflags} ${final_ldflags} $allargs -I$includedir $ITAC_OPTIONS -L$libdir $f77libs $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} @F77_OTHER_LIBS@ + rc=$? + fi + else +diff --git src/env/mpifort.bash.in src/env/mpifort.bash.in +index 73da0e866e48..c36dddf78553 100644 +--- src/env/mpifort.bash.in ++++ src/env/mpifort.bash.in +@@ -359,7 +359,7 @@ if [ "$linking" = yes ] ; then + $Show $FC $PROFILE_INCPATHS ${final_fcflags} ${final_ldflags} "${allargs[@]}" + rc=$? + else +- $Show $FC $PROFILE_INCPATHS ${final_fcflags} -l@MPIFCLIBNAME@ -l@MPILIBNAME@ ${final_ldflags} "${allargs[@]}" $FCINCDIRS $FCMODDIRS $ITAC_OPTIONS -L$libdir $PROFILE_PRELIB $PROFILE_FOO $rpath_flags @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} @FC_OTHER_LIBS@ ++ $Show $FC $PROFILE_INCPATHS ${final_fcflags} ${final_ldflags} "${allargs[@]}" $FCINCDIRS $FCMODDIRS $ITAC_OPTIONS -L$libdir -l@MPIFCLIBNAME@ $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} @FC_OTHER_LIBS@ + rc=$? + fi + else +diff --git src/env/mpifort.sh.in src/env/mpifort.sh.in +index 5ee8a148f8ff..c5620c4b61a2 100644 +--- src/env/mpifort.sh.in ++++ src/env/mpifort.sh.in +@@ -375,7 +375,7 @@ if [ "$linking" = yes ] ; then + $Show $FC $PROFILE_INCPATHS ${final_fcflags} ${final_ldflags} $allargs + rc=$? + else +- $Show $FC $PROFILE_INCPATHS ${final_fcflags} -l@MPIFCLIBNAME@ -l@MPILIBNAME@ ${final_ldflags} $allargs $FCINCDIRS $FCMODDIRS $ITAC_OPTIONS -L$libdir $PROFILE_PRELIB $PROFILE_FOO $rpath_flags @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} @FC_OTHER_LIBS@ ++ $Show $FC $PROFILE_INCPATHS ${final_fcflags} ${final_ldflags} $allargs $FCINCDIRS $FCMODDIRS $ITAC_OPTIONS -L$libdir -l@MPIFCLIBNAME@ $PROFILE_PRELIB $PROFILE_FOO $rpath_flags -l@MPILIBNAME@ @LPMPILIBNAME@ $PROFILE_POSTLIB ${final_libs} @FC_OTHER_LIBS@ + rc=$? + fi + else